@unbrained/pm-cli 2026.7.16 → 2026.7.18

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 (620) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +30 -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/close.d.ts +1 -1
  8. package/dist/cli/commands/close.js +3 -3
  9. package/dist/cli/commands/close.js.map +1 -1
  10. package/dist/cli/commands/completion.js +47 -5
  11. package/dist/cli/commands/completion.js.map +1 -1
  12. package/dist/cli/commands/context.d.ts +2 -2
  13. package/dist/cli/commands/context.js +42 -28
  14. package/dist/cli/commands/context.js.map +1 -1
  15. package/dist/cli/commands/contracts.js +5 -3
  16. package/dist/cli/commands/contracts.js.map +1 -1
  17. package/dist/cli/commands/eval.d.ts +4 -64
  18. package/dist/cli/commands/eval.js +4 -153
  19. package/dist/cli/commands/eval.js.map +1 -1
  20. package/dist/cli/commands/graph.d.ts +7 -0
  21. package/dist/cli/commands/graph.js +11 -0
  22. package/dist/cli/commands/graph.js.map +1 -0
  23. package/dist/cli/commands/index.d.ts +1 -0
  24. package/dist/cli/commands/index.js +3 -2
  25. package/dist/cli/commands/index.js.map +1 -1
  26. package/dist/cli/commands/linked-test-entry.d.ts +6 -6
  27. package/dist/cli/commands/linked-test-entry.js +4 -65
  28. package/dist/cli/commands/linked-test-entry.js.map +1 -1
  29. package/dist/cli/commands/linked-test-parsers.d.ts +3 -45
  30. package/dist/cli/commands/linked-test-parsers.js +4 -516
  31. package/dist/cli/commands/linked-test-parsers.js.map +1 -1
  32. package/dist/cli/commands/list.d.ts +3 -210
  33. package/dist/cli/commands/list.js +4 -1068
  34. package/dist/cli/commands/list.js.map +1 -1
  35. package/dist/cli/commands/next.d.ts +1 -1
  36. package/dist/cli/commands/next.js +3 -3
  37. package/dist/cli/commands/next.js.map +1 -1
  38. package/dist/cli/commands/search.d.ts +3 -464
  39. package/dist/cli/commands/search.js +4 -2236
  40. package/dist/cli/commands/search.js.map +1 -1
  41. package/dist/cli/commands/stats.d.ts +6 -66
  42. package/dist/cli/commands/stats.js +4 -157
  43. package/dist/cli/commands/stats.js.map +1 -1
  44. package/dist/cli/commands/telemetry.d.ts +6 -14
  45. package/dist/cli/commands/telemetry.js +4 -349
  46. package/dist/cli/commands/telemetry.js.map +1 -1
  47. package/dist/cli/commands/test-all.d.ts +6 -95
  48. package/dist/cli/commands/test-all.js +4 -439
  49. package/dist/cli/commands/test-all.js.map +1 -1
  50. package/dist/cli/commands/test-runs.d.ts +6 -92
  51. package/dist/cli/commands/test-runs.js +4 -189
  52. package/dist/cli/commands/test-runs.js.map +1 -1
  53. package/dist/cli/commands/test.d.ts +6 -244
  54. package/dist/cli/commands/test.js +4 -1780
  55. package/dist/cli/commands/test.js.map +1 -1
  56. package/dist/cli/commands/update-many.d.ts +15 -29
  57. package/dist/cli/commands/update-many.js +355 -259
  58. package/dist/cli/commands/update-many.js.map +1 -1
  59. package/dist/cli/main.js +141 -133
  60. package/dist/cli/main.js.map +1 -1
  61. package/dist/cli/register-list-query.js +49 -7
  62. package/dist/cli/register-list-query.js.map +1 -1
  63. package/dist/cli/register-mutation.js +7 -3
  64. package/dist/cli/register-mutation.js.map +1 -1
  65. package/dist/cli/search-refresh.js +4 -9
  66. package/dist/cli/search-refresh.js.map +1 -1
  67. package/dist/cli/shared-parsers.d.ts +6 -9
  68. package/dist/cli/shared-parsers.js +4 -37
  69. package/dist/cli/shared-parsers.js.map +1 -1
  70. package/dist/cli/telemetry-flush.js +4 -4
  71. package/dist/cli/telemetry-flush.js.map +1 -1
  72. package/dist/cli-bundle/bundle-manifest.json +334 -326
  73. package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js → append-5YF3TO7I.js} +5 -5
  74. package/dist/cli-bundle/chunks/append-JHO5K6RP.js +11 -0
  75. package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js → chunk-2BX74BAS.js} +3 -3
  76. package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js → chunk-2CXL335K.js} +3 -3
  77. package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js → chunk-2FUOXSRN.js} +4 -4
  78. package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js → chunk-2IPNL3DR.js} +3 -3
  79. package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js → chunk-2XOSFSTH.js} +5 -5
  80. package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js → chunk-35FHWD4C.js} +6 -6
  81. package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js.map → chunk-35FHWD4C.js.map} +1 -7
  82. package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js → chunk-37DRDP2B.js} +5 -5
  83. package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js → chunk-3CUQZNQ6.js} +67 -509
  84. package/dist/cli-bundle/chunks/chunk-3CUQZNQ6.js.map +7 -0
  85. package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js +800 -0
  86. package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js.map +7 -0
  87. package/dist/cli-bundle/chunks/{chunk-5JLUII3O.js → chunk-43UMFKCK.js} +321 -240
  88. package/dist/cli-bundle/chunks/chunk-43UMFKCK.js.map +1 -0
  89. package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js → chunk-47HXN6RX.js} +3 -3
  90. package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js → chunk-5HGZKQUL.js} +4 -4
  91. package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js → chunk-5UKQLQM2.js} +2 -2
  92. package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js → chunk-633PKXLT.js} +3 -3
  93. package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js → chunk-646MQXFW.js} +2 -2
  94. package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js → chunk-66MKH7SZ.js} +4 -4
  95. package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js → chunk-67RO3H4N.js} +4 -4
  96. package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js → chunk-6DYOZS6C.js} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js → chunk-6O44IN44.js} +2 -2
  98. package/dist/cli-bundle/chunks/{chunk-5ZSLZLDN.js → chunk-6VHUGVNP.js} +608 -456
  99. package/dist/cli-bundle/chunks/chunk-6VHUGVNP.js.map +1 -0
  100. package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js → chunk-74FKFFXO.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js → chunk-7H5NNCJ5.js} +4 -4
  102. package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js → chunk-7R6UIHYY.js} +75 -5
  103. package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js.map → chunk-7R6UIHYY.js.map} +1 -1
  104. package/dist/cli-bundle/chunks/{chunk-3S5QVM5H.js → chunk-7UCY6DR5.js} +193 -22
  105. package/dist/cli-bundle/chunks/chunk-7UCY6DR5.js.map +1 -0
  106. package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js → chunk-ADXDCAKP.js} +16 -7
  107. package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js.map → chunk-ADXDCAKP.js.map} +1 -1
  108. package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js → chunk-AFGKSHAM.js} +4 -4
  109. package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js → chunk-ARGDWQ4J.js} +2 -2
  110. package/dist/cli-bundle/chunks/{chunk-XXXF6PAQ.js → chunk-AXRT7K5V.js} +83 -62
  111. package/dist/cli-bundle/chunks/chunk-AXRT7K5V.js.map +7 -0
  112. package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js → chunk-B57RJHBZ.js} +4 -4
  113. package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js → chunk-BAP7G3N2.js} +2 -2
  114. package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js → chunk-BDA35QG5.js} +35 -5
  115. package/dist/cli-bundle/chunks/chunk-BDA35QG5.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js → chunk-BIRYX32V.js} +3 -3
  117. package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js → chunk-BVLOMU6O.js} +2 -2
  118. package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js → chunk-CKX4WOPC.js} +2 -2
  119. package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js → chunk-D52ZN3BF.js} +2 -2
  120. package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js → chunk-D53RTYVI.js} +4 -4
  121. package/dist/cli-bundle/chunks/{chunk-ODALILG3.js → chunk-D5XHO4Q7.js} +2 -2
  122. package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js → chunk-DDFGYUCQ.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js → chunk-DG2EQRIH.js} +4 -4
  124. package/dist/cli-bundle/chunks/{chunk-J6364LFM.js → chunk-DHNG452T.js} +9 -18
  125. package/dist/cli-bundle/chunks/{chunk-J6364LFM.js.map → chunk-DHNG452T.js.map} +1 -1
  126. package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js → chunk-E4FXM2XB.js} +77 -7
  127. package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js.map → chunk-E4FXM2XB.js.map} +1 -1
  128. package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js → chunk-EHJFUOXL.js} +3 -3
  129. package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js → chunk-EWIT5WIC.js} +7 -7
  130. package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js +783 -0
  131. package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js.map +1 -0
  132. package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js → chunk-EY7ZE3TG.js} +3 -3
  133. package/dist/cli-bundle/chunks/{chunk-ILX33QXL.js → chunk-F3VC3GOV.js} +669 -472
  134. package/dist/cli-bundle/chunks/chunk-F3VC3GOV.js.map +7 -0
  135. package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js → chunk-FHOBCGQO.js} +2 -2
  136. package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js → chunk-FL4D53ND.js} +2 -2
  137. package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js → chunk-FVNWHUME.js} +4 -4
  138. package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js → chunk-FXFCFL73.js} +5 -5
  139. package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js → chunk-FY4RLHSC.js} +2 -2
  140. package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js → chunk-G6MYGULG.js} +4 -4
  141. package/dist/cli-bundle/chunks/{chunk-HYB5AZ63.js → chunk-GKPCTQYG.js} +1822 -72
  142. package/dist/cli-bundle/chunks/chunk-GKPCTQYG.js.map +7 -0
  143. package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js → chunk-GLZKZON6.js} +2 -2
  144. package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js → chunk-H5IOT54C.js} +4 -4
  145. package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js → chunk-HO4DLBNK.js} +2 -2
  146. package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js → chunk-HPAYDSR2.js} +8 -8
  147. package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js → chunk-HSYV4ZYT.js} +4 -4
  148. package/dist/cli-bundle/chunks/{chunk-EH2OPHBI.js → chunk-HTXXXF45.js} +23 -19
  149. package/dist/cli-bundle/chunks/chunk-HTXXXF45.js.map +1 -0
  150. package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js → chunk-HYTOJW2Q.js} +8 -8
  151. package/dist/cli-bundle/chunks/{chunk-4XQ3BDV4.js → chunk-I3INI567.js} +536 -449
  152. package/dist/cli-bundle/chunks/chunk-I3INI567.js.map +7 -0
  153. package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js → chunk-I7DIDUSP.js} +2 -2
  154. package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js → chunk-IE5KRAKN.js} +4 -4
  155. package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js → chunk-IL5SPRMH.js} +7 -7
  156. package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js → chunk-ILVOOAT4.js} +5 -5
  157. package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js → chunk-KH6QAHME.js} +3 -3
  158. package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js → chunk-KX62NMZC.js} +3 -3
  159. package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js.map → chunk-KX62NMZC.js.map} +1 -1
  160. package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js → chunk-L337QKWJ.js} +5 -5
  161. package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js → chunk-L5BTTDU5.js} +68 -503
  162. package/dist/cli-bundle/chunks/chunk-L5BTTDU5.js.map +1 -0
  163. package/dist/cli-bundle/chunks/{chunk-LSG2U345.js → chunk-L6FVNR7X.js} +5 -5
  164. package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js → chunk-LSOWTLEM.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-4223PVZT.js → chunk-M7MVOKVV.js} +3 -3
  166. package/dist/cli-bundle/chunks/{chunk-UMOPHQSU.js → chunk-MR4SHYR4.js} +41 -19
  167. package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +7 -0
  168. package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js → chunk-N33FD2UI.js} +3 -3
  169. package/dist/cli-bundle/chunks/{chunk-UXONS674.js → chunk-NCVT6XEL.js} +68 -56
  170. package/dist/cli-bundle/chunks/chunk-NCVT6XEL.js.map +1 -0
  171. package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js → chunk-NNANAWFH.js} +3 -3
  172. package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js → chunk-NTRQLE2R.js} +2 -2
  173. package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js → chunk-NVZ6NVHJ.js} +4 -4
  174. package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js → chunk-OGVTB5VO.js} +47 -37
  175. package/dist/cli-bundle/chunks/chunk-OGVTB5VO.js.map +7 -0
  176. package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js → chunk-OWP6QFBV.js} +4 -4
  177. package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js → chunk-P22HGFFI.js} +2 -2
  178. package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js → chunk-PT7MCCGD.js} +2 -2
  179. package/dist/cli-bundle/chunks/{chunk-ONG5V5CI.js → chunk-QPGQNLPI.js} +1751 -70
  180. package/dist/cli-bundle/chunks/chunk-QPGQNLPI.js.map +1 -0
  181. package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js → chunk-QRZNCRNA.js} +9 -9
  182. package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js → chunk-QWBKN3QC.js} +5 -5
  183. package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js → chunk-R5XTTZSJ.js} +5 -5
  184. package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js → chunk-RC4UOUXA.js} +3 -3
  185. package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js → chunk-RGMWJLXF.js} +4 -4
  186. package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js → chunk-RTBX3C4C.js} +3 -3
  187. package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js → chunk-RXPQ5Q23.js} +7 -7
  188. package/dist/cli-bundle/chunks/{chunk-LPYWLWDS.js → chunk-SIPOACV5.js} +534 -447
  189. package/dist/cli-bundle/chunks/chunk-SIPOACV5.js.map +1 -0
  190. package/dist/cli-bundle/chunks/chunk-TGBTLGPX.js +851 -0
  191. package/dist/cli-bundle/chunks/chunk-TGBTLGPX.js.map +7 -0
  192. package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js → chunk-TLWJP5BF.js} +5 -5
  193. package/dist/cli-bundle/chunks/chunk-TLWJP5BF.js.map +7 -0
  194. package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js → chunk-TM5CIO3F.js} +3 -3
  195. package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js → chunk-TZAE66GQ.js} +8 -8
  196. package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js → chunk-VAHZIPWS.js} +4 -4
  197. package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js → chunk-VE6ZSTQW.js} +4 -4
  198. package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js → chunk-W5E2UUSH.js} +3 -3
  199. package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js → chunk-WACRQ26A.js} +2 -2
  200. package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js.map → chunk-WACRQ26A.js.map} +1 -1
  201. package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js → chunk-WL3SS45P.js} +3 -3
  202. package/dist/cli-bundle/chunks/{chunk-H5APFTHZ.js → chunk-WQXRZMFN.js} +204 -33
  203. package/dist/cli-bundle/chunks/chunk-WQXRZMFN.js.map +7 -0
  204. package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js → chunk-WU3KAN6A.js} +3 -3
  205. package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js → chunk-X2MGQMZO.js} +2 -2
  206. package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js → chunk-X5YCTFKT.js} +3 -3
  207. package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js → chunk-XC2HEEOV.js} +4 -4
  208. package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js → chunk-XPUTSGJU.js} +38 -37
  209. package/dist/cli-bundle/chunks/chunk-XPUTSGJU.js.map +1 -0
  210. package/dist/cli-bundle/chunks/{chunk-YBLZ2VE7.js → chunk-XWBD6DSR.js} +320 -239
  211. package/dist/cli-bundle/chunks/chunk-XWBD6DSR.js.map +7 -0
  212. package/dist/cli-bundle/chunks/chunk-XWYQ2LT4.js +834 -0
  213. package/dist/cli-bundle/chunks/chunk-XWYQ2LT4.js.map +1 -0
  214. package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js → chunk-XXLXJL7V.js} +4 -4
  215. package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js → chunk-YFE7JHX3.js} +27 -6
  216. package/dist/cli-bundle/chunks/chunk-YFE7JHX3.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js → chunk-YIIIAKCE.js} +8 -8
  218. package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js → chunk-YJSURTBB.js} +2 -2
  219. package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js → chunk-YKFHF37B.js} +3 -3
  220. package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js → chunk-YQEZWI3R.js} +2 -2
  221. package/dist/cli-bundle/chunks/close-GPD7DTJV.js +12 -0
  222. package/dist/cli-bundle/chunks/{close-CWODTPKG.js → close-X3CF6FQP.js} +5 -5
  223. package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js → close-many-J7A5EHOQ.js} +14 -14
  224. package/dist/cli-bundle/chunks/close-many-NQLYGPYW.js +23 -0
  225. package/dist/cli-bundle/chunks/comments-2AOZQ5D2.js +13 -0
  226. package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js → comments-TMHMALA5.js} +7 -7
  227. package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js → copy-FWQA5OU4.js} +4 -4
  228. package/dist/cli-bundle/chunks/copy-N3LCQBMC.js +9 -0
  229. package/dist/cli-bundle/chunks/{create-LBVCYMEG.js → create-AQ5SIGZC.js} +9 -9
  230. package/dist/cli-bundle/chunks/{create-J5U6ND4K.js → create-KOGQ3JKD.js} +9 -9
  231. package/dist/cli-bundle/chunks/delete-6G3MBZ6S.js +10 -0
  232. package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js → delete-YYYFOSEA.js} +4 -4
  233. package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js → deps-MQ4ZIGZB.js} +16 -7
  234. package/dist/cli-bundle/chunks/deps-NIIKXLPB.js +28 -0
  235. package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js → docs-53NUGMIQ.js} +6 -6
  236. package/dist/cli-bundle/chunks/docs-OWRGDMNY.js +14 -0
  237. package/dist/cli-bundle/chunks/{files-EFIWKFTM.js → files-3PXGXYDB.js} +6 -6
  238. package/dist/cli-bundle/chunks/{files-6YFBJRBG.js → files-EGLKHD7O.js} +6 -6
  239. package/dist/cli-bundle/chunks/focus-KZLIA6WS.js +10 -0
  240. package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js → focus-SRPASFTN.js} +5 -5
  241. package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js → history-compact-G4DULDCX.js} +6 -6
  242. package/dist/cli-bundle/chunks/history-compact-HHIUOMZ7.js +16 -0
  243. package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js → history-redact-IUSJ6X3E.js} +4 -4
  244. package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js → history-redact-THHGRQXV.js} +4 -4
  245. package/dist/cli-bundle/chunks/history-repair-KG7SWXI6.js +16 -0
  246. package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js → history-repair-LUQWRS7X.js} +6 -6
  247. package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js → learnings-2MRNBFJF.js} +7 -7
  248. package/dist/cli-bundle/chunks/learnings-ZVHSALJY.js +13 -0
  249. package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js → notes-73JWKWUD.js} +7 -7
  250. package/dist/cli-bundle/chunks/notes-BAKUL5DJ.js +13 -0
  251. package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js → plan-AZPMCG37.js} +10 -10
  252. package/dist/cli-bundle/chunks/plan-LEAGLPGP.js +24 -0
  253. package/dist/cli-bundle/chunks/{profile-FAU7NZML.js → profile-AVCIIZID.js} +9 -9
  254. package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js → profile-LFYO3HHX.js} +9 -9
  255. package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js → register-list-query-MZUF2EEC.js} +50 -22
  256. package/dist/cli-bundle/chunks/register-list-query-MZUF2EEC.js.map +1 -0
  257. package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js → register-list-query-UKMF55FT.js} +49 -21
  258. package/dist/cli-bundle/chunks/register-list-query-UKMF55FT.js.map +7 -0
  259. package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js → register-mutation-2PBW2GEX.js} +35 -33
  260. package/dist/cli-bundle/chunks/register-mutation-2PBW2GEX.js.map +1 -0
  261. package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js → register-mutation-T6RVNJC4.js} +34 -32
  262. package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js.map → register-mutation-T6RVNJC4.js.map} +2 -2
  263. package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js → register-operations-KHZYR6MG.js} +35 -35
  264. package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js → register-operations-WPQ2LWZJ.js} +35 -35
  265. package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js → register-setup-PGDNOXDQ.js} +15 -15
  266. package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js → register-setup-TDN7WAO6.js} +15 -15
  267. package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js → restore-E3PRGDN3.js} +6 -6
  268. package/dist/cli-bundle/chunks/restore-KIUYTAEJ.js +14 -0
  269. package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js → schema-5JNFQFUW.js} +6 -6
  270. package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js → schema-TMIW4XZC.js} +6 -6
  271. package/dist/cli-bundle/chunks/{update-XHSIAIXE.js → update-SQYZA3ZW.js} +12 -12
  272. package/dist/cli-bundle/chunks/update-XZJYS5X7.js +21 -0
  273. package/dist/cli-bundle/chunks/update-many-R24B3GBK.js +36 -0
  274. package/dist/cli-bundle/chunks/update-many-WQ3R3J6N.js +32 -0
  275. package/dist/cli-bundle/main.js +170 -856
  276. package/dist/cli-bundle/main.js.map +4 -4
  277. package/dist/cli-bundle/sdk-runtime.js +57 -54
  278. package/dist/cli-bundle/sdk-testing.js +6 -6
  279. package/dist/cli-bundle/sdk.js +266 -340
  280. package/dist/cli-bundle/sdk.js.map +4 -4
  281. package/dist/core/extensions/item-fields.js +2 -2
  282. package/dist/core/extensions/item-fields.js.map +1 -1
  283. package/dist/core/item/actionability.d.ts +12 -0
  284. package/dist/core/item/actionability.js +39 -4
  285. package/dist/core/item/actionability.js.map +1 -1
  286. package/dist/core/sentry/instrument.d.ts +11 -0
  287. package/dist/core/sentry/instrument.js +21 -2
  288. package/dist/core/sentry/instrument.js.map +1 -1
  289. package/dist/mcp/server.d.ts +16 -18
  290. package/dist/mcp/server.js +84 -31
  291. package/dist/mcp/server.js.map +1 -1
  292. package/dist/mcp/tool-definitions.js +17 -4
  293. package/dist/mcp/tool-definitions.js.map +1 -1
  294. package/dist/sdk/actionability.d.ts +10 -0
  295. package/dist/sdk/actionability.js +14 -0
  296. package/dist/sdk/actionability.js.map +1 -0
  297. package/dist/sdk/cli-bootstrap.d.ts +122 -0
  298. package/dist/sdk/cli-bootstrap.js +879 -0
  299. package/dist/sdk/cli-bootstrap.js.map +1 -0
  300. package/dist/sdk/cli-contracts/enum-contracts.d.ts +6 -2
  301. package/dist/sdk/cli-contracts/enum-contracts.js +19 -2
  302. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  303. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  304. package/dist/sdk/cli-contracts/flag-contracts.js +21 -2
  305. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  306. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +2 -0
  307. package/dist/sdk/cli-contracts/tool-option-contracts.js +16 -2
  308. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  309. package/dist/sdk/cli-contracts/tool-parameter-tables.js +80 -3
  310. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  311. package/dist/sdk/cli-contracts/tool-schema.d.ts +20 -0
  312. package/dist/sdk/cli-contracts/tool-schema.js +97 -9
  313. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  314. package/dist/sdk/cli-contracts.d.ts +2 -2
  315. package/dist/sdk/cli-contracts.js +4 -4
  316. package/dist/sdk/cli-contracts.js.map +1 -1
  317. package/dist/sdk/dependencies.d.ts +42 -53
  318. package/dist/sdk/dependencies.js +177 -125
  319. package/dist/sdk/dependencies.js.map +1 -1
  320. package/dist/sdk/eval.d.ts +66 -0
  321. package/dist/sdk/eval.js +186 -0
  322. package/dist/sdk/eval.js.map +1 -0
  323. package/dist/sdk/governance/validate.js +3 -3
  324. package/dist/sdk/governance/validate.js.map +1 -1
  325. package/dist/sdk/graph/analytics.d.ts +124 -0
  326. package/dist/sdk/graph/analytics.js +464 -0
  327. package/dist/sdk/graph/analytics.js.map +1 -0
  328. package/dist/sdk/graph/assembly.d.ts +97 -0
  329. package/dist/sdk/graph/assembly.js +146 -0
  330. package/dist/sdk/graph/assembly.js.map +1 -0
  331. package/dist/sdk/graph/cache.d.ts +66 -0
  332. package/dist/sdk/graph/cache.js +148 -0
  333. package/dist/sdk/graph/cache.js.map +1 -0
  334. package/dist/sdk/graph/governance.d.ts +108 -0
  335. package/dist/sdk/graph/governance.js +360 -0
  336. package/dist/sdk/graph/governance.js.map +1 -0
  337. package/dist/sdk/graph/index.d.ts +16 -0
  338. package/dist/sdk/graph/index.js +20 -0
  339. package/dist/sdk/graph/index.js.map +1 -0
  340. package/dist/sdk/graph/remediation.d.ts +52 -0
  341. package/dist/sdk/graph/remediation.js +148 -0
  342. package/dist/sdk/graph/remediation.js.map +1 -0
  343. package/dist/sdk/graph/run.d.ts +295 -0
  344. package/dist/sdk/graph/run.js +468 -0
  345. package/dist/sdk/graph/run.js.map +1 -0
  346. package/dist/sdk/graph/traversal.d.ts +77 -0
  347. package/dist/sdk/graph/traversal.js +262 -0
  348. package/dist/sdk/graph/traversal.js.map +1 -0
  349. package/dist/sdk/index.d.ts +19 -5
  350. package/dist/sdk/index.js +21 -7
  351. package/dist/sdk/index.js.map +1 -1
  352. package/dist/{cli/commands → sdk/query}/item-filter-options.d.ts +1 -1
  353. package/dist/{cli/commands → sdk/query}/item-filter-options.js +3 -3
  354. package/dist/sdk/query/item-filter-options.js.map +1 -0
  355. package/dist/sdk/query/list.d.ts +262 -0
  356. package/dist/sdk/query/list.js +1089 -0
  357. package/dist/sdk/query/list.js.map +1 -0
  358. package/dist/sdk/query/parsers.d.ts +9 -0
  359. package/dist/sdk/query/parsers.js +45 -0
  360. package/dist/sdk/query/parsers.js.map +1 -0
  361. package/dist/{cli/commands → sdk/query}/search-pagination.js +4 -4
  362. package/dist/sdk/query/search-pagination.js.map +1 -0
  363. package/dist/{cli/commands → sdk/query}/search-rendering.js +3 -3
  364. package/dist/sdk/query/search-rendering.js.map +1 -0
  365. package/dist/sdk/query/search.d.ts +469 -0
  366. package/dist/sdk/query/search.js +2247 -0
  367. package/dist/sdk/query/search.js.map +1 -0
  368. package/dist/sdk/relationship-context.d.ts +42 -0
  369. package/dist/sdk/relationship-context.js +99 -20
  370. package/dist/sdk/relationship-context.js.map +1 -1
  371. package/dist/sdk/relationships.d.ts +13 -0
  372. package/dist/sdk/relationships.js +30 -2
  373. package/dist/sdk/relationships.js.map +1 -1
  374. package/dist/sdk/runtime-input.d.ts +41 -0
  375. package/dist/sdk/runtime-input.js +422 -2
  376. package/dist/sdk/runtime-input.js.map +1 -1
  377. package/dist/sdk/runtime.d.ts +19 -30
  378. package/dist/sdk/runtime.js +30 -376
  379. package/dist/sdk/runtime.js.map +1 -1
  380. package/dist/sdk/search-refresh-worker.d.ts +2 -0
  381. package/dist/sdk/search-refresh-worker.js +19 -0
  382. package/dist/sdk/search-refresh-worker.js.map +1 -0
  383. package/dist/sdk/stats.d.ts +66 -0
  384. package/dist/sdk/stats.js +151 -0
  385. package/dist/sdk/stats.js.map +1 -0
  386. package/dist/sdk/telemetry-flush.d.ts +2 -0
  387. package/dist/sdk/telemetry-flush.js +14 -0
  388. package/dist/sdk/telemetry-flush.js.map +1 -0
  389. package/dist/sdk/telemetry.d.ts +14 -0
  390. package/dist/sdk/telemetry.js +398 -0
  391. package/dist/sdk/telemetry.js.map +1 -0
  392. package/dist/sdk/test/batch.d.ts +94 -0
  393. package/dist/sdk/test/batch.js +492 -0
  394. package/dist/sdk/test/batch.js.map +1 -0
  395. package/dist/sdk/test/entry.d.ts +6 -0
  396. package/dist/sdk/test/entry.js +74 -0
  397. package/dist/sdk/test/entry.js.map +1 -0
  398. package/dist/sdk/test/execution.d.ts +282 -0
  399. package/dist/sdk/test/execution.js +1817 -0
  400. package/dist/sdk/test/execution.js.map +1 -0
  401. package/dist/sdk/test/linked-command-detection.js +12 -3
  402. package/dist/sdk/test/linked-command-detection.js.map +1 -1
  403. package/dist/sdk/test/parsers.d.ts +48 -0
  404. package/dist/sdk/test/parsers.js +522 -0
  405. package/dist/sdk/test/parsers.js.map +1 -0
  406. package/dist/sdk/test/runs.d.ts +92 -0
  407. package/dist/sdk/test/runs.js +195 -0
  408. package/dist/sdk/test/runs.js.map +1 -0
  409. package/docs/AGENT_GUIDE.md +1 -0
  410. package/docs/COMMANDS.md +19 -1
  411. package/docs/RELATIONSHIP_GRAPH.md +99 -3
  412. package/docs/SDK.md +139 -3
  413. package/docs/SDK_PRIMITIVE_INVENTORY.md +5 -3
  414. package/docs/examples/sdk-custom-tool/README.md +27 -0
  415. package/docs/examples/sdk-custom-tool/package.json +13 -0
  416. package/docs/examples/sdk-custom-tool/src/cli.ts +36 -0
  417. package/docs/examples/sdk-custom-tool/src/entry.ts +15 -0
  418. package/docs/examples/sdk-custom-tool/src/index.ts +223 -0
  419. package/marketplace.json +2 -2
  420. package/package.json +4 -4
  421. package/packages/pm-beads/package.json +1 -1
  422. package/packages/pm-calendar/package.json +1 -1
  423. package/packages/pm-command-kit/package.json +1 -1
  424. package/packages/pm-governance-audit/extensions/governance-audit/comments-audit.ts +77 -57
  425. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +202 -194
  426. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-merge.ts +227 -153
  427. package/packages/pm-governance-audit/extensions/governance-audit/normalize.ts +169 -125
  428. package/packages/pm-governance-audit/extensions/governance-audit/runtime-utils.ts +130 -81
  429. package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +53 -4
  430. package/packages/pm-governance-audit/package.json +1 -1
  431. package/packages/pm-guide-shell/package.json +1 -1
  432. package/packages/pm-kanban/package.json +1 -1
  433. package/packages/pm-lifecycle-hooks/package.json +1 -1
  434. package/packages/pm-linked-test-adapters/package.json +1 -1
  435. package/packages/pm-search-advanced/package.json +1 -1
  436. package/packages/pm-templates/package.json +1 -1
  437. package/packages/pm-todos/package.json +1 -1
  438. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  439. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  440. package/dist/cli/commands/item-filter-options.js.map +0 -1
  441. package/dist/cli/commands/search-pagination.js.map +0 -1
  442. package/dist/cli/commands/search-rendering.js.map +0 -1
  443. package/dist/cli-bundle/chunks/append-UZVHUO74.js +0 -11
  444. package/dist/cli-bundle/chunks/chunk-2NCIPMQP.js.map +0 -1
  445. package/dist/cli-bundle/chunks/chunk-3S5QVM5H.js.map +0 -1
  446. package/dist/cli-bundle/chunks/chunk-4XQ3BDV4.js.map +0 -7
  447. package/dist/cli-bundle/chunks/chunk-5JLUII3O.js.map +0 -1
  448. package/dist/cli-bundle/chunks/chunk-5ZSLZLDN.js.map +0 -1
  449. package/dist/cli-bundle/chunks/chunk-7Z4LKRS4.js.map +0 -1
  450. package/dist/cli-bundle/chunks/chunk-BKVG6XOA.js.map +0 -7
  451. package/dist/cli-bundle/chunks/chunk-E2OJMKML.js.map +0 -7
  452. package/dist/cli-bundle/chunks/chunk-EH2OPHBI.js.map +0 -1
  453. package/dist/cli-bundle/chunks/chunk-H5APFTHZ.js.map +0 -7
  454. package/dist/cli-bundle/chunks/chunk-HYB5AZ63.js.map +0 -7
  455. package/dist/cli-bundle/chunks/chunk-ILX33QXL.js.map +0 -7
  456. package/dist/cli-bundle/chunks/chunk-JFTKLTEF.js.map +0 -1
  457. package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +0 -1
  458. package/dist/cli-bundle/chunks/chunk-NLDFBC6J.js.map +0 -7
  459. package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +0 -1
  460. package/dist/cli-bundle/chunks/chunk-UFXU44HV.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-UMOPHQSU.js.map +0 -7
  462. package/dist/cli-bundle/chunks/chunk-UXONS674.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-XXXF6PAQ.js.map +0 -7
  464. package/dist/cli-bundle/chunks/chunk-YBLZ2VE7.js.map +0 -7
  465. package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js +0 -58
  466. package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js.map +0 -1
  467. package/dist/cli-bundle/chunks/chunk-ZKRZY773.js +0 -68
  468. package/dist/cli-bundle/chunks/chunk-ZKRZY773.js.map +0 -7
  469. package/dist/cli-bundle/chunks/close-W6LI2PKM.js +0 -12
  470. package/dist/cli-bundle/chunks/close-many-DLDDVSH5.js +0 -23
  471. package/dist/cli-bundle/chunks/comments-E3TNTK24.js +0 -13
  472. package/dist/cli-bundle/chunks/copy-Q5ZJPUKR.js +0 -9
  473. package/dist/cli-bundle/chunks/delete-WNHB3LYW.js +0 -10
  474. package/dist/cli-bundle/chunks/deps-OA26IS25.js +0 -19
  475. package/dist/cli-bundle/chunks/docs-HA2AIDBB.js +0 -14
  476. package/dist/cli-bundle/chunks/focus-POIW5LTJ.js +0 -10
  477. package/dist/cli-bundle/chunks/history-compact-FWG2C7FZ.js +0 -16
  478. package/dist/cli-bundle/chunks/history-repair-6GEAM7HE.js +0 -16
  479. package/dist/cli-bundle/chunks/learnings-RSNLSWDC.js +0 -13
  480. package/dist/cli-bundle/chunks/notes-2WDH6DXU.js +0 -13
  481. package/dist/cli-bundle/chunks/plan-DOVI2VMW.js +0 -24
  482. package/dist/cli-bundle/chunks/register-list-query-DKA3EH5D.js.map +0 -7
  483. package/dist/cli-bundle/chunks/register-list-query-UL4UKBBN.js.map +0 -1
  484. package/dist/cli-bundle/chunks/register-mutation-RBBJ52DK.js.map +0 -1
  485. package/dist/cli-bundle/chunks/restore-YPMVUUEX.js +0 -14
  486. package/dist/cli-bundle/chunks/update-WWBYOPXO.js +0 -21
  487. package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js +0 -32
  488. package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js +0 -36
  489. /package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js.map → append-5YF3TO7I.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{append-UZVHUO74.js.map → append-JHO5K6RP.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js.map → chunk-2BX74BAS.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js.map → chunk-2CXL335K.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js.map → chunk-2FUOXSRN.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js.map → chunk-2IPNL3DR.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js.map → chunk-2XOSFSTH.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js.map → chunk-37DRDP2B.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js.map → chunk-47HXN6RX.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js.map → chunk-5HGZKQUL.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js.map → chunk-5UKQLQM2.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js.map → chunk-633PKXLT.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js.map → chunk-646MQXFW.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js.map → chunk-66MKH7SZ.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js.map → chunk-67RO3H4N.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js.map → chunk-6DYOZS6C.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js.map → chunk-6O44IN44.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js.map → chunk-74FKFFXO.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js.map → chunk-7H5NNCJ5.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js.map → chunk-AFGKSHAM.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js.map → chunk-ARGDWQ4J.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js.map → chunk-B57RJHBZ.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js.map → chunk-BAP7G3N2.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js.map → chunk-BIRYX32V.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js.map → chunk-BVLOMU6O.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js.map → chunk-CKX4WOPC.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js.map → chunk-D52ZN3BF.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js.map → chunk-D53RTYVI.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{chunk-ODALILG3.js.map → chunk-D5XHO4Q7.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js.map → chunk-DDFGYUCQ.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js.map → chunk-DG2EQRIH.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js.map → chunk-EHJFUOXL.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js.map → chunk-EWIT5WIC.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js.map → chunk-EY7ZE3TG.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js.map → chunk-FHOBCGQO.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js.map → chunk-FL4D53ND.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js.map → chunk-FVNWHUME.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js.map → chunk-FXFCFL73.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js.map → chunk-FY4RLHSC.js.map} +0 -0
  528. /package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js.map → chunk-G6MYGULG.js.map} +0 -0
  529. /package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js.map → chunk-GLZKZON6.js.map} +0 -0
  530. /package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js.map → chunk-H5IOT54C.js.map} +0 -0
  531. /package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js.map → chunk-HO4DLBNK.js.map} +0 -0
  532. /package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js.map → chunk-HPAYDSR2.js.map} +0 -0
  533. /package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js.map → chunk-HSYV4ZYT.js.map} +0 -0
  534. /package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js.map → chunk-HYTOJW2Q.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js.map → chunk-I7DIDUSP.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js.map → chunk-IE5KRAKN.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js.map → chunk-IL5SPRMH.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js.map → chunk-ILVOOAT4.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js.map → chunk-KH6QAHME.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js.map → chunk-L337QKWJ.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-LSG2U345.js.map → chunk-L6FVNR7X.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js.map → chunk-LSOWTLEM.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-4223PVZT.js.map → chunk-M7MVOKVV.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js.map → chunk-N33FD2UI.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js.map → chunk-NNANAWFH.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js.map → chunk-NTRQLE2R.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js.map → chunk-NVZ6NVHJ.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js.map → chunk-OWP6QFBV.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js.map → chunk-P22HGFFI.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js.map → chunk-PT7MCCGD.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js.map → chunk-QRZNCRNA.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js.map → chunk-QWBKN3QC.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js.map → chunk-R5XTTZSJ.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js.map → chunk-RC4UOUXA.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js.map → chunk-RGMWJLXF.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js.map → chunk-RTBX3C4C.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js.map → chunk-RXPQ5Q23.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js.map → chunk-TM5CIO3F.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js.map → chunk-TZAE66GQ.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js.map → chunk-VAHZIPWS.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js.map → chunk-VE6ZSTQW.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js.map → chunk-W5E2UUSH.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js.map → chunk-WL3SS45P.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js.map → chunk-WU3KAN6A.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js.map → chunk-X2MGQMZO.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js.map → chunk-X5YCTFKT.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js.map → chunk-XC2HEEOV.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js.map → chunk-XXLXJL7V.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js.map → chunk-YIIIAKCE.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js.map → chunk-YJSURTBB.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js.map → chunk-YKFHF37B.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js.map → chunk-YQEZWI3R.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{close-W6LI2PKM.js.map → close-GPD7DTJV.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{close-CWODTPKG.js.map → close-X3CF6FQP.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js.map → close-many-J7A5EHOQ.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{close-many-DLDDVSH5.js.map → close-many-NQLYGPYW.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{comments-E3TNTK24.js.map → comments-2AOZQ5D2.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js.map → comments-TMHMALA5.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js.map → copy-FWQA5OU4.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{copy-Q5ZJPUKR.js.map → copy-N3LCQBMC.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{create-LBVCYMEG.js.map → create-AQ5SIGZC.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{create-J5U6ND4K.js.map → create-KOGQ3JKD.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{delete-WNHB3LYW.js.map → delete-6G3MBZ6S.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js.map → delete-YYYFOSEA.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js.map → deps-MQ4ZIGZB.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{deps-OA26IS25.js.map → deps-NIIKXLPB.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js.map → docs-53NUGMIQ.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{docs-HA2AIDBB.js.map → docs-OWRGDMNY.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{files-EFIWKFTM.js.map → files-3PXGXYDB.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{files-6YFBJRBG.js.map → files-EGLKHD7O.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{focus-POIW5LTJ.js.map → focus-KZLIA6WS.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js.map → focus-SRPASFTN.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js.map → history-compact-G4DULDCX.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{history-compact-FWG2C7FZ.js.map → history-compact-HHIUOMZ7.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js.map → history-redact-IUSJ6X3E.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js.map → history-redact-THHGRQXV.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{history-repair-6GEAM7HE.js.map → history-repair-KG7SWXI6.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js.map → history-repair-LUQWRS7X.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js.map → learnings-2MRNBFJF.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{learnings-RSNLSWDC.js.map → learnings-ZVHSALJY.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js.map → notes-73JWKWUD.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{notes-2WDH6DXU.js.map → notes-BAKUL5DJ.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js.map → plan-AZPMCG37.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{plan-DOVI2VMW.js.map → plan-LEAGLPGP.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{profile-FAU7NZML.js.map → profile-AVCIIZID.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js.map → profile-LFYO3HHX.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js.map → register-operations-KHZYR6MG.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js.map → register-operations-WPQ2LWZJ.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js.map → register-setup-PGDNOXDQ.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js.map → register-setup-TDN7WAO6.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js.map → restore-E3PRGDN3.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{restore-YPMVUUEX.js.map → restore-KIUYTAEJ.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js.map → schema-5JNFQFUW.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js.map → schema-TMIW4XZC.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{update-XHSIAIXE.js.map → update-SQYZA3ZW.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{update-WWBYOPXO.js.map → update-XZJYS5X7.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{update-many-TA7NGQBO.js.map → update-many-R24B3GBK.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{update-many-OUGIU5SF.js.map → update-many-WQ3R3J6N.js.map} +0 -0
  619. /package/dist/{cli/commands → sdk/query}/search-pagination.d.ts +0 -0
  620. /package/dist/{cli/commands → sdk/query}/search-rendering.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../core/output/tabular.ts", "../../../../../../../../cli/register-list-query.ts"],
4
+ "sourcesContent": ["/**\n * @module core/output/tabular\n *\n * Renders projected item rows as CSV or fixed-width text tables for human\n * export. These are presentation-only modes (GH-154): agents continue to read\n * the structured `--json`/TOON output, while humans piping `pm list` into a\n * spreadsheet or terminal get a directly consumable shape.\n */\n\n/** A projected row: a flat map of column name to scalar/collection cell value. */\nexport type TabularRow = Record<string, unknown>;\n\n/** Collects the ordered union of column names across every row, preserving the order in which each key is first encountered so the rendered columns mirror the projection field order rather than an arbitrary object-key order. */\nfunction resolveColumns(rows: TabularRow[]): string[] {\n const columns: string[] = [];\n const seen = new Set<string>();\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!seen.has(key)) {\n seen.add(key);\n columns.push(key);\n }\n }\n }\n return columns;\n}\n\n/** Converts a single cell value to its flat string form. Arrays join with `;` (spreadsheet-friendly and unambiguous against the CSV `,` delimiter), objects serialize to compact JSON, and null/undefined render as an empty cell. */\nfunction renderCell(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (Array.isArray(value)) {\n return value.map((entry) => renderCell(entry)).join(\";\");\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\n/** Escapes a CSV field per RFC 4180: values containing the delimiter, a quote, or a line break are wrapped in double quotes with embedded quotes doubled. */\nfunction escapeCsvField(value: string): string {\n if (/[\",\\r\\n]/.test(value)) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\n/** Renders rows as RFC 4180 CSV with a header row of column names. Returns an empty string when there are no rows so callers emit nothing rather than a stray blank line. */\nexport function renderRowsAsCsv(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const lines = [columns.map((column) => escapeCsvField(column)).join(\",\")];\n for (const row of rows) {\n lines.push(\n columns\n .map((column) => escapeCsvField(renderCell(row[column])))\n .join(\",\"),\n );\n }\n return lines.join(\"\\n\");\n}\n\n/** Renders rows as a fixed-width text table: a header row, a dashed separator, and one padded row per item. Columns are widened to fit their widest cell so the output stays aligned in a monospace terminal. Returns an empty string when there are no rows. */\nexport function renderRowsAsTable(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const cells = rows.map((row) =>\n columns.map((column) => renderCell(row[column])),\n );\n const widths = columns.map((column, index) =>\n Math.max(column.length, ...cells.map((rowCells) => rowCells[index].length)),\n );\n const pad = (value: string, index: number): string =>\n value.padEnd(widths[index]);\n const lines = [\n columns.map((column, index) => pad(column, index)).join(\" | \"),\n ];\n lines.push(widths.map((width) => \"-\".repeat(width)).join(\"-+-\"));\n for (const rowCells of cells) {\n lines.push(rowCells.map((value, index) => pad(value, index)).join(\" | \"));\n }\n return lines.join(\"\\n\");\n}\n", "/**\n * @module cli/register-list-query\n *\n * Provides CLI runtime support for Register List Query.\n */\nimport type { Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { renderRowsAsCsv, renderRowsAsTable } from \"../core/output/tabular.js\";\nimport { runActivity } from \"./commands/activity.js\";\nimport { runAggregate } from \"./commands/aggregate.js\";\nimport {\n renderContextMarkdown,\n runContext,\n resolveContextOutputFormat,\n} from \"./commands/context.js\";\nimport { runEval } from \"./commands/eval.js\";\nimport { runGet } from \"./commands/get.js\";\nimport { runGraph } from \"./commands/graph.js\";\nimport { runHistory } from \"./commands/history.js\";\nimport { runList } from \"./commands/list.js\";\nimport {\n renderNextMarkdown,\n runNext,\n resolveNextOutputFormat,\n} from \"./commands/next.js\";\nimport { runSearch } from \"./commands/search.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n addHiddenOption,\n collect,\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeNextOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n/** Documents the register list query commands options payload exchanged by command, SDK, and package integrations. */\nexport interface RegisterListQueryCommandsOptions {\n /** Value that configures or reports command filter for this contract. */\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(\n commandName: string,\n commandFilter?: Set<string>,\n): boolean {\n if (!commandFilter || commandFilter.size === 0) {\n return true;\n }\n if (commandName === \"context\") {\n return commandFilter.has(\"context\") || commandFilter.has(\"ctx\");\n }\n return commandFilter.has(commandName);\n}\n\ntype ReadCommandOutputFormat = \"json\" | \"toon\";\n\ntype ListOutputFormat = \"csv\" | \"table\" | \"json\" | \"toon\";\n\n/** Parses the `pm list --format` value into a supported render mode. csv/table are human export modes; json/toon override the machine output format. Returns undefined when no `--format` was supplied so the global output format applies. */\nfunction parseListFormat(rawFormat: unknown): ListOutputFormat | undefined {\n if (rawFormat === undefined) {\n return undefined;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase();\n if (\n normalized === \"csv\" ||\n normalized === \"table\" ||\n normalized === \"json\" ||\n normalized === \"toon\"\n ) {\n return normalized;\n }\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction resolveReadCommandOutputFormat(\n commandLabel: string,\n rawFormat: unknown,\n globalOptions: ReturnType<typeof getGlobalOptions>,\n): ReturnType<typeof getGlobalOptions> {\n if (rawFormat === undefined) {\n return globalOptions;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase() as ReadCommandOutputFormat;\n if (normalized !== \"json\" && normalized !== \"toon\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n if (globalOptions.json === true && normalized === \"toon\") {\n throw new PmCliError(\n `${commandLabel} cannot combine --json with --format toon`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n ...globalOptions,\n json: normalized === \"json\",\n };\n}\n\nfunction applyDefaultBriefListMode(\n listOptions: ReturnType<typeof normalizeListOptions>,\n defaultBrief: boolean | undefined,\n): void {\n if (\n defaultBrief === true &&\n listOptions.includeBody !== true &&\n listOptions.compact !== true &&\n listOptions.brief !== true &&\n listOptions.full !== true &&\n listOptions.fields === undefined\n ) {\n listOptions.brief = true;\n }\n}\n\nfunction registerContentAndGovernanceFilters(command: Command): void {\n command\n .option(\"--has-notes\", \"Show only items that have notes\")\n .option(\"--has-learnings\", \"Show only items that have learnings\")\n .option(\"--has-files\", \"Show only items that have linked files\")\n .option(\"--has-docs\", \"Show only items that have linked docs\")\n .option(\"--has-tests\", \"Show only items that have linked tests\")\n .option(\"--has-comments\", \"Show only items that have comments\")\n .option(\"--has-deps\", \"Show only items that have dependencies\")\n .option(\"--has-body\", \"Show only items that have a non-empty body\")\n .option(\n \"--has-linked-command\",\n \"Show only items whose linked tests carry a runnable command\",\n )\n .option(\"--no-notes\", \"Show only items that have no notes\")\n .option(\"--no-learnings\", \"Show only items that have no learnings\")\n .option(\"--no-files\", \"Show only items that have no linked files\")\n .option(\"--filter-files-missing\", \"Alias for --no-files\")\n .option(\"--no-docs\", \"Show only items that have no linked docs\")\n .option(\"--filter-docs-missing\", \"Alias for --no-docs\")\n .option(\"--no-tests\", \"Show only items that have no linked tests\")\n .option(\"--no-comments\", \"Show only items that have no comments\")\n .option(\"--no-deps\", \"Show only items that have no dependencies\")\n .option(\"--empty-body\", \"Show only items with an empty body\")\n .option(\n \"--no-linked-command\",\n \"Show only items whose linked tests carry no runnable command\",\n )\n .option(\"--filter-reviewer-missing\", \"Show only items missing reviewer\")\n .option(\"--filter-risk-missing\", \"Show only items missing risk\")\n .option(\"--filter-confidence-missing\", \"Show only items missing confidence\")\n .option(\"--filter-sprint-missing\", \"Show only items missing sprint\")\n .option(\"--filter-release-missing\", \"Show only items missing release\");\n}\n\nasync function runRegisteredListCommand(params: {\n name: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n defaultBrief?: boolean;\n dependencyBlocked?: boolean;\n options: Record<string, unknown>;\n actionCommand: Command;\n}): Promise<void> {\n const globalOptions = getGlobalOptions(params.actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(params.options);\n applyDefaultBriefListMode(listOptions, params.defaultBrief);\n if (params.excludeTerminal) listOptions.excludeTerminal = true;\n listOptions.dependencyBlocked = params.dependencyBlocked;\n const result = await runList(\n params.dependencyBlocked ? undefined : params.status,\n listOptions,\n globalOptions,\n );\n const streamMode = params.options.stream === true;\n const listFormat = parseListFormat(params.options.format);\n const tabular = listFormat === \"csv\" || listFormat === \"table\";\n const effectiveGlobal =\n listFormat === \"json\" || listFormat === \"toon\"\n ? resolveReadCommandOutputFormat(\n \"List\",\n params.options.format,\n globalOptions,\n )\n : globalOptions;\n if (streamMode && !effectiveGlobal.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular && streamMode) {\n throw new PmCliError(\n \"--format csv|table cannot be combined with --stream (line-delimited JSON).\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular) {\n const rows = result.items as Array<Record<string, unknown>>;\n const rendered =\n listFormat === \"csv\" ? renderRowsAsCsv(rows) : renderRowsAsTable(rows);\n if (!effectiveGlobal.quiet && rendered.length > 0) {\n writeStdout(`${rendered}\\n`);\n }\n } else if (streamMode) {\n printListJsonStream(params.name, result, effectiveGlobal);\n } else {\n printResult(result, effectiveGlobal);\n }\n if (globalOptions.profile) {\n printError(\n `profile:command=${params.name} took_ms=${Date.now() - startedAt}`,\n );\n }\n}\n\ninterface ListCommandDescriptor {\n name: string;\n description: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n allowStatusFilter?: boolean;\n defaultBrief?: boolean;\n /** Select via the shared edge-aware blocked classification instead of a raw status filter (GH-578). */\n dependencyBlocked?: boolean;\n}\n\nfunction registerListCommand(\n program: Command,\n descriptor: ListCommandDescriptor,\n): void {\n const {\n name,\n description,\n status,\n excludeTerminal,\n allowStatusFilter,\n defaultBrief,\n dependencyBlocked,\n } = descriptor;\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\n \"--status <value>\",\n \"Filter by status (use all for no status restriction)\",\n );\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--today\", \"Filter to items updated since local midnight today\")\n .option(\"--recent\", \"Filter to items updated in the last 7 days\")\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past). \"Changed since my last window\" → --updated-after <ISO>',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--ids <value>\",\n \"Filter by explicit item IDs (comma-separated or repeatable)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--filter-ac-missing\",\n \"Show only items missing acceptance_criteria\",\n )\n .option(\n \"--filter-estimates-missing\",\n \"Show only items missing estimated_minutes\",\n )\n .option(\n \"--filter-resolution-missing\",\n \"Show only terminal items missing resolution\",\n )\n .option(\n \"--filter-metadata-missing\",\n \"Show only items missing any tracked metadata (AC, estimate, or resolution)\",\n )\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--offset <n>\",\n \"Skip the first n matching rows before limit is applied\",\n )\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous list response\",\n )\n .option(\n \"--no-truncate\",\n \"Return every matched row, overriding any --limit (alias: --all)\",\n )\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\n \"--compact\",\n \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\",\n )\n .option(\n \"--brief\",\n \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)\",\n )\n .option(\n \"--sort <value>\",\n \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\",\n )\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--tree\", \"Render rows in parent/child tree order\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum recursion depth with --tree (0 keeps root rows only)\",\n )\n .option(\n \"--format <value>\",\n \"Output render mode: csv|table (human export) or json|toon (machine output override)\",\n )\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\");\n registerContentAndGovernanceFilters(command);\n command.action(async (options: Record<string, unknown>, actionCommand) => {\n await runRegisteredListCommand({\n name,\n status,\n excludeTerminal,\n defaultBrief,\n dependencyBlocked,\n options,\n actionCommand,\n });\n });\n // Positive alias for --no-truncate (Commander stores the negation as truncate=false).\n addHiddenOption(command, \"--all\", \"Alias for --no-truncate\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--tags <value>\", \"Alias for --tag\");\n addHiddenOption(\n command,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(command, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n // Singular alias so `--filter-estimate-missing` works (matches update-many spelling).\n addHiddenOption(\n command,\n \"--filter-estimate-missing\",\n \"Alias for --filter-estimates-missing\",\n );\n}\n\nasync function runAggregateAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runAggregate(\n normalizeAggregateOptions(options),\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runContextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const result = await runContext(normalized, globalOptions);\n const outputFormat = resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runNextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const nextOptions = normalizeNextOptions(options);\n const result = await runNext(nextOptions, globalOptions);\n const outputFormat = resolveNextOutputFormat(nextOptions, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderNextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, { ...globalOptions, json: outputFormat === \"json\" });\n }\n if (globalOptions.profile) {\n printError(`profile:command=next took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runSearchAction(\n keywords: string[],\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" &&\n searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Search\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runEvalAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runEval(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n k: typeof options.k === \"string\" ? options.k : undefined,\n failUnder:\n typeof options.failUnder === \"string\" ? options.failUnder : undefined,\n queries:\n typeof options.queries === \"string\" ? options.queries : undefined,\n format: typeof options.format === \"string\" ? options.format : undefined,\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Eval\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);\n }\n if (!result.passed) {\n throw new PmCliError(\n `Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n}\n\nasync function runGetAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGet(id, globalOptions, {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n tree: options.tree === true,\n treeDepth:\n typeof options.treeDepth === \"string\"\n ? options.treeDepth\n : typeof options.tree_depth === \"string\"\n ? options.tree_depth\n : undefined,\n at: typeof options.at === \"string\" ? options.at : undefined,\n });\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Get\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runHistoryAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"History projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n compact: options.full === true ? false : true,\n diff: Boolean(options.diff) || field !== undefined,\n field,\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"History\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runActivityAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"Activity projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = normalizeActivityOptions(options);\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runGraphAction(\n subcommand: string,\n id: string | undefined,\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGraph(\n subcommand,\n id,\n target,\n {\n ...(Array.isArray(options.kind) ? { kind: options.kind as string[] } : {}),\n maxDepth: typeof options.maxDepth === \"string\" ? options.maxDepth : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n after: typeof options.after === \"string\" ? options.after : undefined,\n direction:\n typeof options.direction === \"string\" ? options.direction : undefined,\n maxPaths: typeof options.maxPaths === \"string\" ? options.maxPaths : undefined,\n sample: typeof options.sample === \"string\" ? options.sample : undefined,\n ...(Array.isArray(options.exemptIsolate)\n ? { exemptIsolate: options.exemptIsolate as string[] }\n : {}),\n summary: options.summary === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=graph took_ms=${Date.now() - startedAt}`);\n }\n}\n\n/** Implements register list query commands for the public runtime surface of this module. */\nexport function registerListQueryCommands(\n program: Command,\n options?: RegisterListQueryCommandsOptions,\n): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean =>\n shouldRegisterListQueryCommand(commandName, commandFilter);\n const listCommandDescriptors: ListCommandDescriptor[] = [\n {\n name: \"list\",\n description: \"List active items with optional filters.\",\n excludeTerminal: true,\n allowStatusFilter: true,\n defaultBrief: true,\n },\n {\n name: \"list-all\",\n description: \"List all items with optional filters.\",\n excludeTerminal: false,\n allowStatusFilter: true,\n },\n {\n name: \"list-draft\",\n description: \"List draft items with optional filters.\",\n status: \"draft\",\n },\n {\n name: \"list-open\",\n description: \"List open items with optional filters.\",\n status: \"open\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-in-progress\",\n description: \"List in-progress items with optional filters.\",\n status: \"in_progress\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-blocked\",\n description:\n \"List blocked items (blocked status or open blocked_by dependencies, matching pm next) with optional filters.\",\n dependencyBlocked: true,\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-closed\",\n description: \"List closed items with optional filters.\",\n status: \"closed\",\n },\n {\n name: \"list-canceled\",\n description: \"List canceled items with optional filters.\",\n status: \"canceled\",\n },\n ];\n for (const descriptor of listCommandDescriptors) {\n if (shouldRegister(descriptor.name)) {\n registerListCommand(program, descriptor);\n }\n }\n\n if (shouldRegister(\"aggregate\")) {\n const aggregateCommand = program\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\n \"--completion\",\n \"Add open/in_progress/closed/other counts and completion_pct per group\",\n )\n .option(\"--sum <field>\", \"Sum a numeric field per group\")\n .option(\"--avg <field>\", \"Average a numeric field per group\")\n .option(\n \"--include-unparented\",\n \"Include unparented rows when grouping by parent\",\n )\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\");\n // Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).\n addHiddenOption(\n aggregateCommand,\n \"--include_unparented\",\n \"Alias for --include-unparented\",\n );\n addHiddenOption(\n aggregateCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n aggregateCommand.action(runAggregateAction);\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\n \"Show a token-efficient project context snapshot for next-work decisions.\",\n )\n .option(\n \"--date <value>\",\n \"Anchor date/time for agenda window calculations (ISO/date string or relative)\",\n )\n .option(\n \"--from <value>\",\n \"Agenda lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Agenda upper bound (ISO/date string or relative)\",\n )\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--parent <id>\",\n \"Scope the snapshot to one item's subtree (the item plus all descendants)\",\n )\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\n \"--after <cursor>\",\n \"Continue ranked focus after a next_cursor from a previous context response\",\n )\n .option(\n \"--format <value>\",\n \"Context output format override: markdown|toon|json\",\n )\n .option(\n \"--depth <value>\",\n \"Context depth: brief|standard|deep|full (full = every section, no per-section cap)\",\n )\n .option(\n \"--section <value...>\",\n \"Include specific sections (repeatable; overrides --depth)\",\n )\n .option(\n \"--fields <value>\",\n \"Project focus rows to a comma-separated field subset (e.g. id,title,priority)\",\n )\n .option(\n \"--activity-limit <n>\",\n \"Limit recent activity entries (default: settings or 10)\",\n )\n .option(\n \"--stale-threshold <value>\",\n \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked candidate ids\",\n );\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(\n contextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(contextCommand, \"--max-items <n>\", \"Alias for --limit\");\n addHiddenOption(\n contextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n contextCommand.action(runContextAction);\n }\n\n if (shouldRegister(\"next\")) {\n const nextCommand = program\n .command(\"next\")\n .description(\n \"Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.\",\n )\n .option(\"--type <value>\", \"Filter candidate items by type\")\n .option(\"--tag <value>\", \"Filter candidate items by tag\")\n .option(\"--priority <value>\", \"Filter candidate items by priority\")\n .option(\"--assignee <value>\", \"Filter candidate items by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter candidate items by sprint\")\n .option(\"--release <value>\", \"Filter candidate items by release\")\n .option(\n \"--parent <id>\",\n \"Scope to one item's subtree (the item plus all descendants)\",\n )\n .option(\n \"--limit <n>\",\n \"Limit ready rows (default: 5; non-positive falls back to default)\",\n )\n .option(\n \"--blocked-limit <n>\",\n \"Limit blocked rows (default: same as --limit)\",\n )\n .option(\"--ready-only\", \"Omit the blocked companion list\")\n .option(\n \"--include-decisions\",\n \"Include human-gated Decision items in the claimable ready queue\",\n )\n .option(\n \"--format <value>\",\n \"Next output format override: markdown|toon|json\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked ready ids\",\n );\n addHiddenOption(\n nextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(\n nextCommand,\n \"--blocked_limit <n>\",\n \"Alias for --blocked-limit\",\n );\n addHiddenOption(nextCommand, \"--ready_only\", \"Alias for --ready-only\");\n addHiddenOption(\n nextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n nextCommand.action(runNextAction);\n }\n\n if (shouldRegister(\"search\")) {\n const searchCommand = program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\n \"Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens \" +\n \"(tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.\",\n )\n .option(\n \"--mode <value>\",\n \"Search mode: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\n \"--match-mode <value>\",\n \"Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)\",\n )\n .option(\n \"--min-score <value>\",\n \"Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only\",\n )\n .option(\n \"--count\",\n \"Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows\",\n )\n .option(\n \"--semantic-weight <value>\",\n \"Override hybrid semantic weight for this query (0..1); invalid values fall back to settings\",\n )\n .option(\n \"--include-linked\",\n \"Include linked files, docs, and tests in the searchable corpus\",\n )\n .option(\n \"--title-exact\",\n \"Require exact normalized title match for the full query string\",\n )\n .option(\n \"--phrase-exact\",\n \"Require exact normalized phrase match in searchable text\",\n )\n .option(\n \"--highlight\",\n \"Emit per-field matched-text snippets (wrapped in «…») on each hit; off by default\",\n )\n .option(\n \"--status <value>\",\n \"Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)\",\n )\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past)',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\n \"--compact\",\n \"Render compact search hits (default; mutually exclusive with --full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--format <value>\", \"Search output format override: json|toon\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous search response\",\n );\n registerContentAndGovernanceFilters(searchCommand);\n searchCommand.action(runSearchAction);\n addHiddenOption(searchCommand, \"--tags <value>\", \"Alias for --tag\");\n }\n\n if (shouldRegister(\"eval\")) {\n program\n .command(\"eval\")\n .description(\n \"Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, \" +\n \"precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.\",\n )\n .option(\n \"--mode <value>\",\n \"Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--k <n>\", \"Metric cutoff @k (positive integer; default: 10)\")\n .option(\n \"--fail-under <value>\",\n \"Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate\",\n )\n .option(\n \"--queries <path>\",\n \"Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)\",\n )\n .option(\"--format <value>\", \"Eval output format override: json|toon\")\n .action(runEvalAction);\n }\n\n if (shouldRegister(\"get\")) {\n const getCommand = program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\n \"--depth <value>\",\n \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\",\n )\n .option(\n \"--full\",\n \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\",\n )\n .option(\"--tree\", \"Include descendants rooted at the requested item\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum subtree depth for --tree descendants\",\n )\n .option(\n \"--at <version-or-timestamp>\",\n \"Reconstruct a verified historical item state without mutating it\",\n )\n .option(\"--format <value>\", \"Get output format override: json|toon\")\n .description(\"Show item details by ID.\")\n .action(runGetAction);\n addHiddenOption(getCommand, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n }\n\n if (shouldRegister(\"history\")) {\n program\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\n \"--compact\",\n \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\",\n )\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\n \"--diff\",\n \"Include per-entry field-level before/after value diffs computed by replaying the history chain\",\n )\n .option(\n \"--field <name>\",\n \"With --diff, show only entries that changed this field (implies --diff)\",\n )\n .option(\n \"--verify\",\n \"Verify hash chain and replay integrity for the full history stream\",\n )\n .option(\"--format <value>\", \"History output format override: json|toon\")\n .description(\"Show item history entries.\")\n .action(runHistoryAction);\n }\n\n if (shouldRegister(\"activity\")) {\n program\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\n \"--from <value>\",\n \"Lower timestamp bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Upper timestamp bound (ISO/date string or relative)\",\n )\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\n \"--compact\",\n \"Condensed output: show only id, op, ts, author, msg per entry\",\n )\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\n \"--stream [mode]\",\n \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\",\n )\n .description(\"Show recent activity across items.\")\n .action(runActivityAction);\n }\n\n if (shouldRegister(\"graph\")) {\n program\n .command(\"graph\")\n .argument(\n \"<subcommand>\",\n \"Graph query (ancestors, descendants, predecessors, successors, paths, impact, analyze, audit, communities, redundancy, dominators, plan)\",\n )\n .argument(\"[id]\", \"Root item id (traversals, paths, impact, and dominators)\")\n .argument(\"[target]\", \"Target item id (paths only)\")\n .option(\n \"--kind <value>\",\n \"Restrict traversal to registered relationship kinds (repeatable or comma-separated)\",\n collect,\n )\n .option(\n \"--max-depth <value>\",\n \"Maximum traversal depth (non-negative integer)\",\n )\n .option(\"--limit <value>\", \"Maximum returned rows per bounded collection\")\n .option(\n \"--after <value>\",\n \"Resume a traversal after this previously returned node id\",\n )\n .option(\n \"--direction <value>\",\n \"Edge orientation for paths/impact (outgoing, incoming, or both)\",\n )\n .option(\"--max-paths <value>\", \"Maximum enumerated paths (paths only)\")\n .option(\n \"--sample <value>\",\n \"Maximum evidence sample entries per audit finding (audit only)\",\n )\n .option(\n \"--exempt-isolate <value>\",\n \"Item ids treated as explicitly valid isolates by the audit (repeatable or comma-separated)\",\n collect,\n )\n .option(\"--summary\", \"Return counts-first envelopes without row collections\")\n .description(\n \"Bounded workspace relationship-graph queries, analytics, and governance audit.\",\n )\n .action(runGraphAction);\n }\n}\n\n/** Public contract for test only register list query, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyRegisterListQuery = {\n resolveReadCommandOutputFormat,\n parseListFormat,\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,5 +1,5 @@
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]="dea64a4c-496e-540b-be50-cc6e1941d819")}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]="bb7580fb-4325-5aa7-bb0e-9ccc3d7d9008")}catch(e){}}();
3
3
  import {
4
4
  applyActiveCommandResultService,
5
5
  collect,
@@ -10,11 +10,11 @@ import {
10
10
  normalizeCreateOptions,
11
11
  normalizeUpdateOptions,
12
12
  readOptionString
13
- } from "./chunk-JXQUXVMI.js";
13
+ } from "./chunk-E4FXM2XB.js";
14
14
  import {
15
15
  CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS,
16
16
  UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS
17
- } from "./chunk-3S5QVM5H.js";
17
+ } from "./chunk-7UCY6DR5.js";
18
18
  import {
19
19
  splitCommaList
20
20
  } from "./chunk-NETP4DY4.js";
@@ -22,13 +22,13 @@ import {
22
22
  printError,
23
23
  printResult,
24
24
  writeStdout
25
- } from "./chunk-QKXHFPYM.js";
26
- import "./chunk-Q7A43DS4.js";
25
+ } from "./chunk-BIRYX32V.js";
26
+ import "./chunk-P22HGFFI.js";
27
27
  import {
28
28
  BUILTIN_ITEM_TYPE_VALUES,
29
29
  EXIT_CODE,
30
30
  PmCliError
31
- } from "./chunk-QKECXBBG.js";
31
+ } from "./chunk-KX62NMZC.js";
32
32
 
33
33
  // dist/cli/register-mutation.js
34
34
  import { Option } from "commander";
@@ -529,7 +529,7 @@ async function runCreateAction(typeOrTitle, secondTitle, options, command) {
529
529
  delete options.bodyFile;
530
530
  }
531
531
  const normalized = normalizeCreateOptions(options, { requireType: false });
532
- const { runCreate } = await import("./create-LBVCYMEG.js");
532
+ const { runCreate } = await import("./create-AQ5SIGZC.js");
533
533
  const result = await runCreate(normalized, globalOptions);
534
534
  await invalidateSearchCachesForMutation(globalOptions, result);
535
535
  printResult(result, globalOptions);
@@ -562,7 +562,7 @@ function buildCloseManyListOptions(options) {
562
562
  async function runCloseManyAction(options, command) {
563
563
  const globalOptions = getGlobalOptions(command);
564
564
  const startedAt = Date.now();
565
- const { runCloseMany } = await import("./close-many-CQFUY7MR.js");
565
+ const { runCloseMany } = await import("./close-many-J7A5EHOQ.js");
566
566
  const result = await runCloseMany({
567
567
  status: readOptionString(options, "filterStatus"),
568
568
  list: buildCloseManyListOptions(options),
@@ -587,7 +587,7 @@ async function runCloseManyAction(options, command) {
587
587
  async function runUpdateManyAction(options, command) {
588
588
  const globalOptions = getGlobalOptions(command);
589
589
  const startedAt = Date.now();
590
- const { runUpdateMany } = await import("./update-many-TA7NGQBO.js");
590
+ const { runUpdateMany } = await import("./update-many-R24B3GBK.js");
591
591
  const result = await runUpdateMany({
592
592
  status: readOptionString(options, "filterStatus"),
593
593
  list: buildUpdateManyListOptions(options),
@@ -605,7 +605,7 @@ async function runUpdateManyAction(options, command) {
605
605
  async function runCloseAction(id, text, options, command) {
606
606
  const globalOptions = getGlobalOptions(command);
607
607
  const startedAt = Date.now();
608
- const { runClose } = await import("./close-CWODTPKG.js");
608
+ const { runClose } = await import("./close-X3CF6FQP.js");
609
609
  const reasonFromOption = typeof options.reason === "string" && options.reason.trim().length > 0 && options.reason || typeof options.closeReason === "string" && options.closeReason.trim().length > 0 && options.closeReason || void 0;
610
610
  const resolvedText = typeof text === "string" && text.length > 0 ? text : reasonFromOption;
611
611
  const result = await runClose(id, resolvedText, {
@@ -690,7 +690,7 @@ function parsePlanReorderTo(normalizedSubcommand, reorderToken) {
690
690
  async function runPlanAction(subcommand, id, stepRef, reorderToken, options, command) {
691
691
  const globalOptions = getGlobalOptions(command);
692
692
  const startedAt = Date.now();
693
- const { runPlan, PLAN_SUBCOMMANDS } = await import("./plan-VDCJ2PCN.js");
693
+ const { runPlan, PLAN_SUBCOMMANDS } = await import("./plan-AZPMCG37.js");
694
694
  const normalizedSubcommand = (subcommand ?? "").trim().toLowerCase();
695
695
  assertKnownPlanSubcommand(subcommand, normalizedSubcommand, PLAN_SUBCOMMANDS);
696
696
  const planOptions = normalizePlanAliases(options);
@@ -725,7 +725,7 @@ function parseNonNegativeIntFlag(raw, flag) {
725
725
  async function runHistoryCompactAction(id, options, command) {
726
726
  const globalOptions = getGlobalOptions(command);
727
727
  const startedAt = Date.now();
728
- const { runHistoryCompact, runHistoryCompactBulk, assertHistoryCompactTarget } = await import("./history-compact-CKRPDTJN.js");
728
+ const { runHistoryCompact, runHistoryCompactBulk, assertHistoryCompactTarget } = await import("./history-compact-G4DULDCX.js");
729
729
  const ids = typeof options.ids === "string" ? splitCommaList(options.ids) : void 0;
730
730
  const allOver = parseNonNegativeIntFlag(options.allOver, "--all-over");
731
731
  const minEntries = parseNonNegativeIntFlag(options.minEntries, "--min-entries");
@@ -776,7 +776,7 @@ function splitCollectedCommaList(raw) {
776
776
  async function runSchemaAction(subcommand, name, options, command) {
777
777
  const globalOptions = getGlobalOptions(command);
778
778
  const startedAt = Date.now();
779
- const schemaModule = await import("./schema-FNU3WE4O.js");
779
+ const schemaModule = await import("./schema-5JNFQFUW.js");
780
780
  const { SCHEMA_SUBCOMMANDS } = schemaModule;
781
781
  let normalizedSubcommand = (subcommand ?? "").trim().toLowerCase();
782
782
  let typeName = name;
@@ -863,7 +863,7 @@ async function runCommentsAction(id, text, options, command) {
863
863
  const globalOptions = getGlobalOptions(command);
864
864
  const startedAt = Date.now();
865
865
  const sources = resolveCommentSources(text, options);
866
- const { runComments } = await import("./comments-WGLHR7LB.js");
866
+ const { runComments } = await import("./comments-TMHMALA5.js");
867
867
  const result = await runComments(id, {
868
868
  add: sources.add,
869
869
  stdin: sources.readFromStdin,
@@ -887,7 +887,7 @@ async function runCommentsAction(id, text, options, command) {
887
887
  async function runCopyAction(id, options, command) {
888
888
  const globalOptions = getGlobalOptions(command);
889
889
  const startedAt = Date.now();
890
- const { runCopy } = await import("./copy-LXVDXH7B.js");
890
+ const { runCopy } = await import("./copy-FWQA5OU4.js");
891
891
  const result = await runCopy(id, {
892
892
  title: readOptionString(options, "title"),
893
893
  author: readOptionString(options, "author"),
@@ -902,7 +902,7 @@ async function runCopyAction(id, options, command) {
902
902
  async function runFocusAction(id, options, command) {
903
903
  const globalOptions = getGlobalOptions(command);
904
904
  const startedAt = Date.now();
905
- const { runFocus } = await import("./focus-4QJR7FOQ.js");
905
+ const { runFocus } = await import("./focus-SRPASFTN.js");
906
906
  const result = await runFocus(id, { clear: options.clear === true }, globalOptions);
907
907
  printResult(result, globalOptions);
908
908
  if (globalOptions.profile) {
@@ -916,7 +916,7 @@ async function runUpdateAction(id, options, command) {
916
916
  options.body = await resolveBodyFileContent(options.bodyFile, options.body !== void 0 ? String(options.body) : void 0);
917
917
  delete options.bodyFile;
918
918
  }
919
- const { runUpdate } = await import("./update-XHSIAIXE.js");
919
+ const { runUpdate } = await import("./update-SQYZA3ZW.js");
920
920
  const result = await runUpdate(id, normalizeUpdateOptions(options), globalOptions);
921
921
  await invalidateSearchCachesForMutation(globalOptions, result);
922
922
  printResult(await applyActiveCommandResultService("update", [id], options, globalOptions, result), globalOptions);
@@ -927,7 +927,7 @@ async function runUpdateAction(id, options, command) {
927
927
  async function runDeleteAction(id, options, command) {
928
928
  const globalOptions = getGlobalOptions(command);
929
929
  const startedAt = Date.now();
930
- const { runDelete } = await import("./delete-PMJBNY5G.js");
930
+ const { runDelete } = await import("./delete-YYYFOSEA.js");
931
931
  const result = await runDelete(id, {
932
932
  author: readOptionString(options, "author"),
933
933
  message: readOptionString(options, "message"),
@@ -971,7 +971,7 @@ function resolveAppendBody(text, options) {
971
971
  async function runAppendAction(id, text, options, command) {
972
972
  const globalOptions = getGlobalOptions(command);
973
973
  const startedAt = Date.now();
974
- const { runAppend } = await import("./append-OJQFUQ4T.js");
974
+ const { runAppend } = await import("./append-5YF3TO7I.js");
975
975
  const result = await runAppend(id, {
976
976
  body: resolveAppendBody(text, options),
977
977
  author: readOptionString(options, "author"),
@@ -987,7 +987,7 @@ async function runAppendAction(id, text, options, command) {
987
987
  async function runRestoreAction(id, target, options, command) {
988
988
  const globalOptions = getGlobalOptions(command);
989
989
  const startedAt = Date.now();
990
- const { runRestore } = await import("./restore-25DLT2Q2.js");
990
+ const { runRestore } = await import("./restore-E3PRGDN3.js");
991
991
  const result = await runRestore(id, target, {
992
992
  author: readOptionString(options, "author"),
993
993
  message: readOptionString(options, "message"),
@@ -1002,7 +1002,7 @@ async function runRestoreAction(id, target, options, command) {
1002
1002
  async function runProfileAction(subcommand, name, options, command) {
1003
1003
  const globalOptions = getGlobalOptions(command);
1004
1004
  const startedAt = Date.now();
1005
- const profileModule = await import("./profile-FAU7NZML.js");
1005
+ const profileModule = await import("./profile-AVCIIZID.js");
1006
1006
  const { PROFILE_SUBCOMMANDS } = profileModule;
1007
1007
  const normalizedSubcommand = (subcommand ?? "").trim().toLowerCase();
1008
1008
  if (!normalizedSubcommand) {
@@ -1036,7 +1036,7 @@ async function runNotesAction(id, text, options, command) {
1036
1036
  const globalOptions = getGlobalOptions(command);
1037
1037
  const startedAt = Date.now();
1038
1038
  const add = resolveSingleTextSource("note", text, options);
1039
- const { runNotes } = await import("./notes-GB47XXQQ.js");
1039
+ const { runNotes } = await import("./notes-73JWKWUD.js");
1040
1040
  const result = await runNotes(id, {
1041
1041
  add,
1042
1042
  stdin: options.stdin === true,
@@ -1061,7 +1061,7 @@ async function runLearningsAction(id, text, options, command) {
1061
1061
  const globalOptions = getGlobalOptions(command);
1062
1062
  const startedAt = Date.now();
1063
1063
  const add = resolveSingleTextSource("learning", text, options);
1064
- const { runLearnings } = await import("./learnings-JLNLCOL5.js");
1064
+ const { runLearnings } = await import("./learnings-2MRNBFJF.js");
1065
1065
  const result = await runLearnings(id, {
1066
1066
  add,
1067
1067
  stdin: options.stdin === true,
@@ -1092,7 +1092,7 @@ async function runFilesAction(id, options, command) {
1092
1092
  const addGlobValues = readStringArrayOption(options, "addGlob");
1093
1093
  const removeValues = readStringArrayOption(options, "remove");
1094
1094
  const migrateValues = readStringArrayOption(options, "migrate");
1095
- const { runFiles } = await import("./files-EFIWKFTM.js");
1095
+ const { runFiles } = await import("./files-3PXGXYDB.js");
1096
1096
  const result = await runFiles(id, {
1097
1097
  add: addValues,
1098
1098
  addGlob: addGlobValues,
@@ -1121,7 +1121,7 @@ async function runFilesDiscoverAction(id, options, command) {
1121
1121
  ...command.optsWithGlobals(),
1122
1122
  ...options
1123
1123
  };
1124
- const { runFilesDiscover } = await import("./files-EFIWKFTM.js");
1124
+ const { runFilesDiscover } = await import("./files-3PXGXYDB.js");
1125
1125
  const result = await runFilesDiscover(id, {
1126
1126
  apply: Boolean(mergedOptions.apply),
1127
1127
  note: readOptionString(mergedOptions, "note"),
@@ -1145,7 +1145,7 @@ async function runDocsAction(id, options, command) {
1145
1145
  const addGlobValues = readStringArrayOption(options, "addGlob");
1146
1146
  const removeValues = readStringArrayOption(options, "remove");
1147
1147
  const migrateValues = readStringArrayOption(options, "migrate");
1148
- const { runDocs } = await import("./docs-FEWB2DQB.js");
1148
+ const { runDocs } = await import("./docs-53NUGMIQ.js");
1149
1149
  const result = await runDocs(id, {
1150
1150
  add: addValues,
1151
1151
  addGlob: addGlobValues,
@@ -1169,7 +1169,7 @@ async function runDocsAction(id, options, command) {
1169
1169
  async function runDepsAction(id, options, command) {
1170
1170
  const globalOptions = getGlobalOptions(command);
1171
1171
  const startedAt = Date.now();
1172
- const { runDeps } = await import("./deps-JZ7TMVCB.js");
1172
+ const { runDeps } = await import("./deps-MQ4ZIGZB.js");
1173
1173
  const result = await runDeps(id, {
1174
1174
  format: options.format,
1175
1175
  maxDepth: readOptionString(options, "maxDepth"),
@@ -1178,7 +1178,9 @@ async function runDepsAction(id, options, command) {
1178
1178
  nodeLimit: readOptionString(options, "nodeLimit"),
1179
1179
  edgeLimit: readOptionString(options, "edgeLimit"),
1180
1180
  tokenBudget: readOptionString(options, "tokenBudget"),
1181
- cursor: readOptionString(options, "cursor")
1181
+ cursor: readOptionString(options, "cursor"),
1182
+ direction: readOptionString(options, "direction"),
1183
+ ...Array.isArray(options.kind) ? { kind: options.kind } : {}
1182
1184
  }, globalOptions);
1183
1185
  printResult(result, globalOptions);
1184
1186
  if (globalOptions.profile) {
@@ -1274,7 +1276,7 @@ function registerMutationCommands(program) {
1274
1276
  program.command("history-redact").argument("<id>", "Item id").option("--literal <value>", "Literal string to redact (repeatable)", collect).option("--regex <value>", "Regex pattern to redact (repeatable; accepts /pattern/flags or raw pattern)", collect).option("--replacement <value>", 'Replacement string (default: "[redacted]")').option("--dry-run", "Preview redaction impact without writing item/history files").option("--author <value>", "Mutation author").option("--message <value>", "Audit history message for the redaction marker entry").option("--force", "Force ownership/lock override").description("Redact sensitive literals/patterns from an item history stream and recompute hashes.").action(async (id, options, command) => {
1275
1277
  const globalOptions = getGlobalOptions(command);
1276
1278
  const startedAt = Date.now();
1277
- const { runHistoryRedact } = await import("./history-redact-D225BHOZ.js");
1279
+ const { runHistoryRedact } = await import("./history-redact-THHGRQXV.js");
1278
1280
  const literal = Array.isArray(options.literal) ? options.literal : void 0;
1279
1281
  const regex = Array.isArray(options.regex) ? options.regex : void 0;
1280
1282
  const result = await runHistoryRedact(id, {
@@ -1297,7 +1299,7 @@ function registerMutationCommands(program) {
1297
1299
  program.command("history-repair").argument("[id]", "Item id (omit with --all)").option("--all", "Scan every stream for drift and repair each drifted stream in one audited pass").option("--dry-run", "Preview the re-anchor impact without writing the history file").option("--author <value>", "Mutation author").option("--message <value>", "Audit history message for the repair marker entry").option("--force", "Force ownership/lock override").description("Re-anchor a drifted item history chain (recompute hashes, reconcile with the on-disk item) and record an audit marker. Use --all to repair every drifted stream.").action(async (id, options, command) => {
1298
1300
  const globalOptions = getGlobalOptions(command);
1299
1301
  const startedAt = Date.now();
1300
- const { runHistoryRepair, runHistoryRepairAll, assertHistoryRepairTarget } = await import("./history-repair-RQXKQHL4.js");
1302
+ const { runHistoryRepair, runHistoryRepairAll, assertHistoryRepairTarget } = await import("./history-repair-LUQWRS7X.js");
1301
1303
  const all = options.all === true;
1302
1304
  assertHistoryRepairTarget(id, all);
1303
1305
  const repairOptions = {
@@ -1335,7 +1337,7 @@ function registerMutationCommands(program) {
1335
1337
  filesCommand.argument("<id>", "Item id").option("--add <value>", "Add linked file entry (CSV/markdown pairs or - for stdin)", collect).option("--add-glob <value>", "Add linked file entries from a glob (plain glob or pattern=<glob>,scope=<scope>,note=<text>; repeatable)", collect).option("--remove <value>", "Remove linked file by path only (path=<value>, path:<value>, plain path, or - for stdin); does not accept note=/scope= \u2014 record removal context with --message", collect).option("--migrate <value>", "Migrate linked file paths in-place (from=<prefix>,to=<prefix>; repeatable)", collect).option("--note <value>", "Note attached to every link added by --add/--add-glob in this invocation (embedded note= wins)").option("--list", "List linked files without mutating").option("--append-stable", "Preserve existing linked-file order and append new links without full-array resorting").option("--validate-paths", "Validate linked file paths for existence and file shape").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override").action(runFilesAction);
1336
1338
  filesCommand.command("discover").argument("<id>", "Item id").option("--apply", "Add discovered missing files to the item").option("--note <value>", "Note to attach to discovered file links").option("--append-stable", "Preserve existing linked-file order and append discovered links without full-array resorting").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override").description("Discover existing file paths referenced in item text and optionally link missing files.").action(runFilesDiscoverAction);
1337
1339
  program.command("docs").argument("<id>", "Item id").option("--add <value>", "Add linked doc entry (CSV/markdown pairs or - for stdin)", collect).option("--add-glob <value>", "Add linked doc entries from a glob (plain glob or pattern=<glob>,scope=<scope>,note=<text>; repeatable)", collect).option("--remove <value>", "Remove linked doc by path only (path=<value>, path:<value>, plain path, or - for stdin); does not accept note=/scope= \u2014 record removal context with --message", collect).option("--migrate <value>", "Migrate linked doc paths in-place (from=<prefix>,to=<prefix>; repeatable)", collect).option("--note <value>", "Note attached to every link added by --add/--add-glob in this invocation (embedded note= wins)").option("--list", "List linked docs without mutating").option("--validate-paths", "Validate linked doc paths for existence and file shape").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override").description("Manage docs linked to an item.").action(runDocsAction);
1338
- program.command("deps").argument("<id>", "Item id").option("--format <value>", "Output format (tree, graph, or context)", "tree").option("--max-depth <value>", "Maximum dependency traversal depth (0 keeps only the root)").option("--collapse <value>", "Collapse mode (none or repeated)", "none").option("--summary", "Return counts only without full tree/graph payload").option("--node-limit <value>", "Maximum nodes in context output").option("--edge-limit <value>", "Maximum edges in context output").option("--token-budget <value>", "Maximum estimated tokens in context output").option("--cursor <value>", "Continue an equivalent context query").description("Show dependency relationships for an item.").action(runDepsAction);
1340
+ program.command("deps").argument("<id>", "Item id").option("--format <value>", "Output format (tree, graph, or context)", "tree").option("--max-depth <value>", "Maximum dependency traversal depth (0 keeps only the root)").option("--collapse <value>", "Collapse mode (none or repeated)", "none").option("--summary", "Return counts only without full tree/graph payload").option("--node-limit <value>", "Maximum nodes in context output").option("--edge-limit <value>", "Maximum edges and missing-reference rows in context output").option("--token-budget <value>", "Maximum estimated tokens in context output").option("--cursor <value>", "Continue an equivalent context query").option("--direction <value>", "Context traversal direction (outgoing, incoming, or both)").option("--kind <value>", "Restrict context traversal to registered relationship kinds (repeatable or comma-separated)", collect).description("Show dependency relationships for an item.").action(runDepsAction);
1339
1341
  }
1340
1342
  export {
1341
1343
  looksLikeSchemaSubcommandTypo,
@@ -1344,6 +1346,6 @@ export {
1344
1346
  registerCommanderOptionContracts,
1345
1347
  registerMutationCommands
1346
1348
  };
1347
- //# sourceMappingURL=register-mutation-RBBJ52DK.js.map
1349
+ //# sourceMappingURL=register-mutation-2PBW2GEX.js.map
1348
1350
 
1349
- //# debugId=dea64a4c-496e-540b-be50-cc6e1941d819
1351
+ //# debugId=bb7580fb-4325-5aa7-bb0e-9ccc3d7d9008