@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
@@ -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]="dae3c8dd-7886-55b6-a8a5-a8d2214556cc")}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]="e1ef249b-2222-54e0-a21a-0d0820e27950")}catch(e){}}();
3
3
  import { EXIT_CODE } from "../core/shared/constants.js";
4
4
  import { PmCliError } from "../core/shared/errors.js";
5
5
  import { renderRowsAsCsv, renderRowsAsTable } from "../core/output/tabular.js";
@@ -8,11 +8,12 @@ import { runAggregate } from "./commands/aggregate.js";
8
8
  import { renderContextMarkdown, runContext, resolveContextOutputFormat, } from "./commands/context.js";
9
9
  import { runEval } from "./commands/eval.js";
10
10
  import { runGet } from "./commands/get.js";
11
+ import { runGraph } from "./commands/graph.js";
11
12
  import { runHistory } from "./commands/history.js";
12
13
  import { runList } from "./commands/list.js";
13
14
  import { renderNextMarkdown, runNext, resolveNextOutputFormat, } from "./commands/next.js";
14
15
  import { runSearch } from "./commands/search.js";
15
- import { addHiddenOption, getGlobalOptions, normalizeAggregateOptions, normalizeActivityOptions, normalizeContextOptions, normalizeListOptions, normalizeNextOptions, normalizeSearchKeywordsInput, normalizeSearchOptions, printActivityJsonStream, printError, printListJsonStream, printResult, resolveActivityStreamMode, writeStdout, } from "./registration-helpers.js";
16
+ import { addHiddenOption, collect, getGlobalOptions, normalizeAggregateOptions, normalizeActivityOptions, normalizeContextOptions, normalizeListOptions, normalizeNextOptions, normalizeSearchKeywordsInput, normalizeSearchOptions, printActivityJsonStream, printError, printListJsonStream, printResult, resolveActivityStreamMode, writeStdout, } from "./registration-helpers.js";
16
17
  function shouldRegisterListQueryCommand(commandName, commandFilter) {
17
18
  if (!commandFilter || commandFilter.size === 0) {
18
19
  return true;
@@ -103,7 +104,8 @@ async function runRegisteredListCommand(params) {
103
104
  applyDefaultBriefListMode(listOptions, params.defaultBrief);
104
105
  if (params.excludeTerminal)
105
106
  listOptions.excludeTerminal = true;
106
- const result = await runList(params.status, listOptions, globalOptions);
107
+ listOptions.dependencyBlocked = params.dependencyBlocked;
108
+ const result = await runList(params.dependencyBlocked ? undefined : params.status, listOptions, globalOptions);
107
109
  const streamMode = params.options.stream === true;
108
110
  const listFormat = parseListFormat(params.options.format);
109
111
  const tabular = listFormat === "csv" || listFormat === "table";
@@ -134,7 +136,7 @@ async function runRegisteredListCommand(params) {
134
136
  }
135
137
  }
136
138
  function registerListCommand(program, descriptor) {
137
- const { name, description, status, excludeTerminal, allowStatusFilter, defaultBrief, } = descriptor;
139
+ const { name, description, status, excludeTerminal, allowStatusFilter, defaultBrief, dependencyBlocked, } = descriptor;
138
140
  const command = program.command(name).description(description);
139
141
  if (allowStatusFilter) {
140
142
  command.option("--status <value>", "Filter by status (use all for no status restriction)");
@@ -183,6 +185,7 @@ function registerListCommand(program, descriptor) {
183
185
  status,
184
186
  excludeTerminal,
185
187
  defaultBrief,
188
+ dependencyBlocked,
186
189
  options,
187
190
  actionCommand,
188
191
  });
@@ -339,6 +342,27 @@ async function runActivityAction(options, command) {
339
342
  printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);
340
343
  }
341
344
  }
345
+ async function runGraphAction(subcommand, id, target, options, command) {
346
+ const globalOptions = getGlobalOptions(command);
347
+ const startedAt = Date.now();
348
+ const result = await runGraph(subcommand, id, target, {
349
+ ...(Array.isArray(options.kind) ? { kind: options.kind } : {}),
350
+ maxDepth: typeof options.maxDepth === "string" ? options.maxDepth : undefined,
351
+ limit: typeof options.limit === "string" ? options.limit : undefined,
352
+ after: typeof options.after === "string" ? options.after : undefined,
353
+ direction: typeof options.direction === "string" ? options.direction : undefined,
354
+ maxPaths: typeof options.maxPaths === "string" ? options.maxPaths : undefined,
355
+ sample: typeof options.sample === "string" ? options.sample : undefined,
356
+ ...(Array.isArray(options.exemptIsolate)
357
+ ? { exemptIsolate: options.exemptIsolate }
358
+ : {}),
359
+ summary: options.summary === true,
360
+ }, globalOptions);
361
+ printResult(result, globalOptions);
362
+ if (globalOptions.profile) {
363
+ printError(`profile:command=graph took_ms=${Date.now() - startedAt}`);
364
+ }
365
+ }
342
366
  /** Implements register list query commands for the public runtime surface of this module. */
343
367
  export function registerListQueryCommands(program, options) {
344
368
  const commandFilter = options?.commandFilter;
@@ -380,8 +404,8 @@ export function registerListQueryCommands(program, options) {
380
404
  },
381
405
  {
382
406
  name: "list-blocked",
383
- description: "List blocked items with optional filters.",
384
- status: "blocked",
407
+ description: "List blocked items (blocked status or open blocked_by dependencies, matching pm next) with optional filters.",
408
+ dependencyBlocked: true,
385
409
  excludeTerminal: false,
386
410
  allowStatusFilter: false,
387
411
  defaultBrief: true,
@@ -581,6 +605,24 @@ export function registerListQueryCommands(program, options) {
581
605
  .description("Show recent activity across items.")
582
606
  .action(runActivityAction);
583
607
  }
608
+ if (shouldRegister("graph")) {
609
+ program
610
+ .command("graph")
611
+ .argument("<subcommand>", "Graph query (ancestors, descendants, predecessors, successors, paths, impact, analyze, audit, communities, redundancy, dominators, plan)")
612
+ .argument("[id]", "Root item id (traversals, paths, impact, and dominators)")
613
+ .argument("[target]", "Target item id (paths only)")
614
+ .option("--kind <value>", "Restrict traversal to registered relationship kinds (repeatable or comma-separated)", collect)
615
+ .option("--max-depth <value>", "Maximum traversal depth (non-negative integer)")
616
+ .option("--limit <value>", "Maximum returned rows per bounded collection")
617
+ .option("--after <value>", "Resume a traversal after this previously returned node id")
618
+ .option("--direction <value>", "Edge orientation for paths/impact (outgoing, incoming, or both)")
619
+ .option("--max-paths <value>", "Maximum enumerated paths (paths only)")
620
+ .option("--sample <value>", "Maximum evidence sample entries per audit finding (audit only)")
621
+ .option("--exempt-isolate <value>", "Item ids treated as explicitly valid isolates by the audit (repeatable or comma-separated)", collect)
622
+ .option("--summary", "Return counts-first envelopes without row collections")
623
+ .description("Bounded workspace relationship-graph queries, analytics, and governance audit.")
624
+ .action(runGraphAction);
625
+ }
584
626
  }
585
627
  /** Public contract for test only register list query, shared by SDK and presentation-layer consumers. */
586
628
  export const _testOnlyRegisterListQuery = {
@@ -588,4 +630,4 @@ export const _testOnlyRegisterListQuery = {
588
630
  parseListFormat,
589
631
  };
590
632
  //# sourceMappingURL=register-list-query.js.map
591
- //# debugId=dae3c8dd-7886-55b6-a8a5-a8d2214556cc
633
+ //# debugId=e1ef249b-2222-54e0-a21a-0d0820e27950
@@ -1 +1 @@
1
- {"version":3,"file":"register-list-query.js","sources":["cli/register-list-query.ts"],"sourceRoot":"/","sourcesContent":["/**\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 { 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 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 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 const result = await runList(params.status, listOptions, globalOptions);\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}\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 } = 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 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\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: \"List blocked items with optional filters.\",\n status: \"blocked\",\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\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"],"names":[],"mappings":"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","debugId":"dae3c8dd-7886-55b6-a8a5-a8d2214556cc"}
1
+ {"version":3,"file":"register-list-query.js","sources":["cli/register-list-query.ts"],"sourceRoot":"/","sourcesContent":["/**\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"],"names":[],"mappings":"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","debugId":"e1ef249b-2222-54e0-a21a-0d0820e27950"}
@@ -4,7 +4,7 @@
4
4
  * Provides CLI runtime support for Register Mutation.
5
5
  */
6
6
 
7
- !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]="a448d2e0-e00b-5962-8c1a-7cea31c6990a")}catch(e){}}();
7
+ !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]="837f2f00-e158-5f8b-ac79-87394a7dd62c")}catch(e){}}();
8
8
  import { Option } from "commander";
9
9
  import { resolveBodyFileContent } from "../core/io/body-file.js";
10
10
  import { EXIT_CODE } from "../core/shared/constants.js";
@@ -1225,6 +1225,8 @@ async function runDepsAction(id, options, command) {
1225
1225
  edgeLimit: readOptionString(options, "edgeLimit"),
1226
1226
  tokenBudget: readOptionString(options, "tokenBudget"),
1227
1227
  cursor: readOptionString(options, "cursor"),
1228
+ direction: readOptionString(options, "direction"),
1229
+ ...(Array.isArray(options.kind) ? { kind: options.kind } : {}),
1228
1230
  }, globalOptions);
1229
1231
  printResult(result, globalOptions);
1230
1232
  if (globalOptions.profile) {
@@ -1837,11 +1839,13 @@ export function registerMutationCommands(program) {
1837
1839
  .option("--collapse <value>", "Collapse mode (none or repeated)", "none")
1838
1840
  .option("--summary", "Return counts only without full tree/graph payload")
1839
1841
  .option("--node-limit <value>", "Maximum nodes in context output")
1840
- .option("--edge-limit <value>", "Maximum edges in context output")
1842
+ .option("--edge-limit <value>", "Maximum edges and missing-reference rows in context output")
1841
1843
  .option("--token-budget <value>", "Maximum estimated tokens in context output")
1842
1844
  .option("--cursor <value>", "Continue an equivalent context query")
1845
+ .option("--direction <value>", "Context traversal direction (outgoing, incoming, or both)")
1846
+ .option("--kind <value>", "Restrict context traversal to registered relationship kinds (repeatable or comma-separated)", collect)
1843
1847
  .description("Show dependency relationships for an item.")
1844
1848
  .action(runDepsAction);
1845
1849
  }
1846
1850
  //# sourceMappingURL=register-mutation.js.map
1847
- //# debugId=a448d2e0-e00b-5962-8c1a-7cea31c6990a
1851
+ //# debugId=837f2f00-e158-5f8b-ac79-87394a7dd62c