@unbrained/pm-cli 2026.7.1 → 2026.7.2

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 (563) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cli/commander-usage.d.ts +2 -0
  3. package/dist/cli/commander-usage.js +58 -47
  4. package/dist/cli/commander-usage.js.map +1 -1
  5. package/dist/cli/commands/aggregate.js +102 -79
  6. package/dist/cli/commands/aggregate.js.map +1 -1
  7. package/dist/cli/commands/calendar.js +278 -243
  8. package/dist/cli/commands/calendar.js.map +1 -1
  9. package/dist/cli/commands/close-many.js +89 -68
  10. package/dist/cli/commands/close-many.js.map +1 -1
  11. package/dist/cli/commands/close.js +157 -129
  12. package/dist/cli/commands/close.js.map +1 -1
  13. package/dist/cli/commands/comments-audit.js +50 -42
  14. package/dist/cli/commands/comments-audit.js.map +1 -1
  15. package/dist/cli/commands/config.d.ts +2 -0
  16. package/dist/cli/commands/config.js +443 -879
  17. package/dist/cli/commands/config.js.map +1 -1
  18. package/dist/cli/commands/context.js +365 -287
  19. package/dist/cli/commands/context.js.map +1 -1
  20. package/dist/cli/commands/contracts.js +352 -238
  21. package/dist/cli/commands/contracts.js.map +1 -1
  22. package/dist/cli/commands/dedupe-audit.js +46 -39
  23. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  24. package/dist/cli/commands/dedupe-merge.js +88 -69
  25. package/dist/cli/commands/dedupe-merge.js.map +1 -1
  26. package/dist/cli/commands/get.js +114 -81
  27. package/dist/cli/commands/get.js.map +1 -1
  28. package/dist/cli/commands/health.d.ts +17 -0
  29. package/dist/cli/commands/health.js +446 -307
  30. package/dist/cli/commands/health.js.map +1 -1
  31. package/dist/cli/commands/history-compact.js +209 -140
  32. package/dist/cli/commands/history-compact.js.map +1 -1
  33. package/dist/cli/commands/history-redact.js +162 -119
  34. package/dist/cli/commands/history-redact.js.map +1 -1
  35. package/dist/cli/commands/history-repair.js +120 -85
  36. package/dist/cli/commands/history-repair.js.map +1 -1
  37. package/dist/cli/commands/init.d.ts +8 -2
  38. package/dist/cli/commands/init.js +263 -162
  39. package/dist/cli/commands/init.js.map +1 -1
  40. package/dist/cli/commands/list.js +152 -102
  41. package/dist/cli/commands/list.js.map +1 -1
  42. package/dist/cli/commands/next.js +49 -32
  43. package/dist/cli/commands/next.js.map +1 -1
  44. package/dist/cli/commands/plan.js +373 -298
  45. package/dist/cli/commands/plan.js.map +1 -1
  46. package/dist/cli/commands/recurrence-parsers.js +43 -25
  47. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  48. package/dist/cli/commands/reindex.d.ts +21 -5
  49. package/dist/cli/commands/reindex.js +345 -205
  50. package/dist/cli/commands/reindex.js.map +1 -1
  51. package/dist/cli/commands/restore.d.ts +8 -7
  52. package/dist/cli/commands/restore.js +105 -69
  53. package/dist/cli/commands/restore.js.map +1 -1
  54. package/dist/cli/commands/schema.js +33 -30
  55. package/dist/cli/commands/schema.js.map +1 -1
  56. package/dist/cli/commands/search.d.ts +10 -2
  57. package/dist/cli/commands/search.js +503 -470
  58. package/dist/cli/commands/search.js.map +1 -1
  59. package/dist/cli/commands/telemetry.js +98 -87
  60. package/dist/cli/commands/telemetry.js.map +1 -1
  61. package/dist/cli/commands/test-all.js +237 -168
  62. package/dist/cli/commands/test-all.js.map +1 -1
  63. package/dist/cli/commands/test.d.ts +6 -5
  64. package/dist/cli/commands/test.js +424 -344
  65. package/dist/cli/commands/test.js.map +1 -1
  66. package/dist/cli/commands/update-many.js +57 -42
  67. package/dist/cli/commands/update-many.js.map +1 -1
  68. package/dist/cli/commands/update.d.ts +1 -1
  69. package/dist/cli/commands/update.js +738 -671
  70. package/dist/cli/commands/update.js.map +1 -1
  71. package/dist/cli/commands/validate.d.ts +18 -1
  72. package/dist/cli/commands/validate.js +466 -343
  73. package/dist/cli/commands/validate.js.map +1 -1
  74. package/dist/cli/error-guidance.js +399 -357
  75. package/dist/cli/error-guidance.js.map +1 -1
  76. package/dist/cli/main.d.ts +47 -0
  77. package/dist/cli/main.js +428 -341
  78. package/dist/cli/main.js.map +1 -1
  79. package/dist/cli/migration-gates.js +22 -45
  80. package/dist/cli/migration-gates.js.map +1 -1
  81. package/dist/cli/register-list-query.js +94 -105
  82. package/dist/cli/register-list-query.js.map +1 -1
  83. package/dist/cli/register-mutation.js +400 -416
  84. package/dist/cli/register-mutation.js.map +1 -1
  85. package/dist/cli/register-operations.js +86 -66
  86. package/dist/cli/register-operations.js.map +1 -1
  87. package/dist/cli/register-setup.js +120 -101
  88. package/dist/cli/register-setup.js.map +1 -1
  89. package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js → activity-CUC4JY3U.js} +9 -9
  90. package/dist/cli-bundle/chunks/activity-WEIEMM73.js +16 -0
  91. package/dist/cli-bundle/chunks/{aggregate-JTEF4BP7.js → aggregate-DKUTRY6R.js} +108 -84
  92. package/dist/cli-bundle/chunks/aggregate-DKUTRY6R.js.map +1 -0
  93. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js → aggregate-SW5PNGCS.js} +107 -83
  94. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js.map → aggregate-SW5PNGCS.js.map} +2 -2
  95. package/dist/cli-bundle/chunks/{append-QCFJSDFL.js → append-H32VOR2Y.js} +6 -6
  96. package/dist/cli-bundle/chunks/{append-LOVPGVPT.js → append-UBM632FK.js} +6 -6
  97. package/dist/cli-bundle/chunks/{chunk-RLDHZHQS.js → chunk-2227673O.js} +158 -114
  98. package/dist/cli-bundle/chunks/chunk-2227673O.js.map +1 -0
  99. package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js → chunk-2ASNV4DH.js} +4 -4
  100. package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js → chunk-2CHRYUXL.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-NWMZWYYB.js → chunk-2KWL5NPW.js} +42 -27
  102. package/dist/cli-bundle/chunks/chunk-2KWL5NPW.js.map +1 -0
  103. package/dist/cli-bundle/chunks/{chunk-NFDPYAIP.js → chunk-36UGKF4O.js} +21 -29
  104. package/dist/cli-bundle/chunks/chunk-36UGKF4O.js.map +7 -0
  105. package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js → chunk-3AZUFQK6.js} +6 -6
  106. package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js → chunk-3LCUASYG.js} +2 -2
  107. package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js → chunk-3Q2HBMTI.js} +2 -2
  108. package/dist/cli-bundle/chunks/{chunk-IPYBJWTE.js → chunk-4NUOWFBT.js} +109 -72
  109. package/dist/cli-bundle/chunks/chunk-4NUOWFBT.js.map +7 -0
  110. package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js → chunk-55XRYWEG.js} +6 -6
  111. package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js → chunk-5GVTFFTC.js} +2 -2
  112. package/dist/cli-bundle/chunks/{chunk-BDTISOSD.js → chunk-5PGBHRY3.js} +41 -26
  113. package/dist/cli-bundle/chunks/chunk-5PGBHRY3.js.map +7 -0
  114. package/dist/cli-bundle/chunks/{chunk-YITK2PJ6.js → chunk-66Z3X7ZG.js} +261 -161
  115. package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-NUHHPVVS.js → chunk-6ITZLD4T.js} +712 -612
  117. package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +7 -0
  118. package/dist/cli-bundle/chunks/{chunk-V3NOKJF2.js → chunk-6YCYF2AI.js} +262 -162
  119. package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +1 -0
  120. package/dist/cli-bundle/chunks/{chunk-BZCEN4JA.js → chunk-6ZMBJRDJ.js} +492 -403
  121. package/dist/cli-bundle/chunks/chunk-6ZMBJRDJ.js.map +7 -0
  122. package/dist/cli-bundle/chunks/{chunk-CF7RL6FR.js → chunk-7MYWF4ZX.js} +110 -73
  123. package/dist/cli-bundle/chunks/chunk-7MYWF4ZX.js.map +1 -0
  124. package/dist/cli-bundle/chunks/{chunk-RVUALSJF.js → chunk-7NSPKJUS.js} +356 -285
  125. package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +7 -0
  126. package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js → chunk-7TH5NMVB.js} +95 -53
  127. package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-ZETXE4SE.js → chunk-7W4H4K26.js} +713 -613
  129. package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +1 -0
  130. package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js → chunk-A6VOGKBA.js} +6 -6
  131. package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js → chunk-AIAIXG7I.js} +2 -2
  132. package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js → chunk-AJEBCRIY.js} +5 -5
  133. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
  134. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
  135. package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js → chunk-BTX5MIQF.js} +2 -2
  136. package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js → chunk-BVZZN2LH.js} +3 -3
  137. package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js → chunk-CYBDUHNO.js} +3 -3
  138. package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js → chunk-CZPVDLD2.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-3VGN2UWE.js → chunk-EMPGXBUF.js} +22 -30
  140. package/dist/cli-bundle/chunks/chunk-EMPGXBUF.js.map +1 -0
  141. package/dist/cli-bundle/chunks/{chunk-JPECA746.js → chunk-EUKTMRN3.js} +2 -2
  142. package/dist/cli-bundle/chunks/{chunk-2466X6E4.js → chunk-FFOQHGNH.js} +6 -6
  143. package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js → chunk-GFMSLORL.js} +6 -6
  144. package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js → chunk-GRRG3MCT.js} +4 -4
  145. package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js → chunk-H4GRLYJS.js} +3 -3
  146. package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js → chunk-HQTPRV4D.js} +6 -6
  147. package/dist/cli-bundle/chunks/{chunk-7R4QEMZZ.js → chunk-I66WE2HE.js} +354 -283
  148. package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +1 -0
  149. package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js → chunk-IEEJQCZ4.js} +3 -3
  150. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js → chunk-IG5JYZGU.js} +390 -312
  151. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js.map → chunk-IG5JYZGU.js.map} +2 -2
  152. package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js → chunk-JMK5GCK2.js} +2 -2
  153. package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js → chunk-JXAUVO6X.js} +258 -169
  154. package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js.map → chunk-JXAUVO6X.js.map} +2 -2
  155. package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js → chunk-K2VYLVX4.js} +2 -2
  156. package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js → chunk-KCO2EAN5.js} +3 -3
  157. package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js → chunk-KIYCOJ63.js} +4 -4
  158. package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js → chunk-KLXF7NCC.js} +2 -2
  159. package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js → chunk-KN3URLKS.js} +3 -3
  160. package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js → chunk-LRKMWUUV.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js → chunk-LTRAF2D7.js} +3 -3
  162. package/dist/cli-bundle/chunks/{chunk-VARHOHYV.js → chunk-MNBPX5JS.js} +55 -36
  163. package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +7 -0
  164. package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js → chunk-MRD4T5LF.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js → chunk-N2JSWVWG.js} +4 -4
  166. package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js → chunk-N3QCJS4M.js} +6 -6
  167. package/dist/cli-bundle/chunks/{chunk-JSU5P7VS.js → chunk-NRZS637N.js} +258 -169
  168. package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +1 -0
  169. package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js → chunk-OTUJZKGI.js} +3 -3
  170. package/dist/cli-bundle/chunks/{chunk-5CGRF3L5.js → chunk-Q6K2OACU.js} +153 -90
  171. package/dist/cli-bundle/chunks/chunk-Q6K2OACU.js.map +1 -0
  172. package/dist/cli-bundle/chunks/{chunk-3XZCOZ5J.js → chunk-Q6NXOHS6.js} +391 -313
  173. package/dist/cli-bundle/chunks/chunk-Q6NXOHS6.js.map +1 -0
  174. package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js → chunk-QH3FSKRJ.js} +2 -2
  175. package/dist/cli-bundle/chunks/{chunk-4XOIEKSD.js → chunk-RM37OPYK.js} +56 -37
  176. package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js → chunk-S62UANU7.js} +3 -3
  178. package/dist/cli-bundle/chunks/{chunk-RMMQ74TG.js → chunk-SPM2XLWI.js} +37 -28
  179. package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +7 -0
  180. package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js → chunk-SYNKD3ZG.js} +5 -5
  181. package/dist/cli-bundle/chunks/{chunk-FFMQB7WR.js → chunk-SYVUU7EK.js} +493 -404
  182. package/dist/cli-bundle/chunks/chunk-SYVUU7EK.js.map +1 -0
  183. package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js → chunk-TPOFWBMY.js} +95 -53
  184. package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +1 -0
  185. package/dist/cli-bundle/chunks/{chunk-OTUHB4HS.js → chunk-TTHCEV5Q.js} +92 -77
  186. package/dist/cli-bundle/chunks/chunk-TTHCEV5Q.js.map +1 -0
  187. package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js → chunk-U2BEEM2X.js} +3 -3
  188. package/dist/cli-bundle/chunks/{chunk-KNPEF7QG.js → chunk-UGLU6Q2I.js} +91 -76
  189. package/dist/cli-bundle/chunks/chunk-UGLU6Q2I.js.map +7 -0
  190. package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js → chunk-UT73HUPC.js} +3 -3
  191. package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js → chunk-UTSH5GWX.js} +4 -4
  192. package/dist/cli-bundle/chunks/{chunk-IZBR4NRW.js → chunk-UWKEJMZU.js} +157 -113
  193. package/dist/cli-bundle/chunks/chunk-UWKEJMZU.js.map +7 -0
  194. package/dist/cli-bundle/chunks/{chunk-3S2KT7NG.js → chunk-W47SML5B.js} +152 -89
  195. package/dist/cli-bundle/chunks/chunk-W47SML5B.js.map +7 -0
  196. package/dist/cli-bundle/chunks/{chunk-RGEMWD6Q.js → chunk-WJAMWAHZ.js} +157 -118
  197. package/dist/cli-bundle/chunks/chunk-WJAMWAHZ.js.map +7 -0
  198. package/dist/cli-bundle/chunks/{chunk-JWXRETDF.js → chunk-XCHUVHKU.js} +626 -484
  199. package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{chunk-55SNVXRQ.js → chunk-XEWQKDYZ.js} +626 -484
  201. package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +7 -0
  202. package/dist/cli-bundle/chunks/{chunk-TP5Q5ZD3.js → chunk-XTHQWXVC.js} +158 -119
  203. package/dist/cli-bundle/chunks/chunk-XTHQWXVC.js.map +1 -0
  204. package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js → chunk-XWGEMNBR.js} +2 -2
  205. package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js → chunk-Y4NRKBFW.js} +3 -3
  206. package/dist/cli-bundle/chunks/{chunk-2D4HATP2.js → chunk-YLZZ6T54.js} +38 -29
  207. package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +1 -0
  208. package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js → chunk-YPKFV2JR.js} +6 -6
  209. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
  210. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
  211. package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js → chunk-ZNHEYCDD.js} +2 -2
  212. package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js → chunk-ZNT7KEWE.js} +2 -2
  213. package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js → claim-SENTPZBN.js} +8 -8
  214. package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js → claim-Z7MEQCBT.js} +8 -8
  215. package/dist/cli-bundle/chunks/{close-TQYAAFJP.js → close-424MX4CU.js} +7 -7
  216. package/dist/cli-bundle/chunks/close-YCWQQPDS.js +14 -0
  217. package/dist/cli-bundle/chunks/{close-many-LDRVEQY2.js → close-many-2IV4J2TR.js} +102 -81
  218. package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +1 -0
  219. package/dist/cli-bundle/chunks/{close-many-BG5QQIDQ.js → close-many-SWY34BII.js} +101 -80
  220. package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +7 -0
  221. package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js → comments-4FGNTSNV.js} +8 -8
  222. package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js → comments-7YS5MY5X.js} +8 -8
  223. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js +1062 -0
  224. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js.map +1 -0
  225. package/dist/cli-bundle/chunks/config-G74GISC4.js +1072 -0
  226. package/dist/cli-bundle/chunks/config-G74GISC4.js.map +7 -0
  227. package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js → context-LHVKJSPJ.js} +12 -12
  228. package/dist/cli-bundle/chunks/{context-B6275WPX.js → context-ZQY54JNS.js} +12 -12
  229. package/dist/cli-bundle/chunks/{contracts-HN7ABKLP.js → contracts-CP2EZJC7.js} +320 -199
  230. package/dist/cli-bundle/chunks/contracts-CP2EZJC7.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{contracts-W4FZVVD6.js → contracts-FIZLMP7O.js} +321 -200
  232. package/dist/cli-bundle/chunks/contracts-FIZLMP7O.js.map +1 -0
  233. package/dist/cli-bundle/chunks/{copy-DEM4DATS.js → copy-GYNQQPW2.js} +5 -5
  234. package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js → copy-TLW7JTQT.js} +5 -5
  235. package/dist/cli-bundle/chunks/{create-RLRJMRTM.js → create-VSKYSOCD.js} +12 -12
  236. package/dist/cli-bundle/chunks/create-XTMAPS7I.js +28 -0
  237. package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js → delete-4W5JYCEG.js} +5 -5
  238. package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js → delete-ANTOTI2I.js} +5 -5
  239. package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js → deps-HPPE6MJN.js} +5 -5
  240. package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js → deps-ZQZN54EZ.js} +5 -5
  241. package/dist/cli-bundle/chunks/{docs-GYZNVS26.js → docs-RPOVFMP3.js} +7 -7
  242. package/dist/cli-bundle/chunks/{docs-26S44RXU.js → docs-XJNYBJGE.js} +7 -7
  243. package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js → eval-DM6JBZTS.js} +10 -10
  244. package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js → eval-RFBI5FGS.js} +10 -10
  245. package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js → extension-B3YY4WY5.js} +11 -11
  246. package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js → extension-TTSEFQTS.js} +11 -11
  247. package/dist/cli-bundle/chunks/{files-NQHEXUZD.js → files-5D65CHGE.js} +7 -7
  248. package/dist/cli-bundle/chunks/{files-MBNICQFM.js → files-GPIG77EN.js} +7 -7
  249. package/dist/cli-bundle/chunks/{focus-XZW5423D.js → focus-C3PEJV2C.js} +6 -6
  250. package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js → focus-ZHN7WIGX.js} +6 -6
  251. package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js → gc-D4JQ6OWN.js} +3 -3
  252. package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js → gc-VZIXDL32.js} +3 -3
  253. package/dist/cli-bundle/chunks/{get-DSDEKJ3L.js → get-GIBRUUOP.js} +121 -81
  254. package/dist/cli-bundle/chunks/get-GIBRUUOP.js.map +1 -0
  255. package/dist/cli-bundle/chunks/{get-A7MAOHCU.js → get-IOVAN6RU.js} +120 -80
  256. package/dist/cli-bundle/chunks/get-IOVAN6RU.js.map +7 -0
  257. package/dist/cli-bundle/chunks/{health-3IPFLKXB.js → health-L2U3AFKV.js} +437 -265
  258. package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +1 -0
  259. package/dist/cli-bundle/chunks/{health-GZXGBZ36.js → health-MM7AWXYF.js} +436 -264
  260. package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +7 -0
  261. package/dist/cli-bundle/chunks/history-DD7L7BNL.js +18 -0
  262. package/dist/cli-bundle/chunks/{history-NERDJNUB.js → history-IL7XCEX2.js} +8 -8
  263. package/dist/cli-bundle/chunks/{history-compact-HR7BB4LR.js → history-compact-HALOTOU7.js} +214 -135
  264. package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +1 -0
  265. package/dist/cli-bundle/chunks/{history-compact-2WRZ2WK4.js → history-compact-MV25P7DM.js} +213 -134
  266. package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +7 -0
  267. package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +19 -0
  268. package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js → history-redact-VYCWQFK7.js} +9 -9
  269. package/dist/cli-bundle/chunks/{history-repair-XA3LC4GA.js → history-repair-44MODPQF.js} +124 -84
  270. package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +1 -0
  271. package/dist/cli-bundle/chunks/{history-repair-LCMOS45X.js → history-repair-CPNAOCNF.js} +123 -83
  272. package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +7 -0
  273. package/dist/cli-bundle/chunks/{init-64XDLQJB.js → init-F27NHENZ.js} +12 -12
  274. package/dist/cli-bundle/chunks/init-HHVQQP6C.js +22 -0
  275. package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js → learnings-HJVDQIGY.js} +8 -8
  276. package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js → learnings-XSFSUUWK.js} +8 -8
  277. package/dist/cli-bundle/chunks/{list-G5Y65VF6.js → list-HPMEKCAA.js} +8 -8
  278. package/dist/cli-bundle/chunks/{list-DNBJVO3E.js → list-VMPWTURB.js} +8 -8
  279. package/dist/cli-bundle/chunks/{next-BCERKDUR.js → next-ETXF2ZCN.js} +59 -37
  280. package/dist/cli-bundle/chunks/next-ETXF2ZCN.js.map +7 -0
  281. package/dist/cli-bundle/chunks/{next-FYTQF6HG.js → next-QM6YJIIS.js} +60 -38
  282. package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +1 -0
  283. package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js → notes-GDZIKGR6.js} +8 -8
  284. package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js → notes-WDDBPC4D.js} +8 -8
  285. package/dist/cli-bundle/chunks/{plan-RKZHQVXR.js → plan-BGDR73Z6.js} +373 -279
  286. package/dist/cli-bundle/chunks/plan-BGDR73Z6.js.map +1 -0
  287. package/dist/cli-bundle/chunks/{plan-4WXEQCTN.js → plan-C5IMM335.js} +372 -278
  288. package/dist/cli-bundle/chunks/plan-C5IMM335.js.map +7 -0
  289. package/dist/cli-bundle/chunks/{profile-QLER5ENE.js → profile-CCOKZ2IQ.js} +9 -9
  290. package/dist/cli-bundle/chunks/{profile-4OMM32CD.js → profile-HUCENIEQ.js} +9 -9
  291. package/dist/cli-bundle/chunks/{register-list-query-7LV46VAU.js → register-list-query-ROSNIL52.js} +80 -83
  292. package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +1 -0
  293. package/dist/cli-bundle/chunks/{register-list-query-SNG5PGA4.js → register-list-query-XN4ZRHSV.js} +79 -82
  294. package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +7 -0
  295. package/dist/cli-bundle/chunks/{register-mutation-ENNDUAZG.js → register-mutation-CFSB2MS3.js} +403 -382
  296. package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +1 -0
  297. package/dist/cli-bundle/chunks/{register-mutation-KK7PHYYU.js → register-mutation-KRLAHEL2.js} +402 -381
  298. package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +7 -0
  299. package/dist/cli-bundle/chunks/{register-operations-HZ6XERQG.js → register-operations-4PASGJDB.js} +112 -93
  300. package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +7 -0
  301. package/dist/cli-bundle/chunks/{register-operations-C6OWLDSH.js → register-operations-MBN4KGUM.js} +113 -94
  302. package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +1 -0
  303. package/dist/cli-bundle/chunks/{register-setup-P67EMBDJ.js → register-setup-VIAWYFP5.js} +129 -104
  304. package/dist/cli-bundle/chunks/register-setup-VIAWYFP5.js.map +1 -0
  305. package/dist/cli-bundle/chunks/{register-setup-ZKJ53RS7.js → register-setup-ZCGKHDKL.js} +128 -103
  306. package/dist/cli-bundle/chunks/register-setup-ZCGKHDKL.js.map +7 -0
  307. package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js → restore-4CBWUMCX.js} +9 -9
  308. package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +17 -0
  309. package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js → scheduling-shortcuts-6VFKNKCM.js} +12 -12
  310. package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js → scheduling-shortcuts-ERHCVTEM.js} +12 -12
  311. package/dist/cli-bundle/chunks/{schema-73HR2OJW.js → schema-TDGK6N3I.js} +7 -7
  312. package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js → schema-UE5KKAUX.js} +7 -7
  313. package/dist/cli-bundle/chunks/{search-KILGT37L.js → search-FP7MEU4S.js} +10 -10
  314. package/dist/cli-bundle/chunks/{search-AXPXKZER.js → search-K4CFLQ5S.js} +10 -10
  315. package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js → stats-NJJCALEZ.js} +6 -6
  316. package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js → stats-XT6QRKQY.js} +6 -6
  317. package/dist/cli-bundle/chunks/{telemetry-GAHHQTOS.js → telemetry-5SQ5UDXC.js} +84 -70
  318. package/dist/cli-bundle/chunks/telemetry-5SQ5UDXC.js.map +7 -0
  319. package/dist/cli-bundle/chunks/{telemetry-BZUF6H7G.js → telemetry-HVXFZA2U.js} +85 -71
  320. package/dist/cli-bundle/chunks/telemetry-HVXFZA2U.js.map +1 -0
  321. package/dist/cli-bundle/chunks/{test-ACD52Z3S.js → test-UFSJ5YIO.js} +15 -15
  322. package/dist/cli-bundle/chunks/{test-PWDIZ255.js → test-YCDAUBWF.js} +15 -15
  323. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js +427 -0
  324. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js.map +1 -0
  325. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js +430 -0
  326. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js.map +7 -0
  327. package/dist/cli-bundle/chunks/{test-runs-UXIXPDKU.js → test-runs-FK5E75AA.js} +185 -147
  328. package/dist/cli-bundle/chunks/test-runs-FK5E75AA.js.map +1 -0
  329. package/dist/cli-bundle/chunks/{test-runs-PLRAZEFW.js → test-runs-H4TGWGRN.js} +184 -146
  330. package/dist/cli-bundle/chunks/test-runs-H4TGWGRN.js.map +7 -0
  331. package/dist/cli-bundle/chunks/update-MTCFES6X.js +24 -0
  332. package/dist/cli-bundle/chunks/{update-KFX2SIAC.js → update-Y5WQVT5O.js} +15 -15
  333. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js → update-many-6YAYYRLE.js} +82 -67
  334. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js.map → update-many-6YAYYRLE.js.map} +2 -2
  335. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js → update-many-JTKKSA7Y.js} +83 -68
  336. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js.map → update-many-JTKKSA7Y.js.map} +1 -1
  337. package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js → upgrade-DTAHZ236.js} +11 -11
  338. package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js → upgrade-JUDU7YL4.js} +11 -11
  339. package/dist/cli-bundle/chunks/{validate-MTUVL5VC.js → validate-732RWS5W.js} +440 -320
  340. package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +7 -0
  341. package/dist/cli-bundle/chunks/{validate-X5W76YJL.js → validate-W7H5TEDC.js} +441 -321
  342. package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +1 -0
  343. package/dist/cli-bundle/main.js +945 -812
  344. package/dist/cli-bundle/main.js.map +3 -3
  345. package/dist/core/config/nested-settings.js +89 -67
  346. package/dist/core/config/nested-settings.js.map +1 -1
  347. package/dist/core/governance/metadata-coverage.js +20 -28
  348. package/dist/core/governance/metadata-coverage.js.map +1 -1
  349. package/dist/core/history/drift-scan.js +93 -81
  350. package/dist/core/history/drift-scan.js.map +1 -1
  351. package/dist/core/item/item-type-definition.js +14 -14
  352. package/dist/core/item/item-type-definition.js.map +1 -1
  353. package/dist/core/item/type-registry.js +87 -82
  354. package/dist/core/item/type-registry.js.map +1 -1
  355. package/dist/core/output/mutation-projection.js +42 -26
  356. package/dist/core/output/mutation-projection.js.map +1 -1
  357. package/dist/core/schema/runtime-schema.js +34 -28
  358. package/dist/core/schema/runtime-schema.js.map +1 -1
  359. package/dist/core/search/semantic-defaults.js +64 -37
  360. package/dist/core/search/semantic-defaults.js.map +1 -1
  361. package/dist/core/search/vector-stores.js +32 -17
  362. package/dist/core/search/vector-stores.js.map +1 -1
  363. package/dist/core/sentry/helpers.js +31 -28
  364. package/dist/core/sentry/helpers.js.map +1 -1
  365. package/dist/core/sentry/instrument.js +54 -43
  366. package/dist/core/sentry/instrument.js.map +1 -1
  367. package/dist/core/store/front-matter-cache.js +239 -153
  368. package/dist/core/store/front-matter-cache.js.map +1 -1
  369. package/dist/core/store/item-store.js +33 -26
  370. package/dist/core/store/item-store.js.map +1 -1
  371. package/dist/core/store/settings.js +247 -203
  372. package/dist/core/store/settings.js.map +1 -1
  373. package/dist/core/test/background-runs.js +189 -160
  374. package/dist/core/test/background-runs.js.map +1 -1
  375. package/package.json +2 -2
  376. package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
  377. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
  378. package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
  379. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +0 -16
  380. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +0 -1
  381. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +0 -1
  382. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +0 -7
  383. package/dist/cli-bundle/chunks/chunk-3VGN2UWE.js.map +0 -1
  384. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +0 -1
  385. package/dist/cli-bundle/chunks/chunk-4DSGXSBL.js.map +0 -7
  386. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +0 -1
  387. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +0 -7
  388. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +0 -1
  389. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +0 -1
  390. package/dist/cli-bundle/chunks/chunk-BDTISOSD.js.map +0 -7
  391. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +0 -7
  392. package/dist/cli-bundle/chunks/chunk-CF7RL6FR.js.map +0 -1
  393. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +0 -1
  394. package/dist/cli-bundle/chunks/chunk-IPYBJWTE.js.map +0 -7
  395. package/dist/cli-bundle/chunks/chunk-IZBR4NRW.js.map +0 -7
  396. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +0 -1
  397. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +0 -1
  398. package/dist/cli-bundle/chunks/chunk-KNPEF7QG.js.map +0 -7
  399. package/dist/cli-bundle/chunks/chunk-NFDPYAIP.js.map +0 -7
  400. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +0 -7
  401. package/dist/cli-bundle/chunks/chunk-NWMZWYYB.js.map +0 -1
  402. package/dist/cli-bundle/chunks/chunk-OTUHB4HS.js.map +0 -1
  403. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +0 -7
  404. package/dist/cli-bundle/chunks/chunk-RLDHZHQS.js.map +0 -1
  405. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +0 -7
  406. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +0 -7
  407. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +0 -1
  408. package/dist/cli-bundle/chunks/chunk-UYUYDGIB.js.map +0 -1
  409. package/dist/cli-bundle/chunks/chunk-V3NOKJF2.js.map +0 -1
  410. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +0 -7
  411. package/dist/cli-bundle/chunks/chunk-YITK2PJ6.js.map +0 -7
  412. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +0 -1
  413. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +0 -14
  414. package/dist/cli-bundle/chunks/close-many-BG5QQIDQ.js.map +0 -7
  415. package/dist/cli-bundle/chunks/close-many-LDRVEQY2.js.map +0 -1
  416. package/dist/cli-bundle/chunks/config-DMSU64QO.js +0 -1541
  417. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +0 -7
  418. package/dist/cli-bundle/chunks/config-QH2DICD6.js +0 -1531
  419. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +0 -1
  420. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +0 -7
  421. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +0 -1
  422. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +0 -28
  423. package/dist/cli-bundle/chunks/get-A7MAOHCU.js.map +0 -7
  424. package/dist/cli-bundle/chunks/get-DSDEKJ3L.js.map +0 -1
  425. package/dist/cli-bundle/chunks/health-3IPFLKXB.js.map +0 -1
  426. package/dist/cli-bundle/chunks/health-GZXGBZ36.js.map +0 -7
  427. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +0 -18
  428. package/dist/cli-bundle/chunks/history-compact-2WRZ2WK4.js.map +0 -7
  429. package/dist/cli-bundle/chunks/history-compact-HR7BB4LR.js.map +0 -1
  430. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +0 -19
  431. package/dist/cli-bundle/chunks/history-repair-LCMOS45X.js.map +0 -7
  432. package/dist/cli-bundle/chunks/history-repair-XA3LC4GA.js.map +0 -1
  433. package/dist/cli-bundle/chunks/init-PAX32BJA.js +0 -22
  434. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +0 -7
  435. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +0 -1
  436. package/dist/cli-bundle/chunks/plan-4WXEQCTN.js.map +0 -7
  437. package/dist/cli-bundle/chunks/plan-RKZHQVXR.js.map +0 -1
  438. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +0 -1
  439. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +0 -7
  440. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +0 -1
  441. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +0 -7
  442. package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js.map +0 -1
  443. package/dist/cli-bundle/chunks/register-operations-HZ6XERQG.js.map +0 -7
  444. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +0 -1
  445. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +0 -7
  446. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +0 -17
  447. package/dist/cli-bundle/chunks/telemetry-BZUF6H7G.js.map +0 -1
  448. package/dist/cli-bundle/chunks/telemetry-GAHHQTOS.js.map +0 -7
  449. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js +0 -358
  450. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js.map +0 -1
  451. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js +0 -361
  452. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js.map +0 -7
  453. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +0 -7
  454. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +0 -1
  455. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +0 -24
  456. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +0 -7
  457. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +0 -1
  458. /package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js.map → activity-CUC4JY3U.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{activity-AW6XVFH6.js.map → activity-WEIEMM73.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{append-QCFJSDFL.js.map → append-H32VOR2Y.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{append-LOVPGVPT.js.map → append-UBM632FK.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js.map → chunk-2ASNV4DH.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js.map → chunk-2CHRYUXL.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js.map → chunk-3AZUFQK6.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js.map → chunk-3LCUASYG.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js.map → chunk-3Q2HBMTI.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js.map → chunk-55XRYWEG.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js.map → chunk-5GVTFFTC.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js.map → chunk-A6VOGKBA.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js.map → chunk-AIAIXG7I.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js.map → chunk-AJEBCRIY.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js.map → chunk-BTX5MIQF.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js.map → chunk-BVZZN2LH.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js.map → chunk-CYBDUHNO.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js.map → chunk-CZPVDLD2.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{chunk-JPECA746.js.map → chunk-EUKTMRN3.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{chunk-2466X6E4.js.map → chunk-FFOQHGNH.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js.map → chunk-GFMSLORL.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js.map → chunk-GRRG3MCT.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js.map → chunk-H4GRLYJS.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js.map → chunk-HQTPRV4D.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js.map → chunk-IEEJQCZ4.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js.map → chunk-JMK5GCK2.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js.map → chunk-K2VYLVX4.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js.map → chunk-KCO2EAN5.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js.map → chunk-KIYCOJ63.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js.map → chunk-KLXF7NCC.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js.map → chunk-KN3URLKS.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js.map → chunk-LRKMWUUV.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js.map → chunk-LTRAF2D7.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js.map → chunk-MRD4T5LF.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js.map → chunk-N2JSWVWG.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js.map → chunk-N3QCJS4M.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js.map → chunk-OTUJZKGI.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js.map → chunk-QH3FSKRJ.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js.map → chunk-S62UANU7.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js.map → chunk-SYNKD3ZG.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js.map → chunk-U2BEEM2X.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js.map → chunk-UT73HUPC.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js.map → chunk-UTSH5GWX.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js.map → chunk-XWGEMNBR.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js.map → chunk-Y4NRKBFW.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js.map → chunk-YPKFV2JR.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js.map → chunk-ZNHEYCDD.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js.map → chunk-ZNT7KEWE.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js.map → claim-SENTPZBN.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js.map → claim-Z7MEQCBT.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{close-TQYAAFJP.js.map → close-424MX4CU.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{close-E6ZZGCJY.js.map → close-YCWQQPDS.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js.map → comments-4FGNTSNV.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js.map → comments-7YS5MY5X.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js.map → context-LHVKJSPJ.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{context-B6275WPX.js.map → context-ZQY54JNS.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{copy-DEM4DATS.js.map → copy-GYNQQPW2.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js.map → copy-TLW7JTQT.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{create-RLRJMRTM.js.map → create-VSKYSOCD.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{create-OH3BDGBB.js.map → create-XTMAPS7I.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js.map → delete-4W5JYCEG.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js.map → delete-ANTOTI2I.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js.map → deps-HPPE6MJN.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js.map → deps-ZQZN54EZ.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{docs-GYZNVS26.js.map → docs-RPOVFMP3.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{docs-26S44RXU.js.map → docs-XJNYBJGE.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js.map → eval-DM6JBZTS.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js.map → eval-RFBI5FGS.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js.map → extension-B3YY4WY5.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js.map → extension-TTSEFQTS.js.map} +0 -0
  528. /package/dist/cli-bundle/chunks/{files-NQHEXUZD.js.map → files-5D65CHGE.js.map} +0 -0
  529. /package/dist/cli-bundle/chunks/{files-MBNICQFM.js.map → files-GPIG77EN.js.map} +0 -0
  530. /package/dist/cli-bundle/chunks/{focus-XZW5423D.js.map → focus-C3PEJV2C.js.map} +0 -0
  531. /package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js.map → focus-ZHN7WIGX.js.map} +0 -0
  532. /package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js.map → gc-D4JQ6OWN.js.map} +0 -0
  533. /package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js.map → gc-VZIXDL32.js.map} +0 -0
  534. /package/dist/cli-bundle/chunks/{history-WSZHY3PN.js.map → history-DD7L7BNL.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{history-NERDJNUB.js.map → history-IL7XCEX2.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{history-redact-MP6CH7U5.js.map → history-redact-IX4YEWMY.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js.map → history-redact-VYCWQFK7.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{init-64XDLQJB.js.map → init-F27NHENZ.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{init-PAX32BJA.js.map → init-HHVQQP6C.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js.map → learnings-HJVDQIGY.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js.map → learnings-XSFSUUWK.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{list-G5Y65VF6.js.map → list-HPMEKCAA.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{list-DNBJVO3E.js.map → list-VMPWTURB.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js.map → notes-GDZIKGR6.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js.map → notes-WDDBPC4D.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{profile-QLER5ENE.js.map → profile-CCOKZ2IQ.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{profile-4OMM32CD.js.map → profile-HUCENIEQ.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js.map → restore-4CBWUMCX.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{restore-YALDGTQR.js.map → restore-5UEAGG3W.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js.map → scheduling-shortcuts-6VFKNKCM.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js.map → scheduling-shortcuts-ERHCVTEM.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{schema-73HR2OJW.js.map → schema-TDGK6N3I.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js.map → schema-UE5KKAUX.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{search-KILGT37L.js.map → search-FP7MEU4S.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{search-AXPXKZER.js.map → search-K4CFLQ5S.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js.map → stats-NJJCALEZ.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js.map → stats-XT6QRKQY.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{test-ACD52Z3S.js.map → test-UFSJ5YIO.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{test-PWDIZ255.js.map → test-YCDAUBWF.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{update-AMRSOIWP.js.map → update-MTCFES6X.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{update-KFX2SIAC.js.map → update-Y5WQVT5O.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js.map → upgrade-DTAHZ236.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js.map → upgrade-JUDU7YL4.js.map} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Implements the pm contracts command surface and its agent-facing runtime behavior.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="98b192d1-a27b-513e-8089-5626e03f2be1")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24d15738-45bd-5dd2-95e1-699f9c6061bd")}catch(e){}}();
8
8
  import { EXIT_CODE, SETTINGS_DEFAULTS } from "../../core/shared/constants.js";
9
9
  import { PmCliError } from "../../core/shared/errors.js";
10
10
  import { activateExtensions, getActiveExtensionRegistrations, loadExtensions, } from "../../core/extensions/index.js";
@@ -376,6 +376,11 @@ function normalizeStringList(values) {
376
376
  }
377
377
  return normalized;
378
378
  }
379
+ function assignExtensionFlagBoolean(contract, key, enabled) {
380
+ if (enabled) {
381
+ contract[key] = true;
382
+ }
383
+ }
379
384
  function toExtensionFlagContract(definition) {
380
385
  const longName = toOptionalTrimmedString(definition.long);
381
386
  const shortName = toOptionalTrimmedString(definition.short);
@@ -393,16 +398,13 @@ function toExtensionFlagContract(definition) {
393
398
  if (normalizedShort && normalizedLong) {
394
399
  contract.short = normalizedShort;
395
400
  }
401
+ assignExtensionFlagBoolean(contract, "required", definition.required === true);
402
+ assignExtensionFlagBoolean(contract, "repeatable", definition.repeatable === true);
403
+ assignExtensionFlagBoolean(contract, "list", definition.list === true);
396
404
  const description = toOptionalTrimmedString(definition.description);
397
405
  if (description) {
398
406
  contract.description = description;
399
407
  }
400
- if (definition.required === true) {
401
- contract.required = true;
402
- }
403
- if (definition.repeatable === true) {
404
- contract.repeatable = true;
405
- }
406
408
  const valueName = toOptionalTrimmedString(definition.value_name);
407
409
  if (valueName) {
408
410
  contract.value_name = valueName;
@@ -553,6 +555,31 @@ function extensionSchemaPropertyNameFromFlag(flag) {
553
555
  const cleaned = camelCased.replace(/[^a-zA-Z0-9]/g, "");
554
556
  return cleaned.length > 0 ? cleaned : null;
555
557
  }
558
+ function buildExtensionArgumentSchema(argument, action) {
559
+ if (argument.variadic) {
560
+ return {
561
+ type: "array",
562
+ items: { type: "string" },
563
+ description: argument.description ??
564
+ `Variadic argument '${argument.name}' for extension action '${action}'.`,
565
+ };
566
+ }
567
+ return {
568
+ type: "string",
569
+ description: argument.description ??
570
+ `Argument '${argument.name}' for extension action '${action}'.`,
571
+ };
572
+ }
573
+ function buildExtensionFlagSchema(flag, action) {
574
+ const valueType = flag.value_type ?? "boolean";
575
+ const schemaType = valueType === "boolean" ? "boolean" : valueType === "number" ? ["number", "string"] : "string";
576
+ const acceptsMultipleValues = flag.repeatable === true || flag.list === true;
577
+ return {
578
+ type: acceptsMultipleValues ? "array" : schemaType,
579
+ ...(acceptsMultipleValues ? { items: { type: schemaType } } : {}),
580
+ description: flag.description ?? `Extension option '${flag.flag}' for action '${action}'.`,
581
+ };
582
+ }
556
583
  function buildExtensionActionSchemaBranch(contract) {
557
584
  const commands = contract.command
558
585
  .split("|")
@@ -569,21 +596,7 @@ function buildExtensionActionSchemaBranch(contract) {
569
596
  };
570
597
  const required = ["action"];
571
598
  for (const argument of contract.arguments) {
572
- if (argument.variadic) {
573
- properties[argument.name] = {
574
- type: "array",
575
- items: { type: "string" },
576
- description: argument.description ??
577
- `Variadic argument '${argument.name}' for extension action '${contract.action}'.`,
578
- };
579
- }
580
- else {
581
- properties[argument.name] = {
582
- type: "string",
583
- description: argument.description ??
584
- `Argument '${argument.name}' for extension action '${contract.action}'.`,
585
- };
586
- }
599
+ properties[argument.name] = buildExtensionArgumentSchema(argument, contract.action);
587
600
  if (argument.required) {
588
601
  required.push(argument.name);
589
602
  }
@@ -593,13 +606,7 @@ function buildExtensionActionSchemaBranch(contract) {
593
606
  if (!propertyName || properties[propertyName] !== undefined) {
594
607
  continue;
595
608
  }
596
- const valueType = flag.value_type ?? "boolean";
597
- const schemaType = valueType === "boolean" ? "boolean" : valueType === "number" ? ["number", "string"] : "string";
598
- properties[propertyName] = {
599
- type: flag.repeatable ? "array" : schemaType,
600
- ...(flag.repeatable ? { items: { type: schemaType } } : {}),
601
- description: flag.description ?? `Extension option '${flag.flag}' for action '${contract.action}'.`,
602
- };
609
+ properties[propertyName] = buildExtensionFlagSchema(flag, contract.action);
603
610
  if (flag.required === true) {
604
611
  required.push(propertyName);
605
612
  }
@@ -1056,68 +1063,95 @@ function attachCreateRequiredOptionContracts(schema, metadata) {
1056
1063
  oneOf: enrichedBranches,
1057
1064
  };
1058
1065
  }
1059
- /**
1060
- * Implements run contracts for the public runtime surface of this module.
1061
- */
1062
- export async function runContracts(options, global) {
1063
- const selectedAction = normalizeToken(options.action);
1064
- const selectedCommand = normalizeToken(options.command);
1066
+ function resolveContractsSelection(options) {
1065
1067
  const schemaOnly = options.schemaOnly === true;
1066
1068
  const flagsOnly = options.flagsOnly === true;
1067
1069
  const availabilityOnly = options.availabilityOnly === true;
1068
1070
  const runtimeOnly = options.runtimeOnly === true;
1069
1071
  const fullOutput = options.full === true;
1072
+ const selectedAction = normalizeToken(options.action);
1073
+ const selectedCommand = normalizeToken(options.command);
1070
1074
  const unfilteredDefaultBriefMode = !fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly && !selectedAction && !selectedCommand;
1071
- // Agent token-cost guard: when no filter and no projection flag and not --full,
1072
- // skip the giant schema oneOf union (the 200KB+ chunk). Restore via --full
1073
- // or by scoping to a specific --command/--action.
1074
- const omitUnfilteredSchema = unfilteredDefaultBriefMode;
1075
- const omitUnfilteredCommandFlags = unfilteredDefaultBriefMode;
1076
- const omitUnfilteredCommanderAliases = unfilteredDefaultBriefMode;
1077
- const projectionFlagsEnabled = [
1075
+ return {
1076
+ selectedAction,
1077
+ selectedCommand,
1078
1078
  schemaOnly,
1079
1079
  flagsOnly,
1080
1080
  availabilityOnly,
1081
+ runtimeOnly,
1082
+ fullOutput,
1083
+ omitUnfilteredSchema: unfilteredDefaultBriefMode,
1084
+ omitUnfilteredCommandFlags: unfilteredDefaultBriefMode,
1085
+ omitUnfilteredCommanderAliases: unfilteredDefaultBriefMode,
1086
+ };
1087
+ }
1088
+ function assertSingleContractsProjection(selection) {
1089
+ const projectionFlagsEnabled = [
1090
+ selection.schemaOnly,
1091
+ selection.flagsOnly,
1092
+ selection.availabilityOnly,
1081
1093
  ].filter((value) => value).length;
1082
1094
  if (projectionFlagsEnabled > 1) {
1083
1095
  throw new PmCliError("Choose only one projection flag: --schema-only, --flags-only, or --availability-only.", EXIT_CODE.USAGE);
1084
1096
  }
1085
- const pmRoot = resolvePmRoot(process.cwd(), global.path);
1086
- let settings = structuredClone(SETTINGS_DEFAULTS);
1097
+ }
1098
+ async function readContractsSettings(pmRoot) {
1087
1099
  try {
1088
- settings = await readSettings(pmRoot);
1100
+ return await readSettings(pmRoot);
1089
1101
  }
1090
1102
  catch {
1091
- settings = structuredClone(SETTINGS_DEFAULTS);
1103
+ return structuredClone(SETTINGS_DEFAULTS);
1092
1104
  }
1105
+ }
1106
+ async function resolveContractsRuntimeContext(global, pmRoot) {
1107
+ const settings = await readContractsSettings(pmRoot);
1093
1108
  const runtimeProbe = await resolveRuntimeExtensionActionProbe(global);
1094
1109
  const typeRegistry = resolveItemTypeRegistry(settings, runtimeProbe.registrations ?? getActiveExtensionRegistrations());
1095
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
1096
1110
  const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);
1097
- const runtimeFieldFlagMap = buildRuntimeFieldFlagContracts(runtimeFieldRegistry);
1098
- const createRequiredOptionContracts = buildCreateRequiredOptionContracts(typeRegistry);
1099
1111
  const extensionContracts = collectExtensionCommandContracts(runtimeProbe);
1100
- const mergedExtensionContracts = mergeExtensionContractsByAction(extensionContracts);
1101
- const extensionFlagMap = collectExtensionFlagContractsByCommand(runtimeProbe.flagRegistrations);
1102
- const includePackageOwnedActions = (selectedAction !== undefined && PACKAGE_OWNED_ACTIONS.has(selectedAction) && availabilityOnly) ||
1103
- (selectedCommand !== undefined && PACKAGE_OWNED_COMMANDS.has(selectedCommand) && availabilityOnly);
1104
- const actionDescriptors = collectActionContractDescriptors(mergedExtensionContracts, { includePackageOwnedActions });
1105
- if (includePackageOwnedActions &&
1106
- selectedCommand !== undefined &&
1107
- PACKAGE_OWNED_COMMANDS.has(selectedCommand) &&
1108
- !actionDescriptors.some((entry) => entry.command_path === selectedCommand)) {
1112
+ return {
1113
+ settings,
1114
+ runtimeProbe,
1115
+ typeRegistry,
1116
+ statusRegistry: resolveRuntimeStatusRegistry(settings.schema),
1117
+ runtimeFieldRegistry,
1118
+ runtimeFieldFlagMap: buildRuntimeFieldFlagContracts(runtimeFieldRegistry),
1119
+ createRequiredOptionContracts: buildCreateRequiredOptionContracts(typeRegistry),
1120
+ extensionContracts,
1121
+ mergedExtensionContracts: mergeExtensionContractsByAction(extensionContracts),
1122
+ extensionFlagMap: collectExtensionFlagContractsByCommand(runtimeProbe.flagRegistrations),
1123
+ };
1124
+ }
1125
+ function shouldIncludePackageOwnedActions(selection) {
1126
+ return (selection.availabilityOnly &&
1127
+ ((selection.selectedAction !== undefined && PACKAGE_OWNED_ACTIONS.has(selection.selectedAction)) ||
1128
+ (selection.selectedCommand !== undefined && PACKAGE_OWNED_COMMANDS.has(selection.selectedCommand))));
1129
+ }
1130
+ function collectContractsActionDescriptors(selection, mergedExtensionContracts) {
1131
+ const actionDescriptors = collectActionContractDescriptors(mergedExtensionContracts, {
1132
+ includePackageOwnedActions: shouldIncludePackageOwnedActions(selection),
1133
+ });
1134
+ if (shouldIncludePackageOwnedActions(selection) &&
1135
+ selection.selectedCommand !== undefined &&
1136
+ PACKAGE_OWNED_COMMANDS.has(selection.selectedCommand) &&
1137
+ !actionDescriptors.some((entry) => entry.command_path === selection.selectedCommand)) {
1109
1138
  actionDescriptors.push({
1110
- action: packageOwnedActionForCommand(selectedCommand),
1139
+ action: packageOwnedActionForCommand(selection.selectedCommand),
1111
1140
  provider: "extension",
1112
1141
  requires_extension: true,
1113
- command_path: selectedCommand,
1142
+ command_path: selection.selectedCommand,
1114
1143
  });
1115
1144
  }
1145
+ return actionDescriptors;
1146
+ }
1147
+ function assertKnownContractsAction(selection, actionDescriptors) {
1116
1148
  const actionNames = new Set(actionDescriptors.map((entry) => entry.action));
1117
- if (selectedAction && !actionNames.has(selectedAction)) {
1118
- throw new PmCliError(`Unknown action: "${options.action}".`, EXIT_CODE.USAGE);
1149
+ if (selection.selectedAction && !actionNames.has(selection.selectedAction)) {
1150
+ throw new PmCliError(`Unknown action: "${selection.selectedAction}".`, EXIT_CODE.USAGE);
1119
1151
  }
1120
- const commandCatalog = [
1152
+ }
1153
+ function buildContractsCommandCatalog(actionDescriptors, mergedExtensionContracts) {
1154
+ return [
1121
1155
  ...new Set([
1122
1156
  ...PM_CORE_COMMAND_NAMES.filter((entry) => !PACKAGE_OWNED_COMMANDS.has(entry)),
1123
1157
  ...[...CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.keys()].filter((entry) => !PACKAGE_OWNED_COMMANDS.has(entry)),
@@ -1129,78 +1163,121 @@ export async function runContracts(options, global) {
1129
1163
  .map((entry) => normalizeCommandPath(entry))
1130
1164
  .filter((entry) => entry.length > 0)
1131
1165
  .sort((left, right) => left.localeCompare(right));
1166
+ }
1167
+ function buildCommandNamespaceError(command, namespaceChildren) {
1168
+ const displayedNamespaceChildren = namespaceChildren.slice(0, COMMAND_NAMESPACE_DISPLAY_LIMIT);
1169
+ const hiddenNamespaceChildCount = namespaceChildren.length - displayedNamespaceChildren.length;
1170
+ const displayedChildCommandList = hiddenNamespaceChildCount > 0
1171
+ ? `${displayedNamespaceChildren.join(", ")}, and ${hiddenNamespaceChildCount} more`
1172
+ : displayedNamespaceChildren.join(", ");
1173
+ const fallbackCandidates = namespaceChildren.slice(0, COMMAND_NAMESPACE_FALLBACK_LIMIT);
1174
+ const childCommandExamples = namespaceChildren
1175
+ .slice(0, 5)
1176
+ .map((childCommand) => `pm contracts --command "${childCommand}" --flags-only --json`);
1177
+ const suggestedChildCommand = namespaceChildren[0];
1178
+ return new PmCliError(`Command "${command}" is a command namespace. Choose a concrete child command: ${displayedChildCommandList}.`, EXIT_CODE.USAGE, {
1179
+ code: "command_namespace",
1180
+ required: "Use a concrete child command path listed under this namespace.",
1181
+ why: "Command groups expose help at the namespace root, but command flag contracts belong to executable child commands.",
1182
+ examples: childCommandExamples,
1183
+ nextSteps: [`Retry with a child command, for example: ${childCommandExamples[0]}`],
1184
+ recovery: {
1185
+ suggested_retry: `pm contracts --command "${suggestedChildCommand}" --flags-only --json`,
1186
+ fallback_candidates: fallbackCandidates.map((childCommand) => ({
1187
+ source: "command_namespace",
1188
+ command: `pm contracts --command "${childCommand}" --flags-only --json`,
1189
+ reason: `Child command under ${command}`,
1190
+ })),
1191
+ },
1192
+ });
1193
+ }
1194
+ function buildPackageOwnedCommandError(command, packageHint) {
1195
+ return new PmCliError(`Unknown command: "${command}". Command "${command}" is provided by the optional "${packageHint}" package. Run "pm install ${packageHint} --project" and retry.`, EXIT_CODE.USAGE, {
1196
+ code: "unknown_command",
1197
+ required: `Install the optional "${packageHint}" package, or choose a command from pm contracts --flags-only --json.`,
1198
+ why: "Command contracts include core commands plus commands registered by active packages and extensions.",
1199
+ examples: [`pm install ${packageHint} --project`, `pm contracts --command ${command} --flags-only --json`],
1200
+ nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],
1201
+ recovery: {
1202
+ suggested_retry: `pm install ${packageHint} --project`,
1203
+ },
1204
+ });
1205
+ }
1206
+ function buildUnknownCommandError(command) {
1207
+ return new PmCliError(`Unknown command: "${command}".`, EXIT_CODE.USAGE, {
1208
+ code: "unknown_command",
1209
+ required: "Use a command path listed by pm contracts --flags-only --json.",
1210
+ why: "Command contracts are generated from the active core, package, and extension command registry.",
1211
+ examples: ["pm contracts --flags-only --json", "pm --help"],
1212
+ nextSteps: ["Verify spelling and active packages/extensions, then rerun with a known command path."],
1213
+ recovery: {
1214
+ suggested_retry: "pm contracts --flags-only --json",
1215
+ },
1216
+ });
1217
+ }
1218
+ function assertKnownContractsCommand(selection, commandCatalog) {
1219
+ if (!selection.selectedCommand) {
1220
+ return;
1221
+ }
1132
1222
  const commandNames = new Set(commandCatalog);
1133
- if (selectedCommand && !commandNames.has(selectedCommand)) {
1134
- const namespaceChildren = commandCatalog.filter((command) => command.startsWith(`${selectedCommand} `));
1135
- if (namespaceChildren.length > 0) {
1136
- const displayedNamespaceChildren = namespaceChildren.slice(0, COMMAND_NAMESPACE_DISPLAY_LIMIT);
1137
- const hiddenNamespaceChildCount = namespaceChildren.length - displayedNamespaceChildren.length;
1138
- const displayedChildCommandList = hiddenNamespaceChildCount > 0
1139
- ? `${displayedNamespaceChildren.join(", ")}, and ${hiddenNamespaceChildCount} more`
1140
- : displayedNamespaceChildren.join(", ");
1141
- const fallbackCandidates = namespaceChildren.slice(0, COMMAND_NAMESPACE_FALLBACK_LIMIT);
1142
- const childCommandExamples = namespaceChildren
1143
- .slice(0, 5)
1144
- .map((command) => `pm contracts --command "${command}" --flags-only --json`);
1145
- const suggestedChildCommand = namespaceChildren[0];
1146
- throw new PmCliError(`Command "${options.command}" is a command namespace. Choose a concrete child command: ${displayedChildCommandList}.`, EXIT_CODE.USAGE, {
1147
- code: "command_namespace",
1148
- required: "Use a concrete child command path listed under this namespace.",
1149
- why: "Command groups expose help at the namespace root, but command flag contracts belong to executable child commands.",
1150
- examples: childCommandExamples,
1151
- nextSteps: [
1152
- `Retry with a child command, for example: ${childCommandExamples[0]}`,
1153
- ],
1154
- recovery: {
1155
- suggested_retry: `pm contracts --command "${suggestedChildCommand}" --flags-only --json`,
1156
- fallback_candidates: fallbackCandidates.map((command) => ({
1157
- source: "command_namespace",
1158
- command: `pm contracts --command "${command}" --flags-only --json`,
1159
- reason: `Child command under ${selectedCommand}`,
1160
- })),
1161
- },
1162
- });
1163
- }
1164
- const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selectedCommand);
1165
- if (packageHint) {
1166
- throw new PmCliError(`Unknown command: "${options.command}". Command "${selectedCommand}" is provided by the optional "${packageHint}" package. Run "pm install ${packageHint} --project" and retry.`, EXIT_CODE.USAGE, {
1167
- code: "unknown_command",
1168
- required: `Install the optional "${packageHint}" package, or choose a command from pm contracts --flags-only --json.`,
1169
- why: "Command contracts include core commands plus commands registered by active packages and extensions.",
1170
- examples: [`pm install ${packageHint} --project`, `pm contracts --command ${selectedCommand} --flags-only --json`],
1171
- nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],
1172
- recovery: {
1173
- suggested_retry: `pm install ${packageHint} --project`,
1174
- },
1175
- });
1176
- }
1177
- throw new PmCliError(`Unknown command: "${options.command}".`, EXIT_CODE.USAGE, {
1178
- code: "unknown_command",
1179
- required: "Use a command path listed by pm contracts --flags-only --json.",
1180
- why: "Command contracts are generated from the active core, package, and extension command registry.",
1181
- examples: ["pm contracts --flags-only --json", "pm --help"],
1182
- nextSteps: ["Verify spelling and active packages/extensions, then rerun with a known command path."],
1183
- recovery: {
1184
- suggested_retry: "pm contracts --flags-only --json",
1185
- },
1186
- });
1223
+ if (commandNames.has(selection.selectedCommand)) {
1224
+ return;
1187
1225
  }
1188
- const selectedPackageOwnedAction = selectedCommand
1189
- ? PACKAGE_OWNED_COMMAND_ACTIONS.get(selectedCommand)
1226
+ const namespaceChildren = commandCatalog.filter((command) => command.startsWith(`${selection.selectedCommand} `));
1227
+ if (namespaceChildren.length > 0) {
1228
+ throw buildCommandNamespaceError(selection.selectedCommand, namespaceChildren);
1229
+ }
1230
+ const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selection.selectedCommand);
1231
+ if (packageHint) {
1232
+ throw buildPackageOwnedCommandError(selection.selectedCommand, packageHint);
1233
+ }
1234
+ throw buildUnknownCommandError(selection.selectedCommand);
1235
+ }
1236
+ function resolveContractsActionContext(selection, runtime) {
1237
+ const actionDescriptors = collectContractsActionDescriptors(selection, runtime.mergedExtensionContracts);
1238
+ assertKnownContractsAction(selection, actionDescriptors);
1239
+ const commandCatalog = buildContractsCommandCatalog(actionDescriptors, runtime.mergedExtensionContracts);
1240
+ assertKnownContractsCommand(selection, commandCatalog);
1241
+ const selectedPackageOwnedAction = selection.selectedCommand
1242
+ ? PACKAGE_OWNED_COMMAND_ACTIONS.get(selection.selectedCommand)
1190
1243
  : undefined;
1191
- const commandScopedDescriptors = selectedCommand
1244
+ const commandScopedDescriptors = selection.selectedCommand
1192
1245
  ? actionDescriptors.filter((descriptor) => selectedPackageOwnedAction
1193
1246
  ? descriptor.action === selectedPackageOwnedAction
1194
- : actionDescriptorMatchesSelectedCommand(descriptor, selectedCommand))
1247
+ : actionDescriptorMatchesSelectedCommand(descriptor, selection.selectedCommand))
1195
1248
  : actionDescriptors;
1196
- if (selectedCommand &&
1197
- selectedAction &&
1198
- !commandScopedDescriptors.some((descriptor) => descriptor.action === selectedAction)) {
1199
- throw new PmCliError(`Action "${options.action}" is not mapped to command "${options.command}" in contracts output.`, EXIT_CODE.USAGE);
1249
+ if (selection.selectedCommand &&
1250
+ selection.selectedAction &&
1251
+ !commandScopedDescriptors.some((descriptor) => descriptor.action === selection.selectedAction)) {
1252
+ throw new PmCliError(`Action "${selection.selectedAction}" is not mapped to command "${selection.selectedCommand}" in contracts output.`, EXIT_CODE.USAGE);
1200
1253
  }
1201
- const schema = PM_TOOL_PARAMETERS_SCHEMA;
1202
- const schemaBranches = extractActionBranches(schema);
1203
- const schemaActionSet = new Set(schemaBranches
1254
+ const scopedActionDescriptors = selection.selectedAction
1255
+ ? commandScopedDescriptors.filter((descriptor) => descriptor.action === selection.selectedAction)
1256
+ : commandScopedDescriptors;
1257
+ const allActionAvailability = [
1258
+ ...new Map(scopedActionDescriptors
1259
+ .map((descriptor) => resolveActionAvailability(descriptor, runtime.runtimeProbe))
1260
+ .map((entry) => [
1261
+ /* c8 ignore next -- keyed dedupe by action|path is covered by runtime policy integration tests. */
1262
+ selectedPackageOwnedAction ? entry.action : `${entry.action}|${entry.command_path ?? ""}`,
1263
+ entry,
1264
+ ])).values(),
1265
+ ];
1266
+ const actionAvailability = selection.runtimeOnly && !selection.selectedAction && !selection.availabilityOnly
1267
+ ? allActionAvailability.filter((entry) => entry.invocable)
1268
+ : allActionAvailability;
1269
+ return {
1270
+ actionDescriptors,
1271
+ commandCatalog,
1272
+ commandScopedDescriptors,
1273
+ scopedActionDescriptors,
1274
+ selectedPackageOwnedAction,
1275
+ actionAvailability,
1276
+ actions: [...new Set(actionAvailability.map((entry) => entry.action))],
1277
+ };
1278
+ }
1279
+ function buildSchemaActionSet(schema) {
1280
+ return new Set(extractActionBranches(schema)
1204
1281
  .map((entry) => {
1205
1282
  const properties = entry.properties;
1206
1283
  /* c8 ignore start -- PM_TOOL_PARAMETERS_SCHEMA action branches always carry a properties object; the property-less fallback is validated in schema-level contract tests. */
@@ -1220,145 +1297,182 @@ export async function runContracts(options, global) {
1220
1297
  /* c8 ignore stop */
1221
1298
  })
1222
1299
  .filter((entry) => entry !== null));
1300
+ }
1301
+ function buildMergedContractsSchema(mergedExtensionContracts) {
1302
+ const schema = PM_TOOL_PARAMETERS_SCHEMA;
1303
+ const schemaBranches = extractActionBranches(schema);
1304
+ const schemaActionSet = buildSchemaActionSet(schema);
1223
1305
  const extensionBranches = mergedExtensionContracts
1224
1306
  .filter((contract) => !schemaActionSet.has(contract.action))
1225
1307
  .map((contract) => buildExtensionActionSchemaBranch(contract));
1226
- const mergedSchema = extensionBranches.length > 0
1308
+ return extensionBranches.length > 0
1227
1309
  ? {
1228
1310
  ...schema,
1229
1311
  oneOf: [...schemaBranches, ...extensionBranches],
1230
1312
  }
1231
1313
  : schema;
1232
- const scopedActionDescriptors = selectedAction
1233
- ? commandScopedDescriptors.filter((descriptor) => descriptor.action === selectedAction)
1234
- : commandScopedDescriptors;
1235
- const allActionAvailability = [
1236
- ...new Map(scopedActionDescriptors
1237
- .map((descriptor) => resolveActionAvailability(descriptor, runtimeProbe))
1238
- .map((entry) => [
1239
- /* c8 ignore next -- keyed dedupe by action|path is covered by runtime policy integration tests. */
1240
- selectedPackageOwnedAction ? entry.action : `${entry.action}|${entry.command_path ?? ""}`,
1241
- entry,
1242
- ])).values(),
1243
- ];
1244
- const actionAvailability = runtimeOnly && !selectedAction && !availabilityOnly
1245
- ? allActionAvailability.filter((entry) => entry.invocable)
1246
- : allActionAvailability;
1247
- const actions = [...new Set(actionAvailability.map((entry) => entry.action))];
1248
- const descriptorActionSet = new Set(actionDescriptors.map((descriptor) => descriptor.action));
1249
- let filteredSchema = selectedAction
1250
- ? filterSchemaByAction(mergedSchema, selectedAction)
1251
- : selectedCommand
1252
- ? filterSchemaByActions(mergedSchema, new Set(scopedActionDescriptors.map((descriptor) => descriptor.action)))
1314
+ }
1315
+ function filterContractsSchema(selection, actionContext, mergedSchema) {
1316
+ const descriptorActionSet = new Set(actionContext.actionDescriptors.map((descriptor) => descriptor.action));
1317
+ const filteredSchema = selection.selectedAction
1318
+ ? filterSchemaByAction(mergedSchema, selection.selectedAction)
1319
+ : selection.selectedCommand
1320
+ ? filterSchemaByActions(mergedSchema, new Set(actionContext.scopedActionDescriptors.map((descriptor) => descriptor.action)))
1253
1321
  : filterSchemaByActions(mergedSchema, descriptorActionSet);
1254
- if (runtimeOnly && !selectedAction) {
1255
- filteredSchema = filterSchemaByActions(filteredSchema, new Set(actions));
1256
- }
1257
- const includeSchemaSurface = !flagsOnly && !availabilityOnly;
1258
- if (includeSchemaSurface) {
1259
- filteredSchema = attachCreateRequiredOptionContracts(filteredSchema, createRequiredOptionContracts);
1260
- }
1261
- const commands = selectedCommand !== undefined
1262
- ? [selectedCommand]
1263
- : selectedAction
1264
- ? resolveScopedCommandsFromActionDescriptors(scopedActionDescriptors, commandCatalog)
1265
- : commandCatalog;
1266
- const outputCommands = flagsOnly && selectedCommand === undefined && selectedAction === undefined
1322
+ return selection.runtimeOnly && !selection.selectedAction
1323
+ ? filterSchemaByActions(filteredSchema, new Set(actionContext.actions))
1324
+ : filteredSchema;
1325
+ }
1326
+ function resolveContractsSchemaContext(selection, runtime, actionContext) {
1327
+ const mergedSchema = buildMergedContractsSchema(runtime.mergedExtensionContracts);
1328
+ const includeSchemaSurface = !selection.flagsOnly && !selection.availabilityOnly;
1329
+ const filteredSchema = includeSchemaSurface
1330
+ ? attachCreateRequiredOptionContracts(filterContractsSchema(selection, actionContext, mergedSchema), runtime.createRequiredOptionContracts)
1331
+ : filterContractsSchema(selection, actionContext, mergedSchema);
1332
+ return { mergedSchema, filteredSchema };
1333
+ }
1334
+ function resolveContractsCommands(selection, actionContext) {
1335
+ if (selection.selectedCommand !== undefined) {
1336
+ return [selection.selectedCommand];
1337
+ }
1338
+ if (selection.selectedAction) {
1339
+ return resolveScopedCommandsFromActionDescriptors(actionContext.scopedActionDescriptors, actionContext.commandCatalog);
1340
+ }
1341
+ return actionContext.commandCatalog;
1342
+ }
1343
+ function resolveOutputCommands(selection, commands) {
1344
+ return selection.flagsOnly && selection.selectedCommand === undefined && selection.selectedAction === undefined
1267
1345
  ? compactCommandAliasSurface(commands)
1268
1346
  : commands;
1269
- const commandAliases = buildCommandAliasSurface(commands);
1270
- const extensionCommandContracts = selectedCommand
1271
- ? extensionContracts.filter((entry) => entry.command === selectedCommand)
1272
- : selectedAction
1273
- ? extensionContracts.filter((entry) => outputCommands.includes(normalizeCommandPath(entry.command)))
1274
- : extensionContracts;
1275
- const includeRuntimeContractSections = !(flagsOnly && !fullOutput);
1276
- const result = {
1347
+ }
1348
+ function resolveExtensionCommandContracts(selection, runtime, outputCommands) {
1349
+ if (selection.selectedCommand) {
1350
+ return runtime.extensionContracts.filter((entry) => splitCommandPathAliases(entry.command).includes(selection.selectedCommand));
1351
+ }
1352
+ if (selection.selectedAction) {
1353
+ const outputCommandSet = new Set(outputCommands);
1354
+ return runtime.extensionContracts.filter((entry) => splitCommandPathAliases(entry.command).some((command) => outputCommandSet.has(command)));
1355
+ }
1356
+ return runtime.extensionContracts;
1357
+ }
1358
+ function createContractsResult(selection, schemaContext, actionContext, outputCommands) {
1359
+ return {
1277
1360
  schema_version:
1278
1361
  /* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */
1279
- typeof mergedSchema["x-schema-version"] === "string"
1280
- ? mergedSchema["x-schema-version"]
1362
+ typeof schemaContext.mergedSchema["x-schema-version"] === "string"
1363
+ ? schemaContext.mergedSchema["x-schema-version"]
1281
1364
  : null,
1282
1365
  schema_id:
1283
1366
  /* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */
1284
- typeof mergedSchema.$id === "string"
1285
- ? mergedSchema.$id
1367
+ typeof schemaContext.mergedSchema.$id === "string"
1368
+ ? schemaContext.mergedSchema.$id
1286
1369
  : null,
1287
1370
  selected: {
1288
- action: selectedAction ?? null,
1289
- command: selectedCommand ?? null,
1290
- schema_only: schemaOnly,
1291
- flags_only: flagsOnly,
1292
- availability_only: availabilityOnly,
1293
- runtime_only: runtimeOnly,
1294
- command_scoped: selectedCommand !== undefined,
1371
+ action: selection.selectedAction ?? null,
1372
+ command: selection.selectedCommand ?? null,
1373
+ schema_only: selection.schemaOnly,
1374
+ flags_only: selection.flagsOnly,
1375
+ availability_only: selection.availabilityOnly,
1376
+ runtime_only: selection.runtimeOnly,
1377
+ command_scoped: selection.selectedCommand !== undefined,
1295
1378
  },
1296
1379
  commands: outputCommands,
1380
+ ...(!selection.flagsOnly
1381
+ ? {
1382
+ actions: actionContext.actions,
1383
+ action_availability: actionContext.actionAvailability,
1384
+ }
1385
+ : {}),
1297
1386
  };
1298
- if (includeRuntimeContractSections) {
1299
- result.runtime_schema = {
1300
- statuses: statusRegistry.definitions.map((definition) => definition.id),
1301
- open_status: statusRegistry.open_status,
1302
- close_status: statusRegistry.close_status,
1303
- canceled_status: statusRegistry.canceled_status,
1304
- types: [...typeRegistry.types],
1305
- fields_by_command: Object.fromEntries([...runtimeFieldRegistry.command_to_fields.entries()].map(([command, definitions]) => [
1306
- command,
1307
- [
1308
- ...new Set(definitions.map((definition) => `--${definition.cli_flag}`)),
1309
- ].sort((left, right) => left.localeCompare(right)),
1310
- ])),
1311
- };
1312
- result.extension_contracts = {
1313
- capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],
1314
- services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],
1315
- policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],
1316
- policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],
1317
- trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],
1318
- sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],
1319
- manifest_versions: [1, 2],
1320
- compatibility: {
1321
- current: "v2",
1322
- previous: ["v1"],
1323
- breaking_strategy: "versioned_breaking",
1324
- },
1325
- };
1326
- }
1327
- if (!flagsOnly) {
1328
- result.actions = actions;
1329
- result.action_availability = actionAvailability;
1387
+ }
1388
+ function attachRuntimeContractsResult(result, runtime) {
1389
+ result.runtime_schema = {
1390
+ statuses: runtime.statusRegistry.definitions.map((definition) => definition.id),
1391
+ open_status: runtime.statusRegistry.open_status,
1392
+ close_status: runtime.statusRegistry.close_status,
1393
+ canceled_status: runtime.statusRegistry.canceled_status,
1394
+ types: [...runtime.typeRegistry.types],
1395
+ fields_by_command: Object.fromEntries([...runtime.runtimeFieldRegistry.command_to_fields.entries()].map(([command, definitions]) => [
1396
+ command,
1397
+ [...new Set(definitions.map((definition) => `--${definition.cli_flag}`))].sort((left, right) => left.localeCompare(right)),
1398
+ ])),
1399
+ };
1400
+ result.extension_contracts = {
1401
+ capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],
1402
+ services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],
1403
+ policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],
1404
+ policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],
1405
+ trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],
1406
+ sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],
1407
+ manifest_versions: [1, 2],
1408
+ compatibility: {
1409
+ current: "v2",
1410
+ previous: ["v1"],
1411
+ breaking_strategy: "versioned_breaking",
1412
+ },
1413
+ };
1414
+ }
1415
+ function attachSchemaContractsResult(result, selection, schemaContext, extensionCommandContracts) {
1416
+ if (selection.flagsOnly || selection.availabilityOnly) {
1417
+ return;
1330
1418
  }
1331
- if (includeSchemaSurface && !omitUnfilteredSchema) {
1332
- result.schema = filteredSchema;
1419
+ if (!selection.omitUnfilteredSchema) {
1420
+ result.schema = schemaContext.filteredSchema;
1333
1421
  result.extension_commands = extensionCommandContracts;
1422
+ return;
1334
1423
  }
1335
- else if (includeSchemaSurface && omitUnfilteredSchema) {
1336
- result.schema_omitted_reason = "unfiltered_default_brief";
1337
- result.extension_commands = extensionCommandContracts;
1424
+ result.schema_omitted_reason = "unfiltered_default_brief";
1425
+ result.extension_commands = extensionCommandContracts;
1426
+ }
1427
+ function attachFlagContractsResult(result, selection, runtime, outputCommands, commandAliases) {
1428
+ if (selection.schemaOnly || selection.availabilityOnly) {
1429
+ return;
1338
1430
  }
1339
- if (!schemaOnly && !availabilityOnly) {
1340
- if (!omitUnfilteredCommandFlags) {
1341
- result.command_flags = buildCommandFlagSurface(outputCommands, extensionFlagMap, runtimeFieldFlagMap);
1342
- }
1343
- else {
1344
- result.command_flags_omitted_reason = "unfiltered_default_brief";
1345
- }
1346
- if (commandAliases.length > 0) {
1347
- result.command_aliases = commandAliases;
1348
- }
1431
+ if (!selection.omitUnfilteredCommandFlags) {
1432
+ result.command_flags = buildCommandFlagSurface(outputCommands, runtime.extensionFlagMap, runtime.runtimeFieldFlagMap);
1349
1433
  }
1350
- if (!schemaOnly && !flagsOnly && !availabilityOnly) {
1351
- if (!omitUnfilteredCommanderAliases) {
1352
- result.commander_aliases = buildCommanderAliasSurface();
1353
- }
1354
- else {
1355
- result.commander_aliases_omitted_reason = "unfiltered_default_brief";
1356
- }
1434
+ else {
1435
+ result.command_flags_omitted_reason = "unfiltered_default_brief";
1436
+ }
1437
+ if (commandAliases.length > 0) {
1438
+ result.command_aliases = commandAliases;
1439
+ }
1440
+ }
1441
+ function attachCommanderAliasContractsResult(result, selection) {
1442
+ if (selection.schemaOnly || selection.flagsOnly || selection.availabilityOnly) {
1443
+ return;
1357
1444
  }
1445
+ if (!selection.omitUnfilteredCommanderAliases) {
1446
+ result.commander_aliases = buildCommanderAliasSurface();
1447
+ return;
1448
+ }
1449
+ result.commander_aliases_omitted_reason = "unfiltered_default_brief";
1450
+ }
1451
+ /**
1452
+ * Implements run contracts for the public runtime surface of this module.
1453
+ */
1454
+ export async function runContracts(options, global) {
1455
+ const selection = resolveContractsSelection(options);
1456
+ assertSingleContractsProjection(selection);
1457
+ const pmRoot = resolvePmRoot(process.cwd(), global.path);
1458
+ const runtime = await resolveContractsRuntimeContext(global, pmRoot);
1459
+ const actionContext = resolveContractsActionContext(selection, runtime);
1460
+ const schemaContext = resolveContractsSchemaContext(selection, runtime, actionContext);
1461
+ const commands = resolveContractsCommands(selection, actionContext);
1462
+ const outputCommands = resolveOutputCommands(selection, commands);
1463
+ const commandAliases = buildCommandAliasSurface(commands);
1464
+ const extensionCommandContracts = resolveExtensionCommandContracts(selection, runtime, outputCommands);
1465
+ const result = createContractsResult(selection, schemaContext, actionContext, outputCommands);
1466
+ if (!(selection.flagsOnly && !selection.fullOutput)) {
1467
+ attachRuntimeContractsResult(result, runtime);
1468
+ }
1469
+ attachSchemaContractsResult(result, selection, schemaContext, extensionCommandContracts);
1470
+ attachFlagContractsResult(result, selection, runtime, outputCommands, commandAliases);
1471
+ attachCommanderAliasContractsResult(result, selection);
1358
1472
  // pm-4os2: snapshot the static MCP tool surface in the full projection so
1359
1473
  // `pnpm contracts:check` (CI static gate) fails on unintended inputSchema
1360
1474
  // drift in src/mcp/tool-definitions.ts.
1361
- if (fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly) {
1475
+ if (selection.fullOutput && !selection.schemaOnly && !selection.flagsOnly && !selection.availabilityOnly) {
1362
1476
  result.mcp_tools = buildMcpToolContracts();
1363
1477
  }
1364
1478
  return result;
@@ -1390,4 +1504,4 @@ export const _testOnlyContractsCommand = {
1390
1504
  toRuntimeShortFlagToken,
1391
1505
  };
1392
1506
  //# sourceMappingURL=contracts.js.map
1393
- //# debugId=98b192d1-a27b-513e-8089-5626e03f2be1
1507
+ //# debugId=24d15738-45bd-5dd2-95e1-699f9c6061bd