@unbrained/pm-cli 2026.7.15 → 2026.7.17

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 (508) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +23 -2
  3. package/CONTRIBUTING.md +2 -2
  4. package/dist/cli/bootstrap-args.d.ts +2 -115
  5. package/dist/cli/bootstrap-args.js +4 -831
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commands/eval.d.ts +4 -64
  8. package/dist/cli/commands/eval.js +4 -153
  9. package/dist/cli/commands/eval.js.map +1 -1
  10. package/dist/cli/commands/linked-test-entry.d.ts +6 -6
  11. package/dist/cli/commands/linked-test-entry.js +4 -65
  12. package/dist/cli/commands/linked-test-entry.js.map +1 -1
  13. package/dist/cli/commands/linked-test-parsers.d.ts +3 -45
  14. package/dist/cli/commands/linked-test-parsers.js +4 -516
  15. package/dist/cli/commands/linked-test-parsers.js.map +1 -1
  16. package/dist/cli/commands/list.d.ts +3 -210
  17. package/dist/cli/commands/list.js +4 -1068
  18. package/dist/cli/commands/list.js.map +1 -1
  19. package/dist/cli/commands/search.d.ts +3 -464
  20. package/dist/cli/commands/search.js +4 -2236
  21. package/dist/cli/commands/search.js.map +1 -1
  22. package/dist/cli/commands/stats.d.ts +6 -66
  23. package/dist/cli/commands/stats.js +4 -157
  24. package/dist/cli/commands/stats.js.map +1 -1
  25. package/dist/cli/commands/telemetry.d.ts +6 -14
  26. package/dist/cli/commands/telemetry.js +4 -349
  27. package/dist/cli/commands/telemetry.js.map +1 -1
  28. package/dist/cli/commands/test-all.d.ts +6 -95
  29. package/dist/cli/commands/test-all.js +4 -439
  30. package/dist/cli/commands/test-all.js.map +1 -1
  31. package/dist/cli/commands/test-runs.d.ts +6 -92
  32. package/dist/cli/commands/test-runs.js +4 -189
  33. package/dist/cli/commands/test-runs.js.map +1 -1
  34. package/dist/cli/commands/test.d.ts +6 -244
  35. package/dist/cli/commands/test.js +4 -1780
  36. package/dist/cli/commands/test.js.map +1 -1
  37. package/dist/cli/commands/update-many.d.ts +15 -29
  38. package/dist/cli/commands/update-many.js +355 -259
  39. package/dist/cli/commands/update-many.js.map +1 -1
  40. package/dist/cli/main.js +140 -133
  41. package/dist/cli/main.js.map +1 -1
  42. package/dist/cli/search-refresh.js +4 -9
  43. package/dist/cli/search-refresh.js.map +1 -1
  44. package/dist/cli/shared-parsers.d.ts +6 -9
  45. package/dist/cli/shared-parsers.js +4 -37
  46. package/dist/cli/shared-parsers.js.map +1 -1
  47. package/dist/cli/telemetry-flush.js +4 -4
  48. package/dist/cli/telemetry-flush.js.map +1 -1
  49. package/dist/cli-bundle/bundle-manifest.json +341 -341
  50. package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js → append-5YF3TO7I.js} +5 -5
  51. package/dist/cli-bundle/chunks/append-JHO5K6RP.js +11 -0
  52. package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js → chunk-23TCGBRK.js} +16 -7
  53. package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js.map → chunk-23TCGBRK.js.map} +1 -1
  54. package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js → chunk-2BX74BAS.js} +3 -3
  55. package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js → chunk-2CXL335K.js} +3 -3
  56. package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js → chunk-2FUOXSRN.js} +4 -4
  57. package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js → chunk-2IPNL3DR.js} +3 -3
  58. package/dist/cli-bundle/chunks/{chunk-J6364LFM.js → chunk-2MPMKJF2.js} +9 -18
  59. package/dist/cli-bundle/chunks/{chunk-J6364LFM.js.map → chunk-2MPMKJF2.js.map} +1 -1
  60. package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js → chunk-2XOSFSTH.js} +5 -5
  61. package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js → chunk-37DRDP2B.js} +5 -5
  62. package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js → chunk-37V5MXAU.js} +4 -4
  63. package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js → chunk-3D4YVTNG.js} +8 -8
  64. package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js → chunk-47HXN6RX.js} +3 -3
  65. package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js → chunk-5HGZKQUL.js} +4 -4
  66. package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js → chunk-5UKQLQM2.js} +2 -2
  67. package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js → chunk-633PKXLT.js} +3 -3
  68. package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js → chunk-646MQXFW.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js → chunk-66MKH7SZ.js} +4 -4
  70. package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js → chunk-67RO3H4N.js} +4 -4
  71. package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js → chunk-6DYOZS6C.js} +2 -2
  72. package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js → chunk-6O44IN44.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-ONG5V5CI.js → chunk-6XAZB6SE.js} +97 -69
  74. package/dist/cli-bundle/chunks/chunk-6XAZB6SE.js.map +1 -0
  75. package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js → chunk-74FKFFXO.js} +2 -2
  76. package/dist/cli-bundle/chunks/{chunk-LPYWLWDS.js → chunk-7CTQ7WW5.js} +37 -37
  77. package/dist/cli-bundle/chunks/chunk-7CTQ7WW5.js.map +1 -0
  78. package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js → chunk-7H5NNCJ5.js} +4 -4
  79. package/dist/cli-bundle/chunks/{chunk-XXXF6PAQ.js → chunk-7LTCLTRG.js} +69 -61
  80. package/dist/cli-bundle/chunks/chunk-7LTCLTRG.js.map +7 -0
  81. package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js → chunk-AFGKSHAM.js} +4 -4
  82. package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js → chunk-AFSV5HBB.js} +77 -7
  83. package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js.map → chunk-AFSV5HBB.js.map} +1 -1
  84. package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js → chunk-ARGDWQ4J.js} +2 -2
  85. package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js → chunk-B57RJHBZ.js} +4 -4
  86. package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js → chunk-B6SH2YNN.js} +75 -5
  87. package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js.map → chunk-B6SH2YNN.js.map} +1 -1
  88. package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js → chunk-BAP7G3N2.js} +2 -2
  89. package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js → chunk-BIRYX32V.js} +3 -3
  90. package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js → chunk-BVLOMU6O.js} +2 -2
  91. package/dist/cli-bundle/chunks/{chunk-YBLZ2VE7.js → chunk-CFSUNEL7.js} +320 -239
  92. package/dist/cli-bundle/chunks/chunk-CFSUNEL7.js.map +7 -0
  93. package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js → chunk-CKX4WOPC.js} +2 -2
  94. package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js → chunk-D52ZN3BF.js} +2 -2
  95. package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js → chunk-D53RTYVI.js} +4 -4
  96. package/dist/cli-bundle/chunks/{chunk-ODALILG3.js → chunk-D5XHO4Q7.js} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js → chunk-DCC2AQBD.js} +18 -9
  98. package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js.map → chunk-DCC2AQBD.js.map} +1 -1
  99. package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js → chunk-DDFGYUCQ.js} +4 -4
  100. package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js → chunk-DG2EQRIH.js} +4 -4
  101. package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js → chunk-EHJFUOXL.js} +3 -3
  102. package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js → chunk-EY7ZE3TG.js} +3 -3
  103. package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js → chunk-FHOBCGQO.js} +2 -2
  104. package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js → chunk-FL4D53ND.js} +2 -2
  105. package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js → chunk-FVNWHUME.js} +4 -4
  106. package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js → chunk-FXFCFL73.js} +5 -5
  107. package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js → chunk-FY4RLHSC.js} +2 -2
  108. package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js → chunk-FZGM3PNA.js} +8 -8
  109. package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js → chunk-G6KM4YKY.js} +7 -7
  110. package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js → chunk-G6MYGULG.js} +4 -4
  111. package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js → chunk-GLZKZON6.js} +2 -2
  112. package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js → chunk-H5IOT54C.js} +4 -4
  113. package/dist/cli-bundle/chunks/{chunk-5ZSLZLDN.js → chunk-HF63SBLC.js} +585 -456
  114. package/dist/cli-bundle/chunks/chunk-HF63SBLC.js.map +1 -0
  115. package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js → chunk-HO4DLBNK.js} +2 -2
  116. package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js → chunk-HSYV4ZYT.js} +4 -4
  117. package/dist/cli-bundle/chunks/{chunk-EH2OPHBI.js → chunk-HTXXXF45.js} +23 -19
  118. package/dist/cli-bundle/chunks/chunk-HTXXXF45.js.map +1 -0
  119. package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js → chunk-HXVHBERL.js} +8 -8
  120. package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js → chunk-I7DIDUSP.js} +2 -2
  121. package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js → chunk-I7GY4X6Y.js} +2 -2
  122. package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js → chunk-IE5KRAKN.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js → chunk-ILVOOAT4.js} +5 -5
  124. package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js → chunk-KH6QAHME.js} +3 -3
  125. package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js → chunk-KOEZCHRF.js} +9 -9
  126. package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js → chunk-KX62NMZC.js} +3 -3
  127. package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js.map → chunk-KX62NMZC.js.map} +1 -1
  128. package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js → chunk-L337QKWJ.js} +5 -5
  129. package/dist/cli-bundle/chunks/{chunk-LSG2U345.js → chunk-L6FVNR7X.js} +5 -5
  130. package/dist/cli-bundle/chunks/{chunk-ILX33QXL.js → chunk-LLODAQMP.js} +706 -532
  131. package/dist/cli-bundle/chunks/chunk-LLODAQMP.js.map +7 -0
  132. package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js → chunk-LSOWTLEM.js} +2 -2
  133. package/dist/cli-bundle/chunks/{chunk-4223PVZT.js → chunk-M7MVOKVV.js} +3 -3
  134. package/dist/cli-bundle/chunks/chunk-MNV226E4.js +834 -0
  135. package/dist/cli-bundle/chunks/chunk-MNV226E4.js.map +1 -0
  136. package/dist/cli-bundle/chunks/{chunk-UMOPHQSU.js → chunk-MR4SHYR4.js} +41 -19
  137. package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +7 -0
  138. package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js → chunk-MSGETE6I.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js → chunk-N33FD2UI.js} +3 -3
  140. package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js → chunk-N7I2DGLP.js} +4 -4
  141. package/dist/cli-bundle/chunks/{chunk-3S5QVM5H.js → chunk-NCAFUBJX.js} +13 -13
  142. package/dist/cli-bundle/chunks/chunk-NCAFUBJX.js.map +1 -0
  143. package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js → chunk-NNANAWFH.js} +3 -3
  144. package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js → chunk-NTRQLE2R.js} +2 -2
  145. package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js → chunk-NVZ6NVHJ.js} +4 -4
  146. package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js → chunk-OWP6QFBV.js} +4 -4
  147. package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js → chunk-P22HGFFI.js} +2 -2
  148. package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js → chunk-P56LKFQX.js} +2 -2
  149. package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js → chunk-PT7MCCGD.js} +2 -2
  150. package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js → chunk-QKVVV6QO.js} +7 -7
  151. package/dist/cli-bundle/chunks/{chunk-5JLUII3O.js → chunk-QNUAZYGW.js} +321 -240
  152. package/dist/cli-bundle/chunks/chunk-QNUAZYGW.js.map +1 -0
  153. package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js → chunk-QWBKN3QC.js} +5 -5
  154. package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js → chunk-R5XTTZSJ.js} +5 -5
  155. package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js → chunk-RC4UOUXA.js} +3 -3
  156. package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js → chunk-RGMWJLXF.js} +4 -4
  157. package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js → chunk-RTBX3C4C.js} +3 -3
  158. package/dist/cli-bundle/chunks/{chunk-HYB5AZ63.js → chunk-S46R2M3W.js} +117 -71
  159. package/dist/cli-bundle/chunks/chunk-S46R2M3W.js.map +7 -0
  160. package/dist/cli-bundle/chunks/{chunk-H5APFTHZ.js → chunk-S6FF7VW6.js} +18 -18
  161. package/dist/cli-bundle/chunks/chunk-S6FF7VW6.js.map +7 -0
  162. package/dist/cli-bundle/chunks/{chunk-UXONS674.js → chunk-SIJV365F.js} +54 -55
  163. package/dist/cli-bundle/chunks/chunk-SIJV365F.js.map +1 -0
  164. package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js → chunk-SPFZV2GR.js} +9 -9
  165. package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js → chunk-TM5CIO3F.js} +3 -3
  166. package/dist/cli-bundle/chunks/{chunk-4XQ3BDV4.js → chunk-V3VBXQQV.js} +36 -36
  167. package/dist/cli-bundle/chunks/chunk-V3VBXQQV.js.map +7 -0
  168. package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js → chunk-V7MP6YTN.js} +7 -7
  169. package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js → chunk-VAHZIPWS.js} +4 -4
  170. package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js → chunk-VE6ZSTQW.js} +4 -4
  171. package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js → chunk-W5E2UUSH.js} +3 -3
  172. package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js → chunk-WACRQ26A.js} +2 -2
  173. package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js.map → chunk-WACRQ26A.js.map} +1 -1
  174. package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js → chunk-WL3SS45P.js} +3 -3
  175. package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js → chunk-WU3KAN6A.js} +3 -3
  176. package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js → chunk-X2MGQMZO.js} +2 -2
  177. package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js → chunk-X5YCTFKT.js} +3 -3
  178. package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js → chunk-XC2HEEOV.js} +4 -4
  179. package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js → chunk-XNPMDSQQ.js} +8 -8
  180. package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js → chunk-XXLXJL7V.js} +4 -4
  181. package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js +851 -0
  182. package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js → chunk-YJSURTBB.js} +2 -2
  184. package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js → chunk-YKFHF37B.js} +3 -3
  185. package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js → chunk-YQCWK2MB.js} +4 -4
  186. package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js → chunk-YQEZWI3R.js} +2 -2
  187. package/dist/cli-bundle/chunks/close-BEP7MHF3.js +12 -0
  188. package/dist/cli-bundle/chunks/{close-CWODTPKG.js → close-Y6QFUJQN.js} +5 -5
  189. package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js → close-many-JJFW7KTT.js} +14 -14
  190. package/dist/cli-bundle/chunks/close-many-QJ6FKJUE.js +23 -0
  191. package/dist/cli-bundle/chunks/comments-2AOZQ5D2.js +13 -0
  192. package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js → comments-TMHMALA5.js} +7 -7
  193. package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js → copy-FWQA5OU4.js} +4 -4
  194. package/dist/cli-bundle/chunks/copy-N3LCQBMC.js +9 -0
  195. package/dist/cli-bundle/chunks/{create-LBVCYMEG.js → create-AQ5SIGZC.js} +9 -9
  196. package/dist/cli-bundle/chunks/{create-J5U6ND4K.js → create-KOGQ3JKD.js} +9 -9
  197. package/dist/cli-bundle/chunks/delete-6G3MBZ6S.js +10 -0
  198. package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js → delete-YYYFOSEA.js} +4 -4
  199. package/dist/cli-bundle/chunks/{deps-OA26IS25.js → deps-5NC4IZH7.js} +5 -5
  200. package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js → deps-EVTOQMKW.js} +5 -5
  201. package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js → docs-53NUGMIQ.js} +6 -6
  202. package/dist/cli-bundle/chunks/docs-OWRGDMNY.js +14 -0
  203. package/dist/cli-bundle/chunks/{files-EFIWKFTM.js → files-3PXGXYDB.js} +6 -6
  204. package/dist/cli-bundle/chunks/{files-6YFBJRBG.js → files-EGLKHD7O.js} +6 -6
  205. package/dist/cli-bundle/chunks/focus-KZLIA6WS.js +10 -0
  206. package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js → focus-SRPASFTN.js} +5 -5
  207. package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js → history-compact-G4DULDCX.js} +6 -6
  208. package/dist/cli-bundle/chunks/history-compact-HHIUOMZ7.js +16 -0
  209. package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js → history-redact-IUSJ6X3E.js} +4 -4
  210. package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js → history-redact-THHGRQXV.js} +4 -4
  211. package/dist/cli-bundle/chunks/history-repair-KG7SWXI6.js +16 -0
  212. package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js → history-repair-LUQWRS7X.js} +6 -6
  213. package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js → learnings-2MRNBFJF.js} +7 -7
  214. package/dist/cli-bundle/chunks/learnings-ZVHSALJY.js +13 -0
  215. package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js → notes-73JWKWUD.js} +7 -7
  216. package/dist/cli-bundle/chunks/notes-BAKUL5DJ.js +13 -0
  217. package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js → plan-AZPMCG37.js} +10 -10
  218. package/dist/cli-bundle/chunks/plan-LEAGLPGP.js +24 -0
  219. package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js → profile-AGUKS52S.js} +9 -9
  220. package/dist/cli-bundle/chunks/{profile-FAU7NZML.js → profile-U2B6Y7GE.js} +9 -9
  221. package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js → register-list-query-A5KRJ5J2.js} +16 -16
  222. package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js → register-list-query-NEYP3TXO.js} +16 -16
  223. package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js → register-mutation-6LOPBAHC.js} +29 -29
  224. package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js → register-mutation-GCZOALNJ.js} +29 -29
  225. package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js → register-operations-6ZZIF27A.js} +35 -35
  226. package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js → register-operations-REDIAEGI.js} +35 -35
  227. package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js → register-setup-BHPMN5SK.js} +15 -15
  228. package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js → register-setup-J3JS2ZVT.js} +15 -15
  229. package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js → restore-E3PRGDN3.js} +6 -6
  230. package/dist/cli-bundle/chunks/restore-KIUYTAEJ.js +14 -0
  231. package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js → schema-5JNFQFUW.js} +6 -6
  232. package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js → schema-TMIW4XZC.js} +6 -6
  233. package/dist/cli-bundle/chunks/update-PQQHLYCC.js +21 -0
  234. package/dist/cli-bundle/chunks/{update-XHSIAIXE.js → update-SA6AG23P.js} +12 -12
  235. package/dist/cli-bundle/chunks/update-many-RQVTFJPD.js +36 -0
  236. package/dist/cli-bundle/chunks/update-many-TV3L3KBX.js +32 -0
  237. package/dist/cli-bundle/main.js +153 -855
  238. package/dist/cli-bundle/main.js.map +4 -4
  239. package/dist/cli-bundle/sdk-runtime.js +54 -54
  240. package/dist/cli-bundle/sdk-testing.js +6 -6
  241. package/dist/cli-bundle/sdk.js +195 -59
  242. package/dist/cli-bundle/sdk.js.map +3 -3
  243. package/dist/core/extensions/item-fields.js +2 -2
  244. package/dist/core/extensions/item-fields.js.map +1 -1
  245. package/dist/sdk/cli-bootstrap.d.ts +122 -0
  246. package/dist/sdk/cli-bootstrap.js +879 -0
  247. package/dist/sdk/cli-bootstrap.js.map +1 -0
  248. package/dist/sdk/eval.d.ts +66 -0
  249. package/dist/sdk/eval.js +186 -0
  250. package/dist/sdk/eval.js.map +1 -0
  251. package/dist/sdk/index.d.ts +16 -4
  252. package/dist/sdk/index.js +18 -6
  253. package/dist/sdk/index.js.map +1 -1
  254. package/dist/{cli/commands → sdk/query}/item-filter-options.d.ts +1 -1
  255. package/dist/{cli/commands → sdk/query}/item-filter-options.js +3 -3
  256. package/dist/sdk/query/item-filter-options.js.map +1 -0
  257. package/dist/sdk/query/list.d.ts +254 -0
  258. package/dist/sdk/query/list.js +1073 -0
  259. package/dist/sdk/query/list.js.map +1 -0
  260. package/dist/sdk/query/parsers.d.ts +9 -0
  261. package/dist/sdk/query/parsers.js +45 -0
  262. package/dist/sdk/query/parsers.js.map +1 -0
  263. package/dist/{cli/commands → sdk/query}/search-pagination.js +4 -4
  264. package/dist/sdk/query/search-pagination.js.map +1 -0
  265. package/dist/{cli/commands → sdk/query}/search-rendering.js +3 -3
  266. package/dist/sdk/query/search-rendering.js.map +1 -0
  267. package/dist/sdk/query/search.d.ts +469 -0
  268. package/dist/sdk/query/search.js +2247 -0
  269. package/dist/sdk/query/search.js.map +1 -0
  270. package/dist/sdk/runtime.d.ts +7 -7
  271. package/dist/sdk/runtime.js +13 -7
  272. package/dist/sdk/runtime.js.map +1 -1
  273. package/dist/sdk/search-refresh-worker.d.ts +2 -0
  274. package/dist/sdk/search-refresh-worker.js +19 -0
  275. package/dist/sdk/search-refresh-worker.js.map +1 -0
  276. package/dist/sdk/stats.d.ts +66 -0
  277. package/dist/sdk/stats.js +151 -0
  278. package/dist/sdk/stats.js.map +1 -0
  279. package/dist/sdk/telemetry-flush.d.ts +2 -0
  280. package/dist/sdk/telemetry-flush.js +14 -0
  281. package/dist/sdk/telemetry-flush.js.map +1 -0
  282. package/dist/sdk/telemetry.d.ts +14 -0
  283. package/dist/sdk/telemetry.js +398 -0
  284. package/dist/sdk/telemetry.js.map +1 -0
  285. package/dist/sdk/test/batch.d.ts +94 -0
  286. package/dist/sdk/test/batch.js +492 -0
  287. package/dist/sdk/test/batch.js.map +1 -0
  288. package/dist/sdk/test/entry.d.ts +6 -0
  289. package/dist/sdk/test/entry.js +74 -0
  290. package/dist/sdk/test/entry.js.map +1 -0
  291. package/dist/sdk/test/execution.d.ts +282 -0
  292. package/dist/sdk/test/execution.js +1817 -0
  293. package/dist/sdk/test/execution.js.map +1 -0
  294. package/dist/sdk/test/parsers.d.ts +48 -0
  295. package/dist/sdk/test/parsers.js +522 -0
  296. package/dist/sdk/test/parsers.js.map +1 -0
  297. package/dist/sdk/test/runs.d.ts +92 -0
  298. package/dist/sdk/test/runs.js +195 -0
  299. package/dist/sdk/test/runs.js.map +1 -0
  300. package/docs/SDK.md +122 -0
  301. package/docs/SDK_PRIMITIVE_INVENTORY.md +5 -3
  302. package/docs/examples/sdk-custom-tool/README.md +27 -0
  303. package/docs/examples/sdk-custom-tool/package.json +13 -0
  304. package/docs/examples/sdk-custom-tool/src/cli.ts +36 -0
  305. package/docs/examples/sdk-custom-tool/src/entry.ts +15 -0
  306. package/docs/examples/sdk-custom-tool/src/index.ts +223 -0
  307. package/marketplace.json +2 -2
  308. package/package.json +4 -4
  309. package/packages/pm-beads/package.json +1 -1
  310. package/packages/pm-calendar/package.json +1 -1
  311. package/packages/pm-command-kit/package.json +1 -1
  312. package/packages/pm-governance-audit/extensions/governance-audit/comments-audit.ts +77 -57
  313. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +202 -194
  314. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-merge.ts +227 -153
  315. package/packages/pm-governance-audit/extensions/governance-audit/normalize.ts +169 -125
  316. package/packages/pm-governance-audit/extensions/governance-audit/runtime-utils.ts +130 -81
  317. package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +53 -4
  318. package/packages/pm-governance-audit/package.json +1 -1
  319. package/packages/pm-guide-shell/package.json +1 -1
  320. package/packages/pm-kanban/package.json +1 -1
  321. package/packages/pm-lifecycle-hooks/package.json +1 -1
  322. package/packages/pm-linked-test-adapters/package.json +1 -1
  323. package/packages/pm-search-advanced/package.json +1 -1
  324. package/packages/pm-templates/package.json +1 -1
  325. package/packages/pm-todos/package.json +1 -1
  326. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  327. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  328. package/dist/cli/commands/item-filter-options.js.map +0 -1
  329. package/dist/cli/commands/search-pagination.js.map +0 -1
  330. package/dist/cli/commands/search-rendering.js.map +0 -1
  331. package/dist/cli-bundle/chunks/append-UZVHUO74.js +0 -11
  332. package/dist/cli-bundle/chunks/chunk-3S5QVM5H.js.map +0 -1
  333. package/dist/cli-bundle/chunks/chunk-4XQ3BDV4.js.map +0 -7
  334. package/dist/cli-bundle/chunks/chunk-5JLUII3O.js.map +0 -1
  335. package/dist/cli-bundle/chunks/chunk-5ZSLZLDN.js.map +0 -1
  336. package/dist/cli-bundle/chunks/chunk-EH2OPHBI.js.map +0 -1
  337. package/dist/cli-bundle/chunks/chunk-H5APFTHZ.js.map +0 -7
  338. package/dist/cli-bundle/chunks/chunk-HYB5AZ63.js.map +0 -7
  339. package/dist/cli-bundle/chunks/chunk-ILX33QXL.js.map +0 -7
  340. package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +0 -1
  341. package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +0 -1
  342. package/dist/cli-bundle/chunks/chunk-UMOPHQSU.js.map +0 -7
  343. package/dist/cli-bundle/chunks/chunk-UXONS674.js.map +0 -1
  344. package/dist/cli-bundle/chunks/chunk-XXXF6PAQ.js.map +0 -7
  345. package/dist/cli-bundle/chunks/chunk-YBLZ2VE7.js.map +0 -7
  346. package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js +0 -58
  347. package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js.map +0 -1
  348. package/dist/cli-bundle/chunks/chunk-ZKRZY773.js +0 -68
  349. package/dist/cli-bundle/chunks/chunk-ZKRZY773.js.map +0 -7
  350. package/dist/cli-bundle/chunks/close-W6LI2PKM.js +0 -12
  351. package/dist/cli-bundle/chunks/close-many-DLDDVSH5.js +0 -23
  352. package/dist/cli-bundle/chunks/comments-E3TNTK24.js +0 -13
  353. package/dist/cli-bundle/chunks/copy-Q5ZJPUKR.js +0 -9
  354. package/dist/cli-bundle/chunks/delete-WNHB3LYW.js +0 -10
  355. package/dist/cli-bundle/chunks/docs-HA2AIDBB.js +0 -14
  356. package/dist/cli-bundle/chunks/focus-POIW5LTJ.js +0 -10
  357. package/dist/cli-bundle/chunks/history-compact-FWG2C7FZ.js +0 -16
  358. package/dist/cli-bundle/chunks/history-repair-6GEAM7HE.js +0 -16
  359. package/dist/cli-bundle/chunks/learnings-RSNLSWDC.js +0 -13
  360. package/dist/cli-bundle/chunks/notes-2WDH6DXU.js +0 -13
  361. package/dist/cli-bundle/chunks/plan-DOVI2VMW.js +0 -24
  362. package/dist/cli-bundle/chunks/restore-YPMVUUEX.js +0 -14
  363. package/dist/cli-bundle/chunks/update-WWBYOPXO.js +0 -21
  364. package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js +0 -32
  365. package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js +0 -36
  366. /package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js.map → append-5YF3TO7I.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{append-UZVHUO74.js.map → append-JHO5K6RP.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js.map → chunk-2BX74BAS.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js.map → chunk-2CXL335K.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js.map → chunk-2FUOXSRN.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js.map → chunk-2IPNL3DR.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js.map → chunk-2XOSFSTH.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js.map → chunk-37DRDP2B.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js.map → chunk-37V5MXAU.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js.map → chunk-3D4YVTNG.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js.map → chunk-47HXN6RX.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js.map → chunk-5HGZKQUL.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js.map → chunk-5UKQLQM2.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js.map → chunk-633PKXLT.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js.map → chunk-646MQXFW.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js.map → chunk-66MKH7SZ.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js.map → chunk-67RO3H4N.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js.map → chunk-6DYOZS6C.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js.map → chunk-6O44IN44.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js.map → chunk-74FKFFXO.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js.map → chunk-7H5NNCJ5.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js.map → chunk-AFGKSHAM.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js.map → chunk-ARGDWQ4J.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js.map → chunk-B57RJHBZ.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js.map → chunk-BAP7G3N2.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js.map → chunk-BIRYX32V.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js.map → chunk-BVLOMU6O.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js.map → chunk-CKX4WOPC.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js.map → chunk-D52ZN3BF.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js.map → chunk-D53RTYVI.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{chunk-ODALILG3.js.map → chunk-D5XHO4Q7.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js.map → chunk-DDFGYUCQ.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js.map → chunk-DG2EQRIH.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js.map → chunk-EHJFUOXL.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js.map → chunk-EY7ZE3TG.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js.map → chunk-FHOBCGQO.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js.map → chunk-FL4D53ND.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js.map → chunk-FVNWHUME.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js.map → chunk-FXFCFL73.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js.map → chunk-FY4RLHSC.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js.map → chunk-FZGM3PNA.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js.map → chunk-G6KM4YKY.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js.map → chunk-G6MYGULG.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js.map → chunk-GLZKZON6.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js.map → chunk-H5IOT54C.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js.map → chunk-HO4DLBNK.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js.map → chunk-HSYV4ZYT.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js.map → chunk-HXVHBERL.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js.map → chunk-I7DIDUSP.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js.map → chunk-I7GY4X6Y.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js.map → chunk-IE5KRAKN.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js.map → chunk-ILVOOAT4.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js.map → chunk-KH6QAHME.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js.map → chunk-KOEZCHRF.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js.map → chunk-L337QKWJ.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{chunk-LSG2U345.js.map → chunk-L6FVNR7X.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js.map → chunk-LSOWTLEM.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{chunk-4223PVZT.js.map → chunk-M7MVOKVV.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js.map → chunk-MSGETE6I.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js.map → chunk-N33FD2UI.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js.map → chunk-N7I2DGLP.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js.map → chunk-NNANAWFH.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js.map → chunk-NTRQLE2R.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js.map → chunk-NVZ6NVHJ.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js.map → chunk-OWP6QFBV.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js.map → chunk-P22HGFFI.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js.map → chunk-P56LKFQX.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js.map → chunk-PT7MCCGD.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js.map → chunk-QKVVV6QO.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js.map → chunk-QWBKN3QC.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js.map → chunk-R5XTTZSJ.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js.map → chunk-RC4UOUXA.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js.map → chunk-RGMWJLXF.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js.map → chunk-RTBX3C4C.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js.map → chunk-SPFZV2GR.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js.map → chunk-TM5CIO3F.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js.map → chunk-V7MP6YTN.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js.map → chunk-VAHZIPWS.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js.map → chunk-VE6ZSTQW.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js.map → chunk-W5E2UUSH.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js.map → chunk-WL3SS45P.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js.map → chunk-WU3KAN6A.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js.map → chunk-X2MGQMZO.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js.map → chunk-X5YCTFKT.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js.map → chunk-XC2HEEOV.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js.map → chunk-XNPMDSQQ.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js.map → chunk-XXLXJL7V.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js.map → chunk-YJSURTBB.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js.map → chunk-YKFHF37B.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js.map → chunk-YQCWK2MB.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js.map → chunk-YQEZWI3R.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{close-W6LI2PKM.js.map → close-BEP7MHF3.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{close-CWODTPKG.js.map → close-Y6QFUJQN.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js.map → close-many-JJFW7KTT.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{close-many-DLDDVSH5.js.map → close-many-QJ6FKJUE.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{comments-E3TNTK24.js.map → comments-2AOZQ5D2.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js.map → comments-TMHMALA5.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js.map → copy-FWQA5OU4.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{copy-Q5ZJPUKR.js.map → copy-N3LCQBMC.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{create-LBVCYMEG.js.map → create-AQ5SIGZC.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{create-J5U6ND4K.js.map → create-KOGQ3JKD.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{delete-WNHB3LYW.js.map → delete-6G3MBZ6S.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js.map → delete-YYYFOSEA.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{deps-OA26IS25.js.map → deps-5NC4IZH7.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js.map → deps-EVTOQMKW.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js.map → docs-53NUGMIQ.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{docs-HA2AIDBB.js.map → docs-OWRGDMNY.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{files-EFIWKFTM.js.map → files-3PXGXYDB.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{files-6YFBJRBG.js.map → files-EGLKHD7O.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{focus-POIW5LTJ.js.map → focus-KZLIA6WS.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js.map → focus-SRPASFTN.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js.map → history-compact-G4DULDCX.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{history-compact-FWG2C7FZ.js.map → history-compact-HHIUOMZ7.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js.map → history-redact-IUSJ6X3E.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js.map → history-redact-THHGRQXV.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{history-repair-6GEAM7HE.js.map → history-repair-KG7SWXI6.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js.map → history-repair-LUQWRS7X.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js.map → learnings-2MRNBFJF.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{learnings-RSNLSWDC.js.map → learnings-ZVHSALJY.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js.map → notes-73JWKWUD.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{notes-2WDH6DXU.js.map → notes-BAKUL5DJ.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js.map → plan-AZPMCG37.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{plan-DOVI2VMW.js.map → plan-LEAGLPGP.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js.map → profile-AGUKS52S.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{profile-FAU7NZML.js.map → profile-U2B6Y7GE.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js.map → register-list-query-A5KRJ5J2.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js.map → register-list-query-NEYP3TXO.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js.map → register-mutation-6LOPBAHC.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js.map → register-mutation-GCZOALNJ.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js.map → register-operations-6ZZIF27A.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js.map → register-operations-REDIAEGI.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js.map → register-setup-BHPMN5SK.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js.map → register-setup-J3JS2ZVT.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js.map → restore-E3PRGDN3.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{restore-YPMVUUEX.js.map → restore-KIUYTAEJ.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js.map → schema-5JNFQFUW.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js.map → schema-TMIW4XZC.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{update-WWBYOPXO.js.map → update-PQQHLYCC.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{update-XHSIAIXE.js.map → update-SA6AG23P.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{update-many-TA7NGQBO.js.map → update-many-RQVTFJPD.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{update-many-OUGIU5SF.js.map → update-many-TV3L3KBX.js.map} +0 -0
  507. /package/dist/{cli/commands → sdk/query}/search-pagination.d.ts +0 -0
  508. /package/dist/{cli/commands → sdk/query}/search-rendering.d.ts +0 -0
@@ -1,38 +1,38 @@
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]="3989319a-d22e-5fcf-8ba2-e68e13692e87")}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]="b46baeb8-2946-5715-b76b-7a7082b871d3")}catch(e){}}();
3
3
  import {
4
4
  createCheckpointId,
5
5
  loadMutationCheckpoint,
6
6
  restoreCheckpointItems,
7
7
  writeMutationCheckpoint
8
- } from "./chunk-PGY23YTC.js";
8
+ } from "./chunk-YKFHF37B.js";
9
9
  import {
10
10
  runRestore
11
- } from "./chunk-HO4KXD6I.js";
11
+ } from "./chunk-7H5NNCJ5.js";
12
12
  import {
13
13
  runUpdate
14
- } from "./chunk-EACOH7AU.js";
14
+ } from "./chunk-FZGM3PNA.js";
15
15
  import {
16
16
  hasListFilters
17
17
  } from "./chunk-N7V7TI6J.js";
18
18
  import {
19
19
  runList
20
- } from "./chunk-UXONS674.js";
20
+ } from "./chunk-SIJV365F.js";
21
21
  import {
22
22
  resolveAuthor
23
23
  } from "./chunk-CUFW7ITY.js";
24
24
  import {
25
25
  resolvePriority
26
- } from "./chunk-EH2OPHBI.js";
26
+ } from "./chunk-HTXXXF45.js";
27
27
  import {
28
28
  applyTagRemovals,
29
29
  mergeAdditiveTags,
30
30
  parseOptionalNonNegativeInteger,
31
31
  parseTags
32
- } from "./chunk-EJEXHTY5.js";
32
+ } from "./chunk-FHOBCGQO.js";
33
33
  import {
34
34
  buildInvalidTypeError
35
- } from "./chunk-6N2VXVTQ.js";
35
+ } from "./chunk-ARGDWQ4J.js";
36
36
  import {
37
37
  collectRuntimeUpdateFieldValues,
38
38
  getActiveExtensionRegistrations,
@@ -42,7 +42,7 @@ import {
42
42
  resolveIsoOrRelative,
43
43
  stableValueEquals,
44
44
  toItemRecord
45
- } from "./chunk-Q7A43DS4.js";
45
+ } from "./chunk-P22HGFFI.js";
46
46
  import {
47
47
  EXIT_CODE,
48
48
  PmCliError,
@@ -55,7 +55,7 @@ import {
55
55
  resolveRuntimeStatusRegistry,
56
56
  resolveTypeName,
57
57
  toErrorMessage
58
- } from "./chunk-QKECXBBG.js";
58
+ } from "./chunk-KX62NMZC.js";
59
59
 
60
60
  // dist/cli/commands/update-many.js
61
61
  var UPDATE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;
@@ -243,7 +243,7 @@ var UNSET_FIELD_ALIASES = {
243
243
  "type-options": "type_options",
244
244
  tags: "tags"
245
245
  };
246
- function sanitizeUpdateOptionsForSummary(options) {
246
+ var sanitizeUpdateOptionsForSummary = (options) => {
247
247
  const summary = {};
248
248
  for (const [key, value] of Object.entries(options)) {
249
249
  if (NON_MUTATION_UPDATE_OPTION_KEYS.has(key)) {
@@ -255,44 +255,52 @@ function sanitizeUpdateOptionsForSummary(options) {
255
255
  summary[key] = value;
256
256
  }
257
257
  return summary;
258
- }
259
- function hasAnyUpdateMutationInput(options) {
258
+ };
259
+ var hasAnyUpdateMutationInput = (options) => {
260
260
  return Object.keys(sanitizeUpdateOptionsForSummary(options)).length > 0;
261
- }
262
- function toComparablePreviewValue(optionKey, value) {
261
+ };
262
+ var trimPreviewValue = (value) => typeof value === "string" ? value.trim() : value;
263
+ var normalizeIntegerPreviewValue = (value) => {
264
+ const trimmed = String(value).trim();
265
+ const parsed = Number(trimmed);
266
+ return Number.isInteger(parsed) ? parsed : trimmed;
267
+ };
268
+ var normalizeNumericPreviewValue = (value) => {
269
+ const trimmed = String(value).trim();
270
+ const parsed = Number(trimmed);
271
+ return Number.isFinite(parsed) ? parsed : trimmed;
272
+ };
273
+ var normalizeRegressionPreviewValue = (value) => {
274
+ const normalized = String(value).trim().toLowerCase();
275
+ const parsed = (/* @__PURE__ */ new Map([
276
+ ["true", true],
277
+ ["1", true],
278
+ ["false", false],
279
+ ["0", false]
280
+ ])).get(normalized);
281
+ return parsed ?? trimPreviewValue(value);
282
+ };
283
+ var PREVIEW_VALUE_NORMALIZERS = {
284
+ priority: normalizeIntegerPreviewValue,
285
+ estimatedMinutes: normalizeNumericPreviewValue,
286
+ order: normalizeNumericPreviewValue,
287
+ rank: normalizeNumericPreviewValue,
288
+ regression: normalizeRegressionPreviewValue
289
+ };
290
+ var toComparablePreviewValue = (optionKey, value) => {
263
291
  if (value === void 0) {
264
292
  return void 0;
265
293
  }
266
- if (optionKey === "priority") {
267
- const parsed = Number(String(value).trim());
268
- return Number.isInteger(parsed) ? parsed : String(value).trim();
269
- }
270
- if (optionKey === "estimatedMinutes" || optionKey === "order" || optionKey === "rank") {
271
- const parsed = Number(String(value).trim());
272
- return Number.isFinite(parsed) ? parsed : String(value).trim();
273
- }
274
- if (optionKey === "regression") {
275
- const normalized = String(value).trim().toLowerCase();
276
- if (normalized === "true" || normalized === "1") {
277
- return true;
278
- }
279
- if (normalized === "false" || normalized === "0") {
280
- return false;
281
- }
282
- }
283
- if (typeof value === "string") {
284
- return value.trim();
285
- }
286
- return value;
287
- }
288
- function normalizeUnsetField(rawField) {
294
+ return (PREVIEW_VALUE_NORMALIZERS[optionKey] ?? trimPreviewValue)(value);
295
+ };
296
+ var normalizeUnsetField = (rawField) => {
289
297
  const normalized = rawField.trim().toLowerCase().replaceAll("-", "_");
290
298
  return UNSET_FIELD_ALIASES[normalized] ?? normalized;
291
- }
292
- function areValuesEqual(left, right) {
299
+ };
300
+ var areValuesEqual = (left, right) => {
293
301
  return stableValueEquals(left, right);
294
- }
295
- function normalizeCollectionBeforeValue(field, value) {
302
+ };
303
+ var normalizeCollectionBeforeValue = (field, value) => {
296
304
  if (value !== void 0) {
297
305
  return value;
298
306
  }
@@ -300,8 +308,8 @@ function normalizeCollectionBeforeValue(field, value) {
300
308
  return {};
301
309
  }
302
310
  return [];
303
- }
304
- function collectionValueCount(field, value) {
311
+ };
312
+ var collectionValueCount = (field, value) => {
305
313
  if (Array.isArray(value)) {
306
314
  return value.length;
307
315
  }
@@ -309,52 +317,72 @@ function collectionValueCount(field, value) {
309
317
  return Object.keys(value).length;
310
318
  }
311
319
  return 0;
312
- }
313
- function buildCollectionMutationPlans(row, update) {
320
+ };
321
+ var resolveCollectionMutationOperation = (params) => {
322
+ if (params.replace) {
323
+ return "replace";
324
+ }
325
+ if (params.clear) {
326
+ return "clear_or_reset";
327
+ }
328
+ return params.removeCount > 0 ? "merge_remove" : "append";
329
+ };
330
+ var readOptionalUpdateValue = (update, key) => key === void 0 ? void 0 : update[key];
331
+ var updateArrayValueCount = (value) => Array.isArray(value) ? value.length : 0;
332
+ var buildCollectionMutationPlan = (definition, row, update) => {
333
+ const addValues = update[definition.addKey];
334
+ const removeValues = readOptionalUpdateValue(update, definition.removeKey);
335
+ const addCount = updateArrayValueCount(addValues);
336
+ const removeCount = updateArrayValueCount(removeValues);
337
+ const clear = update[definition.clearKey] === true;
338
+ const replace = readOptionalUpdateValue(update, definition.replaceKey) === true;
339
+ if (![clear, replace, addCount > 0, removeCount > 0].includes(true)) {
340
+ return void 0;
341
+ }
342
+ const before = normalizeCollectionBeforeValue(definition.field, row[definition.field]);
343
+ return {
344
+ field: definition.field,
345
+ before,
346
+ after: {
347
+ operation: resolveCollectionMutationOperation({
348
+ replace,
349
+ clear,
350
+ removeCount
351
+ }),
352
+ clear,
353
+ replace,
354
+ add_count: addCount,
355
+ remove_count: removeCount,
356
+ before_count: collectionValueCount(definition.field, before)
357
+ }
358
+ };
359
+ };
360
+ var buildCollectionMutationPlans = (row, update) => {
314
361
  const changes = [];
315
362
  for (const definition of COLLECTION_MUTATION_PLAN_DEFINITIONS) {
316
- const addValues = update[definition.addKey];
317
- const removeValues = definition.removeKey ? update[definition.removeKey] : void 0;
318
- const addCount = Array.isArray(addValues) ? addValues.length : 0;
319
- const removeCount = Array.isArray(removeValues) ? removeValues.length : 0;
320
- const clear = update[definition.clearKey] === true;
321
- const replace = definition.replaceKey ? update[definition.replaceKey] === true : false;
322
- if (!clear && !replace && addCount === 0 && removeCount === 0) {
323
- continue;
363
+ const plan = buildCollectionMutationPlan(definition, row, update);
364
+ if (plan !== void 0) {
365
+ changes.push(plan);
324
366
  }
325
- const before = normalizeCollectionBeforeValue(definition.field, row[definition.field]);
326
- const beforeCount = collectionValueCount(definition.field, before);
327
- const operation = replace ? "replace" : clear ? "clear_or_reset" : removeCount > 0 ? "merge_remove" : "append";
328
- changes.push({
329
- field: definition.field,
330
- before,
331
- after: {
332
- operation,
333
- clear,
334
- replace,
335
- add_count: addCount,
336
- remove_count: removeCount,
337
- before_count: beforeCount
338
- }
339
- });
340
367
  }
341
368
  return changes;
342
- }
343
- function normalizeExistingTags(value) {
369
+ };
370
+ var normalizeExistingTags = (value) => {
344
371
  if (!Array.isArray(value)) {
345
372
  return [];
346
373
  }
347
374
  return value.filter((tag) => typeof tag === "string");
348
- }
349
- function buildTagMutationPlan(row, update) {
350
- const hasReplace = update.tags !== void 0;
351
- const hasAdd = Array.isArray(update.addTags) && update.addTags.length > 0;
352
- const hasRemove = Array.isArray(update.removeTags) && update.removeTags.length > 0;
353
- if (!hasReplace && !hasAdd && !hasRemove) {
375
+ };
376
+ var buildTagMutationPlan = (row, update) => {
377
+ if (![
378
+ update.tags !== void 0,
379
+ updateArrayValueCount(update.addTags) > 0,
380
+ updateArrayValueCount(update.removeTags) > 0
381
+ ].includes(true)) {
354
382
  return void 0;
355
383
  }
356
384
  const existing = normalizeExistingTags(row.tags);
357
- const baseTags = hasReplace ? parseTags(update.tags) : existing;
385
+ const baseTags = update.tags === void 0 ? existing : parseTags(update.tags);
358
386
  const withAdditions = mergeAdditiveTags(baseTags, update.addTags);
359
387
  const after = applyTagRemovals(withAdditions, update.removeTags).slice().sort((a, b) => a.localeCompare(b));
360
388
  const before = existing.slice().sort((a, b) => a.localeCompare(b));
@@ -362,64 +390,55 @@ function buildTagMutationPlan(row, update) {
362
390
  return void 0;
363
391
  }
364
392
  return { field: "tags", before: existing, after };
365
- }
366
- function buildPlannedItemDiff(item, update = {}, runtimeFieldRegistry) {
367
- const safeUpdate = update;
368
- const row = toItemRecord(item);
369
- const changes = [];
370
- const tagPlan = buildTagMutationPlan(row, safeUpdate);
371
- if (tagPlan) {
372
- changes.push(tagPlan);
373
- }
393
+ };
394
+ var appendScalarMutationPlans = (changes, row, update) => {
374
395
  for (const [optionKey, itemKey] of Object.entries(UPDATE_OPTION_TO_ITEM_KEY)) {
375
- const candidate = safeUpdate[optionKey];
396
+ const candidate = update[optionKey];
376
397
  if (candidate === void 0) {
377
398
  continue;
378
399
  }
379
400
  const before = row[itemKey];
380
401
  const after = toComparablePreviewValue(optionKey, candidate);
381
- if (areValuesEqual(before, after)) {
382
- continue;
402
+ if (!areValuesEqual(before, after)) {
403
+ changes.push({ field: itemKey, before, after });
383
404
  }
384
- changes.push({
385
- field: itemKey,
386
- before,
387
- after
388
- });
389
405
  }
390
- changes.push(...buildCollectionMutationPlans(row, safeUpdate));
391
- const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(safeUpdate, runtimeFieldRegistry, ["update_many"]);
392
- for (const [fieldKey, fieldValue] of Object.entries(runtimeFieldUpdates)) {
393
- const before = row[fieldKey];
394
- if (areValuesEqual(before, fieldValue)) {
395
- continue;
406
+ };
407
+ var appendRuntimeFieldMutationPlans = (changes, row, update, runtimeFieldRegistry) => {
408
+ const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(update, runtimeFieldRegistry, ["update_many"]);
409
+ for (const [field, after] of Object.entries(runtimeFieldUpdates)) {
410
+ const before = row[field];
411
+ if (!areValuesEqual(before, after)) {
412
+ changes.push({ field, before, after });
396
413
  }
397
- changes.push({
398
- field: fieldKey,
399
- before,
400
- after: fieldValue
401
- });
402
414
  }
403
- if (safeUpdate.unset && safeUpdate.unset.length > 0) {
404
- for (const rawUnsetField of safeUpdate.unset) {
405
- const field = normalizeUnsetField(rawUnsetField);
406
- const before = row[field];
407
- if (before === void 0) {
408
- continue;
409
- }
410
- changes.push({
411
- field,
412
- before,
413
- after: null
414
- });
415
+ };
416
+ var appendUnsetMutationPlans = (changes, row, unset) => {
417
+ for (const rawUnsetField of unset ?? []) {
418
+ const field = normalizeUnsetField(rawUnsetField);
419
+ const before = row[field];
420
+ if (before !== void 0) {
421
+ changes.push({ field, before, after: null });
415
422
  }
416
423
  }
424
+ };
425
+ var buildPlannedItemDiff = (item, runtimeFieldRegistry, update = {}) => {
426
+ const row = toItemRecord(item);
427
+ const changes = [];
428
+ const tagPlan = buildTagMutationPlan(row, update);
429
+ if (tagPlan) {
430
+ changes.push(tagPlan);
431
+ }
432
+ appendScalarMutationPlans(changes, row, update);
433
+ changes.push(...buildCollectionMutationPlans(row, update));
434
+ appendRuntimeFieldMutationPlans(changes, row, update, runtimeFieldRegistry);
435
+ appendUnsetMutationPlans(changes, row, update.unset);
417
436
  return {
418
437
  id: item.id,
419
438
  changes
420
439
  };
421
- }
422
- function normalizeStatusFilter(value, statusRegistry) {
440
+ };
441
+ var normalizeStatusFilter = (value, statusRegistry) => {
423
442
  if (value === void 0) {
424
443
  return void 0;
425
444
  }
@@ -429,34 +448,51 @@ function normalizeStatusFilter(value, statusRegistry) {
429
448
  throw new PmCliError(`Invalid --filter-status value "${value}". Allowed: ${allowedStatuses.join(", ")}`, EXIT_CODE.USAGE);
430
449
  }
431
450
  return normalized;
432
- }
433
- function rejectBlankIdsFilter(list) {
451
+ };
452
+ var rejectBlankIdsFilter = (list) => {
434
453
  if (list?.ids != null && String(list.ids).trim().length === 0) {
435
454
  throw new PmCliError("--ids requires at least one non-empty item ID", EXIT_CODE.USAGE);
436
455
  }
437
- }
438
- function assertPlannedUpdateValuesValid(update, settings, statusRegistry, pmRoot) {
439
- if (update.priority !== void 0) {
440
- resolvePriority(update.priority);
441
- }
442
- if (update.type !== void 0) {
456
+ };
457
+ var PLANNED_UPDATE_VALIDATORS = [
458
+ ({ update }) => {
459
+ if (update.priority !== void 0) {
460
+ resolvePriority(update.priority);
461
+ }
462
+ },
463
+ ({ update, settings, pmRoot }) => {
464
+ if (update.type === void 0) {
465
+ return;
466
+ }
443
467
  const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
444
468
  if (!resolveTypeName(update.type, typeRegistry)) {
445
469
  throw new PmCliError(buildInvalidTypeError(update.type, typeRegistry.types, resolveItemTypesFilePath(pmRoot, settings.schema)), EXIT_CODE.USAGE);
446
470
  }
471
+ },
472
+ ({ update, statusRegistry }) => {
473
+ if (update.status !== void 0 && !normalizeStatusInput(update.status, statusRegistry)) {
474
+ const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);
475
+ throw new PmCliError(`Invalid --status value "${update.status}". Allowed: ${allowedStatuses.join(", ")}`, EXIT_CODE.USAGE);
476
+ }
477
+ },
478
+ ({ update }) => {
479
+ if (update.deadline !== void 0) {
480
+ resolveIsoOrRelative(update.deadline, /* @__PURE__ */ new Date(), "deadline");
481
+ }
482
+ },
483
+ ({ update }) => {
484
+ if (update.estimatedMinutes !== void 0) {
485
+ parseOptionalNonNegativeInteger(update.estimatedMinutes, "estimated-minutes");
486
+ }
447
487
  }
448
- if (update.status !== void 0 && !normalizeStatusInput(update.status, statusRegistry)) {
449
- const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);
450
- throw new PmCliError(`Invalid --status value "${update.status}". Allowed: ${allowedStatuses.join(", ")}`, EXIT_CODE.USAGE);
451
- }
452
- if (update.deadline !== void 0) {
453
- resolveIsoOrRelative(update.deadline, /* @__PURE__ */ new Date(), "deadline");
454
- }
455
- if (update.estimatedMinutes !== void 0) {
456
- parseOptionalNonNegativeInteger(update.estimatedMinutes, "estimated-minutes");
488
+ ];
489
+ var assertPlannedUpdateValuesValid = (update, settings, statusRegistry, pmRoot) => {
490
+ const context = { update, settings, statusRegistry, pmRoot };
491
+ for (const validate of PLANNED_UPDATE_VALIDATORS) {
492
+ validate(context);
457
493
  }
458
- }
459
- async function runUpdateManyRollback(params) {
494
+ };
495
+ var runUpdateManyRollback = async (params) => {
460
496
  const checkpoint = await loadMutationCheckpoint(params.pmRoot, UPDATE_MANY_CHECKPOINT_SUBDIR, params.rollbackId, UPDATE_MANY_CHECKPOINT_SCHEMA_VERSION);
461
497
  const restoreMessage = params.options.update?.message ?? `Rollback update-many checkpoint ${checkpoint.id}`;
462
498
  const rollback = await restoreCheckpointItems(checkpoint.items, (id, targetUpdatedAt) => runRestore(id, targetUpdatedAt, {
@@ -480,8 +516,8 @@ async function runUpdateManyRollback(params) {
480
516
  rows: rollback.rows,
481
517
  ids: rollback.restored_ids
482
518
  };
483
- }
484
- async function writeUpdateManyCheckpoint(params) {
519
+ };
520
+ var writeUpdateManyCheckpoint = async (params) => {
485
521
  const checkpointPayload = {
486
522
  schema_version: UPDATE_MANY_CHECKPOINT_SCHEMA_VERSION,
487
523
  id: params.checkpointId,
@@ -499,103 +535,97 @@ async function writeUpdateManyCheckpoint(params) {
499
535
  path: checkpointPath,
500
536
  rollback_command: `pm update-many --rollback ${params.checkpointId}`
501
537
  };
502
- }
503
- async function runUpdateMany(options, global) {
538
+ };
539
+ var loadUpdateManyRuntimeContext = async (global) => {
504
540
  const pmRoot = resolvePmRoot(process.cwd(), global.path);
505
541
  if (!await pathExists(getSettingsPath(pmRoot))) {
506
542
  throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
507
543
  }
508
544
  const settings = await readSettings(pmRoot);
509
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
510
- const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);
511
- const dryRun = options.dryRun === true;
512
- const rollbackId = typeof options.rollback === "string" ? options.rollback : void 0;
513
- const updateSummary = sanitizeUpdateOptionsForSummary(options.update);
514
- rejectBlankIdsFilter(options.list);
515
- if (rollbackId) {
516
- if (dryRun) {
517
- throw new PmCliError("--dry-run cannot be combined with --rollback", EXIT_CODE.USAGE);
518
- }
519
- if (hasListFilters(options.list, options.status)) {
520
- throw new PmCliError("Rollback mode does not accept filter options", EXIT_CODE.USAGE);
521
- }
522
- if (Object.keys(updateSummary).length > 0) {
523
- throw new PmCliError("Rollback mode does not accept update mutation flags", EXIT_CODE.USAGE);
524
- }
525
- return runUpdateManyRollback({ pmRoot, rollbackId, options, global });
526
- }
527
- if (!hasAnyUpdateMutationInput(options.update)) {
528
- throw new PmCliError(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${UPDATE_MANY_MUTATION_FLAG_GUIDANCE}).`, EXIT_CODE.USAGE);
529
- }
530
- assertPlannedUpdateValuesValid(options.update, settings, statusRegistry, pmRoot);
531
- const statusFilter = normalizeStatusFilter(options.status, statusRegistry);
532
- const listed = await runList(statusFilter, { ...options.list, includeBody: true }, global);
533
- const planned = listed.items.map((item) => buildPlannedItemDiff(item, options.update, runtimeFieldRegistry));
534
- const actionable = planned.filter((row) => row.changes.length > 0);
535
- if (dryRun) {
536
- return {
537
- mode: "dry_run",
538
- matched_count: listed.items.length,
539
- dry_run: true,
540
- filters: listed.filters,
541
- planned_update_options: updateSummary,
542
- item_plans: planned,
543
- ids: []
544
- };
545
- }
546
- if (actionable.length === 0) {
547
- return {
548
- mode: "apply",
549
- matched_count: listed.items.length,
550
- dry_run: false,
551
- filters: listed.filters,
552
- planned_update_options: updateSummary,
553
- updated_count: 0,
554
- skipped_count: listed.items.length,
555
- failed_count: 0,
556
- rows: planned.map((row) => ({
557
- id: row.id,
558
- status: "skipped"
559
- })),
560
- ids: []
561
- };
562
- }
563
- const nowValue = nowIso();
564
- const checkpointId = createCheckpointId(UPDATE_MANY_CHECKPOINT_SUBDIR, nowValue);
565
- const checkpointEnabled = options.checkpoint !== false;
566
- const checkpointItems = listed.items.filter((item) => actionable.some((candidate) => candidate.id === item.id)).map((item) => ({
567
- id: item.id,
568
- target_updated_at: item.updated_at
569
- }));
570
- let checkpointInfo;
571
- if (checkpointEnabled) {
572
- checkpointInfo = await writeUpdateManyCheckpoint({
573
- pmRoot,
574
- checkpointId,
575
- nowValue,
576
- options,
577
- statusFilter,
578
- filters: listed.filters,
579
- updateSummary,
580
- checkpointItems
581
- });
582
- }
583
- const applyRows = [];
545
+ return {
546
+ pmRoot,
547
+ settings,
548
+ statusRegistry: resolveRuntimeStatusRegistry(settings.schema),
549
+ runtimeFieldRegistry: resolveRuntimeFieldRegistry(settings.schema)
550
+ };
551
+ };
552
+ var runRequestedUpdateManyRollback = (params) => {
553
+ if (params.options.dryRun === true) {
554
+ throw new PmCliError("--dry-run cannot be combined with --rollback", EXIT_CODE.USAGE);
555
+ }
556
+ if (hasListFilters(params.options.list, params.options.status)) {
557
+ throw new PmCliError("Rollback mode does not accept filter options", EXIT_CODE.USAGE);
558
+ }
559
+ if (Object.keys(params.updateSummary).length > 0) {
560
+ throw new PmCliError("Rollback mode does not accept update mutation flags", EXIT_CODE.USAGE);
561
+ }
562
+ return runUpdateManyRollback({
563
+ pmRoot: params.runtime.pmRoot,
564
+ rollbackId: params.rollbackId,
565
+ options: params.options,
566
+ global: params.global
567
+ });
568
+ };
569
+ var buildUpdateManyPlan = async (params) => {
570
+ const statusFilter = normalizeStatusFilter(params.options.status, params.runtime.statusRegistry);
571
+ const listed = await runList(statusFilter, {
572
+ ...params.options.list,
573
+ compact: void 0,
574
+ brief: void 0,
575
+ fields: void 0,
576
+ includeBody: true,
577
+ full: true
578
+ }, params.global);
579
+ const planned = listed.items.map((item) => buildPlannedItemDiff(item, params.runtime.runtimeFieldRegistry, params.options.update));
580
+ return {
581
+ listed,
582
+ planned,
583
+ actionable: planned.filter((row) => row.changes.length > 0),
584
+ updateSummary: params.updateSummary,
585
+ statusFilter
586
+ };
587
+ };
588
+ var buildUpdateManyDryRunResult = (plan) => ({
589
+ mode: "dry_run",
590
+ matched_count: plan.listed.items.length,
591
+ dry_run: true,
592
+ filters: plan.listed.filters,
593
+ planned_update_options: plan.updateSummary,
594
+ item_plans: plan.planned,
595
+ ids: []
596
+ });
597
+ var buildUpdateManyNoopResult = (plan) => ({
598
+ mode: "apply",
599
+ matched_count: plan.listed.items.length,
600
+ dry_run: false,
601
+ filters: plan.listed.filters,
602
+ planned_update_options: plan.updateSummary,
603
+ updated_count: 0,
604
+ skipped_count: plan.listed.items.length,
605
+ failed_count: 0,
606
+ rows: plan.planned.map((row) => ({
607
+ id: row.id,
608
+ status: "skipped"
609
+ })),
610
+ ids: []
611
+ });
612
+ var applyUpdateManyRows = async (params) => {
613
+ const rows = [];
584
614
  const updatedIds = [];
585
- const updateMessage = options.update.message ?? `update-many apply ${checkpointId}`;
586
- const actionableById = new Set(actionable.map((row) => row.id));
587
- for (const item of listed.items) {
615
+ const updateMessage = params.options.update.message ?? `update-many apply ${params.checkpointId}`;
616
+ const actionableById = new Set(params.actionable.map((row) => row.id));
617
+ for (const item of params.items) {
588
618
  if (!actionableById.has(item.id)) {
589
- applyRows.push({ id: item.id, status: "skipped" });
619
+ rows.push({ id: item.id, status: "skipped" });
590
620
  continue;
591
621
  }
592
622
  try {
593
623
  const result = await runUpdate(item.id, {
594
- ...options.update,
624
+ ...params.options.update,
595
625
  message: updateMessage,
596
626
  runtimeFieldCommands: ["update_many"]
597
- }, global);
598
- applyRows.push({
627
+ }, params.global);
628
+ rows.push({
599
629
  id: item.id,
600
630
  status: "updated",
601
631
  changed_fields: result.changed_fields,
@@ -603,30 +633,81 @@ async function runUpdateMany(options, global) {
603
633
  });
604
634
  updatedIds.push(item.id);
605
635
  } catch (error) {
606
- applyRows.push({
636
+ rows.push({
607
637
  id: item.id,
608
638
  status: "failed",
609
639
  error: toErrorMessage(error)
610
640
  });
611
641
  }
612
642
  }
613
- const updatedCount = applyRows.filter((row) => row.status === "updated").length;
614
- const skippedCount = applyRows.filter((row) => row.status === "skipped").length;
615
- const failedCount = applyRows.filter((row) => row.status === "failed").length;
643
+ return { rows, updatedIds };
644
+ };
645
+ var applyUpdateManyPlan = async (params) => {
646
+ if (params.plan.actionable.length === 0) {
647
+ return buildUpdateManyNoopResult(params.plan);
648
+ }
649
+ const nowValue = nowIso();
650
+ const checkpointId = createCheckpointId(UPDATE_MANY_CHECKPOINT_SUBDIR, nowValue);
651
+ const actionableById = new Set(params.plan.actionable.map((row) => row.id));
652
+ const checkpointItems = params.plan.listed.items.filter((item) => actionableById.has(item.id)).map((item) => ({ id: item.id, target_updated_at: item.updated_at }));
653
+ const checkpointInfo = params.options.checkpoint === false ? void 0 : await writeUpdateManyCheckpoint({
654
+ pmRoot: params.runtime.pmRoot,
655
+ checkpointId,
656
+ nowValue,
657
+ options: params.options,
658
+ statusFilter: params.plan.statusFilter,
659
+ filters: params.plan.listed.filters,
660
+ updateSummary: params.plan.updateSummary,
661
+ checkpointItems
662
+ });
663
+ const applied = await applyUpdateManyRows({
664
+ items: params.plan.listed.items,
665
+ actionable: params.plan.actionable,
666
+ options: params.options,
667
+ global: params.global,
668
+ checkpointId
669
+ });
670
+ const countStatus = (status) => applied.rows.filter((row) => row.status === status).length;
616
671
  return {
617
672
  mode: "apply",
618
- matched_count: listed.items.length,
673
+ matched_count: params.plan.listed.items.length,
619
674
  dry_run: false,
620
- filters: listed.filters,
621
- planned_update_options: updateSummary,
675
+ filters: params.plan.listed.filters,
676
+ planned_update_options: params.plan.updateSummary,
622
677
  ...checkpointInfo ? { checkpoint: checkpointInfo } : {},
623
- updated_count: updatedCount,
624
- skipped_count: skippedCount,
625
- failed_count: failedCount,
626
- rows: applyRows,
627
- ids: updatedIds
678
+ updated_count: countStatus("updated"),
679
+ skipped_count: countStatus("skipped"),
680
+ failed_count: countStatus("failed"),
681
+ rows: applied.rows,
682
+ ids: applied.updatedIds
628
683
  };
629
- }
684
+ };
685
+ var runUpdateMany = async (options, global) => {
686
+ const runtime = await loadUpdateManyRuntimeContext(global);
687
+ const rollbackId = typeof options.rollback === "string" ? options.rollback : void 0;
688
+ const updateSummary = sanitizeUpdateOptionsForSummary(options.update);
689
+ rejectBlankIdsFilter(options.list);
690
+ if (rollbackId !== void 0) {
691
+ return runRequestedUpdateManyRollback({
692
+ runtime,
693
+ rollbackId,
694
+ options,
695
+ global,
696
+ updateSummary
697
+ });
698
+ }
699
+ if (!hasAnyUpdateMutationInput(options.update)) {
700
+ throw new PmCliError(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${UPDATE_MANY_MUTATION_FLAG_GUIDANCE}).`, EXIT_CODE.USAGE);
701
+ }
702
+ assertPlannedUpdateValuesValid(options.update, runtime.settings, runtime.statusRegistry, runtime.pmRoot);
703
+ const plan = await buildUpdateManyPlan({
704
+ options,
705
+ global,
706
+ runtime,
707
+ updateSummary
708
+ });
709
+ return options.dryRun === true ? buildUpdateManyDryRunResult(plan) : applyUpdateManyPlan({ runtime, options, global, plan });
710
+ };
630
711
  var _testOnlyUpdateManyCommand = {
631
712
  assertPlannedUpdateValuesValid,
632
713
  buildCollectionMutationPlans,
@@ -648,6 +729,6 @@ export {
648
729
  runUpdateMany,
649
730
  _testOnlyUpdateManyCommand
650
731
  };
651
- //# sourceMappingURL=chunk-5JLUII3O.js.map
732
+ //# sourceMappingURL=chunk-QNUAZYGW.js.map
652
733
 
653
- //# debugId=3989319a-d22e-5fcf-8ba2-e68e13692e87
734
+ //# debugId=b46baeb8-2946-5715-b76b-7a7082b871d3