@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,10 +1,10 @@
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]="f89dda3b-e8c4-53c1-8d8b-b884a198a28d")}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]="038cbba4-9d1e-5b41-b501-d40eec7260cd")}catch(e){}}();
3
3
  import {
4
4
  assertHistoryRepairTarget,
5
5
  runHistoryRepair,
6
6
  runHistoryRepairAll
7
- } from "./chunk-7PIWCHTW.js";
7
+ } from "./chunk-R5XTTZSJ.js";
8
8
  import {
9
9
  resolveStartTaskInProgressStatus,
10
10
  runClaim,
@@ -18,73 +18,70 @@ import {
18
18
  runTest,
19
19
  runTestAll,
20
20
  runValidate
21
- } from "./chunk-5ZSLZLDN.js";
21
+ } from "./chunk-6VHUGVNP.js";
22
22
  import {
23
23
  runDocs
24
- } from "./chunk-IA5FKNII.js";
25
- import {
26
- runDeps
27
- } from "./chunk-JFTKLTEF.js";
24
+ } from "./chunk-X2MGQMZO.js";
28
25
  import {
29
26
  runCopy
30
- } from "./chunk-DM4H7FP4.js";
27
+ } from "./chunk-633PKXLT.js";
31
28
  import {
32
29
  runFocus
33
- } from "./chunk-JYFOV7FC.js";
30
+ } from "./chunk-IE5KRAKN.js";
34
31
  import {
35
32
  runDelete
36
- } from "./chunk-PMOSXADO.js";
33
+ } from "./chunk-47HXN6RX.js";
37
34
  import {
38
35
  runAppend
39
- } from "./chunk-S6MQESFR.js";
36
+ } from "./chunk-67RO3H4N.js";
40
37
  import {
41
38
  runProfileApply,
42
39
  runProfileLint,
43
40
  runProfileList,
44
41
  runProfileShow
45
- } from "./chunk-J5AOEGDC.js";
42
+ } from "./chunk-HYTOJW2Q.js";
46
43
  import {
47
44
  runNotes
48
- } from "./chunk-QEHQ2GVG.js";
45
+ } from "./chunk-FY4RLHSC.js";
49
46
  import {
50
47
  runLearnings
51
- } from "./chunk-RRM5JYJC.js";
48
+ } from "./chunk-6O44IN44.js";
52
49
  import {
53
50
  runFiles,
54
51
  runFilesDiscover
55
- } from "./chunk-TQSZFPIS.js";
52
+ } from "./chunk-AFGKSHAM.js";
56
53
  import {
57
54
  runCloseMany
58
- } from "./chunk-P74IZQ7A.js";
55
+ } from "./chunk-EWIT5WIC.js";
59
56
  import {
60
57
  runUpdateMany
61
- } from "./chunk-5JLUII3O.js";
58
+ } from "./chunk-43UMFKCK.js";
62
59
  import {
63
60
  runRestore
64
- } from "./chunk-HO4KXD6I.js";
61
+ } from "./chunk-7H5NNCJ5.js";
65
62
  import {
66
63
  runUpdate
67
- } from "./chunk-EACOH7AU.js";
64
+ } from "./chunk-YIIIAKCE.js";
68
65
  import {
69
66
  runPlan
70
- } from "./chunk-DYH63FX7.js";
67
+ } from "./chunk-VE6ZSTQW.js";
71
68
  import {
72
69
  assertHistoryCompactTarget,
73
70
  runHistoryCompact,
74
71
  runHistoryCompactBulk
75
- } from "./chunk-WQPUU7XD.js";
72
+ } from "./chunk-L337QKWJ.js";
76
73
  import {
77
74
  runComments
78
- } from "./chunk-3CLU2XZO.js";
75
+ } from "./chunk-HSYV4ZYT.js";
79
76
  import {
80
77
  runConfig,
81
78
  runUpgrade
82
- } from "./chunk-YAROI3PD.js";
79
+ } from "./chunk-IL5SPRMH.js";
83
80
  import {
84
81
  SCAFFOLD_CAPABILITIES,
85
82
  runExtension,
86
83
  runInit
87
- } from "./chunk-J6EY5V4N.js";
84
+ } from "./chunk-QRZNCRNA.js";
88
85
  import {
89
86
  runSchemaAddField,
90
87
  runSchemaAddStatus,
@@ -99,24 +96,28 @@ import {
99
96
  runSchemaShow,
100
97
  runSchemaShowField,
101
98
  runSchemaShowStatus
102
- } from "./chunk-INU6DKT5.js";
99
+ } from "./chunk-FXFCFL73.js";
103
100
  import {
104
101
  runAggregate,
105
102
  runGet,
103
+ runGraph,
106
104
  runSearch
107
- } from "./chunk-ONG5V5CI.js";
105
+ } from "./chunk-QPGQNLPI.js";
106
+ import {
107
+ runDeps
108
+ } from "./chunk-EX7OQT3Y.js";
108
109
  import {
109
110
  runActivity,
110
111
  runContext,
111
112
  runHistory,
112
113
  runNext
113
- } from "./chunk-7Z4LKRS4.js";
114
+ } from "./chunk-XPUTSGJU.js";
114
115
  import {
115
116
  runList
116
- } from "./chunk-UXONS674.js";
117
+ } from "./chunk-NCVT6XEL.js";
117
118
  import {
118
119
  runHistoryRedact
119
- } from "./chunk-GOSLKLFE.js";
120
+ } from "./chunk-KH6QAHME.js";
120
121
  import {
121
122
  resolveRegisteredSearchProvider,
122
123
  resolveRegisteredVectorStoreAdapter
@@ -143,7 +144,7 @@ import {
143
144
  resolveSettingsWithSemanticRuntimeDefaults,
144
145
  resolveVectorStores,
145
146
  writeVectorizationStatusLedger
146
- } from "./chunk-JXQUXVMI.js";
147
+ } from "./chunk-E4FXM2XB.js";
147
148
  import {
148
149
  ACTIVITY_FLAG_CONTRACTS,
149
150
  AGGREGATE_FLAG_CONTRACTS,
@@ -160,6 +161,7 @@ import {
160
161
  FOCUS_FLAG_CONTRACTS,
161
162
  GET_FLAG_CONTRACTS,
162
163
  GLOBAL_FLAG_CONTRACTS,
164
+ GRAPH_FLAG_CONTRACTS,
163
165
  GUIDE_FLAG_CONTRACTS,
164
166
  HEALTH_FLAG_CONTRACTS,
165
167
  INIT_FLAG_CONTRACTS,
@@ -175,19 +177,19 @@ import {
175
177
  UPDATE_FLAG_CONTRACTS,
176
178
  UPDATE_MANY_FLAG_CONTRACTS,
177
179
  toCompletionFlagString
178
- } from "./chunk-3S5QVM5H.js";
180
+ } from "./chunk-7UCY6DR5.js";
179
181
  import {
180
182
  runCreate
181
- } from "./chunk-EH2OPHBI.js";
183
+ } from "./chunk-HTXXXF45.js";
182
184
  import {
183
185
  parseTags
184
- } from "./chunk-EJEXHTY5.js";
186
+ } from "./chunk-FHOBCGQO.js";
185
187
  import {
186
188
  projectMutationResult
187
- } from "./chunk-QKXHFPYM.js";
189
+ } from "./chunk-BIRYX32V.js";
188
190
  import {
189
191
  runClose
190
- } from "./chunk-UFXU44HV.js";
192
+ } from "./chunk-35FHWD4C.js";
191
193
  import {
192
194
  acquireLock,
193
195
  appendHistoryEntry,
@@ -210,7 +212,7 @@ import {
210
212
  setActiveExtensionRegistrations,
211
213
  setActiveExtensionRenderers,
212
214
  setActiveExtensionServices
213
- } from "./chunk-Q7A43DS4.js";
215
+ } from "./chunk-P22HGFFI.js";
214
216
  import {
215
217
  BUILTIN_ITEM_TYPE_VALUES,
216
218
  EXIT_CODE,
@@ -238,7 +240,7 @@ import {
238
240
  resolveRuntimeStatusRegistry,
239
241
  toNonEmptyStringOrUndefined,
240
242
  writeFileAtomic
241
- } from "./chunk-QKECXBBG.js";
243
+ } from "./chunk-KX62NMZC.js";
242
244
 
243
245
  // dist/sdk/runtime.js
244
246
  import path3 from "node:path";
@@ -326,16 +328,362 @@ function parseRuntimeInteger(value, label) {
326
328
  if (!Number.isInteger(value)) {
327
329
  throw new PmCliError(`${label} must be a finite integer.`, EXIT_CODE.USAGE);
328
330
  }
329
- return value;
331
+ return value;
332
+ }
333
+ if (typeof value === "string" && value.trim().length > 0) {
334
+ const parsed = Number(value);
335
+ if (!Number.isInteger(parsed)) {
336
+ throw new PmCliError(`${label} must be a finite integer.`, EXIT_CODE.USAGE);
337
+ }
338
+ return parsed;
339
+ }
340
+ return void 0;
341
+ }
342
+ function actionGlobalOptions(args) {
343
+ return {
344
+ json: true,
345
+ quiet: true,
346
+ path: readRuntimeString(args, "path"),
347
+ noExtensions: args.noExtensions === true || args.no_extensions === true,
348
+ noPager: true
349
+ };
350
+ }
351
+ var ARRAY_TO_CSV_FIELDS = /* @__PURE__ */ new Set([
352
+ "tags",
353
+ "blockedBy",
354
+ "blocked_by",
355
+ "skills",
356
+ "fields"
357
+ ]);
358
+ var SCALAR_TO_ARRAY_FIELDS = /* @__PURE__ */ new Set([
359
+ "comment",
360
+ "note",
361
+ "learning",
362
+ "reminder",
363
+ "event",
364
+ "dep",
365
+ "depRemove",
366
+ "dep_remove",
367
+ "file",
368
+ "doc",
369
+ "test",
370
+ "unset",
371
+ "addGlob",
372
+ "add_glob",
373
+ "migrate",
374
+ "envSet",
375
+ "env_set",
376
+ "envClear",
377
+ "env_clear"
378
+ ]);
379
+ var ARRAY_ADD_REMOVE_ACTIONS = /* @__PURE__ */ new Set([
380
+ "files",
381
+ "files-discover",
382
+ "docs",
383
+ "test",
384
+ "test-all"
385
+ ]);
386
+ var LIFECYCLE_AUTHOR_ALIAS_ACTIONS = /* @__PURE__ */ new Set([
387
+ "claim",
388
+ "release",
389
+ "start-task",
390
+ "pause-task",
391
+ "close-task"
392
+ ]);
393
+ function normalizeMcpOptionsArrays(options, action) {
394
+ const result = {};
395
+ const promoteAddRemove = action !== void 0 && ARRAY_ADD_REMOVE_ACTIONS.has(action);
396
+ const preserveStandaloneNote = action === "files" || action === "files-discover" || action === "docs";
397
+ for (const [key, value] of Object.entries(options)) {
398
+ if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
399
+ result[key] = value.join(",");
400
+ continue;
401
+ }
402
+ if (key === "note" && preserveStandaloneNote) {
403
+ result[key] = value;
404
+ continue;
405
+ }
406
+ if (typeof value === "string" && SCALAR_TO_ARRAY_FIELDS.has(key)) {
407
+ result[key] = [value];
408
+ continue;
409
+ }
410
+ if (typeof value === "string" && promoteAddRemove && (key === "add" || key === "remove")) {
411
+ result[key] = [value];
412
+ continue;
413
+ }
414
+ result[key] = value;
415
+ }
416
+ return result;
417
+ }
418
+ function optionsWithAuthor(args, action) {
419
+ const baseOptions = asRecordClone(args.options);
420
+ const hoistedTopLevel = {};
421
+ const hoistKey = (key) => {
422
+ if (baseOptions[key] !== void 0 || args[key] === void 0) {
423
+ return;
424
+ }
425
+ hoistedTopLevel[key] = args[key];
426
+ };
427
+ if (action === "list") {
428
+ hoistKey("status");
429
+ hoistKey("type");
430
+ hoistKey("tag");
431
+ hoistKey("priority");
432
+ hoistKey("limit");
433
+ hoistKey("offset");
434
+ } else if (action === "search") {
435
+ hoistKey("mode");
436
+ hoistKey("status");
437
+ hoistKey("type");
438
+ hoistKey("tag");
439
+ hoistKey("priority");
440
+ hoistKey("limit");
441
+ } else if (action === "create") {
442
+ hoistKey("title");
443
+ hoistKey("type");
444
+ hoistKey("status");
445
+ hoistKey("description");
446
+ hoistKey("body");
447
+ hoistKey("priority");
448
+ hoistKey("tags");
449
+ hoistKey("parent");
450
+ hoistKey("createMode");
451
+ hoistKey("create_mode");
452
+ hoistKey("allowMissingParent");
453
+ } else if (action === "close") {
454
+ hoistKey("duplicateOf");
455
+ } else if (action === "append") {
456
+ hoistKey("body");
457
+ }
458
+ const options = normalizeMcpOptionsArrays({ ...hoistedTopLevel, ...baseOptions }, action);
459
+ const author = readRuntimeString(args, "author");
460
+ const authorFromAssignee = action !== void 0 && LIFECYCLE_AUTHOR_ALIAS_ACTIONS.has(action) ? readRuntimeString(args, "assignee") ?? readRuntimeString(options, "assignee") : void 0;
461
+ if (author && options.author === void 0) {
462
+ return { ...options, author };
463
+ }
464
+ if (authorFromAssignee && options.author === void 0) {
465
+ return { ...options, author: authorFromAssignee };
466
+ }
467
+ return options;
468
+ }
469
+ function withAddNoteOption(options) {
470
+ if (options.addNote === void 0) {
471
+ return options;
472
+ }
473
+ const next2 = { ...options };
474
+ if (next2.note === void 0 && typeof next2.addNote === "string") {
475
+ next2.note = next2.addNote;
476
+ }
477
+ delete next2.addNote;
478
+ return next2;
479
+ }
480
+ function withFilesDiscoveryOptions(options) {
481
+ const next2 = { ...options };
482
+ if (next2.discoveryNote !== void 0 && next2.note === void 0 && typeof next2.discoveryNote === "string") {
483
+ next2.note = next2.discoveryNote;
484
+ }
485
+ delete next2.discover;
486
+ delete next2.discoveryNote;
487
+ return next2;
488
+ }
489
+ function normalizeActionName(value) {
490
+ const chunks = [];
491
+ let lastWasSeparator = true;
492
+ for (const character of value.trim().toLowerCase()) {
493
+ const isAlphaNumeric = character >= "a" && character <= "z" || character >= "0" && character <= "9";
494
+ if (isAlphaNumeric) {
495
+ chunks.push(character);
496
+ lastWasSeparator = false;
497
+ continue;
498
+ }
499
+ if (!lastWasSeparator) {
500
+ chunks.push("-");
501
+ lastWasSeparator = true;
502
+ }
503
+ }
504
+ if (chunks.at(-1) === "-") {
505
+ chunks.pop();
506
+ }
507
+ return chunks.join("");
508
+ }
509
+ function normalizeCommandPath(value) {
510
+ return value.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ");
511
+ }
512
+ function readRuntimeStringArray(value) {
513
+ if (!Array.isArray(value)) {
514
+ return [];
515
+ }
516
+ return value.map((entry) => String(entry)).filter((entry) => entry.length > 0);
517
+ }
518
+ function extensionOptionsFromArgs(args, options) {
519
+ const reserved = /* @__PURE__ */ new Set([
520
+ "action",
521
+ "args",
522
+ "author",
523
+ "cwd",
524
+ "fullChangedFields",
525
+ "id",
526
+ "options",
527
+ "path",
528
+ "query",
529
+ "reason",
530
+ "target"
531
+ ]);
532
+ const passthrough = {};
533
+ for (const [key, value] of Object.entries(args)) {
534
+ if (!reserved.has(key)) {
535
+ passthrough[key] = value;
536
+ }
537
+ }
538
+ const normalizedOptions = { ...passthrough, ...options };
539
+ delete normalizedOptions.args;
540
+ return normalizedOptions;
541
+ }
542
+ function withMutationCompaction(args, options) {
543
+ return {
544
+ changedFields: args.fullChangedFields === true ? "full" : "compact",
545
+ idOnly: args.idOnly === true,
546
+ runnerOptions: { ...options }
547
+ };
548
+ }
549
+ function mutationListOptions(options) {
550
+ return {
551
+ type: readRuntimeScalarString(options, "filterType"),
552
+ tag: readRuntimeScalarString(options, "filterTag"),
553
+ priority: readRuntimeScalarString(options, "filterPriority"),
554
+ deadlineBefore: readRuntimeScalarString(options, "filterDeadlineBefore"),
555
+ deadlineAfter: readRuntimeScalarString(options, "filterDeadlineAfter"),
556
+ updatedAfter: readRuntimeScalarString(options, "filterUpdatedAfter"),
557
+ updatedBefore: readRuntimeScalarString(options, "filterUpdatedBefore"),
558
+ createdAfter: readRuntimeScalarString(options, "filterCreatedAfter"),
559
+ createdBefore: readRuntimeScalarString(options, "filterCreatedBefore"),
560
+ ids: readRuntimeScalarStringAllowBlank(options, "ids"),
561
+ assignee: readRuntimeScalarString(options, "filterAssignee"),
562
+ assigneeFilter: readRuntimeScalarString(options, "filterAssigneeFilter") ?? readRuntimeScalarString(options, "filterAssignee_filter"),
563
+ parent: readRuntimeScalarString(options, "filterParent"),
564
+ sprint: readRuntimeScalarString(options, "filterSprint"),
565
+ release: readRuntimeScalarString(options, "filterRelease"),
566
+ limit: readRuntimeScalarString(options, "limit"),
567
+ offset: readRuntimeScalarString(options, "offset")
568
+ };
569
+ }
570
+ function readGraphIdListOption(value) {
571
+ if (typeof value === "string" && value.trim().length > 0)
572
+ return value;
573
+ if (Array.isArray(value))
574
+ return readRuntimeStringArray(value);
575
+ return void 0;
576
+ }
577
+ function readGraphBoundOption(value) {
578
+ if (typeof value === "number" && Number.isFinite(value))
579
+ return value;
580
+ if (typeof value === "string" && value.trim().length > 0)
581
+ return value;
582
+ return void 0;
583
+ }
584
+ function graphOptionsFromFlat(options) {
585
+ const kind = readGraphIdListOption(options.kind);
586
+ const exemptIsolate = readGraphIdListOption(options.exemptIsolate);
587
+ return {
588
+ ...kind === void 0 ? {} : { kind },
589
+ maxDepth: readGraphBoundOption(options.maxDepth),
590
+ limit: readGraphBoundOption(options.limit),
591
+ after: readRuntimeString(options, "after"),
592
+ direction: readRuntimeString(options, "direction"),
593
+ maxPaths: readGraphBoundOption(options.maxPaths),
594
+ sample: readGraphBoundOption(options.sample),
595
+ ...exemptIsolate === void 0 ? {} : { exemptIsolate },
596
+ summary: options.summary === true
597
+ };
598
+ }
599
+ function closeManyOptionsFromFlat(options) {
600
+ return {
601
+ status: readRuntimeString(options, "filterStatus"),
602
+ list: isRuntimeRecord(options.list) ? normalizeListOptions(options.list) : mutationListOptions(options),
603
+ reason: readRuntimeString(options, "reason"),
604
+ resolution: readRuntimeString(options, "resolution"),
605
+ expectedResult: readRuntimeString(options, "expectedResult") ?? readRuntimeString(options, "expected_result") ?? readRuntimeString(options, "expected"),
606
+ actualResult: readRuntimeString(options, "actualResult") ?? readRuntimeString(options, "actual_result") ?? readRuntimeString(options, "actual"),
607
+ validateClose: readRuntimeString(options, "validateClose") ?? readRuntimeString(options, "validate_close"),
608
+ author: readRuntimeString(options, "author"),
609
+ message: readRuntimeString(options, "message"),
610
+ force: options.force === true ? true : void 0,
611
+ dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
612
+ rollback: readRuntimeString(options, "rollback"),
613
+ checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
614
+ };
615
+ }
616
+ var UPDATE_MANY_FLAT_CONTROL_KEYS = /* @__PURE__ */ new Set([
617
+ "filterStatus",
618
+ "filterType",
619
+ "filterTag",
620
+ "filterPriority",
621
+ "filterDeadlineBefore",
622
+ "filterDeadlineAfter",
623
+ "filterUpdatedAfter",
624
+ "filterUpdatedBefore",
625
+ "filterCreatedAfter",
626
+ "filterCreatedBefore",
627
+ "filterAssignee",
628
+ "filterAssigneeFilter",
629
+ "filterAssignee_filter",
630
+ "filterParent",
631
+ "filterSprint",
632
+ "filterRelease",
633
+ "ids",
634
+ "list",
635
+ "update",
636
+ "limit",
637
+ "offset",
638
+ "dryRun",
639
+ "dry_run",
640
+ "rollback",
641
+ "checkpoint",
642
+ "noCheckpoint",
643
+ "no_checkpoint"
644
+ ]);
645
+ function updateManyUpdateOptionsFromFlat(options) {
646
+ const update2 = {};
647
+ for (const [key, value] of Object.entries(options)) {
648
+ if (UPDATE_MANY_FLAT_CONTROL_KEYS.has(key)) {
649
+ continue;
650
+ }
651
+ update2[key] = value;
330
652
  }
331
- if (typeof value === "string" && value.trim().length > 0) {
332
- const parsed = Number(value);
333
- if (!Number.isInteger(parsed)) {
334
- throw new PmCliError(`${label} must be a finite integer.`, EXIT_CODE.USAGE);
653
+ return normalizeMcpUpdateOptions(update2);
654
+ }
655
+ function normalizeMcpUpdateOptions(options) {
656
+ const normalizedInput = normalizeMcpOptionsArrays(options, "update-many");
657
+ for (const contract of UPDATE_COMMANDER_STRING_OPTION_CONTRACTS) {
658
+ for (const key of contract.keys) {
659
+ const value = normalizedInput[key];
660
+ if (typeof value === "number" && Number.isFinite(value)) {
661
+ normalizedInput[key] = String(value);
662
+ }
335
663
  }
336
- return parsed;
337
664
  }
338
- return void 0;
665
+ return normalizeUpdateOptions(normalizedInput);
666
+ }
667
+ function updateManyOptionsFromFlat(options) {
668
+ if (isRuntimeRecord(options.list) || isRuntimeRecord(options.update)) {
669
+ const updateSource = isRuntimeRecord(options.update) ? options.update : updateManyUpdateOptionsFromFlat(options);
670
+ return {
671
+ status: readRuntimeScalarString(options, "filterStatus"),
672
+ list: isRuntimeRecord(options.list) ? normalizeListOptions(options.list) : mutationListOptions(options),
673
+ update: normalizeMcpUpdateOptions(updateSource),
674
+ dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
675
+ rollback: readRuntimeString(options, "rollback"),
676
+ checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
677
+ };
678
+ }
679
+ return {
680
+ status: readRuntimeScalarString(options, "filterStatus"),
681
+ list: mutationListOptions(options),
682
+ update: updateManyUpdateOptionsFromFlat(options),
683
+ dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
684
+ rollback: readRuntimeString(options, "rollback"),
685
+ checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
686
+ };
339
687
  }
340
688
 
341
689
  // dist/sdk/history-mcp.js
@@ -1473,6 +1821,7 @@ var CALENDAR_FLAGS = toCompletionFlagString(CALENDAR_FLAG_CONTRACTS);
1473
1821
  var CONTEXT_FLAGS = toCompletionFlagString(CONTEXT_FLAG_CONTRACTS);
1474
1822
  var NEXT_FLAGS = toCompletionFlagString(NEXT_FLAG_CONTRACTS);
1475
1823
  var DEPS_FLAGS = toCompletionFlagString(DEPS_FLAG_CONTRACTS);
1824
+ var GRAPH_FLAGS = toCompletionFlagString(GRAPH_FLAG_CONTRACTS);
1476
1825
  var GUIDE_FLAGS = toCompletionFlagString(GUIDE_FLAG_CONTRACTS);
1477
1826
  var SEARCH_FLAGS = toCompletionFlagString(SEARCH_FLAG_CONTRACTS);
1478
1827
  var HEALTH_FLAGS = toCompletionFlagString(HEALTH_FLAG_CONTRACTS);
@@ -1565,6 +1914,7 @@ var COMMAND_COMPLETION_DESCRIPTIONS = [
1565
1914
  ["files", "Manage linked files"],
1566
1915
  ["docs", "Manage linked docs"],
1567
1916
  ["deps", "Show dependency relationships for an item"],
1917
+ ["graph", "Bounded graph traversal, analytics, and governance-audit queries"],
1568
1918
  ["test", "Manage linked tests and optionally run them"],
1569
1919
  ["test-all", "Run linked tests across matching items"],
1570
1920
  ["test-runs", "Manage background linked-test runs"],
@@ -2021,6 +2371,9 @@ function generateBashScript(itemTypes = [], tags = [], eagerTagExpansion = false
2021
2371
  " deps)",
2022
2372
  ` COMPREPLY=(${compgen(DEPS_FLAGS)})`,
2023
2373
  " ;;",
2374
+ " graph)",
2375
+ ` COMPREPLY=(${compgen(`ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan ${GRAPH_FLAGS}`)})`,
2376
+ " ;;",
2024
2377
  " test)",
2025
2378
  ` COMPREPLY=(${compgen("--add --add-json --remove --list --run --match --only-index --only-last --background --timeout --progress --env-set --env-clear --shared-host-safe --pm-context --override-linked-pm-context --fail-on-context-mismatch --fail-on-skipped --fail-on-empty-test-run --require-assertions-for-pm --check-context --auto-pm-context --author --message --force --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
2026
2379
  " ;;",
@@ -2722,10 +3075,31 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
2722
3075
  ;;
2723
3076
  deps)
2724
3077
  _arguments \\
2725
- '--format[Output format]:(tree graph)' \\
3078
+ '--format[Output format]:(tree graph context)' \\
2726
3079
  '--max-depth[Maximum traversal depth (0 keeps root only)]:depth' \\
2727
3080
  '--collapse[Collapse mode]:(none repeated)' \\
2728
3081
  '--summary[Return counts only without tree/graph payload]' \\
3082
+ '--node-limit[Maximum nodes in context output]:number' \\
3083
+ '--edge-limit[Maximum edges in context output]:number' \\
3084
+ '--token-budget[Maximum estimated tokens in context output]:number' \\
3085
+ '--cursor[Continue an equivalent context query]:cursor' \\
3086
+ '--direction[Context traversal direction]:(outgoing incoming both)' \\
3087
+ '--kind[Restrict context traversal to relationship kinds]:kind' \\
3088
+ '--json[Output JSON]' \\
3089
+ '--quiet[Suppress stdout]'
3090
+ ;;
3091
+ graph)
3092
+ _arguments \\
3093
+ '1:subcommand:(ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan)' \\
3094
+ '--kind[Restrict traversal to registered relationship kinds]:kind' \\
3095
+ '--max-depth[Maximum traversal depth]:depth' \\
3096
+ '--limit[Maximum returned rows per bounded collection]:number' \\
3097
+ '--after[Resume a traversal after this node id]:id' \\
3098
+ '--direction[Edge orientation for paths/impact]:(outgoing incoming both)' \\
3099
+ '--max-paths[Maximum enumerated paths]:number' \\
3100
+ '--sample[Maximum evidence sample entries per audit finding]:number' \\
3101
+ '--exempt-isolate[Item ids treated as explicitly valid isolates]:id' \\
3102
+ '--summary[Return counts-first envelopes without row collections]' \\
2729
3103
  '--json[Output JSON]' \\
2730
3104
  '--quiet[Suppress stdout]'
2731
3105
  ;;
@@ -3589,10 +3963,26 @@ complete -c pm -n '__fish_seen_subcommand_from contracts' -l flags-only -d 'Retu
3589
3963
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l availability-only -d 'Return action availability only'
3590
3964
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l runtime-only -d 'Include only actions invocable in the current runtime'
3591
3965
  complete -c pm -n '__fish_seen_subcommand_from contracts' -l active-only -d 'Alias for --runtime-only'
3592
- complete -c pm -n '__fish_seen_subcommand_from deps' -l format -d 'Output format' -r -a 'tree graph'
3966
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l format -d 'Output format' -r -a 'tree graph context'
3593
3967
  complete -c pm -n '__fish_seen_subcommand_from deps' -l max-depth -d 'Maximum traversal depth (0 keeps root only)' -r
3594
3968
  complete -c pm -n '__fish_seen_subcommand_from deps' -l collapse -d 'Collapse mode' -r -a 'none repeated'
3595
3969
  complete -c pm -n '__fish_seen_subcommand_from deps' -l summary -d 'Return counts only without tree/graph payload'
3970
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l node-limit -d 'Maximum nodes in context output' -r
3971
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l edge-limit -d 'Maximum edges in context output' -r
3972
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l token-budget -d 'Maximum estimated tokens in context output' -r
3973
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l cursor -d 'Continue an equivalent context query' -r
3974
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l direction -d 'Context traversal direction' -r -a 'outgoing incoming both'
3975
+ complete -c pm -n '__fish_seen_subcommand_from deps' -l kind -d 'Restrict context traversal to relationship kinds' -r
3976
+ complete -c pm -n '__fish_seen_subcommand_from graph' -a 'ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan' -d 'Graph query'
3977
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l kind -d 'Restrict traversal to registered relationship kinds' -r
3978
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l max-depth -d 'Maximum traversal depth' -r
3979
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l limit -d 'Maximum returned rows per bounded collection' -r
3980
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l after -d 'Resume a traversal after this node id' -r
3981
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l direction -d 'Edge orientation for paths/impact' -r -a 'outgoing incoming both'
3982
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l max-paths -d 'Maximum enumerated paths' -r
3983
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l sample -d 'Maximum evidence sample entries per audit finding' -r
3984
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l exempt-isolate -d 'Item ids treated as explicitly valid isolates' -r
3985
+ complete -c pm -n '__fish_seen_subcommand_from graph' -l summary -d 'Return counts-first envelopes without row collections'
3596
3986
 
3597
3987
  # comments / notes / learnings flags
3598
3988
  complete -c pm -n '__fish_seen_subcommand_from comments notes learnings' -l add -d 'Add one entry (text=<value> or plain text)' -r
@@ -4686,6 +5076,10 @@ var PmClient = class {
4686
5076
  deps(id, options = {}) {
4687
5077
  return this.runTyped("deps", { id, options });
4688
5078
  }
5079
+ /** Run bounded workspace graph traversal, analytics, or governance-audit queries. */
5080
+ graph(subcommand, ids = {}, options = {}) {
5081
+ return this.runTyped("graph", { subcommand, ...ids, options });
5082
+ }
4689
5083
  /** Append markdown/body text to an item through the mutation pipeline. */
4690
5084
  append(id, body, options = {}) {
4691
5085
  return this.runTyped("append", {
@@ -5138,6 +5532,9 @@ function docs(id, options = {}, clientOptions = {}) {
5138
5532
  function deps(id, options = {}, clientOptions = {}) {
5139
5533
  return new PmClient(clientOptions).deps(id, options);
5140
5534
  }
5535
+ function graph(subcommand, ids = {}, options = {}, clientOptions = {}) {
5536
+ return new PmClient(clientOptions).graph(subcommand, ids, options);
5537
+ }
5141
5538
  function append(id, body, options = {}, clientOptions = {}) {
5142
5539
  return new PmClient(clientOptions).append(id, body, options);
5143
5540
  }
@@ -5277,288 +5674,88 @@ function extensionActivate(target, options = {}, clientOptions = {}) {
5277
5674
  return new PmClient(clientOptions).extensionActivate(target, options);
5278
5675
  }
5279
5676
  function extensionDeactivate(target, options = {}, clientOptions = {}) {
5280
- return new PmClient(clientOptions).extensionDeactivate(target, options);
5281
- }
5282
- function packageLifecycle(target, options = {}, clientOptions = {}) {
5283
- return new PmClient(clientOptions).package(target, options);
5284
- }
5285
- function packageList(options = {}, clientOptions = {}) {
5286
- return new PmClient(clientOptions).packageList(options);
5287
- }
5288
- function packageInstall(target, options = {}, clientOptions = {}) {
5289
- return new PmClient(clientOptions).packageInstall(target, options);
5290
- }
5291
- function packageUninstall(target, options = {}, clientOptions = {}) {
5292
- return new PmClient(clientOptions).packageUninstall(target, options);
5293
- }
5294
- function packageDoctor(options = {}, clientOptions = {}) {
5295
- return new PmClient(clientOptions).packageDoctor(options);
5296
- }
5297
- function packageManage(target, options = {}, clientOptions = {}) {
5298
- return new PmClient(clientOptions).packageManage(target, options);
5299
- }
5300
- function packageDescribe(target, options = {}, clientOptions = {}) {
5301
- return new PmClient(clientOptions).packageDescribe(target, options);
5302
- }
5303
- function packageReload(options = {}, clientOptions = {}) {
5304
- return new PmClient(clientOptions).packageReload(options);
5305
- }
5306
- function packageCatalog(options = {}, clientOptions = {}) {
5307
- return new PmClient(clientOptions).packageCatalog(options);
5308
- }
5309
- function packageActivate(target, options = {}, clientOptions = {}) {
5310
- return new PmClient(clientOptions).packageActivate(target, options);
5311
- }
5312
- function packageDeactivate(target, options = {}, clientOptions = {}) {
5313
- return new PmClient(clientOptions).packageDeactivate(target, options);
5314
- }
5315
- function upgrade(target, options = {}, clientOptions = {}) {
5316
- return new PmClient(clientOptions).upgrade(target, options);
5317
- }
5318
- function buildWorkspaceExtensionRegistrationsCacheKey(pmRoot, settings, cwd) {
5319
- return JSON.stringify([
5320
- path3.resolve(pmRoot),
5321
- path3.resolve(cwd ?? process.cwd()),
5322
- settings.extensions.enabled,
5323
- settings.extensions.disabled,
5324
- settings.extensions.policy
5325
- ]);
5326
- }
5327
- async function resolveWorkspaceExtensionRegistrations(pmRoot, settings, cwd) {
5328
- const cacheKey = buildWorkspaceExtensionRegistrationsCacheKey(pmRoot, settings, cwd);
5329
- return memoizeWorkspaceExtensionRegistrations(cacheKey, () => loadWorkspaceExtensionRegistrations(pmRoot, settings, cwd));
5330
- }
5331
- async function getWorkspaceContracts(pmRoot, options = {}) {
5332
- const settings = await readSettings(pmRoot);
5333
- const extensionRegistrations = options.extensionRegistrations ?? (options.noExtensions === true ? null : await resolveWorkspaceExtensionRegistrations(pmRoot, settings, options.cwd));
5334
- const typeRegistry = resolveItemTypeRegistry(settings, extensionRegistrations);
5335
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
5336
- return {
5337
- types: [...typeRegistry.types],
5338
- statuses: statusRegistry.definitions.map((definition) => definition.id),
5339
- openStatus: statusRegistry.open_status,
5340
- closeStatus: statusRegistry.close_status,
5341
- canceledStatus: statusRegistry.canceled_status
5342
- };
5343
- }
5344
- async function getContracts(pmRootOrOptions, options = {}) {
5345
- const resolvedOptions = typeof pmRootOrOptions === "string" ? { ...options, pmRoot: pmRootOrOptions } : pmRootOrOptions ?? options;
5346
- const global = {
5347
- json: true,
5348
- quiet: resolvedOptions.quiet ?? true,
5349
- noExtensions: resolvedOptions.noExtensions ?? false,
5350
- noPager: true,
5351
- profile: resolvedOptions.profile ?? false,
5352
- path: resolvedOptions.pmRoot
5353
- };
5354
- return runContracts(resolvedOptions, global);
5355
- }
5356
- function readRequiredString(args, key) {
5357
- const value = readRuntimeString(args, key);
5358
- if (!value) {
5359
- throw new PmCliError(`Missing required argument: ${key}`, 64);
5360
- }
5361
- return value;
5362
- }
5363
- function globalOptions(args) {
5364
- return {
5365
- json: true,
5366
- quiet: true,
5367
- path: readRuntimeString(args, "path"),
5368
- noExtensions: args.noExtensions === true || args.no_extensions === true,
5369
- noPager: true
5370
- };
5371
- }
5372
- var ARRAY_TO_CSV_FIELDS = /* @__PURE__ */ new Set([
5373
- "tags",
5374
- "blockedBy",
5375
- "blocked_by",
5376
- "skills",
5377
- "fields"
5378
- ]);
5379
- var SCALAR_TO_ARRAY_FIELDS = /* @__PURE__ */ new Set([
5380
- "comment",
5381
- "note",
5382
- "learning",
5383
- "reminder",
5384
- "event",
5385
- "dep",
5386
- "depRemove",
5387
- "dep_remove",
5388
- "file",
5389
- "doc",
5390
- "test",
5391
- "unset",
5392
- "addGlob",
5393
- "add_glob",
5394
- "migrate",
5395
- "envSet",
5396
- "env_set",
5397
- "envClear",
5398
- "env_clear"
5399
- ]);
5400
- var ARRAY_ADD_REMOVE_ACTIONS = /* @__PURE__ */ new Set([
5401
- "files",
5402
- "files-discover",
5403
- "docs",
5404
- "test",
5405
- "test-all"
5406
- ]);
5407
- var LIFECYCLE_AUTHOR_ALIAS_ACTIONS = /* @__PURE__ */ new Set([
5408
- "claim",
5409
- "release",
5410
- "start-task",
5411
- "pause-task",
5412
- "close-task"
5413
- ]);
5414
- function normalizeMcpOptionsArrays(options, action) {
5415
- const result = {};
5416
- const promoteAddRemove = action !== void 0 && ARRAY_ADD_REMOVE_ACTIONS.has(action);
5417
- const preserveStandaloneNote = action === "files" || action === "files-discover" || action === "docs";
5418
- for (const [key, value] of Object.entries(options)) {
5419
- if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
5420
- result[key] = value.join(",");
5421
- continue;
5422
- }
5423
- if (key === "note" && preserveStandaloneNote) {
5424
- result[key] = value;
5425
- continue;
5426
- }
5427
- if (typeof value === "string" && SCALAR_TO_ARRAY_FIELDS.has(key)) {
5428
- result[key] = [value];
5429
- continue;
5430
- }
5431
- if (typeof value === "string" && promoteAddRemove && (key === "add" || key === "remove")) {
5432
- result[key] = [value];
5433
- continue;
5434
- }
5435
- result[key] = value;
5436
- }
5437
- return result;
5438
- }
5439
- function optionsWithAuthor(args, action) {
5440
- const baseOptions = asRecordClone(args.options);
5441
- const hoistedTopLevel = {};
5442
- const hoistKey = (key) => {
5443
- if (baseOptions[key] !== void 0 || args[key] === void 0) {
5444
- return;
5445
- }
5446
- hoistedTopLevel[key] = args[key];
5447
- };
5448
- if (action === "list") {
5449
- hoistKey("status");
5450
- hoistKey("type");
5451
- hoistKey("tag");
5452
- hoistKey("priority");
5453
- hoistKey("limit");
5454
- hoistKey("offset");
5455
- } else if (action === "search") {
5456
- hoistKey("mode");
5457
- hoistKey("status");
5458
- hoistKey("type");
5459
- hoistKey("tag");
5460
- hoistKey("priority");
5461
- hoistKey("limit");
5462
- } else if (action === "create") {
5463
- hoistKey("title");
5464
- hoistKey("type");
5465
- hoistKey("status");
5466
- hoistKey("description");
5467
- hoistKey("body");
5468
- hoistKey("priority");
5469
- hoistKey("tags");
5470
- hoistKey("parent");
5471
- hoistKey("createMode");
5472
- hoistKey("create_mode");
5473
- hoistKey("allowMissingParent");
5474
- } else if (action === "close") {
5475
- hoistKey("duplicateOf");
5476
- } else if (action === "append") {
5477
- hoistKey("body");
5478
- }
5479
- const options = normalizeMcpOptionsArrays({ ...hoistedTopLevel, ...baseOptions }, action);
5480
- const author = readRuntimeString(args, "author");
5481
- const authorFromAssignee = action !== void 0 && LIFECYCLE_AUTHOR_ALIAS_ACTIONS.has(action) ? readRuntimeString(args, "assignee") ?? readRuntimeString(options, "assignee") : void 0;
5482
- if (author && options.author === void 0) {
5483
- return { ...options, author };
5484
- }
5485
- if (authorFromAssignee && options.author === void 0) {
5486
- return { ...options, author: authorFromAssignee };
5487
- }
5488
- return options;
5677
+ return new PmClient(clientOptions).extensionDeactivate(target, options);
5489
5678
  }
5490
- function withAddNoteOption(options) {
5491
- if (options.addNote === void 0) {
5492
- return options;
5493
- }
5494
- const next2 = { ...options };
5495
- if (next2.note === void 0 && typeof next2.addNote === "string") {
5496
- next2.note = next2.addNote;
5497
- }
5498
- delete next2.addNote;
5499
- return next2;
5679
+ function packageLifecycle(target, options = {}, clientOptions = {}) {
5680
+ return new PmClient(clientOptions).package(target, options);
5500
5681
  }
5501
- function withFilesDiscoveryOptions(options) {
5502
- const next2 = { ...options };
5503
- if (next2.discoveryNote !== void 0 && next2.note === void 0 && typeof next2.discoveryNote === "string") {
5504
- next2.note = next2.discoveryNote;
5505
- }
5506
- delete next2.discover;
5507
- delete next2.discoveryNote;
5508
- return next2;
5682
+ function packageList(options = {}, clientOptions = {}) {
5683
+ return new PmClient(clientOptions).packageList(options);
5509
5684
  }
5510
- function normalizeActionName(value) {
5511
- const chunks = [];
5512
- let lastWasSeparator = true;
5513
- for (const character of value.trim().toLowerCase()) {
5514
- const isAlphaNumeric = character >= "a" && character <= "z" || character >= "0" && character <= "9";
5515
- if (isAlphaNumeric) {
5516
- chunks.push(character);
5517
- lastWasSeparator = false;
5518
- continue;
5519
- }
5520
- if (!lastWasSeparator) {
5521
- chunks.push("-");
5522
- lastWasSeparator = true;
5523
- }
5524
- }
5525
- if (chunks.at(-1) === "-") {
5526
- chunks.pop();
5527
- }
5528
- return chunks.join("");
5685
+ function packageInstall(target, options = {}, clientOptions = {}) {
5686
+ return new PmClient(clientOptions).packageInstall(target, options);
5529
5687
  }
5530
- function normalizeCommandPath(value) {
5531
- return value.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ");
5688
+ function packageUninstall(target, options = {}, clientOptions = {}) {
5689
+ return new PmClient(clientOptions).packageUninstall(target, options);
5532
5690
  }
5533
- function readStringArray(value) {
5534
- if (!Array.isArray(value)) {
5535
- return [];
5536
- }
5537
- return value.map((entry) => String(entry)).filter((entry) => entry.length > 0);
5691
+ function packageDoctor(options = {}, clientOptions = {}) {
5692
+ return new PmClient(clientOptions).packageDoctor(options);
5538
5693
  }
5539
- function extensionOptionsFromArgs(args, options) {
5540
- const reserved = /* @__PURE__ */ new Set([
5541
- "action",
5542
- "args",
5543
- "author",
5544
- "cwd",
5545
- "fullChangedFields",
5546
- "id",
5547
- "options",
5548
- "path",
5549
- "query",
5550
- "reason",
5551
- "target"
5694
+ function packageManage(target, options = {}, clientOptions = {}) {
5695
+ return new PmClient(clientOptions).packageManage(target, options);
5696
+ }
5697
+ function packageDescribe(target, options = {}, clientOptions = {}) {
5698
+ return new PmClient(clientOptions).packageDescribe(target, options);
5699
+ }
5700
+ function packageReload(options = {}, clientOptions = {}) {
5701
+ return new PmClient(clientOptions).packageReload(options);
5702
+ }
5703
+ function packageCatalog(options = {}, clientOptions = {}) {
5704
+ return new PmClient(clientOptions).packageCatalog(options);
5705
+ }
5706
+ function packageActivate(target, options = {}, clientOptions = {}) {
5707
+ return new PmClient(clientOptions).packageActivate(target, options);
5708
+ }
5709
+ function packageDeactivate(target, options = {}, clientOptions = {}) {
5710
+ return new PmClient(clientOptions).packageDeactivate(target, options);
5711
+ }
5712
+ function upgrade(target, options = {}, clientOptions = {}) {
5713
+ return new PmClient(clientOptions).upgrade(target, options);
5714
+ }
5715
+ function buildWorkspaceExtensionRegistrationsCacheKey(pmRoot, settings, cwd) {
5716
+ return JSON.stringify([
5717
+ path3.resolve(pmRoot),
5718
+ path3.resolve(cwd ?? process.cwd()),
5719
+ settings.extensions.enabled,
5720
+ settings.extensions.disabled,
5721
+ settings.extensions.policy
5552
5722
  ]);
5553
- const passthrough = {};
5554
- for (const [key, value] of Object.entries(args)) {
5555
- if (!reserved.has(key)) {
5556
- passthrough[key] = value;
5557
- }
5723
+ }
5724
+ async function resolveWorkspaceExtensionRegistrations(pmRoot, settings, cwd) {
5725
+ const cacheKey = buildWorkspaceExtensionRegistrationsCacheKey(pmRoot, settings, cwd);
5726
+ return memoizeWorkspaceExtensionRegistrations(cacheKey, () => loadWorkspaceExtensionRegistrations(pmRoot, settings, cwd));
5727
+ }
5728
+ async function getWorkspaceContracts(pmRoot, options = {}) {
5729
+ const settings = await readSettings(pmRoot);
5730
+ const extensionRegistrations = options.extensionRegistrations ?? (options.noExtensions === true ? null : await resolveWorkspaceExtensionRegistrations(pmRoot, settings, options.cwd));
5731
+ const typeRegistry = resolveItemTypeRegistry(settings, extensionRegistrations);
5732
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
5733
+ return {
5734
+ types: [...typeRegistry.types],
5735
+ statuses: statusRegistry.definitions.map((definition) => definition.id),
5736
+ openStatus: statusRegistry.open_status,
5737
+ closeStatus: statusRegistry.close_status,
5738
+ canceledStatus: statusRegistry.canceled_status
5739
+ };
5740
+ }
5741
+ async function getContracts(pmRootOrOptions, options = {}) {
5742
+ const resolvedOptions = typeof pmRootOrOptions === "string" ? { ...options, pmRoot: pmRootOrOptions } : pmRootOrOptions ?? options;
5743
+ const global = {
5744
+ json: true,
5745
+ quiet: resolvedOptions.quiet ?? true,
5746
+ noExtensions: resolvedOptions.noExtensions ?? false,
5747
+ noPager: true,
5748
+ profile: resolvedOptions.profile ?? false,
5749
+ path: resolvedOptions.pmRoot
5750
+ };
5751
+ return runContracts(resolvedOptions, global);
5752
+ }
5753
+ function readRequiredString(args, key) {
5754
+ const value = readRuntimeString(args, key);
5755
+ if (!value) {
5756
+ throw new PmCliError(`Missing required argument: ${key}`, 64);
5558
5757
  }
5559
- const normalizedOptions = { ...passthrough, ...options };
5560
- delete normalizedOptions.args;
5561
- return normalizedOptions;
5758
+ return value;
5562
5759
  }
5563
5760
  var extensionActivationQueue = createSerialQueue();
5564
5761
  function resetActiveExtensionRegistries() {
@@ -5635,7 +5832,7 @@ async function dispatchActiveExtensionAction(action, args, options, global, acti
5635
5832
  }
5636
5833
  const handlerResult = await runActiveCommandHandler({
5637
5834
  command: normalizeCommandPath(command),
5638
- args: readStringArray(options.args ?? args.args),
5835
+ args: readRuntimeStringArray(options.args ?? args.args),
5639
5836
  options: extensionOptionsFromArgs(args, options),
5640
5837
  global,
5641
5838
  pm_root: active.pmRoot
@@ -5655,123 +5852,6 @@ async function withCwd(cwd, run) {
5655
5852
  process.chdir(previous);
5656
5853
  }
5657
5854
  }
5658
- function withMutationCompaction(args, options) {
5659
- return {
5660
- changedFields: args.fullChangedFields === true ? "full" : "compact",
5661
- idOnly: args.idOnly === true,
5662
- runnerOptions: { ...options }
5663
- };
5664
- }
5665
- function mutationListOptions(options) {
5666
- return {
5667
- type: readRuntimeScalarString(options, "filterType"),
5668
- tag: readRuntimeScalarString(options, "filterTag"),
5669
- priority: readRuntimeScalarString(options, "filterPriority"),
5670
- deadlineBefore: readRuntimeScalarString(options, "filterDeadlineBefore"),
5671
- deadlineAfter: readRuntimeScalarString(options, "filterDeadlineAfter"),
5672
- updatedAfter: readRuntimeScalarString(options, "filterUpdatedAfter"),
5673
- updatedBefore: readRuntimeScalarString(options, "filterUpdatedBefore"),
5674
- createdAfter: readRuntimeScalarString(options, "filterCreatedAfter"),
5675
- createdBefore: readRuntimeScalarString(options, "filterCreatedBefore"),
5676
- ids: readRuntimeScalarStringAllowBlank(options, "ids"),
5677
- assignee: readRuntimeScalarString(options, "filterAssignee"),
5678
- assigneeFilter: readRuntimeScalarString(options, "filterAssigneeFilter") ?? readRuntimeScalarString(options, "filterAssignee_filter"),
5679
- parent: readRuntimeScalarString(options, "filterParent"),
5680
- sprint: readRuntimeScalarString(options, "filterSprint"),
5681
- release: readRuntimeScalarString(options, "filterRelease"),
5682
- limit: readRuntimeScalarString(options, "limit"),
5683
- offset: readRuntimeScalarString(options, "offset")
5684
- };
5685
- }
5686
- function closeManyOptionsFromFlat(options) {
5687
- return {
5688
- status: readRuntimeString(options, "filterStatus"),
5689
- list: isRuntimeRecord(options.list) ? normalizeListOptions(options.list) : mutationListOptions(options),
5690
- reason: readRuntimeString(options, "reason"),
5691
- resolution: readRuntimeString(options, "resolution"),
5692
- expectedResult: readRuntimeString(options, "expectedResult") ?? readRuntimeString(options, "expected_result") ?? readRuntimeString(options, "expected"),
5693
- actualResult: readRuntimeString(options, "actualResult") ?? readRuntimeString(options, "actual_result") ?? readRuntimeString(options, "actual"),
5694
- validateClose: readRuntimeString(options, "validateClose") ?? readRuntimeString(options, "validate_close"),
5695
- author: readRuntimeString(options, "author"),
5696
- message: readRuntimeString(options, "message"),
5697
- force: options.force === true ? true : void 0,
5698
- dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
5699
- rollback: readRuntimeString(options, "rollback"),
5700
- checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
5701
- };
5702
- }
5703
- var UPDATE_MANY_FLAT_CONTROL_KEYS = /* @__PURE__ */ new Set([
5704
- "filterStatus",
5705
- "filterType",
5706
- "filterTag",
5707
- "filterPriority",
5708
- "filterDeadlineBefore",
5709
- "filterDeadlineAfter",
5710
- "filterUpdatedAfter",
5711
- "filterUpdatedBefore",
5712
- "filterCreatedAfter",
5713
- "filterCreatedBefore",
5714
- "filterAssignee",
5715
- "filterAssigneeFilter",
5716
- "filterAssignee_filter",
5717
- "filterParent",
5718
- "filterSprint",
5719
- "filterRelease",
5720
- "ids",
5721
- "list",
5722
- "update",
5723
- "limit",
5724
- "offset",
5725
- "dryRun",
5726
- "dry_run",
5727
- "rollback",
5728
- "checkpoint",
5729
- "noCheckpoint",
5730
- "no_checkpoint"
5731
- ]);
5732
- function updateManyUpdateOptionsFromFlat(options) {
5733
- const update2 = {};
5734
- for (const [key, value] of Object.entries(options)) {
5735
- if (UPDATE_MANY_FLAT_CONTROL_KEYS.has(key)) {
5736
- continue;
5737
- }
5738
- update2[key] = value;
5739
- }
5740
- return normalizeMcpUpdateOptions(update2);
5741
- }
5742
- function normalizeMcpUpdateOptions(options) {
5743
- const normalizedInput = normalizeMcpOptionsArrays(options, "update-many");
5744
- for (const contract of UPDATE_COMMANDER_STRING_OPTION_CONTRACTS) {
5745
- for (const key of contract.keys) {
5746
- const value = normalizedInput[key];
5747
- if (typeof value === "number" && Number.isFinite(value)) {
5748
- normalizedInput[key] = String(value);
5749
- }
5750
- }
5751
- }
5752
- return normalizeUpdateOptions(normalizedInput);
5753
- }
5754
- function updateManyOptionsFromFlat(options) {
5755
- if (isRuntimeRecord(options.list) || isRuntimeRecord(options.update)) {
5756
- const updateSource = isRuntimeRecord(options.update) ? options.update : updateManyUpdateOptionsFromFlat(options);
5757
- return {
5758
- status: readRuntimeScalarString(options, "filterStatus"),
5759
- list: isRuntimeRecord(options.list) ? normalizeListOptions(options.list) : mutationListOptions(options),
5760
- update: normalizeMcpUpdateOptions(updateSource),
5761
- dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
5762
- rollback: readRuntimeString(options, "rollback"),
5763
- checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
5764
- };
5765
- }
5766
- return {
5767
- status: readRuntimeScalarString(options, "filterStatus"),
5768
- list: mutationListOptions(options),
5769
- update: updateManyUpdateOptionsFromFlat(options),
5770
- dryRun: options.dryRun === true || options.dry_run === true ? true : void 0,
5771
- rollback: readRuntimeString(options, "rollback"),
5772
- checkpoint: options.checkpoint === false || options.noCheckpoint === true || options.no_checkpoint === true ? false : void 0
5773
- };
5774
- }
5775
5855
  var WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS = /* @__PURE__ */ new Set([
5776
5856
  "activity",
5777
5857
  "aggregate",
@@ -5780,6 +5860,7 @@ var WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS = /* @__PURE__ */ new Set([
5780
5860
  "deps",
5781
5861
  "files-discover",
5782
5862
  "get",
5863
+ "graph",
5783
5864
  "health",
5784
5865
  "history",
5785
5866
  "list",
@@ -5916,7 +5997,7 @@ function shouldInvalidateWorkspaceContractsCacheAfterAction(action) {
5916
5997
  }
5917
5998
  async function runAction(args) {
5918
5999
  const resolved = resolveSdkActionInput(args);
5919
- const global = globalOptions(resolved.args);
6000
+ const global = actionGlobalOptions(resolved.args);
5920
6001
  const invalidateWorkspaceContractsCache = shouldInvalidateWorkspaceContractsCacheAfterAction(resolved.action);
5921
6002
  const explicitCwd = readRuntimeString(resolved.args, "cwd");
5922
6003
  const resolutionCwd = explicitCwd ?? process.cwd();
@@ -6076,7 +6157,7 @@ function createMcpSchemaContext(ctx) {
6076
6157
  name: readRuntimeString(ctx.args, "name") ?? readRuntimeString(ctx.options, "name"),
6077
6158
  author: readRuntimeString(ctx.args, "author") ?? readRuntimeString(ctx.options, "author"),
6078
6159
  force: ctx.args.force === true || ctx.options.force === true,
6079
- aliases: aliasSource === void 0 ? void 0 : readStringArray(aliasSource)
6160
+ aliases: aliasSource === void 0 ? void 0 : readRuntimeStringArray(aliasSource)
6080
6161
  };
6081
6162
  }
6082
6163
  function runMcpSchemaReadOrRemoveAction(schema2) {
@@ -6101,14 +6182,14 @@ function runMcpSchemaAddFieldAction(schema2) {
6101
6182
  const requiredTypesSource = ctx.args.requiredTypes ?? ctx.options.requiredTypes;
6102
6183
  return runSchemaAddField(name, {
6103
6184
  type: readRuntimeString(ctx.args, "fieldType") ?? readRuntimeString(ctx.options, "fieldType"),
6104
- commands: commandsSource === void 0 ? void 0 : readStringArray(commandsSource),
6185
+ commands: commandsSource === void 0 ? void 0 : readRuntimeStringArray(commandsSource),
6105
6186
  description: readRuntimeString(ctx.args, "description") ?? readRuntimeString(ctx.options, "description"),
6106
6187
  cliFlag: readRuntimeString(ctx.args, "cliFlag") ?? readRuntimeString(ctx.options, "cliFlag"),
6107
6188
  alias: aliases,
6108
6189
  required: ctx.args.required === true || ctx.options.required === true,
6109
6190
  requiredOnCreate: ctx.args.requiredOnCreate === true || ctx.options.requiredOnCreate === true,
6110
6191
  allowUnset: !(ctx.args.allowUnset === false || ctx.options.allowUnset === false),
6111
- requiredTypes: requiredTypesSource === void 0 ? void 0 : readStringArray(requiredTypesSource),
6192
+ requiredTypes: requiredTypesSource === void 0 ? void 0 : readRuntimeStringArray(requiredTypesSource),
6112
6193
  author,
6113
6194
  force
6114
6195
  }, ctx.global);
@@ -6117,7 +6198,7 @@ function runMcpSchemaAddStatusAction(schema2) {
6117
6198
  const { ctx, name, author, force, aliases } = schema2;
6118
6199
  const roleSource = ctx.args.role ?? ctx.options.role;
6119
6200
  return runSchemaAddStatus(name, {
6120
- role: roleSource === void 0 ? void 0 : readStringArray(roleSource),
6201
+ role: roleSource === void 0 ? void 0 : readRuntimeStringArray(roleSource),
6121
6202
  alias: aliases,
6122
6203
  description: readRuntimeString(ctx.args, "description") ?? readRuntimeString(ctx.options, "description"),
6123
6204
  order: parseRuntimeInteger(ctx.args.order ?? ctx.options.order, "schema add-status order"),
@@ -6267,6 +6348,10 @@ async function runMcpCloseTaskAction(ctx) {
6267
6348
  release: releaseResult
6268
6349
  };
6269
6350
  }
6351
+ function runMcpGraphAction(ctx) {
6352
+ const merged = { ...ctx.args, ...ctx.options };
6353
+ return runGraph(readRequiredString(merged, "subcommand"), readRuntimeString(merged, "id") ?? ctx.id, readRuntimeString(merged, "target"), graphOptionsFromFlat(merged), ctx.global);
6354
+ }
6270
6355
  var SDK_ACTION_HANDLERS = {
6271
6356
  init: (ctx) => runInit(readRuntimeString(ctx.args, "prefix"), ctx.global, ctx.options),
6272
6357
  context: (ctx) => runContext(ctx.options, ctx.global),
@@ -6307,6 +6392,7 @@ var SDK_ACTION_HANDLERS = {
6307
6392
  upgrade: (ctx) => runUpgrade(readMcpTarget(ctx), ctx.options, ctx.global),
6308
6393
  delete: (ctx) => runDelete(requireMcpItemId(ctx), ctx.options, ctx.global),
6309
6394
  deps: (ctx) => runDeps(requireMcpItemId(ctx), ctx.options, ctx.global),
6395
+ graph: runMcpGraphAction,
6310
6396
  "files-discover": (ctx) => runFilesDiscover(requireMcpItemId(ctx), ctx.options, ctx.global),
6311
6397
  history: (ctx) => runHistory(requireMcpItemId(ctx), ctx.options, ctx.global),
6312
6398
  "history-redact": (ctx) => runHistoryRedact(requireMcpItemId(ctx), ctx.options, ctx.global),
@@ -6338,7 +6424,7 @@ async function dispatchAction(action, args, global, activeExtensions) {
6338
6424
  var actionRunnerTestHooks = {
6339
6425
  closeManyOptionsFromFlat,
6340
6426
  extensionOptionsFromArgs,
6341
- globalOptions,
6427
+ globalOptions: actionGlobalOptions,
6342
6428
  mutationListOptions,
6343
6429
  normalizeActionName,
6344
6430
  normalizeCommandPath,
@@ -6348,7 +6434,7 @@ var actionRunnerTestHooks = {
6348
6434
  readRequiredString,
6349
6435
  readScalarString: readRuntimeScalarString,
6350
6436
  readScalarStringAllowBlank: readRuntimeScalarStringAllowBlank,
6351
- readStringArray,
6437
+ readStringArray: readRuntimeStringArray,
6352
6438
  updateManyOptionsFromFlat,
6353
6439
  withAddNoteOption,
6354
6440
  withFilesDiscoveryOptions,
@@ -6423,6 +6509,7 @@ export {
6423
6509
  filesDiscover,
6424
6510
  docs,
6425
6511
  deps,
6512
+ graph,
6426
6513
  append,
6427
6514
  init,
6428
6515
  config,
@@ -6487,6 +6574,6 @@ export {
6487
6574
  readRequiredString,
6488
6575
  runAction
6489
6576
  };
6490
- //# sourceMappingURL=chunk-LPYWLWDS.js.map
6577
+ //# sourceMappingURL=chunk-SIPOACV5.js.map
6491
6578
 
6492
- //# debugId=f89dda3b-e8c4-53c1-8d8b-b884a198a28d
6579
+ //# debugId=038cbba4-9d1e-5b41-b501-d40eec7260cd