@unbrained/pm-cli 2026.6.30 → 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 (628) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +26 -0
  3. package/dist/cli/bootstrap-args.js +89 -79
  4. package/dist/cli/bootstrap-args.js.map +1 -1
  5. package/dist/cli/commander-usage.d.ts +2 -0
  6. package/dist/cli/commander-usage.js +58 -47
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/aggregate.js +102 -79
  9. package/dist/cli/commands/aggregate.js.map +1 -1
  10. package/dist/cli/commands/calendar.js +339 -303
  11. package/dist/cli/commands/calendar.js.map +1 -1
  12. package/dist/cli/commands/close-many.js +89 -68
  13. package/dist/cli/commands/close-many.js.map +1 -1
  14. package/dist/cli/commands/close.js +157 -129
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/comments-audit.js +50 -42
  17. package/dist/cli/commands/comments-audit.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +443 -879
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/context.js +365 -287
  22. package/dist/cli/commands/context.js.map +1 -1
  23. package/dist/cli/commands/contracts.js +352 -238
  24. package/dist/cli/commands/contracts.js.map +1 -1
  25. package/dist/cli/commands/create.js +483 -434
  26. package/dist/cli/commands/create.js.map +1 -1
  27. package/dist/cli/commands/dedupe-audit.js +46 -39
  28. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  29. package/dist/cli/commands/dedupe-merge.js +88 -69
  30. package/dist/cli/commands/dedupe-merge.js.map +1 -1
  31. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  32. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  33. package/dist/cli/commands/extension/doctor.js +129 -78
  34. package/dist/cli/commands/extension/doctor.js.map +1 -1
  35. package/dist/cli/commands/extension/managed-state.js +101 -57
  36. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  37. package/dist/cli/commands/extension/scaffold.d.ts +7 -0
  38. package/dist/cli/commands/extension/scaffold.js +214 -186
  39. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  40. package/dist/cli/commands/extension.d.ts +6 -1
  41. package/dist/cli/commands/extension.js +1034 -902
  42. package/dist/cli/commands/extension.js.map +1 -1
  43. package/dist/cli/commands/get.js +114 -81
  44. package/dist/cli/commands/get.js.map +1 -1
  45. package/dist/cli/commands/health.d.ts +17 -0
  46. package/dist/cli/commands/health.js +446 -307
  47. package/dist/cli/commands/health.js.map +1 -1
  48. package/dist/cli/commands/history-compact.js +209 -140
  49. package/dist/cli/commands/history-compact.js.map +1 -1
  50. package/dist/cli/commands/history-redact.js +162 -119
  51. package/dist/cli/commands/history-redact.js.map +1 -1
  52. package/dist/cli/commands/history-repair.js +120 -85
  53. package/dist/cli/commands/history-repair.js.map +1 -1
  54. package/dist/cli/commands/init.d.ts +8 -2
  55. package/dist/cli/commands/init.js +263 -162
  56. package/dist/cli/commands/init.js.map +1 -1
  57. package/dist/cli/commands/list-filter-shared.js +55 -48
  58. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  59. package/dist/cli/commands/list.js +152 -102
  60. package/dist/cli/commands/list.js.map +1 -1
  61. package/dist/cli/commands/next.js +49 -32
  62. package/dist/cli/commands/next.js.map +1 -1
  63. package/dist/cli/commands/plan.js +373 -298
  64. package/dist/cli/commands/plan.js.map +1 -1
  65. package/dist/cli/commands/recurrence-parsers.js +43 -25
  66. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  67. package/dist/cli/commands/reindex.d.ts +21 -5
  68. package/dist/cli/commands/reindex.js +345 -205
  69. package/dist/cli/commands/reindex.js.map +1 -1
  70. package/dist/cli/commands/restore.d.ts +8 -7
  71. package/dist/cli/commands/restore.js +105 -69
  72. package/dist/cli/commands/restore.js.map +1 -1
  73. package/dist/cli/commands/schema.js +33 -30
  74. package/dist/cli/commands/schema.js.map +1 -1
  75. package/dist/cli/commands/search.d.ts +10 -2
  76. package/dist/cli/commands/search.js +595 -536
  77. package/dist/cli/commands/search.js.map +1 -1
  78. package/dist/cli/commands/telemetry.js +98 -87
  79. package/dist/cli/commands/telemetry.js.map +1 -1
  80. package/dist/cli/commands/test-all.js +237 -168
  81. package/dist/cli/commands/test-all.js.map +1 -1
  82. package/dist/cli/commands/test.d.ts +6 -5
  83. package/dist/cli/commands/test.js +530 -464
  84. package/dist/cli/commands/test.js.map +1 -1
  85. package/dist/cli/commands/update-many.js +57 -42
  86. package/dist/cli/commands/update-many.js.map +1 -1
  87. package/dist/cli/commands/update.d.ts +1 -1
  88. package/dist/cli/commands/update.js +764 -747
  89. package/dist/cli/commands/update.js.map +1 -1
  90. package/dist/cli/commands/validate.d.ts +18 -1
  91. package/dist/cli/commands/validate.js +466 -343
  92. package/dist/cli/commands/validate.js.map +1 -1
  93. package/dist/cli/error-guidance.js +399 -357
  94. package/dist/cli/error-guidance.js.map +1 -1
  95. package/dist/cli/extension-command-options.js +48 -21
  96. package/dist/cli/extension-command-options.js.map +1 -1
  97. package/dist/cli/main.d.ts +47 -0
  98. package/dist/cli/main.js +428 -341
  99. package/dist/cli/main.js.map +1 -1
  100. package/dist/cli/migration-gates.js +22 -45
  101. package/dist/cli/migration-gates.js.map +1 -1
  102. package/dist/cli/register-list-query.js +94 -105
  103. package/dist/cli/register-list-query.js.map +1 -1
  104. package/dist/cli/register-mutation.js +400 -416
  105. package/dist/cli/register-mutation.js.map +1 -1
  106. package/dist/cli/register-operations.js +86 -66
  107. package/dist/cli/register-operations.js.map +1 -1
  108. package/dist/cli/register-setup.js +120 -101
  109. package/dist/cli/register-setup.js.map +1 -1
  110. package/dist/cli/registration-helpers.js +117 -122
  111. package/dist/cli/registration-helpers.js.map +1 -1
  112. package/dist/cli-bundle/chunks/{activity-MVSEND6D.js → activity-CUC4JY3U.js} +9 -9
  113. package/dist/cli-bundle/chunks/activity-WEIEMM73.js +16 -0
  114. package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js → aggregate-DKUTRY6R.js} +109 -85
  115. package/dist/cli-bundle/chunks/aggregate-DKUTRY6R.js.map +1 -0
  116. package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js → aggregate-SW5PNGCS.js} +108 -84
  117. package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js.map → aggregate-SW5PNGCS.js.map} +2 -2
  118. package/dist/cli-bundle/chunks/{append-KDHT4GHI.js → append-H32VOR2Y.js} +6 -6
  119. package/dist/cli-bundle/chunks/{append-LEDBAM3K.js → append-UBM632FK.js} +6 -6
  120. package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js → chunk-2227673O.js} +158 -114
  121. package/dist/cli-bundle/chunks/chunk-2227673O.js.map +1 -0
  122. package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js → chunk-2ASNV4DH.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js → chunk-2CHRYUXL.js} +2 -2
  124. package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js → chunk-2KWL5NPW.js} +42 -27
  125. package/dist/cli-bundle/chunks/chunk-2KWL5NPW.js.map +1 -0
  126. package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js → chunk-36UGKF4O.js} +21 -29
  127. package/dist/cli-bundle/chunks/chunk-36UGKF4O.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-JZG5ADVE.js → chunk-3AZUFQK6.js} +1103 -963
  129. package/dist/cli-bundle/chunks/chunk-3AZUFQK6.js.map +1 -0
  130. package/dist/cli-bundle/chunks/{chunk-DRPF274X.js → chunk-3LCUASYG.js} +2 -2
  131. package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js → chunk-3Q2HBMTI.js} +2 -2
  132. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  133. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  134. package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js → chunk-4NUOWFBT.js} +109 -72
  135. package/dist/cli-bundle/chunks/chunk-4NUOWFBT.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js → chunk-55XRYWEG.js} +6 -6
  137. package/dist/cli-bundle/chunks/{chunk-5IRVSKPS.js → chunk-5GVTFFTC.js} +150 -224
  138. package/dist/cli-bundle/chunks/chunk-5GVTFFTC.js.map +1 -0
  139. package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js → chunk-5PGBHRY3.js} +41 -26
  140. package/dist/cli-bundle/chunks/chunk-5PGBHRY3.js.map +7 -0
  141. package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js → chunk-66Z3X7ZG.js} +261 -161
  142. package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +7 -0
  143. package/dist/cli-bundle/chunks/{chunk-A3UNLXNJ.js → chunk-6ITZLD4T.js} +738 -688
  144. package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-JTRKME24.js → chunk-6YCYF2AI.js} +262 -162
  146. package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-RM6MHL6A.js → chunk-6ZMBJRDJ.js} +580 -467
  148. package/dist/cli-bundle/chunks/chunk-6ZMBJRDJ.js.map +7 -0
  149. package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js → chunk-7MYWF4ZX.js} +110 -73
  150. package/dist/cli-bundle/chunks/chunk-7MYWF4ZX.js.map +1 -0
  151. package/dist/cli-bundle/chunks/{chunk-SNUK7H5J.js → chunk-7NSPKJUS.js} +716 -606
  152. package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +7 -0
  153. package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js → chunk-7TH5NMVB.js} +95 -53
  154. package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +7 -0
  155. package/dist/cli-bundle/chunks/{chunk-VD3LKZFX.js → chunk-7W4H4K26.js} +739 -689
  156. package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +1 -0
  157. package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js → chunk-A6VOGKBA.js} +6 -6
  158. package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js → chunk-AIAIXG7I.js} +2 -2
  159. package/dist/cli-bundle/chunks/{chunk-NIBP3I7A.js → chunk-AJEBCRIY.js} +128 -126
  160. package/dist/cli-bundle/chunks/chunk-AJEBCRIY.js.map +1 -0
  161. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
  162. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
  163. package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js → chunk-BTX5MIQF.js} +2 -2
  164. package/dist/cli-bundle/chunks/chunk-BVZZN2LH.js +809 -0
  165. package/dist/cli-bundle/chunks/chunk-BVZZN2LH.js.map +7 -0
  166. package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js → chunk-CYBDUHNO.js} +3 -3
  167. package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js → chunk-CZPVDLD2.js} +4 -4
  168. package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js → chunk-EMPGXBUF.js} +22 -30
  169. package/dist/cli-bundle/chunks/chunk-EMPGXBUF.js.map +1 -0
  170. package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js → chunk-EUKTMRN3.js} +2 -2
  171. package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js → chunk-FFOQHGNH.js} +6 -6
  172. package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js → chunk-GFMSLORL.js} +6 -6
  173. package/dist/cli-bundle/chunks/{chunk-IZQOJR2B.js → chunk-GRRG3MCT.js} +198 -189
  174. package/dist/cli-bundle/chunks/chunk-GRRG3MCT.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js → chunk-H4GRLYJS.js} +3 -3
  176. package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js → chunk-HQTPRV4D.js} +6 -6
  177. package/dist/cli-bundle/chunks/{chunk-CY5IJMUM.js → chunk-I66WE2HE.js} +712 -602
  178. package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +1 -0
  179. package/dist/cli-bundle/chunks/{chunk-ZFIEEDTJ.js → chunk-IEEJQCZ4.js} +509 -363
  180. package/dist/cli-bundle/chunks/chunk-IEEJQCZ4.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-DU66JUGT.js → chunk-IG5JYZGU.js} +488 -420
  182. package/dist/cli-bundle/chunks/chunk-IG5JYZGU.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js → chunk-JMK5GCK2.js} +2 -2
  184. package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js → chunk-JXAUVO6X.js} +258 -169
  185. package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js.map → chunk-JXAUVO6X.js.map} +2 -2
  186. package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js → chunk-K2VYLVX4.js} +2 -2
  187. package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js → chunk-KCO2EAN5.js} +3 -3
  188. package/dist/cli-bundle/chunks/{chunk-T7ZMQI4J.js → chunk-KIYCOJ63.js} +198 -189
  189. package/dist/cli-bundle/chunks/chunk-KIYCOJ63.js.map +1 -0
  190. package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js → chunk-KLXF7NCC.js} +2 -2
  191. package/dist/cli-bundle/chunks/{chunk-V3KLX7U7.js → chunk-KN3URLKS.js} +510 -364
  192. package/dist/cli-bundle/chunks/chunk-KN3URLKS.js.map +1 -0
  193. package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js → chunk-LRKMWUUV.js} +2 -2
  194. package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js → chunk-LTRAF2D7.js} +3 -3
  195. package/dist/cli-bundle/chunks/{chunk-5T6WPLRO.js → chunk-MNBPX5JS.js} +394 -354
  196. package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js → chunk-MRD4T5LF.js} +2 -2
  198. package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js → chunk-N2JSWVWG.js} +4 -4
  199. package/dist/cli-bundle/chunks/{chunk-7WDETKGP.js → chunk-N3QCJS4M.js} +1105 -965
  200. package/dist/cli-bundle/chunks/chunk-N3QCJS4M.js.map +7 -0
  201. package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js → chunk-NRZS637N.js} +258 -169
  202. package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +1 -0
  203. package/dist/cli-bundle/chunks/chunk-OTUJZKGI.js +799 -0
  204. package/dist/cli-bundle/chunks/chunk-OTUJZKGI.js.map +1 -0
  205. package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js → chunk-Q6K2OACU.js} +153 -90
  206. package/dist/cli-bundle/chunks/chunk-Q6K2OACU.js.map +1 -0
  207. package/dist/cli-bundle/chunks/{chunk-K46GQ265.js → chunk-Q6NXOHS6.js} +489 -421
  208. package/dist/cli-bundle/chunks/chunk-Q6NXOHS6.js.map +1 -0
  209. package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js → chunk-QH3FSKRJ.js} +2 -2
  210. package/dist/cli-bundle/chunks/{chunk-UB3V5WUI.js → chunk-RM37OPYK.js} +394 -354
  211. package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +1 -0
  212. package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js → chunk-S62UANU7.js} +3 -3
  213. package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js → chunk-SPM2XLWI.js} +37 -28
  214. package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +7 -0
  215. package/dist/cli-bundle/chunks/{chunk-DORJSBGJ.js → chunk-SYNKD3ZG.js} +127 -125
  216. package/dist/cli-bundle/chunks/chunk-SYNKD3ZG.js.map +7 -0
  217. package/dist/cli-bundle/chunks/{chunk-6YRAMXRS.js → chunk-SYVUU7EK.js} +581 -468
  218. package/dist/cli-bundle/chunks/chunk-SYVUU7EK.js.map +1 -0
  219. package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js → chunk-TPOFWBMY.js} +95 -53
  220. package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +1 -0
  221. package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js → chunk-TTHCEV5Q.js} +92 -77
  222. package/dist/cli-bundle/chunks/chunk-TTHCEV5Q.js.map +1 -0
  223. package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js → chunk-U2BEEM2X.js} +3 -3
  224. package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js → chunk-UGLU6Q2I.js} +91 -76
  225. package/dist/cli-bundle/chunks/chunk-UGLU6Q2I.js.map +7 -0
  226. package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js → chunk-UT73HUPC.js} +3 -3
  227. package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js → chunk-UTSH5GWX.js} +4 -4
  228. package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js → chunk-UWKEJMZU.js} +157 -113
  229. package/dist/cli-bundle/chunks/chunk-UWKEJMZU.js.map +7 -0
  230. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  231. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  232. package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js → chunk-W47SML5B.js} +152 -89
  233. package/dist/cli-bundle/chunks/chunk-W47SML5B.js.map +7 -0
  234. package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js → chunk-WJAMWAHZ.js} +157 -118
  235. package/dist/cli-bundle/chunks/chunk-WJAMWAHZ.js.map +7 -0
  236. package/dist/cli-bundle/chunks/{chunk-HIBK6H4S.js → chunk-XCHUVHKU.js} +685 -544
  237. package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +1 -0
  238. package/dist/cli-bundle/chunks/{chunk-DJDXAU74.js → chunk-XEWQKDYZ.js} +685 -544
  239. package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +7 -0
  240. package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js → chunk-XTHQWXVC.js} +158 -119
  241. package/dist/cli-bundle/chunks/chunk-XTHQWXVC.js.map +1 -0
  242. package/dist/cli-bundle/chunks/{chunk-6T5ZIWBS.js → chunk-XWGEMNBR.js} +150 -224
  243. package/dist/cli-bundle/chunks/chunk-XWGEMNBR.js.map +7 -0
  244. package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js → chunk-Y4NRKBFW.js} +3 -3
  245. package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js → chunk-YLZZ6T54.js} +38 -29
  246. package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +1 -0
  247. package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js → chunk-YPKFV2JR.js} +6 -6
  248. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
  249. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
  250. package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js → chunk-ZNHEYCDD.js} +2 -2
  251. package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js → chunk-ZNT7KEWE.js} +2 -2
  252. package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js → claim-SENTPZBN.js} +8 -8
  253. package/dist/cli-bundle/chunks/{claim-6NINZYB3.js → claim-Z7MEQCBT.js} +8 -8
  254. package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js → close-424MX4CU.js} +7 -7
  255. package/dist/cli-bundle/chunks/close-YCWQQPDS.js +14 -0
  256. package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js → close-many-2IV4J2TR.js} +103 -82
  257. package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +1 -0
  258. package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js → close-many-SWY34BII.js} +102 -81
  259. package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +7 -0
  260. package/dist/cli-bundle/chunks/{comments-ETHABIY6.js → comments-4FGNTSNV.js} +8 -8
  261. package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js → comments-7YS5MY5X.js} +8 -8
  262. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js +1062 -0
  263. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js.map +1 -0
  264. package/dist/cli-bundle/chunks/config-G74GISC4.js +1072 -0
  265. package/dist/cli-bundle/chunks/config-G74GISC4.js.map +7 -0
  266. package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js → context-LHVKJSPJ.js} +12 -12
  267. package/dist/cli-bundle/chunks/{context-XDI4DKKT.js → context-ZQY54JNS.js} +12 -12
  268. package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js → contracts-CP2EZJC7.js} +320 -199
  269. package/dist/cli-bundle/chunks/contracts-CP2EZJC7.js.map +7 -0
  270. package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js → contracts-FIZLMP7O.js} +321 -200
  271. package/dist/cli-bundle/chunks/contracts-FIZLMP7O.js.map +1 -0
  272. package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js → copy-GYNQQPW2.js} +5 -5
  273. package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js → copy-TLW7JTQT.js} +5 -5
  274. package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js → create-VSKYSOCD.js} +12 -12
  275. package/dist/cli-bundle/chunks/create-XTMAPS7I.js +28 -0
  276. package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js → delete-4W5JYCEG.js} +5 -5
  277. package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js → delete-ANTOTI2I.js} +5 -5
  278. package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js → deps-HPPE6MJN.js} +5 -5
  279. package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js → deps-ZQZN54EZ.js} +5 -5
  280. package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js → docs-RPOVFMP3.js} +7 -7
  281. package/dist/cli-bundle/chunks/{docs-2TIFR62T.js → docs-XJNYBJGE.js} +7 -7
  282. package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js → eval-DM6JBZTS.js} +10 -10
  283. package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js → eval-RFBI5FGS.js} +10 -10
  284. package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js → extension-B3YY4WY5.js} +11 -10
  285. package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js → extension-TTSEFQTS.js} +11 -10
  286. package/dist/cli-bundle/chunks/{files-DF3HO6XK.js → files-5D65CHGE.js} +7 -7
  287. package/dist/cli-bundle/chunks/{files-T5ODMETM.js → files-GPIG77EN.js} +7 -7
  288. package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js → focus-C3PEJV2C.js} +6 -6
  289. package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js → focus-ZHN7WIGX.js} +6 -6
  290. package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js → gc-D4JQ6OWN.js} +3 -3
  291. package/dist/cli-bundle/chunks/{gc-FULIVYR4.js → gc-VZIXDL32.js} +3 -3
  292. package/dist/cli-bundle/chunks/{get-VYPIICPC.js → get-GIBRUUOP.js} +121 -81
  293. package/dist/cli-bundle/chunks/get-GIBRUUOP.js.map +1 -0
  294. package/dist/cli-bundle/chunks/{get-AWK324RS.js → get-IOVAN6RU.js} +120 -80
  295. package/dist/cli-bundle/chunks/get-IOVAN6RU.js.map +7 -0
  296. package/dist/cli-bundle/chunks/{health-Q66C43GN.js → health-L2U3AFKV.js} +437 -264
  297. package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +1 -0
  298. package/dist/cli-bundle/chunks/{health-FBCVZGSX.js → health-MM7AWXYF.js} +436 -263
  299. package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +7 -0
  300. package/dist/cli-bundle/chunks/history-DD7L7BNL.js +18 -0
  301. package/dist/cli-bundle/chunks/{history-X4OSES6K.js → history-IL7XCEX2.js} +8 -8
  302. package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js → history-compact-HALOTOU7.js} +214 -135
  303. package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +1 -0
  304. package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js → history-compact-MV25P7DM.js} +213 -134
  305. package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +7 -0
  306. package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +19 -0
  307. package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js → history-redact-VYCWQFK7.js} +9 -9
  308. package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js → history-repair-44MODPQF.js} +124 -84
  309. package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +1 -0
  310. package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js → history-repair-CPNAOCNF.js} +123 -83
  311. package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +7 -0
  312. package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js → init-F27NHENZ.js} +12 -11
  313. package/dist/cli-bundle/chunks/init-HHVQQP6C.js +22 -0
  314. package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js → learnings-HJVDQIGY.js} +8 -8
  315. package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js → learnings-XSFSUUWK.js} +8 -8
  316. package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js → list-HPMEKCAA.js} +8 -8
  317. package/dist/cli-bundle/chunks/{list-ROT7JF62.js → list-VMPWTURB.js} +8 -8
  318. package/dist/cli-bundle/chunks/{next-66BJB4N2.js → next-ETXF2ZCN.js} +59 -37
  319. package/dist/cli-bundle/chunks/next-ETXF2ZCN.js.map +7 -0
  320. package/dist/cli-bundle/chunks/{next-N5MWJTBY.js → next-QM6YJIIS.js} +60 -38
  321. package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +1 -0
  322. package/dist/cli-bundle/chunks/{notes-FW6YFLND.js → notes-GDZIKGR6.js} +8 -8
  323. package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js → notes-WDDBPC4D.js} +8 -8
  324. package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js → plan-BGDR73Z6.js} +373 -279
  325. package/dist/cli-bundle/chunks/plan-BGDR73Z6.js.map +1 -0
  326. package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js → plan-C5IMM335.js} +372 -278
  327. package/dist/cli-bundle/chunks/plan-C5IMM335.js.map +7 -0
  328. package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js → profile-CCOKZ2IQ.js} +9 -9
  329. package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js → profile-HUCENIEQ.js} +9 -9
  330. package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js → register-list-query-ROSNIL52.js} +80 -83
  331. package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +1 -0
  332. package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js → register-list-query-XN4ZRHSV.js} +79 -82
  333. package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +7 -0
  334. package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js → register-mutation-CFSB2MS3.js} +406 -385
  335. package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +1 -0
  336. package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js → register-mutation-KRLAHEL2.js} +405 -384
  337. package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +7 -0
  338. package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js → register-operations-4PASGJDB.js} +112 -93
  339. package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +7 -0
  340. package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js → register-operations-MBN4KGUM.js} +113 -94
  341. package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +1 -0
  342. package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js → register-setup-VIAWYFP5.js} +129 -104
  343. package/dist/cli-bundle/chunks/register-setup-VIAWYFP5.js.map +1 -0
  344. package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js → register-setup-ZCGKHDKL.js} +128 -103
  345. package/dist/cli-bundle/chunks/register-setup-ZCGKHDKL.js.map +7 -0
  346. package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js → restore-4CBWUMCX.js} +9 -9
  347. package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +17 -0
  348. package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js → scheduling-shortcuts-6VFKNKCM.js} +12 -12
  349. package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js → scheduling-shortcuts-ERHCVTEM.js} +12 -12
  350. package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js → schema-TDGK6N3I.js} +7 -7
  351. package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js → schema-UE5KKAUX.js} +7 -7
  352. package/dist/cli-bundle/chunks/{search-KP6H7COV.js → search-FP7MEU4S.js} +10 -10
  353. package/dist/cli-bundle/chunks/{search-CX5UMV4H.js → search-K4CFLQ5S.js} +10 -10
  354. package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js → stats-NJJCALEZ.js} +6 -6
  355. package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js → stats-XT6QRKQY.js} +6 -6
  356. package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js → telemetry-5SQ5UDXC.js} +84 -70
  357. package/dist/cli-bundle/chunks/telemetry-5SQ5UDXC.js.map +7 -0
  358. package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js → telemetry-HVXFZA2U.js} +85 -71
  359. package/dist/cli-bundle/chunks/telemetry-HVXFZA2U.js.map +1 -0
  360. package/dist/cli-bundle/chunks/{test-QNDXZQCW.js → test-UFSJ5YIO.js} +15 -14
  361. package/dist/cli-bundle/chunks/{test-HU2BS7EY.js → test-YCDAUBWF.js} +15 -14
  362. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js +427 -0
  363. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js.map +1 -0
  364. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js +430 -0
  365. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js.map +7 -0
  366. package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js → test-runs-FK5E75AA.js} +185 -147
  367. package/dist/cli-bundle/chunks/test-runs-FK5E75AA.js.map +1 -0
  368. package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js → test-runs-H4TGWGRN.js} +184 -146
  369. package/dist/cli-bundle/chunks/test-runs-H4TGWGRN.js.map +7 -0
  370. package/dist/cli-bundle/chunks/update-MTCFES6X.js +24 -0
  371. package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js → update-Y5WQVT5O.js} +15 -15
  372. package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js → update-many-6YAYYRLE.js} +83 -68
  373. package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js.map → update-many-6YAYYRLE.js.map} +2 -2
  374. package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js → update-many-JTKKSA7Y.js} +84 -69
  375. package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js.map → update-many-JTKKSA7Y.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js → upgrade-DTAHZ236.js} +11 -10
  377. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js.map → upgrade-DTAHZ236.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js → upgrade-JUDU7YL4.js} +13 -12
  379. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js.map → upgrade-JUDU7YL4.js.map} +1 -1
  380. package/dist/cli-bundle/chunks/{validate-2G566PKQ.js → validate-732RWS5W.js} +440 -319
  381. package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +7 -0
  382. package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js → validate-W7H5TEDC.js} +441 -320
  383. package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +1 -0
  384. package/dist/cli-bundle/main.js +986 -1500
  385. package/dist/cli-bundle/main.js.map +4 -4
  386. package/dist/core/config/nested-settings.js +89 -67
  387. package/dist/core/config/nested-settings.js.map +1 -1
  388. package/dist/core/extensions/activation-summary-markdown.js +23 -12
  389. package/dist/core/extensions/activation-summary-markdown.js.map +1 -1
  390. package/dist/core/extensions/extension-policy.d.ts +18 -3
  391. package/dist/core/extensions/extension-policy.js +116 -106
  392. package/dist/core/extensions/extension-policy.js.map +1 -1
  393. package/dist/core/extensions/loader.js +310 -232
  394. package/dist/core/extensions/loader.js.map +1 -1
  395. package/dist/core/governance/metadata-coverage.js +20 -28
  396. package/dist/core/governance/metadata-coverage.js.map +1 -1
  397. package/dist/core/history/drift-scan.js +93 -81
  398. package/dist/core/history/drift-scan.js.map +1 -1
  399. package/dist/core/item/item-format.js +523 -410
  400. package/dist/core/item/item-format.js.map +1 -1
  401. package/dist/core/item/item-type-definition.js +14 -14
  402. package/dist/core/item/item-type-definition.js.map +1 -1
  403. package/dist/core/item/type-registry.js +87 -82
  404. package/dist/core/item/type-registry.js.map +1 -1
  405. package/dist/core/output/mutation-projection.js +42 -26
  406. package/dist/core/output/mutation-projection.js.map +1 -1
  407. package/dist/core/schema/runtime-schema.js +34 -28
  408. package/dist/core/schema/runtime-schema.js.map +1 -1
  409. package/dist/core/search/semantic-defaults.js +64 -37
  410. package/dist/core/search/semantic-defaults.js.map +1 -1
  411. package/dist/core/search/vector-stores.js +32 -17
  412. package/dist/core/search/vector-stores.js.map +1 -1
  413. package/dist/core/sentry/helpers.js +31 -28
  414. package/dist/core/sentry/helpers.js.map +1 -1
  415. package/dist/core/sentry/instrument.js +54 -43
  416. package/dist/core/sentry/instrument.js.map +1 -1
  417. package/dist/core/store/front-matter-cache.js +239 -153
  418. package/dist/core/store/front-matter-cache.js.map +1 -1
  419. package/dist/core/store/item-store.js +33 -26
  420. package/dist/core/store/item-store.js.map +1 -1
  421. package/dist/core/store/settings.js +247 -203
  422. package/dist/core/store/settings.js.map +1 -1
  423. package/dist/core/test/background-runs.js +189 -160
  424. package/dist/core/test/background-runs.js.map +1 -1
  425. package/dist/mcp/server.js +387 -367
  426. package/dist/mcp/server.js.map +1 -1
  427. package/dist/sdk/cli-contracts/flag-contracts.js +111 -180
  428. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  429. package/dist/sdk/cli-contracts/tool-schema.js +76 -45
  430. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  431. package/dist/sdk/compose.d.ts +4 -1
  432. package/dist/sdk/compose.js +181 -115
  433. package/dist/sdk/compose.js.map +1 -1
  434. package/docs/RELEASING.md +2 -3
  435. package/package.json +2 -2
  436. package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
  437. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
  438. package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
  439. package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +0 -16
  440. package/dist/cli-bundle/chunks/aggregate-MOC4TR2G.js.map +0 -1
  441. package/dist/cli-bundle/chunks/chunk-53ARXF2O.js.map +0 -7
  442. package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +0 -1
  443. package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +0 -7
  444. package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +0 -7
  445. package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +0 -1
  446. package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +0 -7
  447. package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +0 -7
  448. package/dist/cli-bundle/chunks/chunk-AWN4PPH5.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-BOWQWXLI.js.map +0 -1
  450. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js +0 -115
  451. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js.map +0 -1
  452. package/dist/cli-bundle/chunks/chunk-CHRNYKNI.js.map +0 -7
  453. package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +0 -1
  454. package/dist/cli-bundle/chunks/chunk-D5LYZVGB.js.map +0 -1
  455. package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +0 -7
  456. package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +0 -7
  457. package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +0 -7
  458. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js +0 -118
  459. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js.map +0 -7
  460. package/dist/cli-bundle/chunks/chunk-FDEVKXC4.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-GF7EAR22.js.map +0 -7
  462. package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-IHXXUIXS.js.map +0 -1
  464. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  465. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  466. package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +0 -7
  467. package/dist/cli-bundle/chunks/chunk-JTRKME24.js.map +0 -1
  468. package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +0 -1
  469. package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +0 -1
  470. package/dist/cli-bundle/chunks/chunk-KGQ3W65B.js.map +0 -1
  471. package/dist/cli-bundle/chunks/chunk-KTMMTOIP.js.map +0 -7
  472. package/dist/cli-bundle/chunks/chunk-KYDYQMNW.js.map +0 -7
  473. package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +0 -1
  474. package/dist/cli-bundle/chunks/chunk-NO6Y6FB2.js.map +0 -7
  475. package/dist/cli-bundle/chunks/chunk-QE5UFCCO.js.map +0 -1
  476. package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +0 -7
  477. package/dist/cli-bundle/chunks/chunk-RPRW26NG.js.map +0 -1
  478. package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +0 -7
  479. package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +0 -1
  480. package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +0 -1
  481. package/dist/cli-bundle/chunks/chunk-UFKNF23C.js.map +0 -7
  482. package/dist/cli-bundle/chunks/chunk-V3KLX7U7.js.map +0 -1
  483. package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +0 -1
  484. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  485. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  486. package/dist/cli-bundle/chunks/chunk-WTRUDJ3R.js.map +0 -1
  487. package/dist/cli-bundle/chunks/chunk-Z55WX4IQ.js.map +0 -1
  488. package/dist/cli-bundle/chunks/chunk-Z5BM2FKQ.js.map +0 -7
  489. package/dist/cli-bundle/chunks/chunk-ZEATCVAC.js.map +0 -7
  490. package/dist/cli-bundle/chunks/chunk-ZFIEEDTJ.js.map +0 -7
  491. package/dist/cli-bundle/chunks/chunk-ZIE6WXJ2.js.map +0 -1
  492. package/dist/cli-bundle/chunks/close-37KEHLYM.js +0 -14
  493. package/dist/cli-bundle/chunks/close-many-BFMP6HHK.js.map +0 -7
  494. package/dist/cli-bundle/chunks/close-many-CXJBOWWY.js.map +0 -1
  495. package/dist/cli-bundle/chunks/config-FIXJZEQK.js +0 -1541
  496. package/dist/cli-bundle/chunks/config-FIXJZEQK.js.map +0 -7
  497. package/dist/cli-bundle/chunks/config-X3ZVCUUG.js +0 -1531
  498. package/dist/cli-bundle/chunks/config-X3ZVCUUG.js.map +0 -1
  499. package/dist/cli-bundle/chunks/contracts-KP4QAGVW.js.map +0 -1
  500. package/dist/cli-bundle/chunks/contracts-SMOAN5NF.js.map +0 -7
  501. package/dist/cli-bundle/chunks/create-DFMNBKBS.js +0 -28
  502. package/dist/cli-bundle/chunks/get-AWK324RS.js.map +0 -7
  503. package/dist/cli-bundle/chunks/get-VYPIICPC.js.map +0 -1
  504. package/dist/cli-bundle/chunks/health-FBCVZGSX.js.map +0 -7
  505. package/dist/cli-bundle/chunks/health-Q66C43GN.js.map +0 -1
  506. package/dist/cli-bundle/chunks/history-5XUSLAJA.js +0 -18
  507. package/dist/cli-bundle/chunks/history-compact-2GHT32UX.js.map +0 -1
  508. package/dist/cli-bundle/chunks/history-compact-WLCQEKXS.js.map +0 -7
  509. package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +0 -19
  510. package/dist/cli-bundle/chunks/history-repair-FY75IC26.js.map +0 -1
  511. package/dist/cli-bundle/chunks/history-repair-GABSDSVD.js.map +0 -7
  512. package/dist/cli-bundle/chunks/init-TRYJELH4.js +0 -21
  513. package/dist/cli-bundle/chunks/next-66BJB4N2.js.map +0 -7
  514. package/dist/cli-bundle/chunks/next-N5MWJTBY.js.map +0 -1
  515. package/dist/cli-bundle/chunks/plan-DQ7G4EDC.js.map +0 -7
  516. package/dist/cli-bundle/chunks/plan-ZHKZ7JVF.js.map +0 -1
  517. package/dist/cli-bundle/chunks/register-list-query-KY6Z6WV7.js.map +0 -7
  518. package/dist/cli-bundle/chunks/register-list-query-Y2VRHPCL.js.map +0 -1
  519. package/dist/cli-bundle/chunks/register-mutation-N6AYSKPM.js.map +0 -7
  520. package/dist/cli-bundle/chunks/register-mutation-PCARIGZS.js.map +0 -1
  521. package/dist/cli-bundle/chunks/register-operations-L6CYTOIH.js.map +0 -7
  522. package/dist/cli-bundle/chunks/register-operations-YAT6FUUB.js.map +0 -1
  523. package/dist/cli-bundle/chunks/register-setup-MPANILQF.js.map +0 -7
  524. package/dist/cli-bundle/chunks/register-setup-N7UGXYJC.js.map +0 -1
  525. package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +0 -17
  526. package/dist/cli-bundle/chunks/telemetry-DIFPXCAT.js.map +0 -7
  527. package/dist/cli-bundle/chunks/telemetry-WTYFUPRL.js.map +0 -1
  528. package/dist/cli-bundle/chunks/test-all-PZTBLLQ6.js +0 -360
  529. package/dist/cli-bundle/chunks/test-all-PZTBLLQ6.js.map +0 -7
  530. package/dist/cli-bundle/chunks/test-all-XLPI4USF.js +0 -357
  531. package/dist/cli-bundle/chunks/test-all-XLPI4USF.js.map +0 -1
  532. package/dist/cli-bundle/chunks/test-runs-CA6K32RD.js.map +0 -1
  533. package/dist/cli-bundle/chunks/test-runs-LANLLPVO.js.map +0 -7
  534. package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +0 -24
  535. package/dist/cli-bundle/chunks/validate-2G566PKQ.js.map +0 -7
  536. package/dist/cli-bundle/chunks/validate-BDPVXHHH.js.map +0 -1
  537. /package/dist/cli-bundle/chunks/{activity-MVSEND6D.js.map → activity-CUC4JY3U.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{activity-EJBMXUBH.js.map → activity-WEIEMM73.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{append-KDHT4GHI.js.map → append-H32VOR2Y.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{append-LEDBAM3K.js.map → append-UBM632FK.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js.map → chunk-2ASNV4DH.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js.map → chunk-2CHRYUXL.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-DRPF274X.js.map → chunk-3LCUASYG.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js.map → chunk-3Q2HBMTI.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js.map → chunk-55XRYWEG.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js.map → chunk-A6VOGKBA.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js.map → chunk-AIAIXG7I.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js.map → chunk-BTX5MIQF.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js.map → chunk-CYBDUHNO.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js.map → chunk-CZPVDLD2.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js.map → chunk-EUKTMRN3.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js.map → chunk-FFOQHGNH.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js.map → chunk-GFMSLORL.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js.map → chunk-H4GRLYJS.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js.map → chunk-HQTPRV4D.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js.map → chunk-JMK5GCK2.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js.map → chunk-K2VYLVX4.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js.map → chunk-KCO2EAN5.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js.map → chunk-KLXF7NCC.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js.map → chunk-LRKMWUUV.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js.map → chunk-LTRAF2D7.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js.map → chunk-MRD4T5LF.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js.map → chunk-N2JSWVWG.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js.map → chunk-QH3FSKRJ.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js.map → chunk-S62UANU7.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js.map → chunk-U2BEEM2X.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js.map → chunk-UT73HUPC.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js.map → chunk-UTSH5GWX.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js.map → chunk-Y4NRKBFW.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js.map → chunk-YPKFV2JR.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js.map → chunk-ZNHEYCDD.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js.map → chunk-ZNT7KEWE.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js.map → claim-SENTPZBN.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{claim-6NINZYB3.js.map → claim-Z7MEQCBT.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js.map → close-424MX4CU.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{close-37KEHLYM.js.map → close-YCWQQPDS.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{comments-ETHABIY6.js.map → comments-4FGNTSNV.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js.map → comments-7YS5MY5X.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js.map → context-LHVKJSPJ.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{context-XDI4DKKT.js.map → context-ZQY54JNS.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js.map → copy-GYNQQPW2.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js.map → copy-TLW7JTQT.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js.map → create-VSKYSOCD.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{create-DFMNBKBS.js.map → create-XTMAPS7I.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js.map → delete-4W5JYCEG.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js.map → delete-ANTOTI2I.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js.map → deps-HPPE6MJN.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js.map → deps-ZQZN54EZ.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js.map → docs-RPOVFMP3.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{docs-2TIFR62T.js.map → docs-XJNYBJGE.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js.map → eval-DM6JBZTS.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js.map → eval-RFBI5FGS.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js.map → extension-B3YY4WY5.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js.map → extension-TTSEFQTS.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{files-DF3HO6XK.js.map → files-5D65CHGE.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{files-T5ODMETM.js.map → files-GPIG77EN.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js.map → focus-C3PEJV2C.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js.map → focus-ZHN7WIGX.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js.map → gc-D4JQ6OWN.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{gc-FULIVYR4.js.map → gc-VZIXDL32.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{history-5XUSLAJA.js.map → history-DD7L7BNL.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{history-X4OSES6K.js.map → history-IL7XCEX2.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{history-redact-BVHWDXPR.js.map → history-redact-IX4YEWMY.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js.map → history-redact-VYCWQFK7.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js.map → init-F27NHENZ.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{init-TRYJELH4.js.map → init-HHVQQP6C.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js.map → learnings-HJVDQIGY.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js.map → learnings-XSFSUUWK.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js.map → list-HPMEKCAA.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{list-ROT7JF62.js.map → list-VMPWTURB.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{notes-FW6YFLND.js.map → notes-GDZIKGR6.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js.map → notes-WDDBPC4D.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js.map → profile-CCOKZ2IQ.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js.map → profile-HUCENIEQ.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js.map → restore-4CBWUMCX.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{restore-IRAKSWIW.js.map → restore-5UEAGG3W.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js.map → scheduling-shortcuts-6VFKNKCM.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js.map → scheduling-shortcuts-ERHCVTEM.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js.map → schema-TDGK6N3I.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js.map → schema-UE5KKAUX.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{search-KP6H7COV.js.map → search-FP7MEU4S.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{search-CX5UMV4H.js.map → search-K4CFLQ5S.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js.map → stats-NJJCALEZ.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js.map → stats-XT6QRKQY.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{test-QNDXZQCW.js.map → test-UFSJ5YIO.js.map} +0 -0
  626. /package/dist/cli-bundle/chunks/{test-HU2BS7EY.js.map → test-YCDAUBWF.js.map} +0 -0
  627. /package/dist/cli-bundle/chunks/{update-UXDLTEOZ.js.map → update-MTCFES6X.js.map} +0 -0
  628. /package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js.map → update-Y5WQVT5O.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../core/config/positional-value.ts","../../../../../../../../cli/commands/config.ts"],"sourcesContent":["/**\n * Pure routing helper for the optional positional `value` argument of `pm config set`.\n *\n * `pm config set <key> <value>` is the intuitive form agents reach for, but config\n * VALUES are actually carried by typed flags (`--format`, `--policy`, `--criterion`).\n * This module maps a config key (kebab or snake form, canonical or alias) plus a raw\n * positional value onto the typed flag it should populate, applying enabled/disabled\n * synonyms (off/on/true/false) for boolean-style policy keys. The existing per-key\n * validators in config.ts still run on the routed value, so bad values keep their\n * good error messages.\n */\n\n/** The typed flag a positional value routes to. */\nexport type ConfigPositionalFlag = \"format\" | \"policy\" | \"criterion\";\n\n/** Successful routing of a positional value to a single-value typed flag. */\nexport interface ConfigPositionalScalarRouted {\n routable: true;\n flag: \"format\" | \"policy\";\n /** Normalized scalar value for single-value flags. */\n value: string;\n}\n\n/** Successful routing of a positional value to the criteria-list flag. */\nexport interface ConfigPositionalListRouted {\n routable: true;\n flag: \"criterion\";\n /** Criteria-list flag (`--criterion`) value, supplied as a values array. */\n values: string[];\n}\n\n/**\n * Restricts config positional routed values accepted by command, SDK, and storage contracts.\n */\nexport type ConfigPositionalRouted = ConfigPositionalScalarRouted | ConfigPositionalListRouted;\n\n/** A key whose value cannot be carried by a single positional (e.g. `context`). */\nexport interface ConfigPositionalNotRoutable {\n routable: false;\n /** Human/agent-facing reason + the flags to use instead. */\n reason: string;\n}\n\n/**\n * Restricts config positional result values accepted by command, SDK, and storage contracts.\n */\nexport type ConfigPositionalResult = ConfigPositionalRouted | ConfigPositionalNotRoutable;\n\n/** Canonical snake-case config keys accepted by the config command and positional router. */\nexport type ConfigKey =\n | \"definition_of_done\"\n | \"item_format\"\n | \"history_missing_stream_policy\"\n | \"sprint_release_format_policy\"\n | \"parent_reference_policy\"\n | \"metadata_validation_profile\"\n | \"metadata_required_fields\"\n | \"lifecycle_stale_blocker_reason_patterns\"\n | \"lifecycle_closure_like_blocked_reason_patterns\"\n | \"lifecycle_closure_like_resolution_patterns\"\n | \"lifecycle_closure_like_actual_result_patterns\"\n | \"governance_preset\"\n | \"governance_ownership_enforcement\"\n | \"governance_create_mode_default\"\n | \"governance_close_validation_default\"\n | \"governance_require_close_reason\"\n | \"governance_create_default_type\"\n | \"governance_workflow_enforcement\"\n | \"governance_parent_reference_policy\"\n | \"governance_metadata_validation_profile\"\n | \"governance_force_required_for_stale_lock\"\n | \"test_result_tracking\"\n | \"telemetry_tracking\"\n | \"context\";\n\nconst FORMAT_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\"item_format\"]);\n\nconst CRITERIA_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"definition_of_done\",\n \"metadata_required_fields\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n]);\n\nconst POLICY_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"history_missing_stream_policy\",\n \"sprint_release_format_policy\",\n \"parent_reference_policy\",\n \"metadata_validation_profile\",\n \"governance_preset\",\n \"governance_ownership_enforcement\",\n \"governance_create_mode_default\",\n \"governance_close_validation_default\",\n \"governance_require_close_reason\",\n \"governance_create_default_type\",\n \"governance_workflow_enforcement\",\n \"governance_parent_reference_policy\",\n \"governance_metadata_validation_profile\",\n \"governance_force_required_for_stale_lock\",\n \"test_result_tracking\",\n \"telemetry_tracking\",\n]);\n\n/**\n * Policy keys whose only valid values are enabled/disabled. For these we accept the\n * intuitive synonyms off/on/true/false. Other policy keys pass through unchanged so\n * their own validators report the precise allowed set.\n */\nconst ENABLED_DISABLED_POLICY_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_require_close_reason\",\n \"governance_force_required_for_stale_lock\",\n \"test_result_tracking\",\n \"telemetry_tracking\",\n]);\n\nconst ENABLED_DISABLED_SYNONYMS: Record<string, string> = {\n off: \"disabled\",\n on: \"enabled\",\n true: \"enabled\",\n false: \"disabled\",\n enabled: \"enabled\",\n disabled: \"disabled\",\n};\n\n/** Normalize any kebab/snake key form to the canonical snake key (or undefined). */\nfunction toCanonicalKey(keyOrAlias: string): ConfigKey | undefined {\n const normalized = keyOrAlias.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (\n FORMAT_KEYS.has(normalized as ConfigKey) ||\n CRITERIA_KEYS.has(normalized as ConfigKey) ||\n POLICY_KEYS.has(normalized as ConfigKey) ||\n normalized === \"context\"\n ) {\n return normalized as ConfigKey;\n }\n return undefined;\n}\n\n/**\n * Map an enabled/disabled-style value through its synonyms (case-insensitive). Values\n * that are not synonyms pass through unchanged so the downstream validator can reject\n * them with its own message.\n */\nfunction normalizeEnabledDisabled(value: string): string {\n const normalized = value.trim().toLowerCase();\n return ENABLED_DISABLED_SYNONYMS[normalized] ?? value;\n}\n\n/**\n * Resolve which typed flag a positional `pm config set <key> <value>` value should\n * populate, plus the normalized value.\n *\n * Returns `{ routable: false, reason }` for keys that require multiple/structured\n * flags (e.g. `context`). Unknown keys also return `routable: false` so the caller\n * can fall back to the existing invalid-key path.\n */\nexport function resolveConfigPositionalValue(\n canonicalKeyOrAlias: string,\n value: string,\n): ConfigPositionalResult {\n const key = toCanonicalKey(canonicalKeyOrAlias);\n if (key === undefined) {\n return {\n routable: false,\n reason: `Unknown config key \"${canonicalKeyOrAlias}\" cannot route a positional value.`,\n };\n }\n\n if (key === \"context\") {\n return {\n routable: false,\n reason:\n 'Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags.',\n };\n }\n\n if (FORMAT_KEYS.has(key)) {\n return { routable: true, flag: \"format\", value };\n }\n\n if (CRITERIA_KEYS.has(key)) {\n return { routable: true, flag: \"criterion\", values: [value] };\n }\n\n // policy key\n const policyValue = ENABLED_DISABLED_POLICY_KEYS.has(key) ? normalizeEnabledDisabled(value) : value;\n return { routable: true, flag: \"policy\", value: policyValue };\n}\n","/**\n * @module cli/commands/config\n *\n * Implements the pm config command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { resolveConfigPositionalValue, type ConfigKey } from \"../../core/config/positional-value.js\";\nimport {\n NESTED_SETTING_DESCRIPTORS,\n parseNestedSettingValue,\n readNestedSettingValue,\n resolveNestedSettingDescriptor,\n writeNestedSettingValue,\n type NestedSettingDescriptor,\n} from \"../../core/config/nested-settings.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { normalizeParentReferencePolicy } from \"../../core/item/parent-reference-policy.js\";\nimport { normalizeSprintReleaseFormatPolicy } from \"../../core/item/sprint-release-format.js\";\nimport { resolveItemTypeRegistry, resolveTypeName } from \"../../core/item/type-registry.js\";\nimport { buildInvalidTypeError } from \"../../core/schema/item-types-file.js\";\nimport { resolveItemTypesFilePath } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { migrateItemFilesToFormat } from \"../../core/store/item-format-migration.js\";\nimport {\n getSettingsPath,\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettingsWithMetadata, writeSettings } from \"../../core/store/settings.js\";\nimport type {\n ContextDepth,\n GovernanceCloseValidationDefault,\n GovernanceCreateModeDefault,\n GovernanceOwnershipEnforcement,\n GovernancePreset,\n GovernanceWorkflowEnforcement,\n ItemFormat,\n ParentReferencePolicy,\n SprintReleaseFormatPolicy,\n ValidateMetadataProfile,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\nimport { CONTEXT_DEPTH_VALUES } from \"../../types/index.js\";\n\nconst CONFIG_SCOPE_VALUES = [\"project\", \"global\"] as const;\ntype ConfigScope = (typeof CONFIG_SCOPE_VALUES)[number];\n\nconst CONFIG_KEY_VALUES = [\n \"definition-of-done\",\n \"definition_of_done\",\n \"item-format\",\n \"item_format\",\n \"history-missing-stream-policy\",\n \"history_missing_stream_policy\",\n \"sprint-release-format-policy\",\n \"sprint_release_format_policy\",\n \"parent-reference-policy\",\n \"parent_reference_policy\",\n \"metadata-validation-profile\",\n \"metadata_validation_profile\",\n \"metadata-required-fields\",\n \"metadata_required_fields\",\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"governance-preset\",\n \"governance_preset\",\n \"governance-ownership-enforcement\",\n \"governance_ownership_enforcement\",\n \"governance-create-mode-default\",\n \"governance_create_mode_default\",\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n \"governance-require-close-reason\",\n \"governance_require_close_reason\",\n \"governance-create-default-type\",\n \"governance_create_default_type\",\n \"governance-workflow-enforcement\",\n \"governance_workflow_enforcement\",\n \"governance-parent-reference-policy\",\n \"governance_parent_reference_policy\",\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n \"test-result-tracking\",\n \"test_result_tracking\",\n \"telemetry-tracking\",\n \"telemetry_tracking\",\n \"context\",\n] as const;\ntype ConfigAction = \"get\" | \"set\" | \"list\" | \"export\";\ntype HistoryMissingStreamPolicy = \"auto_create\" | \"strict_error\";\ntype TestResultTrackingPolicy = \"enabled\" | \"disabled\";\ntype TelemetryTrackingPolicy = \"enabled\" | \"disabled\";\ntype GovernanceForceRequiredForStaleLockPolicy = \"enabled\" | \"disabled\";\ntype GovernanceRequireCloseReasonPolicy = \"enabled\" | \"disabled\";\ntype ConfigValue =\n | string\n | string[]\n | ItemFormat\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceRequireCloseReasonPolicy\n | GovernanceWorkflowEnforcement\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy\n | ContextConfigValue;\n\ninterface ContextConfigValue {\n default_depth: string;\n activity_limit: number;\n stale_threshold_days: number;\n sections: Record<string, boolean>;\n}\n\ninterface ConfigKeyDescriptor {\n key: ConfigKey;\n aliases: string[];\n value_kind: \"string_array\" | \"enum\" | \"object\";\n set_flags: string[];\n summary: string;\n value: ConfigValue;\n}\n\n/**\n * Documents the config command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ConfigCommandOptions {\n criterion?: string[];\n format?: string;\n policy?: string;\n value?: string;\n clearCriteria?: boolean;\n defaultDepth?: string;\n activityLimit?: string;\n staleThresholdDays?: string;\n sectionHierarchy?: string;\n sectionActivity?: string;\n sectionProgress?: string;\n sectionBlockers?: string;\n sectionFiles?: string;\n sectionWorkload?: string;\n sectionStaleness?: string;\n sectionTests?: string;\n}\n\n/**\n * Documents the nested setting result value payload exchanged by command, SDK, and package integrations.\n */\nexport interface NestedSettingResultValue {\n key: string;\n path: string;\n kind: NestedSettingDescriptor[\"kind\"];\n value: string | number | boolean | null;\n}\n\n/**\n * Documents the config result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ConfigResult {\n scope: ConfigScope;\n key?: ConfigKey | string;\n criteria?: string[];\n format?: ItemFormat;\n policy?:\n | HistoryMissingStreamPolicy\n | SprintReleaseFormatPolicy\n | ParentReferencePolicy\n | ValidateMetadataProfile\n | GovernancePreset\n | GovernanceOwnershipEnforcement\n | GovernanceCreateModeDefault\n | GovernanceCloseValidationDefault\n | GovernanceRequireCloseReasonPolicy\n | GovernanceWorkflowEnforcement\n | GovernanceForceRequiredForStaleLockPolicy\n | TestResultTrackingPolicy\n | TelemetryTrackingPolicy\n | string;\n nested_setting?: NestedSettingResultValue;\n nested_settings?: NestedSettingResultValue[];\n keys?: ConfigKeyDescriptor[];\n values?: Record<ConfigKey, ConfigValue>;\n count?: number;\n context_settings?: ContextConfigValue;\n has_explicit_item_format?: boolean;\n migration?: {\n target_format: ItemFormat;\n scanned: number;\n migrated: string[];\n removed: string[];\n warnings: string[];\n };\n settings_path: string;\n changed: boolean;\n warnings?: string[];\n}\n\nconst CONFIG_KEY_ALIASES: Record<ConfigKey, string[]> = {\n definition_of_done: [\"definition-of-done\", \"definition_of_done\"],\n item_format: [\"item-format\", \"item_format\"],\n history_missing_stream_policy: [\"history-missing-stream-policy\", \"history_missing_stream_policy\"],\n sprint_release_format_policy: [\"sprint-release-format-policy\", \"sprint_release_format_policy\"],\n parent_reference_policy: [\"parent-reference-policy\", \"parent_reference_policy\"],\n metadata_validation_profile: [\"metadata-validation-profile\", \"metadata_validation_profile\"],\n metadata_required_fields: [\"metadata-required-fields\", \"metadata_required_fields\"],\n lifecycle_stale_blocker_reason_patterns: [\n \"lifecycle-stale-blocker-reason-patterns\",\n \"lifecycle_stale_blocker_reason_patterns\",\n ],\n lifecycle_closure_like_blocked_reason_patterns: [\n \"lifecycle-closure-like-blocked-reason-patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ],\n lifecycle_closure_like_resolution_patterns: [\n \"lifecycle-closure-like-resolution-patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n ],\n lifecycle_closure_like_actual_result_patterns: [\n \"lifecycle-closure-like-actual-result-patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n ],\n governance_preset: [\"governance-preset\", \"governance_preset\"],\n governance_ownership_enforcement: [\"governance-ownership-enforcement\", \"governance_ownership_enforcement\"],\n governance_create_mode_default: [\"governance-create-mode-default\", \"governance_create_mode_default\"],\n governance_close_validation_default: [\n \"governance-close-validation-default\",\n \"governance_close_validation_default\",\n ],\n governance_require_close_reason: [\n \"governance-require-close-reason\",\n \"governance_require_close_reason\",\n ],\n governance_create_default_type: [\"governance-create-default-type\", \"governance_create_default_type\"],\n governance_workflow_enforcement: [\"governance-workflow-enforcement\", \"governance_workflow_enforcement\"],\n governance_parent_reference_policy: [\"governance-parent-reference-policy\", \"governance_parent_reference_policy\"],\n governance_metadata_validation_profile: [\n \"governance-metadata-validation-profile\",\n \"governance_metadata_validation_profile\",\n ],\n governance_force_required_for_stale_lock: [\n \"governance-force-required-for-stale-lock\",\n \"governance_force_required_for_stale_lock\",\n ],\n test_result_tracking: [\"test-result-tracking\", \"test_result_tracking\"],\n telemetry_tracking: [\"telemetry-tracking\", \"telemetry_tracking\"],\n context: [\"context\"],\n};\n\n// Canonical kebab-case forms (first alias entry per key). Used for the invalid-key\n// hint so agents see ~21 keys instead of all ~45 kebab+snake variants; snake_case\n// forms stay fully accepted as input via CONFIG_KEY_VALUES/normalizeKey.\nconst CANONICAL_CONFIG_KEYS: readonly string[] = (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map(\n (candidate) => CONFIG_KEY_ALIASES[candidate][0],\n);\n\nconst CONFIG_KEY_SUMMARIES: Record<ConfigKey, string> = {\n definition_of_done: \"Definition of Done criteria list.\",\n item_format: \"Default item file format.\",\n history_missing_stream_policy: \"Missing history stream handling policy.\",\n sprint_release_format_policy: \"Sprint/release format validation policy.\",\n parent_reference_policy: \"Parent reference validation policy.\",\n metadata_validation_profile: \"Validate metadata profile policy (core|strict|custom).\",\n metadata_required_fields: \"Validate custom metadata required-fields list.\",\n lifecycle_stale_blocker_reason_patterns:\n \"Validate lifecycle stale-blocker reason substring patterns (criteria list).\",\n lifecycle_closure_like_blocked_reason_patterns:\n \"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).\",\n lifecycle_closure_like_resolution_patterns:\n \"Validate lifecycle closure-like resolution substring patterns (criteria list).\",\n lifecycle_closure_like_actual_result_patterns:\n \"Validate lifecycle closure-like actual_result substring patterns (criteria list).\",\n governance_preset: \"Governance preset policy (minimal|default|strict|custom).\",\n governance_ownership_enforcement: \"Governance ownership enforcement policy (none|warn|strict).\",\n governance_create_mode_default: \"Governance default create mode (progressive|strict).\",\n governance_close_validation_default: \"Governance default close validation mode (off|warn|strict).\",\n governance_require_close_reason: \"Governance close-reason requirement policy (enabled|disabled).\",\n governance_create_default_type: \"Governance default item type for `pm create` when --type is omitted.\",\n governance_workflow_enforcement: \"Governance per-type transition enforcement mode (off|warn|strict).\",\n governance_parent_reference_policy: \"Governance parent reference policy (warn|strict_error).\",\n governance_metadata_validation_profile: \"Governance metadata validation profile (core|strict|custom).\",\n governance_force_required_for_stale_lock: \"Governance stale-lock force policy (enabled|disabled).\",\n test_result_tracking: \"Item-level linked test result persistence policy.\",\n telemetry_tracking: \"Telemetry usage reporting policy.\",\n context: \"Context command settings (depth, section toggles, limits).\",\n};\n\nconst LIFECYCLE_PATTERN_CONFIG_KEYS: ConfigKey[] = [\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n];\n\nfunction isCriteriaConfigKey(key: ConfigKey): boolean {\n return key === \"definition_of_done\" || key === \"metadata_required_fields\" || LIFECYCLE_PATTERN_CONFIG_KEYS.includes(key);\n}\n\nfunction normalizeScope(value: string): ConfigScope {\n if ((CONFIG_SCOPE_VALUES as readonly string[]).includes(value)) {\n return value as ConfigScope;\n }\n throw new PmCliError(\n `Invalid config scope \"${value}\". Allowed: ${CONFIG_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeAction(value: string): ConfigAction {\n if (value === \"get\" || value === \"set\" || value === \"list\" || value === \"export\") {\n return value;\n }\n throw new PmCliError(`Invalid config action \"${value}\". Allowed: get, set, list, export`, EXIT_CODE.USAGE);\n}\n\nfunction normalizeKey(value: string): ConfigKey {\n if ((CONFIG_KEY_VALUES as readonly string[]).includes(value)) {\n if (value === \"item-format\" || value === \"item_format\") {\n return \"item_format\";\n }\n if (value === \"history-missing-stream-policy\" || value === \"history_missing_stream_policy\") {\n return \"history_missing_stream_policy\";\n }\n if (value === \"sprint-release-format-policy\" || value === \"sprint_release_format_policy\") {\n return \"sprint_release_format_policy\";\n }\n if (value === \"parent-reference-policy\" || value === \"parent_reference_policy\") {\n return \"parent_reference_policy\";\n }\n if (value === \"metadata-validation-profile\" || value === \"metadata_validation_profile\") {\n return \"metadata_validation_profile\";\n }\n if (value === \"metadata-required-fields\" || value === \"metadata_required_fields\") {\n return \"metadata_required_fields\";\n }\n if (\n value === \"lifecycle-stale-blocker-reason-patterns\" ||\n value === \"lifecycle_stale_blocker_reason_patterns\"\n ) {\n return \"lifecycle_stale_blocker_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-blocked-reason-patterns\" ||\n value === \"lifecycle_closure_like_blocked_reason_patterns\"\n ) {\n return \"lifecycle_closure_like_blocked_reason_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-resolution-patterns\" ||\n value === \"lifecycle_closure_like_resolution_patterns\"\n ) {\n return \"lifecycle_closure_like_resolution_patterns\";\n }\n if (\n value === \"lifecycle-closure-like-actual-result-patterns\" ||\n value === \"lifecycle_closure_like_actual_result_patterns\"\n ) {\n return \"lifecycle_closure_like_actual_result_patterns\";\n }\n if (value === \"governance-preset\" || value === \"governance_preset\") {\n return \"governance_preset\";\n }\n if (value === \"governance-ownership-enforcement\" || value === \"governance_ownership_enforcement\") {\n return \"governance_ownership_enforcement\";\n }\n if (value === \"governance-create-mode-default\" || value === \"governance_create_mode_default\") {\n return \"governance_create_mode_default\";\n }\n if (value === \"governance-close-validation-default\" || value === \"governance_close_validation_default\") {\n return \"governance_close_validation_default\";\n }\n if (value === \"governance-require-close-reason\" || value === \"governance_require_close_reason\") {\n return \"governance_require_close_reason\";\n }\n if (value === \"governance-create-default-type\" || value === \"governance_create_default_type\") {\n return \"governance_create_default_type\";\n }\n if (value === \"governance-workflow-enforcement\" || value === \"governance_workflow_enforcement\") {\n return \"governance_workflow_enforcement\";\n }\n if (value === \"governance-parent-reference-policy\" || value === \"governance_parent_reference_policy\") {\n return \"governance_parent_reference_policy\";\n }\n if (\n value === \"governance-metadata-validation-profile\" ||\n value === \"governance_metadata_validation_profile\"\n ) {\n return \"governance_metadata_validation_profile\";\n }\n if (\n value === \"governance-force-required-for-stale-lock\" ||\n value === \"governance_force_required_for_stale_lock\"\n ) {\n return \"governance_force_required_for_stale_lock\";\n }\n if (value === \"test-result-tracking\" || value === \"test_result_tracking\") {\n return \"test_result_tracking\";\n }\n if (value === \"telemetry-tracking\" || value === \"telemetry_tracking\") {\n return \"telemetry_tracking\";\n }\n if (value === \"context\") {\n return \"context\";\n }\n return \"definition_of_done\";\n }\n const nestedKeys = NESTED_SETTING_DESCRIPTORS.map((descriptor) => descriptor.key).join(\", \");\n throw new PmCliError(\n `Invalid config key \"${value}\". Supported: ${CANONICAL_CONFIG_KEYS.join(\", \")} (underscore variants also accepted). Nested leaf settings: ${nestedKeys}.`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeCriteria(values: string[] | undefined, clearCriteria: boolean | undefined): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set definition-of-done cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeItemFormat(value: string | undefined): ItemFormat {\n const normalized = value?.trim().toLowerCase();\n if (normalized === \"toon\") {\n return \"toon\";\n }\n if (normalized === \"json_markdown\") {\n throw new PmCliError(\n \"Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.\",\n EXIT_CODE.USAGE,\n );\n }\n throw new PmCliError(\"Config set item-format requires --format toon\", EXIT_CODE.USAGE);\n}\n\nfunction normalizeHistoryMissingStreamPolicy(value: string | undefined): HistoryMissingStreamPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"auto_create\" || normalized === \"strict_error\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTestResultTrackingPolicy(value: string | undefined): TestResultTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set test-result-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeTelemetryTrackingPolicy(value: string | undefined): TelemetryTrackingPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set telemetry-tracking requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeValidateMetadataProfile(value: string | undefined): ValidateMetadataProfile {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"core\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set metadata-validation-profile requires --policy with one of: core, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernancePreset(value: string | undefined): GovernancePreset {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"minimal\" || normalized === \"default\" || normalized === \"strict\" || normalized === \"custom\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-preset requires --policy with one of: minimal, default, strict, custom\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceOwnershipEnforcement(value: string | undefined): GovernanceOwnershipEnforcement {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"none\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCreateModeDefault(value: string | undefined): GovernanceCreateModeDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"progressive\" || normalized === \"strict\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-create-mode-default requires --policy with one of: progressive, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceCloseValidationDefault(value: string | undefined): GovernanceCloseValidationDefault {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"off\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n if (normalized === \"none\" || normalized === \"disabled\") {\n return \"off\";\n }\n throw new PmCliError(\n \"Config set governance-close-validation-default requires --policy with one of: off, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceWorkflowEnforcement(value: unknown): GovernanceWorkflowEnforcement {\n const normalized =\n typeof value === \"string\" ? value.trim().toLowerCase().replaceAll(\"-\", \"_\") : undefined;\n if (normalized === \"off\" || normalized === \"warn\" || normalized === \"strict\") {\n return normalized;\n }\n if (normalized === \"none\" || normalized === \"disabled\") {\n return \"off\";\n }\n throw new PmCliError(\n \"Config set governance-workflow-enforcement requires one of: off, warn, strict\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceForceRequiredForStaleLockPolicy(\n value: string | undefined,\n): GovernanceForceRequiredForStaleLockPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizeGovernanceRequireCloseReasonPolicy(\n value: string | undefined,\n): GovernanceRequireCloseReasonPolicy {\n const normalized = value?.trim().toLowerCase().replaceAll(\"-\", \"_\");\n if (normalized === \"enabled\" || normalized === \"disabled\") {\n return normalized;\n }\n throw new PmCliError(\n \"Config set governance-require-close-reason requires --policy with one of: enabled, disabled\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction normalizePolicyForConflict(key: ConfigKey | undefined, value: string): string {\n switch (key) {\n case \"history_missing_stream_policy\":\n return normalizeHistoryMissingStreamPolicy(value);\n case \"sprint_release_format_policy\":\n return normalizeSprintReleaseFormatPolicy(value);\n case \"parent_reference_policy\":\n case \"governance_parent_reference_policy\":\n return normalizeParentReferencePolicy(value);\n case \"metadata_validation_profile\":\n case \"governance_metadata_validation_profile\":\n return normalizeValidateMetadataProfile(value);\n case \"governance_preset\":\n return normalizeGovernancePreset(value);\n case \"governance_ownership_enforcement\":\n return normalizeGovernanceOwnershipEnforcement(value);\n case \"governance_create_mode_default\":\n return normalizeGovernanceCreateModeDefault(value);\n case \"governance_close_validation_default\":\n return normalizeGovernanceCloseValidationDefault(value);\n case \"governance_require_close_reason\":\n return normalizeGovernanceRequireCloseReasonPolicy(value);\n case \"governance_workflow_enforcement\":\n return normalizeGovernanceWorkflowEnforcement(value);\n case \"governance_force_required_for_stale_lock\":\n return normalizeGovernanceForceRequiredForStaleLockPolicy(value);\n case \"test_result_tracking\":\n return normalizeTestResultTrackingPolicy(value);\n case \"telemetry_tracking\":\n return normalizeTelemetryTrackingPolicy(value);\n default:\n return value.trim().toLowerCase().replaceAll(\"-\", \"_\");\n }\n}\n\nconst METADATA_REQUIRED_FIELD_ALIAS_MAP: Record<string, ValidateMetadataRequiredField> = {\n author: \"author\",\n acceptance_criteria: \"acceptance_criteria\",\n \"acceptance-criteria\": \"acceptance_criteria\",\n estimated_minutes: \"estimated_minutes\",\n \"estimated-minutes\": \"estimated_minutes\",\n estimate: \"estimated_minutes\",\n close_reason: \"close_reason\",\n \"close-reason\": \"close_reason\",\n reviewer: \"reviewer\",\n risk: \"risk\",\n confidence: \"confidence\",\n sprint: \"sprint\",\n release: \"release\",\n};\nconst METADATA_REQUIRED_FIELD_OPTIONS = [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n] as const;\n\nfunction normalizeMetadataRequiredFields(\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))];\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields cannot combine --clear-criteria with --criterion values\",\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n \"Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)\",\n EXIT_CODE.USAGE,\n );\n }\n const lowered = normalized.map((value) => value.toLowerCase().replaceAll(\"-\", \"_\"));\n const unsupported = lowered.filter((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] === undefined);\n if (unsupported.length > 0) {\n throw new PmCliError(\n `Config set metadata-required-fields received unsupported values: ${unsupported.join(\", \")}. ` +\n `Supported values: ${METADATA_REQUIRED_FIELD_OPTIONS.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n return [...new Set(lowered.map((value) => METADATA_REQUIRED_FIELD_ALIAS_MAP[value] as ValidateMetadataRequiredField))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeLifecyclePatternCriteria(\n key: ConfigKey,\n values: string[] | undefined,\n clearCriteria: boolean | undefined,\n): string[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n if (clearCriteria) {\n if (normalized.length > 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} cannot combine --clear-criteria with --criterion values`,\n EXIT_CODE.USAGE,\n );\n }\n return [];\n }\n if (normalized.length === 0) {\n throw new PmCliError(\n `Config set ${CONFIG_KEY_ALIASES[key][0]} requires at least one --criterion value (or --clear-criteria to clear)`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\nfunction normalizeWarnings(values: string[]): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeKeyForAction(action: ConfigAction, value: string | undefined): ConfigKey | undefined {\n if (action === \"list\" || action === \"export\") {\n if (typeof value === \"string\" && value.trim().length > 0) {\n throw new PmCliError(`Config action \"${action}\" does not accept <key>`, EXIT_CODE.USAGE);\n }\n return undefined;\n }\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new PmCliError(`Config action \"${action}\" requires <key>`, EXIT_CODE.USAGE);\n }\n return normalizeKey(value);\n}\n\n/**\n * Narrows the `ConfigKey | undefined` carried into the get/set branches back to\n * a concrete `ConfigKey`. By the time those branches run, `normalizeKeyForAction`\n * has already thrown on a missing key and nested settings have returned earlier,\n * so the `undefined` case is unreachable at runtime — the throw is a defensive\n * type-narrowing guard only.\n */\nfunction assertConfigKeyDefined(key: ConfigKey | undefined): asserts key is ConfigKey {\n /* c8 ignore next 3 -- defensive: get/set always carry a key (see normalizeKeyForAction). */\n if (!key) {\n throw new PmCliError(\"Config action requires <key>\", EXIT_CODE.USAGE);\n }\n}\n\nfunction readConfigValue(settings: {\n workflow: { definition_of_done: string[] };\n item_format: ItemFormat;\n history: { missing_stream: HistoryMissingStreamPolicy };\n validation: {\n sprint_release_format: SprintReleaseFormatPolicy;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n metadata_required_fields: ValidateMetadataRequiredField[];\n lifecycle_stale_blocker_reason_patterns: string[];\n lifecycle_closure_like_blocked_reason_patterns: string[];\n lifecycle_closure_like_resolution_patterns: string[];\n lifecycle_closure_like_actual_result_patterns: string[];\n };\n governance: {\n preset: GovernancePreset;\n ownership_enforcement: GovernanceOwnershipEnforcement;\n create_mode_default: GovernanceCreateModeDefault;\n close_validation_default: GovernanceCloseValidationDefault;\n require_close_reason: boolean;\n parent_reference: ParentReferencePolicy;\n metadata_profile: ValidateMetadataProfile;\n force_required_for_stale_lock: boolean;\n create_default_type?: string;\n workflow_enforcement?: GovernanceWorkflowEnforcement;\n };\n testing: { record_results_to_items: boolean };\n telemetry: { enabled: boolean };\n context: import(\"../../types/index.js\").ContextSettings;\n}, key: ConfigKey): ConfigValue {\n if (key === \"item_format\") {\n return settings.item_format;\n }\n if (key === \"history_missing_stream_policy\") {\n return settings.history.missing_stream;\n }\n if (key === \"sprint_release_format_policy\") {\n return settings.validation.sprint_release_format;\n }\n if (key === \"parent_reference_policy\") {\n return settings.validation.parent_reference;\n }\n if (key === \"metadata_validation_profile\") {\n return settings.validation.metadata_profile;\n }\n if (key === \"metadata_required_fields\") {\n return [...settings.validation.metadata_required_fields];\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return [...settings.validation.lifecycle_stale_blocker_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return [...settings.validation.lifecycle_closure_like_blocked_reason_patterns];\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return [...settings.validation.lifecycle_closure_like_resolution_patterns];\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return [...settings.validation.lifecycle_closure_like_actual_result_patterns];\n }\n if (key === \"governance_preset\") {\n return settings.governance.preset;\n }\n if (key === \"governance_ownership_enforcement\") {\n return settings.governance.ownership_enforcement;\n }\n if (key === \"governance_create_mode_default\") {\n return settings.governance.create_mode_default;\n }\n if (key === \"governance_close_validation_default\") {\n return settings.governance.close_validation_default;\n }\n if (key === \"governance_require_close_reason\") {\n return settings.governance.require_close_reason ? \"enabled\" : \"disabled\";\n }\n if (key === \"governance_create_default_type\") {\n return settings.governance.create_default_type ?? \"\";\n }\n if (key === \"governance_workflow_enforcement\") {\n return settings.governance.workflow_enforcement ?? \"off\";\n }\n if (key === \"governance_parent_reference_policy\") {\n return settings.governance.parent_reference;\n }\n if (key === \"governance_metadata_validation_profile\") {\n return settings.governance.metadata_profile;\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\";\n }\n if (key === \"test_result_tracking\") {\n return settings.testing.record_results_to_items ? \"enabled\" : \"disabled\";\n }\n if (key === \"telemetry_tracking\") {\n return settings.telemetry.enabled ? \"enabled\" : \"disabled\";\n }\n if (key === \"context\") {\n return {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n } satisfies ContextConfigValue;\n }\n return [...settings.workflow.definition_of_done];\n}\n\nfunction withWarnings(result: ConfigResult, warnings: string[]): ConfigResult {\n if (warnings.length === 0) {\n return result;\n }\n return {\n ...result,\n warnings,\n };\n}\n\nasync function resolveSettingsTarget(\n scope: ConfigScope,\n global: GlobalOptions,\n): Promise<{ pmRoot: string; settingsPath: string }> {\n const cwd = process.cwd();\n const pmRoot = scope === \"project\" ? resolvePmRoot(cwd, global.path) : resolveGlobalPmRoot(cwd);\n const settingsPath = getSettingsPath(pmRoot);\n if (scope === \"project\" && !(await pathExists(settingsPath))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n return { pmRoot, settingsPath };\n}\n\nfunction parseSectionToggle(raw: string | undefined): boolean | undefined {\n if (raw === undefined) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"enabled\" || normalized === \"on\" || normalized === \"1\") return true;\n if (normalized === \"false\" || normalized === \"disabled\" || normalized === \"off\" || normalized === \"0\") return false;\n throw new PmCliError(\n `Context section toggle must be true|false|enabled|disabled, got \"${raw}\"`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function applyContextConfig(\n settings: import(\"../../types/index.js\").PmSettings,\n options: ConfigCommandOptions,\n target: { pmRoot: string; settingsPath: string },\n scope: ConfigScope,\n warnings: string[],\n): Promise<ConfigResult> {\n let changed = false;\n const ctx = settings.context;\n\n if (options.defaultDepth !== undefined) {\n const normalized = options.defaultDepth.trim().toLowerCase();\n if (!CONTEXT_DEPTH_VALUES.includes(normalized as ContextDepth)) {\n throw new PmCliError(\n `Context --default-depth must be one of ${CONTEXT_DEPTH_VALUES.join(\"|\")}`,\n EXIT_CODE.USAGE,\n );\n }\n if (ctx.default_depth !== normalized) {\n ctx.default_depth = normalized as ContextDepth;\n changed = true;\n }\n }\n\n if (options.activityLimit !== undefined) {\n const parsed = parseInt(options.activityLimit.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --activity-limit must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.activity_limit !== parsed) {\n ctx.activity_limit = parsed;\n changed = true;\n }\n }\n\n if (options.staleThresholdDays !== undefined) {\n const parsed = parseInt(options.staleThresholdDays.trim(), 10);\n if (isNaN(parsed) || parsed <= 0) {\n throw new PmCliError(\"Context --stale-threshold-days must be a positive integer\", EXIT_CODE.USAGE);\n }\n if (ctx.stale_threshold_days !== parsed) {\n ctx.stale_threshold_days = parsed;\n changed = true;\n }\n }\n\n const sectionToggles: [string, string | undefined][] = [\n [\"hierarchy\", options.sectionHierarchy],\n [\"activity\", options.sectionActivity],\n [\"progress\", options.sectionProgress],\n [\"blockers\", options.sectionBlockers],\n [\"files\", options.sectionFiles],\n [\"workload\", options.sectionWorkload],\n [\"staleness\", options.sectionStaleness],\n [\"tests\", options.sectionTests],\n ];\n\n for (const [sectionName, rawValue] of sectionToggles) {\n const toggle = parseSectionToggle(rawValue);\n if (toggle !== undefined) {\n const key = sectionName as keyof typeof ctx.sections;\n if (ctx.sections[key] !== toggle) {\n ctx.sections[key] = toggle;\n changed = true;\n }\n }\n }\n\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:context\");\n }\n\n return withWarnings({\n scope,\n key: \"context\",\n context_settings: {\n default_depth: ctx.default_depth,\n activity_limit: ctx.activity_limit,\n stale_threshold_days: ctx.stale_threshold_days,\n sections: { ...ctx.sections },\n },\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n\n/**\n * Route an intuitive `pm config set <key> <value>` positional value onto the typed\n * flag it belongs to (--format/--policy/--criterion), applying enabled/disabled\n * synonyms. Returns the (possibly augmented) options. The typed-flag forms keep\n * working exactly as before: a positional value is only injected when its flag was\n * not already supplied, and a conflicting explicit flag is a clear error.\n */\nfunction applyPositionalValue(\n action: ConfigAction,\n keyValue: string | undefined,\n normalizedKey: ConfigKey | undefined,\n nestedSetting: NestedSettingDescriptor | undefined,\n valueValue: string | undefined,\n options: ConfigCommandOptions,\n): ConfigCommandOptions {\n if (valueValue === undefined) {\n return options;\n }\n if (action !== \"set\") {\n throw new PmCliError(\n `Config action \"${action}\" does not accept a positional value. Only \"set\" takes <value>.`,\n EXIT_CODE.USAGE,\n );\n }\n if (typeof keyValue !== \"string\" || keyValue.trim().length === 0) {\n throw new PmCliError('Config action \"set\" requires <key> before a positional <value>.', EXIT_CODE.USAGE);\n }\n\n if (nestedSetting) {\n if (options.value !== undefined && valueValue !== undefined && options.value !== valueValue) {\n throw new PmCliError(\n `Config set ${keyValue} received both positional value \"${valueValue}\" and --value \"${options.value}\". Pass only one.`,\n EXIT_CODE.USAGE,\n );\n }\n // valueValue is guaranteed defined here (the valueValue === undefined early return\n // above preserves a pre-existing --value), so this never overwrites --value.\n return { ...options, value: valueValue };\n }\n\n assertConfigKeyDefined(normalizedKey);\n const routed = resolveConfigPositionalValue(normalizedKey, valueValue);\n if (!routed.routable) {\n throw new PmCliError(routed.reason, EXIT_CODE.USAGE);\n }\n\n if (routed.flag === \"criterion\") {\n if (options.criterion !== undefined && options.criterion.length > 0) {\n throw new PmCliError(\n `Config set ${keyValue} received both positional value \"${valueValue}\" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,\n EXIT_CODE.USAGE,\n );\n }\n return { ...options, criterion: routed.values };\n }\n\n if (routed.flag === \"format\") {\n /* c8 ignore start -- only `toon` is valid, so normalized explicit/positional formats cannot conflict. */\n if (\n options.format !== undefined &&\n normalizeItemFormat(options.format) !== normalizeItemFormat(routed.value)\n ) {\n throw new PmCliError(\n `Config set ${keyValue} received both positional value \"${valueValue}\" and --format \"${options.format}\". Pass only one.`,\n EXIT_CODE.USAGE,\n );\n }\n /* c8 ignore stop */\n return { ...options, format: routed.value };\n }\n\n // policy flag (--policy)\n if (\n options.policy !== undefined &&\n normalizePolicyForConflict(normalizedKey, options.policy) !==\n normalizePolicyForConflict(normalizedKey, routed.value)\n ) {\n throw new PmCliError(\n `Config set ${keyValue} received both positional value \"${valueValue}\" and --policy \"${options.policy}\". Pass only one.`,\n EXIT_CODE.USAGE,\n );\n }\n return { ...options, policy: routed.value };\n}\n\n/**\n * Implements run config for the public runtime surface of this module.\n */\nexport async function runConfig(\n scopeValue: string,\n actionValue: string,\n keyValue: string | undefined,\n options: ConfigCommandOptions,\n global: GlobalOptions,\n valueValue?: string,\n): Promise<ConfigResult> {\n const scope = normalizeScope(scopeValue);\n const action = normalizeAction(actionValue);\n // Nested leaf settings (search/provider/vector-store) are detected before\n // normalizeKey so they bypass the ConfigKey union without breaking the\n // existing key-not-found error path for actually-unknown keys.\n const nestedSetting =\n (action === \"get\" || action === \"set\") ? resolveNestedSettingDescriptor(keyValue) : undefined;\n const key = nestedSetting ? undefined : normalizeKeyForAction(action, keyValue);\n options = applyPositionalValue(action, keyValue, key, nestedSetting, valueValue, options);\n const target = await resolveSettingsTarget(scope, global);\n const { settings, metadata, warnings: settingsReadWarnings } = await readSettingsWithMetadata(target.pmRoot);\n const warnings = normalizeWarnings(settingsReadWarnings);\n\n if (nestedSetting) {\n if (action === \"get\") {\n const currentValue = readNestedSettingValue(settings, nestedSetting);\n return withWarnings(\n {\n scope,\n key: nestedSetting.key,\n nested_setting: {\n key: nestedSetting.key,\n path: nestedSetting.path,\n kind: nestedSetting.kind,\n value: currentValue,\n },\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n // action === \"set\"\n const rawValue = options.value;\n if (typeof rawValue !== \"string\") {\n throw new PmCliError(\n `Config set ${nestedSetting.key} requires a value. Pass it positionally (\\`pm config ${scope} set ${nestedSetting.key} <value>\\`) or via --value.`,\n EXIT_CODE.USAGE,\n );\n }\n const parsed = parseNestedSettingValue(nestedSetting, rawValue);\n if (!parsed.ok) {\n throw new PmCliError(parsed.error.message, EXIT_CODE.USAGE);\n }\n const changed = writeNestedSettingValue(\n settings as unknown as Record<string, unknown>,\n nestedSetting,\n parsed.parsed.value,\n );\n if (changed) {\n await writeSettings(target.pmRoot, settings, `config:set:${nestedSetting.path}`);\n }\n return withWarnings(\n {\n scope,\n key: nestedSetting.key,\n nested_setting: {\n key: nestedSetting.key,\n path: nestedSetting.path,\n kind: nestedSetting.kind,\n value: parsed.parsed.value,\n },\n settings_path: target.settingsPath,\n changed,\n },\n warnings,\n );\n }\n\n if (action === \"list\") {\n const keys = (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map((candidate) => ({\n key: candidate,\n aliases: CONFIG_KEY_ALIASES[candidate],\n value_kind: candidate === \"context\"\n ? (\"object\" as const)\n : isCriteriaConfigKey(candidate) ? (\"string_array\" as const) : (\"enum\" as const),\n set_flags:\n candidate === \"context\"\n ? [\"--default-depth\", \"--activity-limit\", \"--stale-threshold-days\", \"--section-<name>\"]\n : isCriteriaConfigKey(candidate) ? [\"--criterion\", \"--clear-criteria\"] : candidate === \"item_format\" ? [\"--format\"] : [\"--policy\"],\n summary: CONFIG_KEY_SUMMARIES[candidate],\n value: readConfigValue(settings, candidate),\n }));\n const nestedSettings: NestedSettingResultValue[] = NESTED_SETTING_DESCRIPTORS.map((descriptor) => ({\n key: descriptor.key,\n path: descriptor.path,\n kind: descriptor.kind,\n value: readNestedSettingValue(settings, descriptor),\n }));\n return withWarnings(\n {\n scope,\n keys,\n nested_settings: nestedSettings,\n count: keys.length,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n if (action === \"export\") {\n const values = {\n definition_of_done: readConfigValue(settings, \"definition_of_done\"),\n item_format: readConfigValue(settings, \"item_format\"),\n history_missing_stream_policy: readConfigValue(settings, \"history_missing_stream_policy\"),\n sprint_release_format_policy: readConfigValue(settings, \"sprint_release_format_policy\"),\n parent_reference_policy: readConfigValue(settings, \"parent_reference_policy\"),\n metadata_validation_profile: readConfigValue(settings, \"metadata_validation_profile\"),\n metadata_required_fields: readConfigValue(settings, \"metadata_required_fields\"),\n lifecycle_stale_blocker_reason_patterns: readConfigValue(settings, \"lifecycle_stale_blocker_reason_patterns\"),\n lifecycle_closure_like_blocked_reason_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_blocked_reason_patterns\",\n ),\n lifecycle_closure_like_resolution_patterns: readConfigValue(settings, \"lifecycle_closure_like_resolution_patterns\"),\n lifecycle_closure_like_actual_result_patterns: readConfigValue(\n settings,\n \"lifecycle_closure_like_actual_result_patterns\",\n ),\n governance_preset: readConfigValue(settings, \"governance_preset\"),\n governance_ownership_enforcement: readConfigValue(settings, \"governance_ownership_enforcement\"),\n governance_create_mode_default: readConfigValue(settings, \"governance_create_mode_default\"),\n governance_close_validation_default: readConfigValue(settings, \"governance_close_validation_default\"),\n governance_require_close_reason: readConfigValue(settings, \"governance_require_close_reason\"),\n governance_create_default_type: readConfigValue(settings, \"governance_create_default_type\"),\n governance_workflow_enforcement: readConfigValue(settings, \"governance_workflow_enforcement\"),\n governance_parent_reference_policy: readConfigValue(settings, \"governance_parent_reference_policy\"),\n governance_metadata_validation_profile: readConfigValue(settings, \"governance_metadata_validation_profile\"),\n governance_force_required_for_stale_lock: readConfigValue(settings, \"governance_force_required_for_stale_lock\"),\n test_result_tracking: readConfigValue(settings, \"test_result_tracking\"),\n telemetry_tracking: readConfigValue(settings, \"telemetry_tracking\"),\n context: readConfigValue(settings, \"context\"),\n } satisfies Record<ConfigKey, ConfigValue>;\n return withWarnings(\n {\n scope,\n values,\n settings_path: target.settingsPath,\n changed: false,\n },\n warnings,\n );\n }\n\n // For get/set (non-nested) `normalizeKeyForAction` already guaranteed a key above,\n // so `key` is defined here. list/export return before reaching these branches.\n if (action === \"get\") {\n assertConfigKeyDefined(key);\n if (key === \"item_format\") {\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: metadata.has_explicit_item_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"history_missing_stream_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"sprint_release_format_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"metadata_required_fields\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_preset\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_ownership_enforcement\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_create_mode_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_close_validation_default\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_require_close_reason\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.require_close_reason ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_create_default_type\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_default_type ?? \"\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_workflow_enforcement\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.workflow_enforcement ?? \"off\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_parent_reference_policy\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_metadata_validation_profile\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"governance_force_required_for_stale_lock\") {\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"test_result_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"telemetry_tracking\") {\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n if (key === \"context\") {\n return withWarnings({\n scope,\n key,\n context_settings: {\n default_depth: settings.context.default_depth,\n activity_limit: settings.context.activity_limit,\n stale_threshold_days: settings.context.stale_threshold_days,\n sections: { ...settings.context.sections },\n },\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed: false,\n }, warnings);\n }\n\n assertConfigKeyDefined(key);\n if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {\n throw new PmCliError(\n \"--clear-criteria is only supported with config set criteria-list keys\",\n EXIT_CODE.USAGE,\n );\n }\n if (key === \"item_format\") {\n const nextFormat = normalizeItemFormat(options.format);\n const changed = settings.item_format !== nextFormat || !metadata.has_explicit_item_format;\n let migration: ConfigResult[\"migration\"] = undefined;\n if (changed) {\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const migrated = await migrateItemFilesToFormat(\n target.pmRoot,\n nextFormat,\n \"config:set:item_format:migrate\",\n typeRegistry.type_to_folder,\n settings.schema,\n );\n migration = {\n target_format: migrated.target_format,\n scanned: migrated.scanned,\n migrated: migrated.migrated,\n removed: migrated.removed,\n warnings: migrated.warnings,\n };\n settings.item_format = nextFormat;\n await writeSettings(target.pmRoot, settings, \"config:set:item_format\");\n }\n return withWarnings({\n scope,\n key,\n format: settings.item_format,\n has_explicit_item_format: true,\n migration,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"history_missing_stream_policy\") {\n const nextPolicy = normalizeHistoryMissingStreamPolicy(options.policy);\n const changed = settings.history.missing_stream !== nextPolicy;\n settings.history.missing_stream = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:history_missing_stream_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.history.missing_stream,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"sprint_release_format_policy\") {\n const nextPolicy = normalizeSprintReleaseFormatPolicy(options.policy);\n const changed = settings.validation.sprint_release_format !== nextPolicy;\n settings.validation.sprint_release_format = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:sprint_release_format_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.sprint_release_format,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.validation.parent_reference !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.parent_reference !== nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.validation.metadata_profile !== nextPolicy ||\n settings.governance.preset !== \"custom\" ||\n settings.governance.metadata_profile !== nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.validation.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"metadata_required_fields\") {\n const nextCriteria = normalizeMetadataRequiredFields(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.metadata_required_fields.length ||\n nextCriteria.some((value, index) => value !== settings.validation.metadata_required_fields[index]);\n settings.validation.metadata_required_fields = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:metadata_required_fields\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.metadata_required_fields],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_stale_blocker_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_stale_blocker_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_stale_blocker_reason_patterns[index]);\n settings.validation.lifecycle_stale_blocker_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_stale_blocker_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_stale_blocker_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_blocked_reason_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_blocked_reason_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_blocked_reason_patterns[index]);\n settings.validation.lifecycle_closure_like_blocked_reason_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_blocked_reason_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_blocked_reason_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_resolution_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_resolution_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_resolution_patterns[index]);\n settings.validation.lifecycle_closure_like_resolution_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_resolution_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_resolution_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"lifecycle_closure_like_actual_result_patterns\") {\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.validation.lifecycle_closure_like_actual_result_patterns.length ||\n nextCriteria.some((value, index) => value !== settings.validation.lifecycle_closure_like_actual_result_patterns[index]);\n settings.validation.lifecycle_closure_like_actual_result_patterns = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:lifecycle_closure_like_actual_result_patterns\");\n }\n return withWarnings({\n scope,\n key,\n criteria: [...settings.validation.lifecycle_closure_like_actual_result_patterns],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_preset\") {\n const nextPolicy = normalizeGovernancePreset(options.policy);\n const changed = settings.governance.preset !== nextPolicy;\n settings.governance.preset = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_preset\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.preset,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_ownership_enforcement\") {\n const nextPolicy = normalizeGovernanceOwnershipEnforcement(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.ownership_enforcement !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.ownership_enforcement = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_ownership_enforcement\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.ownership_enforcement,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_create_mode_default\") {\n const nextPolicy = normalizeGovernanceCreateModeDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.create_mode_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.create_mode_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_create_mode_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_mode_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_close_validation_default\") {\n const nextPolicy = normalizeGovernanceCloseValidationDefault(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.close_validation_default !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.close_validation_default = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_close_validation_default\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.close_validation_default,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_require_close_reason\") {\n const nextPolicy = normalizeGovernanceRequireCloseReasonPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.governance.require_close_reason !== nextEnabled;\n settings.governance.require_close_reason = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_require_close_reason\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.require_close_reason ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_create_default_type\") {\n const policyProvided = typeof options.policy === \"string\";\n const rawType = policyProvided ? options.policy!.trim() : \"\";\n // An explicit empty value clears the setting back to \"unset\" (matching how\n // get/export expose unset as \"\"). Without this clear path there is no CLI\n // route back from a set value to the governance default.\n if (policyProvided && rawType.length === 0) {\n const changed = settings.governance.create_default_type !== undefined;\n delete settings.governance.create_default_type;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_create_default_type\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_default_type ?? \"\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n if (rawType.length === 0) {\n throw new PmCliError(\n 'Config set governance-create-default-type requires an item type value (or an empty value \"\" to clear it)',\n EXIT_CODE.USAGE,\n );\n }\n // create_default_type is preset-orthogonal: it tunes `pm create` and is\n // carried through writes regardless of preset, so we do NOT force preset=custom.\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const resolvedType = resolveTypeName(rawType, typeRegistry);\n if (!resolvedType) {\n throw new PmCliError(\n buildInvalidTypeError(rawType, typeRegistry.types, resolveItemTypesFilePath(target.pmRoot, settings.schema)),\n EXIT_CODE.USAGE,\n );\n }\n const changed = settings.governance.create_default_type !== resolvedType;\n settings.governance.create_default_type = resolvedType;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_create_default_type\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.create_default_type,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_workflow_enforcement\") {\n const nextPolicy = normalizeGovernanceWorkflowEnforcement(options.policy);\n // workflow_enforcement is preset-orthogonal (see create_default_type above).\n const changed = (settings.governance.workflow_enforcement ?? \"off\") !== nextPolicy;\n settings.governance.workflow_enforcement = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_workflow_enforcement\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.workflow_enforcement,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.parent_reference !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.parent_reference = nextPolicy;\n settings.validation.parent_reference = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_parent_reference_policy\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.parent_reference,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.metadata_profile !== nextPolicy;\n settings.governance.preset = \"custom\";\n settings.governance.metadata_profile = nextPolicy;\n settings.validation.metadata_profile = nextPolicy;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_metadata_validation_profile\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.metadata_profile,\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"governance_force_required_for_stale_lock\") {\n const nextPolicy = normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n settings.governance.preset !== \"custom\" || settings.governance.force_required_for_stale_lock !== nextEnabled;\n settings.governance.preset = \"custom\";\n settings.governance.force_required_for_stale_lock = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:governance_force_required_for_stale_lock\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"test_result_tracking\") {\n const nextPolicy = normalizeTestResultTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.testing.record_results_to_items !== nextEnabled;\n settings.testing.record_results_to_items = nextEnabled;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:test_result_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"telemetry_tracking\") {\n const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = settings.telemetry.enabled !== nextEnabled || !settings.telemetry.first_run_prompt_completed;\n settings.telemetry.enabled = nextEnabled;\n settings.telemetry.first_run_prompt_completed = true;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:telemetry_tracking\");\n }\n return withWarnings({\n scope,\n key,\n policy: settings.telemetry.enabled ? \"enabled\" : \"disabled\",\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n }\n\n if (key === \"context\") {\n return applyContextConfig(settings, options, target, scope, warnings);\n }\n\n const nextCriteria = normalizeCriteria(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== settings.workflow.definition_of_done.length ||\n nextCriteria.some((value, index) => value !== settings.workflow.definition_of_done[index]);\n\n settings.workflow.definition_of_done = nextCriteria;\n if (changed) {\n await writeSettings(target.pmRoot, settings, \"config:set:definition_of_done\");\n }\n\n return withWarnings({\n scope,\n key,\n criteria: [...settings.workflow.definition_of_done],\n settings_path: target.settingsPath,\n changed,\n }, warnings);\n}\n\nexport const _testOnlyConfigCommand = {\n applyPositionalValue,\n normalizeAction,\n normalizeCriteria,\n normalizeGovernanceCloseValidationDefault,\n normalizeGovernanceCreateModeDefault,\n normalizeGovernanceForceRequiredForStaleLockPolicy,\n normalizeGovernanceOwnershipEnforcement,\n normalizeGovernancePreset,\n normalizeGovernanceRequireCloseReasonPolicy,\n normalizeGovernanceWorkflowEnforcement,\n normalizeHistoryMissingStreamPolicy,\n normalizeItemFormat,\n normalizeKey,\n normalizeMetadataRequiredFields,\n normalizePolicyForConflict,\n normalizeScope,\n normalizeTelemetryTrackingPolicy,\n normalizeTestResultTrackingPolicy,\n normalizeValidateMetadataProfile,\n normalizeWarnings,\n};\n"],"names":["changed","nextCriteria"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA,IAAM,cAAsC,oBAAI,IAAe,CAAC,aAAa,CAAC;AAE9E,IAAM,gBAAwC,oBAAI,IAAe;EAC/D;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,cAAsC,oBAAI,IAAe;EAC7D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAOD,IAAM,+BAAuD,oBAAI,IAAe;EAC9E;EACA;EACA;EACA;CACD;AAED,IAAM,4BAAoD;EACxD,KAAK;EACL,IAAI;EACJ,MAAM;EACN,OAAO;EACP,SAAS;EACT,UAAU;;AAIZ,SAAS,eAAe,YAAkB;AACxC,QAAM,aAAa,WAAW,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AACtE,MACE,YAAY,IAAI,UAAuB,KACvC,cAAc,IAAI,UAAuB,KACzC,YAAY,IAAI,UAAuB,KACvC,eAAe,WACf;AACA,WAAO;EACT;AACA,SAAO;AACT;AAOA,SAAS,yBAAyB,OAAa;AAC7C,QAAM,aAAa,MAAM,KAAI,EAAG,YAAW;AAC3C,SAAO,0BAA0B,UAAU,KAAK;AAClD;AAUM,SAAU,6BACd,qBACA,OAAa;AAEb,QAAM,MAAM,eAAe,mBAAmB;AAC9C,MAAI,QAAQ,QAAW;AACrB,WAAO;MACL,UAAU;MACV,QAAQ,uBAAuB,mBAAmB;;EAEtD;AAEA,MAAI,QAAQ,WAAW;AACrB,WAAO;MACL,UAAU;MACV,QACE;;EAEN;AAEA,MAAI,YAAY,IAAI,GAAG,GAAG;AACxB,WAAO,EAAE,UAAU,MAAM,MAAM,UAAU,MAAK;EAChD;AAEA,MAAI,cAAc,IAAI,GAAG,GAAG;AAC1B,WAAO,EAAE,UAAU,MAAM,MAAM,aAAa,QAAQ,CAAC,KAAK,EAAC;EAC7D;AAGA,QAAM,cAAc,6BAA6B,IAAI,GAAG,IAAI,yBAAyB,KAAK,IAAI;AAC9F,SAAO,EAAE,UAAU,MAAM,MAAM,UAAU,OAAO,YAAW;AAC7D;;;AC/IA,IAAM,sBAAsB,CAAC,WAAW,QAAQ;AAGhD,IAAM,oBAAoB;EACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAqHF,IAAM,qBAAkD;EACtD,oBAAoB,CAAC,sBAAsB,oBAAoB;EAC/D,aAAa,CAAC,eAAe,aAAa;EAC1C,+BAA+B,CAAC,iCAAiC,+BAA+B;EAChG,8BAA8B,CAAC,gCAAgC,8BAA8B;EAC7F,yBAAyB,CAAC,2BAA2B,yBAAyB;EAC9E,6BAA6B,CAAC,+BAA+B,6BAA6B;EAC1F,0BAA0B,CAAC,4BAA4B,0BAA0B;EACjF,yCAAyC;IACvC;IACA;;EAEF,gDAAgD;IAC9C;IACA;;EAEF,4CAA4C;IAC1C;IACA;;EAEF,+CAA+C;IAC7C;IACA;;EAEF,mBAAmB,CAAC,qBAAqB,mBAAmB;EAC5D,kCAAkC,CAAC,oCAAoC,kCAAkC;EACzG,gCAAgC,CAAC,kCAAkC,gCAAgC;EACnG,qCAAqC;IACnC;IACA;;EAEF,iCAAiC;IAC/B;IACA;;EAEF,gCAAgC,CAAC,kCAAkC,gCAAgC;EACnG,iCAAiC,CAAC,mCAAmC,iCAAiC;EACtG,oCAAoC,CAAC,sCAAsC,oCAAoC;EAC/G,wCAAwC;IACtC;IACA;;EAEF,0CAA0C;IACxC;IACA;;EAEF,sBAAsB,CAAC,wBAAwB,sBAAsB;EACrE,oBAAoB,CAAC,sBAAsB,oBAAoB;EAC/D,SAAS,CAAC,SAAS;;AAMrB,IAAM,wBAA4C,OAAO,KAAK,kBAAkB,EAAkB,IAChG,CAAC,cAAc,mBAAmB,SAAS,EAAE,CAAC,CAAC;AAGjD,IAAM,uBAAkD;EACtD,oBAAoB;EACpB,aAAa;EACb,+BAA+B;EAC/B,8BAA8B;EAC9B,yBAAyB;EACzB,6BAA6B;EAC7B,0BAA0B;EAC1B,yCACE;EACF,gDACE;EACF,4CACE;EACF,+CACE;EACF,mBAAmB;EACnB,kCAAkC;EAClC,gCAAgC;EAChC,qCAAqC;EACrC,iCAAiC;EACjC,gCAAgC;EAChC,iCAAiC;EACjC,oCAAoC;EACpC,wCAAwC;EACxC,0CAA0C;EAC1C,sBAAsB;EACtB,oBAAoB;EACpB,SAAS;;AAGX,IAAM,gCAA6C;EACjD;EACA;EACA;EACA;;AAGF,SAAS,oBAAoB,KAAc;AACzC,SAAO,QAAQ,wBAAwB,QAAQ,8BAA8B,8BAA8B,SAAS,GAAG;AACzH;AAEA,SAAS,eAAe,OAAa;AACnC,MAAK,oBAA0C,SAAS,KAAK,GAAG;AAC9D,WAAO;EACT;AACA,QAAM,IAAI,WACR,yBAAyB,KAAK,eAAe,oBAAoB,KAAK,IAAI,CAAC,IAC3E,UAAU,KAAK;AAEnB;AAEA,SAAS,gBAAgB,OAAa;AACpC,MAAI,UAAU,SAAS,UAAU,SAAS,UAAU,UAAU,UAAU,UAAU;AAChF,WAAO;EACT;AACA,QAAM,IAAI,WAAW,0BAA0B,KAAK,sCAAsC,UAAU,KAAK;AAC3G;AAEA,SAAS,aAAa,OAAa;AACjC,MAAK,kBAAwC,SAAS,KAAK,GAAG;AAC5D,QAAI,UAAU,iBAAiB,UAAU,eAAe;AACtD,aAAO;IACT;AACA,QAAI,UAAU,mCAAmC,UAAU,iCAAiC;AAC1F,aAAO;IACT;AACA,QAAI,UAAU,kCAAkC,UAAU,gCAAgC;AACxF,aAAO;IACT;AACA,QAAI,UAAU,6BAA6B,UAAU,2BAA2B;AAC9E,aAAO;IACT;AACA,QAAI,UAAU,iCAAiC,UAAU,+BAA+B;AACtF,aAAO;IACT;AACA,QAAI,UAAU,8BAA8B,UAAU,4BAA4B;AAChF,aAAO;IACT;AACA,QACE,UAAU,6CACV,UAAU,2CACV;AACA,aAAO;IACT;AACA,QACE,UAAU,oDACV,UAAU,kDACV;AACA,aAAO;IACT;AACA,QACE,UAAU,gDACV,UAAU,8CACV;AACA,aAAO;IACT;AACA,QACE,UAAU,mDACV,UAAU,iDACV;AACA,aAAO;IACT;AACA,QAAI,UAAU,uBAAuB,UAAU,qBAAqB;AAClE,aAAO;IACT;AACA,QAAI,UAAU,sCAAsC,UAAU,oCAAoC;AAChG,aAAO;IACT;AACA,QAAI,UAAU,oCAAoC,UAAU,kCAAkC;AAC5F,aAAO;IACT;AACA,QAAI,UAAU,yCAAyC,UAAU,uCAAuC;AACtG,aAAO;IACT;AACA,QAAI,UAAU,qCAAqC,UAAU,mCAAmC;AAC9F,aAAO;IACT;AACA,QAAI,UAAU,oCAAoC,UAAU,kCAAkC;AAC5F,aAAO;IACT;AACA,QAAI,UAAU,qCAAqC,UAAU,mCAAmC;AAC9F,aAAO;IACT;AACA,QAAI,UAAU,wCAAwC,UAAU,sCAAsC;AACpG,aAAO;IACT;AACA,QACE,UAAU,4CACV,UAAU,0CACV;AACA,aAAO;IACT;AACA,QACE,UAAU,8CACV,UAAU,4CACV;AACA,aAAO;IACT;AACA,QAAI,UAAU,0BAA0B,UAAU,wBAAwB;AACxE,aAAO;IACT;AACA,QAAI,UAAU,wBAAwB,UAAU,sBAAsB;AACpE,aAAO;IACT;AACA,QAAI,UAAU,WAAW;AACvB,aAAO;IACT;AACA,WAAO;EACT;AACA,QAAM,aAAa,2BAA2B,IAAI,CAAC,eAAe,WAAW,GAAG,EAAE,KAAK,IAAI;AAC3F,QAAM,IAAI,WACR,uBAAuB,KAAK,iBAAiB,sBAAsB,KAAK,IAAI,CAAC,+DAA+D,UAAU,KACtJ,UAAU,KAAK;AAEnB;AAEA,SAAS,kBAAkB,QAA8B,eAAkC;AACzF,QAAM,aAAa,CAAC,GAAG,IAAI,KAAK,UAAU,CAAA,GAAI,IAAI,CAAC,UAAU,MAAM,KAAI,CAAE,EAAE,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,KAC/G,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAE5C,MAAI,eAAe;AACjB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,IAAI,WACR,yFACA,UAAU,KAAK;IAEnB;AACA,WAAO,CAAA;EACT;AACA,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,IAAI,WACR,kHACA,UAAU,KAAK;EAEnB;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,OAAyB;AACpD,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW;AAC5C,MAAI,eAAe,QAAQ;AACzB,WAAO;EACT;AACA,MAAI,eAAe,iBAAiB;AAClC,UAAM,IAAI,WACR,qHACA,UAAU,KAAK;EAEnB;AACA,QAAM,IAAI,WAAW,iDAAiD,UAAU,KAAK;AACvF;AAEA,SAAS,oCAAoC,OAAyB;AACpE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,iBAAiB,eAAe,gBAAgB;AACjE,WAAO;EACT;AACA,QAAM,IAAI,WACR,qGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,kCAAkC,OAAyB;AAClE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,aAAa,eAAe,YAAY;AACzD,WAAO;EACT;AACA,QAAM,IAAI,WACR,oFACA,UAAU,KAAK;AAEnB;AAEA,SAAS,iCAAiC,OAAyB;AACjE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,aAAa,eAAe,YAAY;AACzD,WAAO;EACT;AACA,QAAM,IAAI,WACR,kFACA,UAAU,KAAK;AAEnB;AAEA,SAAS,iCAAiC,OAAyB;AACjE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,UAAU,eAAe,YAAY,eAAe,UAAU;AAC/E,WAAO;EACT;AACA,QAAM,IAAI,WACR,8FACA,UAAU,KAAK;AAEnB;AAEA,SAAS,0BAA0B,OAAyB;AAC1D,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,aAAa,eAAe,aAAa,eAAe,YAAY,eAAe,UAAU;AAC9G,WAAO;EACT;AACA,QAAM,IAAI,WACR,gGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,wCAAwC,OAAyB;AACxE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,UAAU,eAAe,UAAU,eAAe,UAAU;AAC7E,WAAO;EACT;AACA,QAAM,IAAI,WACR,iGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,qCAAqC,OAAyB;AACrE,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,iBAAiB,eAAe,UAAU;AAC3D,WAAO;EACT;AACA,QAAM,IAAI,WACR,gGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,0CAA0C,OAAyB;AAC1E,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,SAAS,eAAe,UAAU,eAAe,UAAU;AAC5E,WAAO;EACT;AACA,MAAI,eAAe,UAAU,eAAe,YAAY;AACtD,WAAO;EACT;AACA,QAAM,IAAI,WACR,mGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,uCAAuC,OAAc;AAC5D,QAAM,aACJ,OAAO,UAAU,WAAW,MAAM,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG,IAAI;AAChF,MAAI,eAAe,SAAS,eAAe,UAAU,eAAe,UAAU;AAC5E,WAAO;EACT;AACA,MAAI,eAAe,UAAU,eAAe,YAAY;AACtD,WAAO;EACT;AACA,QAAM,IAAI,WACR,iFACA,UAAU,KAAK;AAEnB;AAEA,SAAS,mDACP,OAAyB;AAEzB,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,aAAa,eAAe,YAAY;AACzD,WAAO;EACT;AACA,QAAM,IAAI,WACR,wGACA,UAAU,KAAK;AAEnB;AAEA,SAAS,4CACP,OAAyB;AAEzB,QAAM,aAAa,OAAO,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;AAClE,MAAI,eAAe,aAAa,eAAe,YAAY;AACzD,WAAO;EACT;AACA,QAAM,IAAI,WACR,+FACA,UAAU,KAAK;AAEnB;AAEA,SAAS,2BAA2B,KAA4B,OAAa;AAC3E,UAAQ,KAAK;IACX,KAAK;AACH,aAAO,oCAAoC,KAAK;IAClD,KAAK;AACH,aAAO,mCAAmC,KAAK;IACjD,KAAK;IACL,KAAK;AACH,aAAO,+BAA+B,KAAK;IAC7C,KAAK;IACL,KAAK;AACH,aAAO,iCAAiC,KAAK;IAC/C,KAAK;AACH,aAAO,0BAA0B,KAAK;IACxC,KAAK;AACH,aAAO,wCAAwC,KAAK;IACtD,KAAK;AACH,aAAO,qCAAqC,KAAK;IACnD,KAAK;AACH,aAAO,0CAA0C,KAAK;IACxD,KAAK;AACH,aAAO,4CAA4C,KAAK;IAC1D,KAAK;AACH,aAAO,uCAAuC,KAAK;IACrD,KAAK;AACH,aAAO,mDAAmD,KAAK;IACjE,KAAK;AACH,aAAO,kCAAkC,KAAK;IAChD,KAAK;AACH,aAAO,iCAAiC,KAAK;IAC/C;AACE,aAAO,MAAM,KAAI,EAAG,YAAW,EAAG,WAAW,KAAK,GAAG;EACzD;AACF;AAEA,IAAM,oCAAmF;EACvF,QAAQ;EACR,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,qBAAqB;EACrB,UAAU;EACV,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,YAAY;EACZ,QAAQ;EACR,SAAS;;AAEX,IAAM,kCAAkC;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,SAAS,gCACP,QACA,eAAkC;AAElC,QAAM,aAAa,CAAC,GAAG,IAAI,KAAK,UAAU,CAAA,GAAI,IAAI,CAAC,UAAU,MAAM,KAAI,CAAE,EAAE,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC;AAC/G,MAAI,eAAe;AACjB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,IAAI,WACR,+FACA,UAAU,KAAK;IAEnB;AACA,WAAO,CAAA;EACT;AACA,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,IAAI,WACR,8GACA,UAAU,KAAK;EAEnB;AACA,QAAM,UAAU,WAAW,IAAI,CAAC,UAAU,MAAM,YAAW,EAAG,WAAW,KAAK,GAAG,CAAC;AAClF,QAAM,cAAc,QAAQ,OAAO,CAAC,UAAU,kCAAkC,KAAK,MAAM,MAAS;AACpG,MAAI,YAAY,SAAS,GAAG;AAC1B,UAAM,IAAI,WACR,oEAAoE,YAAY,KAAK,IAAI,CAAC,uBACnE,gCAAgC,KAAK,IAAI,CAAC,IACjE,UAAU,KAAK;EAEnB;AACA,SAAO,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,kCAAkC,KAAK,CAAkC,CAAC,CAAC,EAAE,KACrH,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAE9C;AAEA,SAAS,kCACP,KACA,QACA,eAAkC;AAElC,QAAM,aAAa,CAAC,GAAG,IAAI,KAAK,UAAU,CAAA,GAAI,IAAI,CAAC,UAAU,MAAM,KAAI,EAAG,YAAW,CAAE,EAAE,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,KAC7H,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAE5C,MAAI,eAAe;AACjB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,IAAI,WACR,cAAc,mBAAmB,GAAG,EAAE,CAAC,CAAC,4DACxC,UAAU,KAAK;IAEnB;AACA,WAAO,CAAA;EACT;AACA,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,IAAI,WACR,cAAc,mBAAmB,GAAG,EAAE,CAAC,CAAC,2EACxC,UAAU,KAAK;EAEnB;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,QAAgB;AACzC,SAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAC7E;AAEA,SAAS,sBAAsB,QAAsB,OAAyB;AAC5E,MAAI,WAAW,UAAU,WAAW,UAAU;AAC5C,QAAI,OAAO,UAAU,YAAY,MAAM,KAAI,EAAG,SAAS,GAAG;AACxD,YAAM,IAAI,WAAW,kBAAkB,MAAM,2BAA2B,UAAU,KAAK;IACzF;AACA,WAAO;EACT;AACA,MAAI,OAAO,UAAU,YAAY,MAAM,KAAI,EAAG,WAAW,GAAG;AAC1D,UAAM,IAAI,WAAW,kBAAkB,MAAM,oBAAoB,UAAU,KAAK;EAClF;AACA,SAAO,aAAa,KAAK;AAC3B;AASA,SAAS,uBAAuB,KAA0B;AAExD,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,WAAW,gCAAgC,UAAU,KAAK;EACtE;AACF;AAEA,SAAS,gBAAgB,UA6BtB,KAAc;AACf,MAAI,QAAQ,eAAe;AACzB,WAAO,SAAS;EAClB;AACA,MAAI,QAAQ,iCAAiC;AAC3C,WAAO,SAAS,QAAQ;EAC1B;AACA,MAAI,QAAQ,gCAAgC;AAC1C,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,2BAA2B;AACrC,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,+BAA+B;AACzC,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,4BAA4B;AACtC,WAAO,CAAC,GAAG,SAAS,WAAW,wBAAwB;EACzD;AACA,MAAI,QAAQ,2CAA2C;AACrD,WAAO,CAAC,GAAG,SAAS,WAAW,uCAAuC;EACxE;AACA,MAAI,QAAQ,kDAAkD;AAC5D,WAAO,CAAC,GAAG,SAAS,WAAW,8CAA8C;EAC/E;AACA,MAAI,QAAQ,8CAA8C;AACxD,WAAO,CAAC,GAAG,SAAS,WAAW,0CAA0C;EAC3E;AACA,MAAI,QAAQ,iDAAiD;AAC3D,WAAO,CAAC,GAAG,SAAS,WAAW,6CAA6C;EAC9E;AACA,MAAI,QAAQ,qBAAqB;AAC/B,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,oCAAoC;AAC9C,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,kCAAkC;AAC5C,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,uCAAuC;AACjD,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,mCAAmC;AAC7C,WAAO,SAAS,WAAW,uBAAuB,YAAY;EAChE;AACA,MAAI,QAAQ,kCAAkC;AAC5C,WAAO,SAAS,WAAW,uBAAuB;EACpD;AACA,MAAI,QAAQ,mCAAmC;AAC7C,WAAO,SAAS,WAAW,wBAAwB;EACrD;AACA,MAAI,QAAQ,sCAAsC;AAChD,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,0CAA0C;AACpD,WAAO,SAAS,WAAW;EAC7B;AACA,MAAI,QAAQ,4CAA4C;AACtD,WAAO,SAAS,WAAW,gCAAgC,YAAY;EACzE;AACA,MAAI,QAAQ,wBAAwB;AAClC,WAAO,SAAS,QAAQ,0BAA0B,YAAY;EAChE;AACA,MAAI,QAAQ,sBAAsB;AAChC,WAAO,SAAS,UAAU,UAAU,YAAY;EAClD;AACA,MAAI,QAAQ,WAAW;AACrB,WAAO;MACL,eAAe,SAAS,QAAQ;MAChC,gBAAgB,SAAS,QAAQ;MACjC,sBAAsB,SAAS,QAAQ;MACvC,UAAU,EAAE,GAAG,SAAS,QAAQ,SAAQ;;EAE5C;AACA,SAAO,CAAC,GAAG,SAAS,SAAS,kBAAkB;AACjD;AAEA,SAAS,aAAa,QAAsB,UAAkB;AAC5D,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO;EACT;AACA,SAAO;IACL,GAAG;IACH;;AAEJ;AAEA,eAAe,sBACb,OACA,QAAqB;AAErB,QAAM,MAAM,QAAQ,IAAG;AACvB,QAAM,SAAS,UAAU,YAAY,cAAc,KAAK,OAAO,IAAI,IAAI,oBAAoB,GAAG;AAC9F,QAAM,eAAe,gBAAgB,MAAM;AAC3C,MAAI,UAAU,aAAa,CAAE,MAAM,WAAW,YAAY,GAAI;AAC5D,UAAM,IAAI,WAAW,iCAAiC,MAAM,wBAAwB,UAAU,SAAS;EACzG;AACA,SAAO,EAAE,QAAQ,aAAY;AAC/B;AAEA,SAAS,mBAAmB,KAAuB;AACjD,MAAI,QAAQ;AAAW,WAAO;AAC9B,QAAM,aAAa,IAAI,KAAI,EAAG,YAAW;AACzC,MAAI,eAAe,UAAU,eAAe,aAAa,eAAe,QAAQ,eAAe;AAAK,WAAO;AAC3G,MAAI,eAAe,WAAW,eAAe,cAAc,eAAe,SAAS,eAAe;AAAK,WAAO;AAC9G,QAAM,IAAI,WACR,oEAAoE,GAAG,KACvE,UAAU,KAAK;AAEnB;AAEA,eAAe,mBACb,UACA,SACA,QACA,OACA,UAAkB;AAElB,MAAI,UAAU;AACd,QAAM,MAAM,SAAS;AAErB,MAAI,QAAQ,iBAAiB,QAAW;AACtC,UAAM,aAAa,QAAQ,aAAa,KAAI,EAAG,YAAW;AAC1D,QAAI,CAAC,qBAAqB,SAAS,UAA0B,GAAG;AAC9D,YAAM,IAAI,WACR,0CAA0C,qBAAqB,KAAK,GAAG,CAAC,IACxE,UAAU,KAAK;IAEnB;AACA,QAAI,IAAI,kBAAkB,YAAY;AACpC,UAAI,gBAAgB;AACpB,gBAAU;IACZ;EACF;AAEA,MAAI,QAAQ,kBAAkB,QAAW;AACvC,UAAM,SAAS,SAAS,QAAQ,cAAc,KAAI,GAAI,EAAE;AACxD,QAAI,MAAM,MAAM,KAAK,UAAU,GAAG;AAChC,YAAM,IAAI,WAAW,uDAAuD,UAAU,KAAK;IAC7F;AACA,QAAI,IAAI,mBAAmB,QAAQ;AACjC,UAAI,iBAAiB;AACrB,gBAAU;IACZ;EACF;AAEA,MAAI,QAAQ,uBAAuB,QAAW;AAC5C,UAAM,SAAS,SAAS,QAAQ,mBAAmB,KAAI,GAAI,EAAE;AAC7D,QAAI,MAAM,MAAM,KAAK,UAAU,GAAG;AAChC,YAAM,IAAI,WAAW,6DAA6D,UAAU,KAAK;IACnG;AACA,QAAI,IAAI,yBAAyB,QAAQ;AACvC,UAAI,uBAAuB;AAC3B,gBAAU;IACZ;EACF;AAEA,QAAM,iBAAiD;IACrD,CAAC,aAAa,QAAQ,gBAAgB;IACtC,CAAC,YAAY,QAAQ,eAAe;IACpC,CAAC,YAAY,QAAQ,eAAe;IACpC,CAAC,YAAY,QAAQ,eAAe;IACpC,CAAC,SAAS,QAAQ,YAAY;IAC9B,CAAC,YAAY,QAAQ,eAAe;IACpC,CAAC,aAAa,QAAQ,gBAAgB;IACtC,CAAC,SAAS,QAAQ,YAAY;;AAGhC,aAAW,CAAC,aAAa,QAAQ,KAAK,gBAAgB;AACpD,UAAM,SAAS,mBAAmB,QAAQ;AAC1C,QAAI,WAAW,QAAW;AACxB,YAAM,MAAM;AACZ,UAAI,IAAI,SAAS,GAAG,MAAM,QAAQ;AAChC,YAAI,SAAS,GAAG,IAAI;AACpB,kBAAU;MACZ;IACF;EACF;AAEA,MAAI,SAAS;AACX,UAAM,cAAc,OAAO,QAAQ,UAAU,oBAAoB;EACnE;AAEA,SAAO,aAAa;IAClB;IACA,KAAK;IACL,kBAAkB;MAChB,eAAe,IAAI;MACnB,gBAAgB,IAAI;MACpB,sBAAsB,IAAI;MAC1B,UAAU,EAAE,GAAG,IAAI,SAAQ;;IAE7B,eAAe,OAAO;IACtB;KACC,QAAQ;AACb;AASA,SAAS,qBACP,QACA,UACA,eACA,eACA,YACA,SAA6B;AAE7B,MAAI,eAAe,QAAW;AAC5B,WAAO;EACT;AACA,MAAI,WAAW,OAAO;AACpB,UAAM,IAAI,WACR,kBAAkB,MAAM,mEACxB,UAAU,KAAK;EAEnB;AACA,MAAI,OAAO,aAAa,YAAY,SAAS,KAAI,EAAG,WAAW,GAAG;AAChE,UAAM,IAAI,WAAW,mEAAmE,UAAU,KAAK;EACzG;AAEA,MAAI,eAAe;AACjB,QAAI,QAAQ,UAAU,UAAa,eAAe,UAAa,QAAQ,UAAU,YAAY;AAC3F,YAAM,IAAI,WACR,cAAc,QAAQ,oCAAoC,UAAU,kBAAkB,QAAQ,KAAK,qBACnG,UAAU,KAAK;IAEnB;AAGA,WAAO,EAAE,GAAG,SAAS,OAAO,WAAU;EACxC;AAEA,yBAAuB,aAAa;AACpC,QAAM,SAAS,6BAA6B,eAAe,UAAU;AACrE,MAAI,CAAC,OAAO,UAAU;AACpB,UAAM,IAAI,WAAW,OAAO,QAAQ,UAAU,KAAK;EACrD;AAEA,MAAI,OAAO,SAAS,aAAa;AAC/B,QAAI,QAAQ,cAAc,UAAa,QAAQ,UAAU,SAAS,GAAG;AACnE,YAAM,IAAI,WACR,cAAc,QAAQ,oCAAoC,UAAU,6FACpE,UAAU,KAAK;IAEnB;AACA,WAAO,EAAE,GAAG,SAAS,WAAW,OAAO,OAAM;EAC/C;AAEA,MAAI,OAAO,SAAS,UAAU;AAE5B,QACE,QAAQ,WAAW,UACnB,oBAAoB,QAAQ,MAAM,MAAM,oBAAoB,OAAO,KAAK,GACxE;AACA,YAAM,IAAI,WACR,cAAc,QAAQ,oCAAoC,UAAU,mBAAmB,QAAQ,MAAM,qBACrG,UAAU,KAAK;IAEnB;AAEA,WAAO,EAAE,GAAG,SAAS,QAAQ,OAAO,MAAK;EAC3C;AAGA,MACE,QAAQ,WAAW,UACnB,2BAA2B,eAAe,QAAQ,MAAM,MACtD,2BAA2B,eAAe,OAAO,KAAK,GACxD;AACA,UAAM,IAAI,WACR,cAAc,QAAQ,oCAAoC,UAAU,mBAAmB,QAAQ,MAAM,qBACrG,UAAU,KAAK;EAEnB;AACA,SAAO,EAAE,GAAG,SAAS,QAAQ,OAAO,MAAK;AAC3C;AAKA,eAAsB,UACpB,YACA,aACA,UACA,SACA,QACA,YAAmB;AAEnB,QAAM,QAAQ,eAAe,UAAU;AACvC,QAAM,SAAS,gBAAgB,WAAW;AAI1C,QAAM,gBACH,WAAW,SAAS,WAAW,QAAS,+BAA+B,QAAQ,IAAI;AACtF,QAAM,MAAM,gBAAgB,SAAY,sBAAsB,QAAQ,QAAQ;AAC9E,YAAU,qBAAqB,QAAQ,UAAU,KAAK,eAAe,YAAY,OAAO;AACxF,QAAM,SAAS,MAAM,sBAAsB,OAAO,MAAM;AACxD,QAAM,EAAE,UAAU,UAAU,UAAU,qBAAoB,IAAK,MAAM,yBAAyB,OAAO,MAAM;AAC3G,QAAM,WAAW,kBAAkB,oBAAoB;AAEvD,MAAI,eAAe;AACjB,QAAI,WAAW,OAAO;AACpB,YAAM,eAAe,uBAAuB,UAAU,aAAa;AACnE,aAAO,aACL;QACE;QACA,KAAK,cAAc;QACnB,gBAAgB;UACd,KAAK,cAAc;UACnB,MAAM,cAAc;UACpB,MAAM,cAAc;UACpB,OAAO;;QAET,eAAe,OAAO;QACtB,SAAS;SAEX,QAAQ;IAEZ;AAEA,UAAM,WAAW,QAAQ;AACzB,QAAI,OAAO,aAAa,UAAU;AAChC,YAAM,IAAI,WACR,cAAc,cAAc,GAAG,wDAAwD,KAAK,QAAQ,cAAc,GAAG,+BACrH,UAAU,KAAK;IAEnB;AACA,UAAM,SAAS,wBAAwB,eAAe,QAAQ;AAC9D,QAAI,CAAC,OAAO,IAAI;AACd,YAAM,IAAI,WAAW,OAAO,MAAM,SAAS,UAAU,KAAK;IAC5D;AACA,UAAMA,WAAU,wBACd,UACA,eACA,OAAO,OAAO,KAAK;AAErB,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,cAAc,cAAc,IAAI,EAAE;IACjF;AACA,WAAO,aACL;MACE;MACA,KAAK,cAAc;MACnB,gBAAgB;QACd,KAAK,cAAc;QACnB,MAAM,cAAc;QACpB,MAAM,cAAc;QACpB,OAAO,OAAO,OAAO;;MAEvB,eAAe,OAAO;MACtB,SAAAA;OAEF,QAAQ;EAEZ;AAEA,MAAI,WAAW,QAAQ;AACrB,UAAM,OAAQ,OAAO,KAAK,kBAAkB,EAAkB,IAAI,CAAC,eAAe;MAChF,KAAK;MACL,SAAS,mBAAmB,SAAS;MACrC,YAAY,cAAc,YACrB,WACD,oBAAoB,SAAS,IAAK,iBAA4B;MAClE,WACE,cAAc,YACV,CAAC,mBAAmB,oBAAoB,0BAA0B,kBAAkB,IACpF,oBAAoB,SAAS,IAAI,CAAC,eAAe,kBAAkB,IAAI,cAAc,gBAAgB,CAAC,UAAU,IAAI,CAAC,UAAU;MACrI,SAAS,qBAAqB,SAAS;MACvC,OAAO,gBAAgB,UAAU,SAAS;MAC1C;AACF,UAAM,iBAA6C,2BAA2B,IAAI,CAAC,gBAAgB;MACjG,KAAK,WAAW;MAChB,MAAM,WAAW;MACjB,MAAM,WAAW;MACjB,OAAO,uBAAuB,UAAU,UAAU;MAClD;AACF,WAAO,aACL;MACE;MACA;MACA,iBAAiB;MACjB,OAAO,KAAK;MACZ,eAAe,OAAO;MACtB,SAAS;OAEX,QAAQ;EAEZ;AAEA,MAAI,WAAW,UAAU;AACvB,UAAM,SAAS;MACb,oBAAoB,gBAAgB,UAAU,oBAAoB;MAClE,aAAa,gBAAgB,UAAU,aAAa;MACpD,+BAA+B,gBAAgB,UAAU,+BAA+B;MACxF,8BAA8B,gBAAgB,UAAU,8BAA8B;MACtF,yBAAyB,gBAAgB,UAAU,yBAAyB;MAC5E,6BAA6B,gBAAgB,UAAU,6BAA6B;MACpF,0BAA0B,gBAAgB,UAAU,0BAA0B;MAC9E,yCAAyC,gBAAgB,UAAU,yCAAyC;MAC5G,gDAAgD,gBAC9C,UACA,gDAAgD;MAElD,4CAA4C,gBAAgB,UAAU,4CAA4C;MAClH,+CAA+C,gBAC7C,UACA,+CAA+C;MAEjD,mBAAmB,gBAAgB,UAAU,mBAAmB;MAChE,kCAAkC,gBAAgB,UAAU,kCAAkC;MAC9F,gCAAgC,gBAAgB,UAAU,gCAAgC;MAC1F,qCAAqC,gBAAgB,UAAU,qCAAqC;MACpG,iCAAiC,gBAAgB,UAAU,iCAAiC;MAC5F,gCAAgC,gBAAgB,UAAU,gCAAgC;MAC1F,iCAAiC,gBAAgB,UAAU,iCAAiC;MAC5F,oCAAoC,gBAAgB,UAAU,oCAAoC;MAClG,wCAAwC,gBAAgB,UAAU,wCAAwC;MAC1G,0CAA0C,gBAAgB,UAAU,0CAA0C;MAC9G,sBAAsB,gBAAgB,UAAU,sBAAsB;MACtE,oBAAoB,gBAAgB,UAAU,oBAAoB;MAClE,SAAS,gBAAgB,UAAU,SAAS;;AAE9C,WAAO,aACL;MACE;MACA;MACA,eAAe,OAAO;MACtB,SAAS;OAEX,QAAQ;EAEZ;AAIA,MAAI,WAAW,OAAO;AACpB,2BAAuB,GAAG;AAC1B,QAAI,QAAQ,eAAe;AACzB,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS;QACjB,0BAA0B,SAAS;QACnC,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,iCAAiC;AAC3C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,QAAQ;QACzB,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,gCAAgC;AAC1C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,2BAA2B;AACrC,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,+BAA+B;AACzC,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,4BAA4B;AACtC,aAAO,aAAa;QAClB;QACA;QACA,UAAU,CAAC,GAAG,SAAS,WAAW,wBAAwB;QAC1D,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,2CAA2C;AACrD,aAAO,aAAa;QAClB;QACA;QACA,UAAU,CAAC,GAAG,SAAS,WAAW,uCAAuC;QACzE,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,kDAAkD;AAC5D,aAAO,aAAa;QAClB;QACA;QACA,UAAU,CAAC,GAAG,SAAS,WAAW,8CAA8C;QAChF,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,8CAA8C;AACxD,aAAO,aAAa;QAClB;QACA;QACA,UAAU,CAAC,GAAG,SAAS,WAAW,0CAA0C;QAC5E,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,iDAAiD;AAC3D,aAAO,aAAa;QAClB;QACA;QACA,UAAU,CAAC,GAAG,SAAS,WAAW,6CAA6C;QAC/E,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,qBAAqB;AAC/B,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,oCAAoC;AAC9C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,kCAAkC;AAC5C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,uCAAuC;AACjD,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,mCAAmC;AAC7C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW,uBAAuB,YAAY;QAC/D,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,kCAAkC;AAC5C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW,uBAAuB;QACnD,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,mCAAmC;AAC7C,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW,wBAAwB;QACpD,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,sCAAsC;AAChD,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,0CAA0C;AACpD,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW;QAC5B,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,4CAA4C;AACtD,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW,gCAAgC,YAAY;QACxE,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,wBAAwB;AAClC,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,QAAQ,0BAA0B,YAAY;QAC/D,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,sBAAsB;AAChC,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,UAAU,UAAU,YAAY;QACjD,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,QAAI,QAAQ,WAAW;AACrB,aAAO,aAAa;QAClB;QACA;QACA,kBAAkB;UAChB,eAAe,SAAS,QAAQ;UAChC,gBAAgB,SAAS,QAAQ;UACjC,sBAAsB,SAAS,QAAQ;UACvC,UAAU,EAAE,GAAG,SAAS,QAAQ,SAAQ;;QAE1C,eAAe,OAAO;QACtB,SAAS;SACR,QAAQ;IACb;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,SAAS,kBAAkB;MAClD,eAAe,OAAO;MACtB,SAAS;OACR,QAAQ;EACb;AAEA,yBAAuB,GAAG;AAC1B,MAAI,QAAQ,kBAAkB,QAAQ,CAAC,oBAAoB,GAAG,GAAG;AAC/D,UAAM,IAAI,WACR,yEACA,UAAU,KAAK;EAEnB;AACA,MAAI,QAAQ,eAAe;AACzB,UAAM,aAAa,oBAAoB,QAAQ,MAAM;AACrD,UAAMA,WAAU,SAAS,gBAAgB,cAAc,CAAC,SAAS;AACjE,QAAI,YAAuC;AAC3C,QAAIA,UAAS;AACX,YAAM,eAAe,wBAAwB,UAAU,gCAA+B,CAAE;AACxF,YAAM,WAAW,MAAM,yBACrB,OAAO,QACP,YACA,kCACA,aAAa,gBACb,SAAS,MAAM;AAEjB,kBAAY;QACV,eAAe,SAAS;QACxB,SAAS,SAAS;QAClB,UAAU,SAAS;QACnB,SAAS,SAAS;QAClB,UAAU,SAAS;;AAErB,eAAS,cAAc;AACvB,YAAM,cAAc,OAAO,QAAQ,UAAU,wBAAwB;IACvE;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS;MACjB,0BAA0B;MAC1B;MACA,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,iCAAiC;AAC3C,UAAM,aAAa,oCAAoC,QAAQ,MAAM;AACrE,UAAMA,WAAU,SAAS,QAAQ,mBAAmB;AACpD,aAAS,QAAQ,iBAAiB;AAClC,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,0CAA0C;IACzF;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,QAAQ;MACzB,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,gCAAgC;AAC1C,UAAM,aAAa,mCAAmC,QAAQ,MAAM;AACpE,UAAMA,WAAU,SAAS,WAAW,0BAA0B;AAC9D,aAAS,WAAW,wBAAwB;AAC5C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,yCAAyC;IACxF;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,2BAA2B;AACrC,UAAM,aAAa,+BAA+B,QAAQ,MAAM;AAChE,UAAMA,WACJ,SAAS,WAAW,qBAAqB,cACzC,SAAS,WAAW,WAAW,YAC/B,SAAS,WAAW,qBAAqB;AAC3C,aAAS,WAAW,mBAAmB;AACvC,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,mBAAmB;AACvC,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,oCAAoC;IACnF;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,+BAA+B;AACzC,UAAM,aAAa,iCAAiC,QAAQ,MAAM;AAClE,UAAMA,WACJ,SAAS,WAAW,qBAAqB,cACzC,SAAS,WAAW,WAAW,YAC/B,SAAS,WAAW,qBAAqB;AAC3C,aAAS,WAAW,mBAAmB;AACvC,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,mBAAmB;AACvC,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,wCAAwC;IACvF;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,4BAA4B;AACtC,UAAMC,gBAAe,gCAAgC,QAAQ,WAAW,QAAQ,aAAa;AAC7F,UAAMD,WACJC,cAAa,WAAW,SAAS,WAAW,yBAAyB,UACrEA,cAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,yBAAyB,KAAK,CAAC;AACnG,aAAS,WAAW,2BAA2BA;AAC/C,QAAID,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,qCAAqC;IACpF;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,WAAW,wBAAwB;MAC1D,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,2CAA2C;AACrD,UAAMC,gBAAe,kCAAkC,KAAK,QAAQ,WAAW,QAAQ,aAAa;AACpG,UAAMD,WACJC,cAAa,WAAW,SAAS,WAAW,wCAAwC,UACpFA,cAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,wCAAwC,KAAK,CAAC;AAClH,aAAS,WAAW,0CAA0CA;AAC9D,QAAID,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,oDAAoD;IACnG;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,WAAW,uCAAuC;MACzE,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,kDAAkD;AAC5D,UAAMC,gBAAe,kCAAkC,KAAK,QAAQ,WAAW,QAAQ,aAAa;AACpG,UAAMD,WACJC,cAAa,WAAW,SAAS,WAAW,+CAA+C,UAC3FA,cAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,+CAA+C,KAAK,CAAC;AACzH,aAAS,WAAW,iDAAiDA;AACrE,QAAID,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,2DAA2D;IAC1G;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,WAAW,8CAA8C;MAChF,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,8CAA8C;AACxD,UAAMC,gBAAe,kCAAkC,KAAK,QAAQ,WAAW,QAAQ,aAAa;AACpG,UAAMD,WACJC,cAAa,WAAW,SAAS,WAAW,2CAA2C,UACvFA,cAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,2CAA2C,KAAK,CAAC;AACrH,aAAS,WAAW,6CAA6CA;AACjE,QAAID,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,uDAAuD;IACtG;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,WAAW,0CAA0C;MAC5E,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,iDAAiD;AAC3D,UAAMC,gBAAe,kCAAkC,KAAK,QAAQ,WAAW,QAAQ,aAAa;AACpG,UAAMD,WACJC,cAAa,WAAW,SAAS,WAAW,8CAA8C,UAC1FA,cAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,8CAA8C,KAAK,CAAC;AACxH,aAAS,WAAW,gDAAgDA;AACpE,QAAID,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,0DAA0D;IACzG;AACA,WAAO,aAAa;MAClB;MACA;MACA,UAAU,CAAC,GAAG,SAAS,WAAW,6CAA6C;MAC/E,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,qBAAqB;AAC/B,UAAM,aAAa,0BAA0B,QAAQ,MAAM;AAC3D,UAAMA,WAAU,SAAS,WAAW,WAAW;AAC/C,aAAS,WAAW,SAAS;AAC7B,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,8BAA8B;IAC7E;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,oCAAoC;AAC9C,UAAM,aAAa,wCAAwC,QAAQ,MAAM;AACzE,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,0BAA0B;AAC3F,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,wBAAwB;AAC5C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,6CAA6C;IAC5F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,kCAAkC;AAC5C,UAAM,aAAa,qCAAqC,QAAQ,MAAM;AACtE,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,wBAAwB;AACzF,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,sBAAsB;AAC1C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,2CAA2C;IAC1F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,uCAAuC;AACjD,UAAM,aAAa,0CAA0C,QAAQ,MAAM;AAC3E,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,6BAA6B;AAC9F,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,2BAA2B;AAC/C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,gDAAgD;IAC/F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,mCAAmC;AAC7C,UAAM,aAAa,4CAA4C,QAAQ,MAAM;AAC7E,UAAM,cAAc,eAAe;AACnC,UAAMA,WAAU,SAAS,WAAW,yBAAyB;AAC7D,aAAS,WAAW,uBAAuB;AAC3C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,4CAA4C;IAC3F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW,uBAAuB,YAAY;MAC/D,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,kCAAkC;AAC5C,UAAM,iBAAiB,OAAO,QAAQ,WAAW;AACjD,UAAM,UAAU,iBAAiB,QAAQ,OAAQ,KAAI,IAAK;AAI1D,QAAI,kBAAkB,QAAQ,WAAW,GAAG;AAC1C,YAAMA,WAAU,SAAS,WAAW,wBAAwB;AAC5D,aAAO,SAAS,WAAW;AAC3B,UAAIA,UAAS;AACX,cAAM,cAAc,OAAO,QAAQ,UAAU,2CAA2C;MAC1F;AACA,aAAO,aAAa;QAClB;QACA;QACA,QAAQ,SAAS,WAAW,uBAAuB;QACnD,eAAe,OAAO;QACtB,SAAAA;SACC,QAAQ;IACb;AACA,QAAI,QAAQ,WAAW,GAAG;AACxB,YAAM,IAAI,WACR,4GACA,UAAU,KAAK;IAEnB;AAGA,UAAM,eAAe,wBAAwB,UAAU,gCAA+B,CAAE;AACxF,UAAM,eAAe,gBAAgB,SAAS,YAAY;AAC1D,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,WACR,sBAAsB,SAAS,aAAa,OAAO,yBAAyB,OAAO,QAAQ,SAAS,MAAM,CAAC,GAC3G,UAAU,KAAK;IAEnB;AACA,UAAMA,WAAU,SAAS,WAAW,wBAAwB;AAC5D,aAAS,WAAW,sBAAsB;AAC1C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,2CAA2C;IAC1F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,mCAAmC;AAC7C,UAAM,aAAa,uCAAuC,QAAQ,MAAM;AAExE,UAAMA,YAAW,SAAS,WAAW,wBAAwB,WAAW;AACxE,aAAS,WAAW,uBAAuB;AAC3C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,4CAA4C;IAC3F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,sCAAsC;AAChD,UAAM,aAAa,+BAA+B,QAAQ,MAAM;AAChE,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,qBAAqB;AACtF,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,mBAAmB;AACvC,aAAS,WAAW,mBAAmB;AACvC,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,+CAA+C;IAC9F;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,0CAA0C;AACpD,UAAM,aAAa,iCAAiC,QAAQ,MAAM;AAClE,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,qBAAqB;AACtF,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,mBAAmB;AACvC,aAAS,WAAW,mBAAmB;AACvC,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,mDAAmD;IAClG;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW;MAC5B,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,4CAA4C;AACtD,UAAM,aAAa,mDAAmD,QAAQ,MAAM;AACpF,UAAM,cAAc,eAAe;AACnC,UAAMA,WACJ,SAAS,WAAW,WAAW,YAAY,SAAS,WAAW,kCAAkC;AACnG,aAAS,WAAW,SAAS;AAC7B,aAAS,WAAW,gCAAgC;AACpD,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,qDAAqD;IACpG;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,WAAW,gCAAgC,YAAY;MACxE,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,wBAAwB;AAClC,UAAM,aAAa,kCAAkC,QAAQ,MAAM;AACnE,UAAM,cAAc,eAAe;AACnC,UAAMA,WAAU,SAAS,QAAQ,4BAA4B;AAC7D,aAAS,QAAQ,0BAA0B;AAC3C,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,iCAAiC;IAChF;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,QAAQ,0BAA0B,YAAY;MAC/D,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,sBAAsB;AAChC,UAAM,aAAa,iCAAiC,QAAQ,MAAM;AAClE,UAAM,cAAc,eAAe;AACnC,UAAMA,WAAU,SAAS,UAAU,YAAY,eAAe,CAAC,SAAS,UAAU;AAClF,aAAS,UAAU,UAAU;AAC7B,aAAS,UAAU,6BAA6B;AAChD,QAAIA,UAAS;AACX,YAAM,cAAc,OAAO,QAAQ,UAAU,+BAA+B;IAC9E;AACA,WAAO,aAAa;MAClB;MACA;MACA,QAAQ,SAAS,UAAU,UAAU,YAAY;MACjD,eAAe,OAAO;MACtB,SAAAA;OACC,QAAQ;EACb;AAEA,MAAI,QAAQ,WAAW;AACrB,WAAO,mBAAmB,UAAU,SAAS,QAAQ,OAAO,QAAQ;EACtE;AAEA,QAAM,eAAe,kBAAkB,QAAQ,WAAW,QAAQ,aAAa;AAC/E,QAAM,UACJ,aAAa,WAAW,SAAS,SAAS,mBAAmB,UAC7D,aAAa,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,SAAS,mBAAmB,KAAK,CAAC;AAE3F,WAAS,SAAS,qBAAqB;AACvC,MAAI,SAAS;AACX,UAAM,cAAc,OAAO,QAAQ,UAAU,+BAA+B;EAC9E;AAEA,SAAO,aAAa;IAClB;IACA;IACA,UAAU,CAAC,GAAG,SAAS,SAAS,kBAAkB;IAClD,eAAe,OAAO;IACtB;KACC,QAAQ;AACb;AAEO,IAAM,yBAAyB;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","debugId":"47814bbe-4193-5179-91d9-3196784af35b"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../mcp/tool-definitions.ts","../../../../../../../../cli/commands/contracts.ts"],"sourcesContent":["/**\n * @module mcp/tool-definitions\n *\n * Defines the Tool Definitions module for pm CLI source.\n */\nimport { PM_TOOL_ACTIONS } from \"../sdk/cli-contracts/enum-contracts.js\";\nimport { RUNTIME_STATUS_ROLE_VALUES } from \"../types.js\";\n\n/**\n * Static MCP tool surface for the pm MCP server.\n *\n * Kept as a dependency-light data module (only the enum contract import) so the\n * `pm contracts` command can snapshot the tool surface into the contract\n * golden file (pm-4os2) without importing the full MCP server runtime, and so\n * the server itself stays the single consumer of the dispatch handlers.\n */\nexport interface ToolDefinition {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n}\n\nconst TOOL_SCHEMA_BASE = {\n type: \"object\",\n properties: {\n cwd: {\n type: \"string\",\n description: \"Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd.\",\n },\n path: {\n type: \"string\",\n description: \"Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking.\",\n },\n author: {\n type: \"string\",\n description: \"Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation.\",\n },\n },\n additionalProperties: true,\n} as const;\n\nconst idSchema = {\n type: \"string\",\n description: \"pm item id, for example pm-abc1.\",\n};\n\n// pm-fd8n: derive the pm_run action enumeration from the canonical\n// PM_TOOL_ACTIONS contract instead of a hand-maintained prose list, so the\n// MCP-facing description can never drift from the actual supported actions.\nconst PM_RUN_ACTION_DESCRIPTION =\n `Operation name (one of): ${PM_TOOL_ACTIONS.join(\", \")}. ` +\n \"Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.\";\n\nconst LIST_TOP_LEVEL_OPTION_PROPERTIES: Record<string, unknown> = {\n status: { type: \"string\", description: \"Alias for options.status.\" },\n type: { type: \"string\", description: \"Alias for options.type.\" },\n tag: { type: \"string\", description: \"Alias for options.tag.\" },\n priority: { type: \"string\", description: \"Alias for options.priority.\" },\n limit: { type: [\"string\", \"number\"], description: \"Alias for options.limit.\" },\n offset: { type: [\"string\", \"number\"], description: \"Alias for options.offset.\" },\n};\n\nconst SEARCH_TOP_LEVEL_OPTION_PROPERTIES: Record<string, unknown> = {\n mode: { type: \"string\", description: \"Alias for options.mode.\" },\n status: { type: \"string\", description: \"Alias for options.status.\" },\n type: { type: \"string\", description: \"Alias for options.type.\" },\n tag: { type: \"string\", description: \"Alias for options.tag.\" },\n priority: { type: \"string\", description: \"Alias for options.priority.\" },\n limit: { type: [\"string\", \"number\"], description: \"Alias for options.limit.\" },\n};\n\nfunction objectSchema(properties: Record<string, unknown>, required: string[] = []): Record<string, unknown> {\n return {\n ...TOOL_SCHEMA_BASE,\n properties: {\n ...TOOL_SCHEMA_BASE.properties,\n ...properties,\n },\n required,\n };\n}\n\nexport const TOOLS: ToolDefinition[] = [\n {\n name: \"pm_run\",\n description:\n \"Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.\",\n inputSchema: objectSchema(\n {\n action: {\n type: \"string\",\n description: PM_RUN_ACTION_DESCRIPTION,\n },\n id: idSchema,\n query: { type: \"string\", description: \"Search query for action=search.\" },\n reason: { type: \"string\", description: \"Close reason for action=close.\" },\n force: { type: \"boolean\", description: \"Force ownership/terminal-state override when supported.\" },\n // pm-v68d: the schema-specific subcommand enum and add-type/add-status\n // properties migrated to the dedicated pm_schema tool. action=schema\n // still accepts them as passthrough, but agents should prefer pm_schema.\n subcommand: {\n type: \"string\",\n description:\n \"Subcommand selector for actions that take one (for example telemetry, or schema — prefer the dedicated pm_schema tool for schema operations).\",\n },\n options: { type: \"object\", description: \"Underlying pm command options using camelCase keys.\" },\n fullChangedFields: {\n type: \"boolean\",\n description:\n \"For mutation actions, return the full changed_fields array instead of the default changed_field_count.\",\n },\n idOnly: {\n type: \"boolean\",\n description: \"For single-item mutation actions, return only id and status.\",\n },\n },\n [\"action\"],\n ),\n },\n {\n name: \"pm_context\",\n description:\n \"Return the agent-oriented project context snapshot. \" +\n \"Pass options.depth=brief|standard|deep|full (full = every section with no per-section row cap), \" +\n \"options.parent='<id>' to scope the snapshot to one item's subtree (the item plus all descendants), \" +\n \"options.fields='id,title,priority' to project focus rows to a field subset for low-token reads, \" +\n \"or options.section=['hierarchy','progress',...] to pick sections.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_next\",\n description:\n \"Recommend the next actionable work item: the single highest-priority READY item \" +\n \"(active status, no open blockers, no open children; completed containers surface only when no concrete leaf work is ready) plus the ranked ready and blocked queues. \" +\n \"The recommended item carries a rationale and each blocked item lists the open blockers gating it. \" +\n \"Pass options.parent='<id>' to scope to one subtree, options.limit=N to cap ready rows, \" +\n \"options.readyOnly=true to omit the blocked list, or filters (options.type/tag/priority/assignee/sprint/release). \" +\n \"The most token-efficient 'what should I do now?' read for agents.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_search\",\n description:\n \"Search pm items with keyword, semantic, or hybrid search. \" +\n \"Defaults to a compact projection for token efficiency. \" +\n \"Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, \" +\n \"options.status='all' for no lifecycle restriction, \" +\n \"options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large). \" +\n \"The result echoes the applied filters and projection mode in query_summary.\",\n inputSchema: objectSchema({ query: { type: \"string\" }, options: { type: \"object\" }, ...SEARCH_TOP_LEVEL_OPTION_PROPERTIES }, [\"query\"]),\n },\n {\n name: \"pm_list\",\n description:\n \"List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. \" +\n \"options.status accepts CSV (all,open,in_progress). \" +\n \"Pass options.compact=false or options.includeBody=true for full bodies/comments. \" +\n \"Pass options.brief=true for ultra-terse (id/status/type/title only). \" +\n \"Pass options.fields='id,title,priority' for custom projection. \" +\n \"Pass options.limit=N to cap row count. \" +\n \"The result echoes the applied filters and projection mode in query_summary.\",\n inputSchema: objectSchema({ options: { type: \"object\" }, ...LIST_TOP_LEVEL_OPTION_PROPERTIES }),\n },\n {\n name: \"pm_get\",\n description:\n \"Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.\",\n inputSchema: objectSchema({\n id: idSchema,\n options: { type: \"object\", description: \"Get options such as depth=brief|standard|deep|full or fields=id,title,status.\" },\n }, [\"id\"]),\n },\n {\n name: \"pm_create\",\n description:\n \"Create a pm item natively and write pm history. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count for token efficiency); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n allowMissingParent: { type: \"boolean\", description: \"Allow unresolved parent references and emit a validation warning.\" },\n options: { type: \"object\", description: \"Create options. title and description are required.\" },\n },\n [\"options\"],\n ),\n },\n {\n name: \"pm_copy\",\n description:\n \"Copy an existing pm item into a new id while resetting lifecycle fields. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\", description: \"Copy options such as title override, author, and message.\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_focus\",\n description:\n \"Set, clear, or show the session focused item. When focused, pm_create defaults its parent to the focused item \" +\n \"(an explicit parent still overrides). Pass id to focus an item, options.clear=true to clear, or neither to show current focus.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n clear: { type: \"boolean\", description: \"Clear the focused item (cannot be combined with id).\" },\n options: { type: \"object\", description: \"Focus options such as clear (boolean).\" },\n },\n [],\n ),\n },\n {\n name: \"pm_update\",\n description:\n \"Update pm item metadata/body/dependencies/log seeds natively. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields delta.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\" },\n },\n [\"id\", \"options\"],\n ),\n },\n {\n name: \"pm_append\",\n description:\n \"Append markdown text to a pm item body and write pm history. Useful for seeding evidence/log entries before close. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n body: {\n type: \"string\",\n description: \"Markdown text to append to the item body. Required here or as options.body.\",\n },\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\", description: \"Append options such as body, author, and message.\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_claim\",\n description: \"Claim a pm item.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_release\",\n description: \"Release a pm item claim.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_close\",\n description:\n \"Close a pm item with optional close reason and optional close validation (reason requirement follows governance settings). \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n reason: { type: \"string\", description: \"Close reason text when provided or required by governance settings.\" },\n duplicateOf: { type: \"string\", description: \"Canonical item id when closing this item as a duplicate.\" },\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n idOnly: { type: \"boolean\", description: \"Return only id and status.\" },\n options: { type: \"object\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_comments\",\n description:\n \"List, add, edit, or delete comments on a pm item. Use options.add to append, options.edit=<1-based index> with replacement text to fix a comment, or options.delete=<1-based index> to remove one. \" +\n \"List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. \" +\n \"Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_files\",\n description: \"List, add, remove, audit, or validate linked files for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_docs\",\n description: \"List, add, or remove linked docs for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_notes\",\n description:\n \"List or add structured notes on a pm item. Use options.add to append a note; omit it to list existing notes.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_learnings\",\n description:\n \"List or add learnings on a pm item. Use options.add to capture a learning/insight; omit it to list existing learnings.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_deps\",\n description:\n \"List, add, or remove dependencies for a pm item. Use options.add to declare a dependency and options.remove to drop one; omit both to list current dependencies.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_test\",\n description: \"List, add, remove, or run linked tests for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_validate\",\n description: \"Run pm validation checks.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_health\",\n description: \"Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_contracts\",\n description: \"Inspect pm command, flag, schema, and availability contracts.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_schema\",\n description:\n \"Inspect or modify the workspace item-type/status/field schema (pm schema). \" +\n \"subcommand selects the operation; name carries the item type name (show/add-type/remove-type), status id (show-status/add-status/remove-status), or field key (show-field/add-field/remove-field). \" +\n \"apply-preset adopts a domain type preset; add-type with infer=true derives types from title-prefix conventions. \" +\n \"Schema mutations write workspace config files, not item history.\",\n inputSchema: objectSchema(\n {\n subcommand: {\n type: \"string\",\n enum: [\n \"list\",\n \"show\",\n \"show-status\",\n \"add-type\",\n \"remove-type\",\n \"add-status\",\n \"remove-status\",\n \"add-field\",\n \"remove-field\",\n \"list-fields\",\n \"show-field\",\n \"apply-preset\",\n ],\n description: \"Schema subcommand to run.\",\n },\n name: {\n type: \"string\",\n description:\n \"Item type name (show/add-type/remove-type), status id (show-status/add-status/remove-status), or custom field key (show-field/add-field/remove-field). Required for those subcommands.\",\n },\n description: {\n type: \"string\",\n description: \"Custom item type, status, or field description for add-type/add-status/add-field.\",\n },\n defaultStatus: { type: \"string\", description: \"Default status for add-type.\" },\n folder: { type: \"string\", description: \"Storage folder for add-type.\" },\n alias: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Aliases for add-type/add-status, or extra CLI flag aliases for add-field.\",\n },\n role: {\n type: \"array\",\n items: { type: \"string\", enum: [...RUNTIME_STATUS_ROLE_VALUES] },\n description: `Lifecycle roles for add-status: ${RUNTIME_STATUS_ROLE_VALUES.join(\", \")}.`,\n },\n order: { type: \"number\", description: \"Display/sort order for add-status.\" },\n fieldType: {\n type: \"string\",\n enum: [\"string\", \"number\", \"boolean\", \"string_array\"],\n description: \"Value type for a custom field (add-field).\",\n },\n commands: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Commands a custom field is wired onto (add-field): create, update, update_many, list, search, calendar, context.\",\n },\n cliFlag: { type: \"string\", description: \"Override the auto-derived CLI flag for a custom field (add-field).\" },\n required: { type: \"boolean\", description: \"Mark a custom field as always required (add-field).\" },\n requiredOnCreate: { type: \"boolean\", description: \"Mark a custom field as required at create time (add-field).\" },\n allowUnset: { type: \"boolean\", description: \"Whether a custom field may be cleared via --unset (add-field); defaults to true.\" },\n requiredTypes: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Restrict a custom field's requirement to specific item types (add-field).\",\n },\n typePreset: {\n type: \"string\",\n enum: [\"agile\", \"ops\", \"research\"],\n description: \"Domain type preset to adopt (apply-preset).\",\n },\n infer: { type: \"boolean\", description: \"Infer item types from title-prefix conventions (add-type); previews unless apply is true.\" },\n minCount: { type: \"number\", description: \"Minimum items sharing a prefix for add-type inference (default 10).\" },\n apply: { type: \"boolean\", description: \"Register inferred types (add-type infer); without it the call previews only.\" },\n force: { type: \"boolean\", description: \"Override removal guardrails for destructive schema changes when supported.\" },\n options: { type: \"object\", description: \"Additional schema options using camelCase keys.\" },\n },\n [\"subcommand\"],\n ),\n },\n {\n name: \"pm_profile\",\n description:\n \"List, show, apply, or lint project profiles (pm profile) — archetype bundles that stage item types, statuses, fields, per-type workflows, config knobs, create templates, and recommended packages. \" +\n \"subcommand selects the operation; name carries the profile name (agile, ops, research) for show/apply/lint. \" +\n \"apply stages every dimension idempotently; dryRun previews the diff without writing; lint reports author-time consistency findings (graded error/warning) without touching the tracker. Profile staging writes workspace config/schema files, not item history.\",\n inputSchema: objectSchema(\n {\n subcommand: {\n type: \"string\",\n enum: [\"list\", \"show\", \"apply\", \"lint\"],\n description: \"Profile subcommand to run.\",\n },\n name: {\n type: \"string\",\n description:\n \"Profile name for show/apply/lint. Required for those subcommands. Built-ins are agile, ops, and research; an active extension can contribute additional archetype names that resolve here too.\",\n },\n dryRun: { type: \"boolean\", description: \"Preview the apply diff without writing any files (apply).\" },\n author: { type: \"string\", description: \"Mutation author for apply.\" },\n force: { type: \"boolean\", description: \"Force ownership/lock override for apply.\" },\n options: { type: \"object\", description: \"Additional profile options using camelCase keys.\" },\n },\n [\"subcommand\"],\n ),\n },\n {\n name: \"pm_config\",\n description:\n \"Read or write pm workspace configuration (pm config). \" +\n \"configAction selects get/set/list/export; key/value address a single setting for get/set. \" +\n \"scope chooses the project (default) or global settings file.\",\n inputSchema: objectSchema(\n {\n configAction: {\n type: \"string\",\n enum: [\"get\", \"set\", \"list\", \"export\"],\n description: \"Config operation to perform. get/set require key; list/export dump the resolved settings surface.\",\n },\n key: {\n type: \"string\",\n description:\n \"Settings key for get/set, for example governance-require-close-reason, telemetry-tracking, or a nested leaf such as search_provider (dash and underscore variants accepted; configAction=get without a key lists supported keys in the error).\",\n },\n value: { type: \"string\", description: \"New value for configAction=set.\" },\n scope: {\n type: \"string\",\n enum: [\"project\", \"global\"],\n description: \"Settings scope to read or write. Defaults to project.\",\n },\n options: {\n type: \"object\",\n description: \"Additional config options such as criterion, clearCriteria, format, or policy.\",\n },\n },\n [\"configAction\"],\n ),\n },\n {\n name: \"pm_plan\",\n description:\n \"Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.\",\n inputSchema: objectSchema({\n id: { type: \"string\", description: \"Plan id (required for all subcommands except create).\" },\n stepRef: { type: \"string\", description: \"Step id or order for step lifecycle subcommands.\" },\n reorderTo: { type: \"number\", description: \"New order for reorder-step.\" },\n options: { type: \"object\", description: \"Plan options including subcommand, stepRef, stepStatus, link, depth, etc.\" },\n }),\n },\n];\n\n/**\n * Stable projection of one MCP tool definition for the contract golden file\n * (pm-4os2): tool name, description, required top-level fields, and the full\n * inputSchema shape. Any drift (typo'd property, dropped required field,\n * changed TOOL_SCHEMA_BASE) shows up in `pnpm contracts:check`.\n */\nexport interface McpToolContract {\n name: string;\n description: string;\n required: string[];\n input_schema: Record<string, unknown>;\n}\n\n/**\n * Implements build mcp tool contracts for the public runtime surface of this module.\n */\nexport function buildMcpToolContracts(): McpToolContract[] {\n return TOOLS.map((tool) => {\n const schemaRequired = tool.inputSchema[\"required\"];\n const required = Array.isArray(schemaRequired)\n ? schemaRequired.map((entry) => String(entry)).sort((left, right) => left.localeCompare(right))\n : [];\n return {\n name: tool.name,\n description: tool.description,\n required,\n input_schema: tool.inputSchema,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n","/**\n * @module cli/commands/contracts\n *\n * Implements the pm contracts command surface and its agent-facing runtime behavior.\n */\nimport { EXIT_CODE, SETTINGS_DEFAULTS } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport {\n activateExtensions,\n getActiveExtensionRegistrations,\n loadExtensions,\n} from \"../../core/extensions/index.js\";\nimport type {\n ExtensionRegistrationRegistry,\n RegisteredExtensionCommandDefinition,\n RegisteredExtensionFlagDefinitions,\n} from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n commandOptionFlagLabel,\n resolveCommandOptionPolicyState,\n resolveItemTypeRegistry,\n} from \"../../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { buildMcpToolContracts, type McpToolContract } from \"../../mcp/tool-definitions.js\";\nimport {\n ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n ACTIVITY_FLAG_CONTRACTS,\n AGGREGATE_FLAG_CONTRACTS,\n APPEND_FLAG_CONTRACTS,\n CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n CALENDAR_FLAG_CONTRACTS,\n CLAIM_FLAG_CONTRACTS,\n CLOSE_TASK_FLAG_CONTRACTS,\n COMMENTS_FLAG_CONTRACTS,\n COMMENTS_AUDIT_FLAG_CONTRACTS,\n CLOSE_FLAG_CONTRACTS,\n CLOSE_MANY_FLAG_CONTRACTS,\n COMPLETION_FLAG_CONTRACTS,\n CONFIG_FLAG_CONTRACTS,\n CONTRACTS_FLAG_CONTRACTS,\n CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n CONTEXT_FLAG_CONTRACTS,\n CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n CREATE_FLAG_CONTRACTS,\n DELETE_FLAG_CONTRACTS,\n DEPS_FLAG_CONTRACTS,\n DEDUPE_AUDIT_FLAG_CONTRACTS,\n DEDUPE_MERGE_FLAG_CONTRACTS,\n DOCS_FLAG_CONTRACTS,\n EXTENSION_ACTIVATE_FLAG_CONTRACTS,\n EXTENSION_ADOPT_ALL_FLAG_CONTRACTS,\n EXTENSION_ADOPT_FLAG_CONTRACTS,\n EXTENSION_CATALOG_FLAG_CONTRACTS,\n EXTENSION_DEACTIVATE_FLAG_CONTRACTS,\n EXTENSION_DESCRIBE_FLAG_CONTRACTS,\n EXTENSION_DOCTOR_FLAG_CONTRACTS,\n EXTENSION_EXPLORE_FLAG_CONTRACTS,\n EXTENSION_FLAG_CONTRACTS,\n EXTENSION_INIT_FLAG_CONTRACTS,\n EXTENSION_INSTALL_FLAG_CONTRACTS,\n EXTENSION_MANAGE_FLAG_CONTRACTS,\n EXTENSION_RELOAD_FLAG_CONTRACTS,\n EXTENSION_UNINSTALL_FLAG_CONTRACTS,\n FILES_FLAG_CONTRACTS,\n GC_FLAG_CONTRACTS,\n GET_FLAG_CONTRACTS,\n GUIDE_FLAG_CONTRACTS,\n GLOBAL_FLAG_CONTRACTS,\n HEALTH_FLAG_CONTRACTS,\n HISTORY_FLAG_CONTRACTS,\n HISTORY_COMPACT_FLAG_CONTRACTS,\n HISTORY_REDACT_FLAG_CONTRACTS,\n HISTORY_REPAIR_FLAG_CONTRACTS,\n INSTALL_FLAG_CONTRACTS,\n INIT_FLAG_CONTRACTS,\n LEARNINGS_FLAG_CONTRACTS,\n LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n LIST_FILTER_FLAG_CONTRACTS,\n NORMALIZE_FLAG_CONTRACTS,\n NOTES_FLAG_CONTRACTS,\n PACKAGE_FLAG_CONTRACTS,\n PACKAGE_INIT_FLAG_CONTRACTS,\n PM_EXTENSION_CAPABILITY_CONTRACTS,\n PM_EXTENSION_POLICY_MODE_CONTRACTS,\n PM_EXTENSION_POLICY_SURFACE_CONTRACTS,\n PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS,\n PM_EXTENSION_SERVICE_NAME_CONTRACTS,\n PM_EXTENSION_TRUST_MODE_CONTRACTS,\n PLAN_FLAG_CONTRACTS,\n PM_CORE_COMMAND_NAMES,\n PM_TOOL_ACTIONS,\n PM_TOOL_PARAMETERS_SCHEMA,\n REINDEX_FLAG_CONTRACTS,\n RELEASE_FLAG_CONTRACTS,\n RESTORE_FLAG_CONTRACTS,\n SCHEMA_FLAG_CONTRACTS,\n PROFILE_FLAG_CONTRACTS,\n SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n EVAL_FLAG_CONTRACTS,\n NEXT_FLAG_CONTRACTS,\n SEARCH_FLAG_CONTRACTS,\n STATS_FLAG_CONTRACTS,\n START_TASK_FLAG_CONTRACTS,\n PAUSE_TASK_FLAG_CONTRACTS,\n TELEMETRY_FLAG_CONTRACTS,\n TEST_ALL_FLAG_CONTRACTS,\n TEST_FLAG_CONTRACTS,\n TEST_RUNS_FLAG_CONTRACTS,\n UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n UPDATE_FLAG_CONTRACTS,\n UPDATE_MANY_FLAG_CONTRACTS,\n UPGRADE_FLAG_CONTRACTS,\n VALIDATE_FLAG_CONTRACTS,\n compactFlagAliasContracts,\n withFlagAliasMetadata,\n type CliFlagContract,\n type CommanderOptionAliasContract,\n} from \"../../sdk/cli-contracts.js\";\n\n/**\n * Documents the contracts command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ContractsCommandOptions {\n action?: string;\n command?: string;\n schemaOnly?: boolean;\n flagsOnly?: boolean;\n availabilityOnly?: boolean;\n runtimeOnly?: boolean;\n full?: boolean;\n}\n\ninterface CommandFlagSurface {\n command: string;\n flags: CliFlagContract[];\n provider?: \"core\" | \"extension\" | \"mixed\";\n extension_sources?: Array<{\n layer: \"global\" | \"project\";\n name: string;\n }>;\n}\n\ninterface CommandAliasSurface {\n canonical: string;\n aliases: string[];\n}\n\n/**\n * Documents the contracts result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ContractsResult {\n schema_version: string | null;\n schema_id: string | null;\n selected: {\n action: string | null;\n command: string | null;\n schema_only: boolean;\n flags_only: boolean;\n availability_only: boolean;\n runtime_only: boolean;\n command_scoped: boolean;\n };\n actions?: string[];\n action_availability?: ContractsActionAvailability[];\n commands: string[];\n schema?: Record<string, unknown>;\n schema_omitted_reason?: string;\n command_flags_omitted_reason?: string;\n commander_aliases_omitted_reason?: string;\n command_flags?: CommandFlagSurface[];\n command_aliases?: CommandAliasSurface[];\n commander_aliases?: Record<string, CommanderOptionAliasContract[]>;\n extension_commands?: ExtensionCommandContract[];\n runtime_schema?: {\n statuses: string[];\n open_status: string;\n close_status: string;\n canceled_status: string;\n types: string[];\n fields_by_command: Record<string, string[]>;\n };\n extension_contracts?: {\n capabilities: string[];\n services: string[];\n policy_modes: string[];\n policy_surfaces: string[];\n trust_modes: string[];\n sandbox_profiles: string[];\n manifest_versions: number[];\n compatibility: {\n current: string;\n previous: string[];\n breaking_strategy: string;\n };\n };\n // pm-4os2: static MCP tool surface (tool names, required fields, inputSchema\n // shapes) so the contract golden file catches unintended MCP schema drift.\n // Emitted with --full only — the snapshot script runs `pm contracts --full`.\n mcp_tools?: McpToolContract[];\n}\n\ntype PmToolAction = (typeof PM_TOOL_ACTIONS)[number];\n\n/**\n * Documents the contracts action availability payload exchanged by command, SDK, and package integrations.\n */\nexport interface ContractsActionAvailability {\n action: string;\n invocable: boolean;\n available: boolean;\n requires_extension: boolean;\n provider: \"core\" | \"extension\";\n disabled_reason: string | null;\n command_path: string | null;\n cli_exposed: boolean;\n policy_state?: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface RuntimeExtensionActionProbe {\n handlers: Set<string>;\n disabledReason: string | null;\n commandDefinitions: RegisteredExtensionCommandDefinition[];\n flagRegistrations: RegisteredExtensionFlagDefinitions[];\n registrations: ExtensionRegistrationRegistry | null;\n policyState: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface ExtensionCommandContract {\n command: string;\n action: string;\n source: {\n layer: \"global\" | \"project\";\n name: string;\n } | null;\n description: string | null;\n intent: string | null;\n arguments: Array<{\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n }>;\n flags: CliFlagContract[];\n examples: string[];\n failure_hints: string[];\n}\n\nconst LIST_COMMAND_NAMES = new Set([\n \"list\",\n \"list-all\",\n \"list-draft\",\n \"list-open\",\n \"list-in-progress\",\n \"list-blocked\",\n \"list-closed\",\n \"list-canceled\",\n]);\n\nconst PACKAGE_OWNED_ACTIONS = new Set<string>([\n \"calendar\",\n \"dedupe-audit\",\n \"dedupe-merge\",\n \"guide\",\n \"reindex\",\n \"normalize\",\n \"comments-audit\",\n \"completion\",\n \"test-runs-list\",\n \"test-runs-status\",\n \"test-runs-logs\",\n \"test-runs-stop\",\n \"test-runs-resume\",\n \"templates-list\",\n \"templates-save\",\n \"templates-show\",\n]);\n\nconst PACKAGE_OWNED_COMMANDS = new Set<string>([\n \"cal\",\n \"calendar\",\n \"comments-audit\",\n \"completion\",\n \"completion-statuses\",\n \"completion-tags\",\n \"completion-types\",\n \"dedupe-audit\",\n \"dedupe-merge\",\n \"guide\",\n \"normalize\",\n \"reindex\",\n \"templates\",\n \"templates list\",\n \"templates save\",\n \"templates show\",\n \"test-runs\",\n \"test-runs list\",\n \"test-runs status\",\n \"test-runs logs\",\n \"test-runs stop\",\n \"test-runs resume\",\n]);\n\nconst PACKAGE_OWNED_COMMAND_INSTALL_HINTS = new Map<string, string>([\n [\"cal\", \"calendar\"],\n [\"calendar\", \"calendar\"],\n [\"comments-audit\", \"governance-audit\"],\n [\"completion\", \"guide-shell\"],\n [\"completion-statuses\", \"guide-shell\"],\n [\"completion-tags\", \"guide-shell\"],\n [\"completion-types\", \"guide-shell\"],\n [\"dedupe-audit\", \"governance-audit\"],\n [\"dedupe-merge\", \"governance-audit\"],\n [\"guide\", \"guide-shell\"],\n [\"normalize\", \"governance-audit\"],\n [\"reindex\", \"search-advanced\"],\n [\"templates\", \"templates\"],\n [\"templates list\", \"templates\"],\n [\"templates save\", \"templates\"],\n [\"templates show\", \"templates\"],\n [\"test-runs\", \"linked-test-adapters\"],\n [\"test-runs list\", \"linked-test-adapters\"],\n [\"test-runs status\", \"linked-test-adapters\"],\n [\"test-runs logs\", \"linked-test-adapters\"],\n [\"test-runs stop\", \"linked-test-adapters\"],\n [\"test-runs resume\", \"linked-test-adapters\"],\n]);\n\nconst PACKAGE_OWNED_ACTION_COMMAND_PATHS = new Map<string, string>([\n [\"calendar\", \"calendar|cal\"],\n [\"dedupe-audit\", \"dedupe-audit\"],\n [\"dedupe-merge\", \"dedupe-merge\"],\n [\"guide\", \"guide\"],\n [\"reindex\", \"reindex\"],\n [\"normalize\", \"normalize\"],\n [\"comments-audit\", \"comments-audit\"],\n [\"completion\", \"completion\"],\n [\"test-runs-list\", \"test-runs|test-runs list\"],\n [\"test-runs-status\", \"test-runs status\"],\n [\"test-runs-logs\", \"test-runs logs\"],\n [\"test-runs-stop\", \"test-runs stop\"],\n [\"test-runs-resume\", \"test-runs resume\"],\n [\"templates-list\", \"templates|templates list\"],\n [\"templates-save\", \"templates save\"],\n [\"templates-show\", \"templates show\"],\n]);\n\nconst PACKAGE_OWNED_COMMAND_ACTIONS = new Map(\n [...PACKAGE_OWNED_ACTION_COMMAND_PATHS.entries()].flatMap(([action, commandPaths]) =>\n splitCommandPathAliases(commandPaths).map((commandPath) => [commandPath, action] as const),\n ),\n);\n\nconst CANONICAL_COMMAND_ALIASES: CommandAliasSurface[] = [\n {\n canonical: \"context\",\n aliases: [\"ctx\"],\n },\n {\n canonical: \"package\",\n aliases: [\"extension\", \"packages\", \"install\"],\n },\n];\n\nconst COMMAND_ALIAS_TO_CANONICAL = new Map(\n CANONICAL_COMMAND_ALIASES.flatMap((entry) =>\n entry.aliases.map((alias) => [alias, entry.canonical] as const),\n ),\n);\n\nconst COMMAND_NAMESPACE_DISPLAY_LIMIT = 10;\nconst COMMAND_NAMESPACE_FALLBACK_LIMIT = 20;\n\n// Lifecycle subcommand flag contracts for `pm extension`. Only `init` differs\n// between extension and package: `pm package init` / `pm packages init`\n// additionally accept the package-only `--declarative` flag, so the package\n// variant swaps in PACKAGE_INIT_FLAG_CONTRACTS while every other subcommand is\n// shared verbatim.\nconst EXTENSION_LIFECYCLE_FLAG_CONTRACTS: Array<readonly [string, CliFlagContract[]]> = [\n [\"init\", EXTENSION_INIT_FLAG_CONTRACTS],\n [\"install\", EXTENSION_INSTALL_FLAG_CONTRACTS],\n [\"uninstall\", EXTENSION_UNINSTALL_FLAG_CONTRACTS],\n [\"explore\", EXTENSION_EXPLORE_FLAG_CONTRACTS],\n [\"manage\", EXTENSION_MANAGE_FLAG_CONTRACTS],\n [\"describe\", EXTENSION_DESCRIBE_FLAG_CONTRACTS],\n [\"reload\", EXTENSION_RELOAD_FLAG_CONTRACTS],\n [\"doctor\", EXTENSION_DOCTOR_FLAG_CONTRACTS],\n [\"catalog\", EXTENSION_CATALOG_FLAG_CONTRACTS],\n [\"adopt\", EXTENSION_ADOPT_FLAG_CONTRACTS],\n [\"adopt-all\", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],\n [\"activate\", EXTENSION_ACTIVATE_FLAG_CONTRACTS],\n [\"deactivate\", EXTENSION_DEACTIVATE_FLAG_CONTRACTS],\n];\n\nconst PACKAGE_LIFECYCLE_FLAG_CONTRACTS: Array<readonly [string, CliFlagContract[]]> =\n EXTENSION_LIFECYCLE_FLAG_CONTRACTS.map(([subcommand, flags]) =>\n subcommand === \"init\" ? ([subcommand, PACKAGE_INIT_FLAG_CONTRACTS] as const) : ([subcommand, flags] as const),\n );\n\nconst CORE_COMMAND_FLAG_CONTRACT_ENTRIES: Array<readonly [string, CliFlagContract[]]> = [\n ...EXTENSION_LIFECYCLE_FLAG_CONTRACTS.map(([subcommand, flags]) => [`extension ${subcommand}`, flags] as const),\n ...PACKAGE_LIFECYCLE_FLAG_CONTRACTS.flatMap(([subcommand, flags]) => [\n [`package ${subcommand}`, flags] as const,\n [`packages ${subcommand}`, flags] as const,\n ]),\n [\"init\", INIT_FLAG_CONTRACTS],\n [\"config\", CONFIG_FLAG_CONTRACTS],\n [\"extension\", EXTENSION_FLAG_CONTRACTS],\n [\"package\", PACKAGE_FLAG_CONTRACTS],\n [\"packages\", PACKAGE_FLAG_CONTRACTS],\n [\"install\", INSTALL_FLAG_CONTRACTS],\n [\"create\", CREATE_FLAG_CONTRACTS],\n [\"update\", UPDATE_FLAG_CONTRACTS],\n [\"update-many\", UPDATE_MANY_FLAG_CONTRACTS],\n [\"upgrade\", UPGRADE_FLAG_CONTRACTS],\n [\"normalize\", NORMALIZE_FLAG_CONTRACTS],\n [\"calendar\", CALENDAR_FLAG_CONTRACTS],\n [\"cal\", CALENDAR_FLAG_CONTRACTS],\n [\"context\", CONTEXT_FLAG_CONTRACTS],\n [\"ctx\", CONTEXT_FLAG_CONTRACTS],\n [\"get\", GET_FLAG_CONTRACTS],\n [\"search\", SEARCH_FLAG_CONTRACTS],\n [\"eval\", EVAL_FLAG_CONTRACTS],\n [\"next\", NEXT_FLAG_CONTRACTS],\n [\"aggregate\", AGGREGATE_FLAG_CONTRACTS],\n [\"dedupe-audit\", DEDUPE_AUDIT_FLAG_CONTRACTS],\n [\"dedupe-merge\", DEDUPE_MERGE_FLAG_CONTRACTS],\n [\"deps\", DEPS_FLAG_CONTRACTS],\n [\"guide\", GUIDE_FLAG_CONTRACTS],\n [\"reindex\", REINDEX_FLAG_CONTRACTS],\n [\"history\", HISTORY_FLAG_CONTRACTS],\n [\"history-compact\", HISTORY_COMPACT_FLAG_CONTRACTS],\n [\"history-redact\", HISTORY_REDACT_FLAG_CONTRACTS],\n [\"history-repair\", HISTORY_REPAIR_FLAG_CONTRACTS],\n [\"schema\", SCHEMA_FLAG_CONTRACTS],\n [\"profile\", PROFILE_FLAG_CONTRACTS],\n [\"plan\", PLAN_FLAG_CONTRACTS],\n [\"restore\", RESTORE_FLAG_CONTRACTS],\n [\"delete\", DELETE_FLAG_CONTRACTS],\n [\"close\", CLOSE_FLAG_CONTRACTS],\n [\"close-many\", CLOSE_MANY_FLAG_CONTRACTS],\n [\"append\", APPEND_FLAG_CONTRACTS],\n [\"claim\", CLAIM_FLAG_CONTRACTS],\n [\"release\", RELEASE_FLAG_CONTRACTS],\n [\"start-task\", START_TASK_FLAG_CONTRACTS],\n [\"pause-task\", PAUSE_TASK_FLAG_CONTRACTS],\n [\"close-task\", CLOSE_TASK_FLAG_CONTRACTS],\n [\"comments\", COMMENTS_FLAG_CONTRACTS],\n [\"notes\", NOTES_FLAG_CONTRACTS],\n [\"learnings\", LEARNINGS_FLAG_CONTRACTS],\n [\"files\", FILES_FLAG_CONTRACTS],\n [\"docs\", DOCS_FLAG_CONTRACTS],\n [\"test\", TEST_FLAG_CONTRACTS],\n [\"test-all\", TEST_ALL_FLAG_CONTRACTS],\n [\"telemetry\", TELEMETRY_FLAG_CONTRACTS],\n [\"test-runs\", TEST_RUNS_FLAG_CONTRACTS],\n [\"gc\", GC_FLAG_CONTRACTS],\n [\"stats\", STATS_FLAG_CONTRACTS],\n [\"validate\", VALIDATE_FLAG_CONTRACTS],\n [\"comments-audit\", COMMENTS_AUDIT_FLAG_CONTRACTS],\n [\"health\", HEALTH_FLAG_CONTRACTS],\n [\"contracts\", CONTRACTS_FLAG_CONTRACTS],\n [\"completion\", COMPLETION_FLAG_CONTRACTS],\n [\"activity\", ACTIVITY_FLAG_CONTRACTS],\n ...[...LIST_COMMAND_NAMES].map((command) => [command, LIST_FILTER_FLAG_CONTRACTS] as const),\n];\n\nconst CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND = new Map(CORE_COMMAND_FLAG_CONTRACT_ENTRIES);\n\n/* c8 ignore start -- extension contract shaping utilities are exercised by dedicated extension/runtime integration suites. */\nfunction packageOwnedActionForCommand(command: string): string {\n const exactAction = PACKAGE_OWNED_COMMAND_ACTIONS.get(command);\n if (exactAction) {\n return exactAction;\n }\n if (command.startsWith(\"test-runs \")) {\n return `test-runs-${command.slice(\"test-runs \".length)}`;\n }\n if (command.startsWith(\"templates \")) {\n return `templates-${command.slice(\"templates \".length)}`;\n }\n return command;\n}\n\nfunction resolveActionCommandPath(action: PmToolAction): string | null {\n if (\n PM_CORE_COMMAND_NAMES.includes(\n action as (typeof PM_CORE_COMMAND_NAMES)[number],\n )\n ) {\n return normalizeCommandPath(action);\n }\n if (action.startsWith(\"extension-\")) {\n return normalizeCommandPath(\n `extension ${action.slice(\"extension-\".length)}`,\n );\n }\n if (action.startsWith(\"package-\")) {\n return normalizeCommandPath(`package ${action.slice(\"package-\".length)}`);\n }\n if (action.startsWith(\"test-runs-\")) {\n return normalizeCommandPath(\n `test-runs ${action.slice(\"test-runs-\".length)}`,\n );\n }\n if (action.startsWith(\"templates-\")) {\n return normalizeCommandPath(\n `templates ${action.slice(\"templates-\".length)}`,\n );\n }\n if (PACKAGE_OWNED_ACTIONS.has(action)) {\n return PACKAGE_OWNED_ACTION_COMMAND_PATHS.get(action) ?? normalizeCommandPath(action);\n }\n return null;\n}\n\nfunction actionDescriptorMatchesSelectedCommand(\n descriptor: ActionContractDescriptor,\n selectedCommand: string,\n): boolean {\n if (descriptor.command_path === null) {\n return false;\n }\n return splitCommandPathAliases(descriptor.command_path).some((commandPath) => {\n if (commandPath === selectedCommand) {\n return true;\n }\n return commandPath.startsWith(`${selectedCommand} `);\n });\n}\n\nfunction splitCommandPathAliases(commandPath: string): string[] {\n return commandPath\n .split(\"|\")\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0);\n}\n\nfunction resolveScopedCommandsFromActionDescriptors(\n descriptors: ActionContractDescriptor[],\n commandCatalog: string[],\n): string[] {\n const commandSet = new Set(commandCatalog);\n const scoped = new Set<string>();\n for (const descriptor of descriptors) {\n if (!descriptor.command_path) {\n continue;\n }\n for (const commandPath of splitCommandPathAliases(descriptor.command_path)) {\n const tokens = commandPath.split(\" \").filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n continue;\n }\n for (let end = tokens.length; end > 0; end -= 1) {\n const candidate = tokens.slice(0, end).join(\" \");\n if (!commandSet.has(candidate)) {\n continue;\n }\n scoped.add(candidate);\n break;\n }\n }\n }\n return [...scoped].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeToken(value: string | undefined): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim().toLowerCase();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction extractActionBranches(\n schema: Record<string, unknown>,\n): Record<string, unknown>[] {\n const oneOf = schema.oneOf;\n if (!Array.isArray(oneOf)) {\n return [];\n }\n return oneOf.filter(\n (entry): entry is Record<string, unknown> =>\n typeof entry === \"object\" && entry !== null,\n );\n}\n\nfunction filterSchemaByAction(\n schema: Record<string, unknown>,\n action: string | undefined,\n): Record<string, unknown> {\n if (!action) {\n return { ...schema };\n }\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n return (actionProperty as { const?: unknown }).const === action;\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction filterSchemaByActions(\n schema: Record<string, unknown>,\n actions: ReadonlySet<string>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n const actionConst = (actionProperty as { const?: unknown }).const;\n return typeof actionConst === \"string\" && actions.has(actionConst);\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction normalizeCommandPath(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((entry) => entry.length > 0)\n .join(\" \");\n}\n\nfunction normalizeActionNameFromCommand(commandPath: string): string {\n return commandPath.replace(/\\s+/g, \"-\");\n}\n\nfunction toOptionalTrimmedString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n if (!Array.isArray(values)) {\n return [];\n }\n const normalized: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const trimmed = toOptionalTrimmedString(value);\n if (!trimmed || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nfunction toExtensionFlagContract(\n definition: Record<string, unknown>,\n): CliFlagContract | null {\n const longName = toOptionalTrimmedString(definition.long);\n const shortName = toOptionalTrimmedString(definition.short);\n const normalizedLong =\n longName && longName.startsWith(\"--\") && longName.length > 2\n ? longName\n : null;\n const normalizedShort =\n shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\")\n ? shortName\n : null;\n const flag = normalizedLong ?? normalizedShort;\n if (!flag) {\n return null;\n }\n const contract: CliFlagContract = { flag };\n if (normalizedShort && normalizedLong) {\n contract.short = normalizedShort;\n }\n const description = toOptionalTrimmedString(definition.description);\n if (description) {\n contract.description = description;\n }\n if (definition.required === true) {\n contract.required = true;\n }\n if (definition.repeatable === true) {\n contract.repeatable = true;\n }\n const valueName = toOptionalTrimmedString(definition.value_name);\n if (valueName) {\n contract.value_name = valueName;\n }\n const rawValueType = [\n toOptionalTrimmedString(definition.value_type),\n toOptionalTrimmedString(definition.type),\n valueName ? \"string\" : null,\n ].find((candidate): candidate is \"string\" | \"number\" | \"boolean\" =>\n candidate === \"string\" || candidate === \"number\" || candidate === \"boolean\",\n );\n if (rawValueType) {\n contract.value_type = rawValueType;\n }\n return contract;\n}\n\nfunction collectExtensionFlagContractsByCommand(\n registrations: RegisteredExtensionFlagDefinitions[],\n): Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n> {\n const grouped = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n dedupe: Set<string>;\n sourceDedupe: Set<string>;\n }\n >();\n for (const registration of registrations) {\n const commandPath = normalizeCommandPath(registration.target_command);\n if (commandPath.length === 0) {\n continue;\n }\n const bucket = grouped.get(commandPath) ?? {\n flags: [],\n sources: [],\n dedupe: new Set<string>(),\n sourceDedupe: new Set<string>(),\n };\n const sourceKey = `${registration.layer}:${registration.name}`;\n if (!bucket.sourceDedupe.has(sourceKey)) {\n bucket.sourceDedupe.add(sourceKey);\n bucket.sources.push({\n layer: registration.layer,\n name: registration.name,\n });\n }\n for (const definition of registration.flags) {\n const contract = toExtensionFlagContract(definition);\n if (!contract) {\n continue;\n }\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (bucket.dedupe.has(key)) {\n continue;\n }\n bucket.dedupe.add(key);\n bucket.flags.push(contract);\n }\n grouped.set(commandPath, bucket);\n }\n const normalized = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n >();\n for (const [commandPath, bucket] of grouped.entries()) {\n normalized.set(commandPath, {\n flags: bucket.flags,\n sources: bucket.sources.sort((left, right) => {\n const layerOrder = left.layer.localeCompare(right.layer);\n if (layerOrder !== 0) {\n return layerOrder;\n }\n return (left.name ?? \"\").localeCompare(right.name ?? \"\");\n }),\n });\n }\n return normalized;\n}\n\nfunction collectExtensionCommandContracts(\n runtimeProbe: RuntimeExtensionActionProbe,\n): ExtensionCommandContract[] {\n const flagsByCommand = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const definitionsByCommand = new Map<string, ExtensionCommandContract>();\n for (const definition of runtimeProbe.commandDefinitions) {\n const command = normalizeCommandPath(definition.command);\n if (command.length === 0) {\n continue;\n }\n const action =\n toOptionalTrimmedString(definition.action) ??\n normalizeActionNameFromCommand(command);\n const args = Array.isArray(definition.arguments)\n ? definition.arguments\n .map((argument) => {\n const name = toOptionalTrimmedString(argument.name);\n if (!name) {\n return null;\n }\n return {\n name,\n required: argument.required === true,\n variadic: argument.variadic === true,\n description: toOptionalTrimmedString(argument.description),\n };\n })\n .filter(\n (\n argument,\n ): argument is {\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n } => argument !== null,\n )\n : [];\n definitionsByCommand.set(command, {\n command,\n action,\n source: {\n layer: definition.layer,\n name: definition.name,\n },\n description: toOptionalTrimmedString(definition.description),\n intent: toOptionalTrimmedString(definition.intent),\n arguments: args,\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: normalizeStringList(definition.examples),\n failure_hints: normalizeStringList(definition.failure_hints),\n });\n }\n\n const extensionCommands = new Set<string>();\n for (const command of runtimeProbe.handlers) {\n extensionCommands.add(normalizeCommandPath(command));\n }\n for (const command of definitionsByCommand.keys()) {\n extensionCommands.add(command);\n }\n for (const command of flagsByCommand.keys()) {\n extensionCommands.add(command);\n }\n\n const contracts: ExtensionCommandContract[] = [];\n for (const command of [...extensionCommands].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const definition = definitionsByCommand.get(command);\n if (definition) {\n contracts.push({\n ...definition,\n flags:\n definition.flags.length > 0\n ? definition.flags\n : (flagsByCommand.get(command)?.flags ?? []),\n });\n continue;\n }\n contracts.push({\n command,\n action: normalizeActionNameFromCommand(command),\n source: null,\n description: null,\n intent: null,\n arguments: [],\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: [],\n failure_hints: [],\n });\n }\n return contracts;\n}\n\nfunction extensionSchemaPropertyNameFromFlag(\n flag: CliFlagContract,\n): string | null {\n const normalized = flag.flag.replace(/^-+/, \"\").trim();\n if (normalized.length === 0) {\n return null;\n }\n const camelCased = normalized.replace(\n /-([a-z0-9])/g,\n (_match, char: string) => char.toUpperCase(),\n );\n const cleaned = camelCased.replace(/[^a-zA-Z0-9]/g, \"\");\n return cleaned.length > 0 ? cleaned : null;\n}\n\nfunction buildExtensionActionSchemaBranch(\n contract: ExtensionCommandContract,\n): Record<string, unknown> {\n const commands = contract.command\n .split(\"|\")\n .map((command) => command.trim())\n .filter((command) => command.length > 0);\n const properties: Record<string, unknown> = {\n action: {\n type: \"string\",\n const: contract.action,\n description:\n contract.intent ??\n contract.description ??\n `Invoke extension command '${contract.command}'.`,\n },\n };\n const required: string[] = [\"action\"];\n for (const argument of contract.arguments) {\n if (argument.variadic) {\n properties[argument.name] = {\n type: \"array\",\n items: { type: \"string\" },\n description:\n argument.description ??\n `Variadic argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n } else {\n properties[argument.name] = {\n type: \"string\",\n description:\n argument.description ??\n `Argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n }\n if (argument.required) {\n required.push(argument.name);\n }\n }\n for (const flag of contract.flags) {\n const propertyName = extensionSchemaPropertyNameFromFlag(flag);\n if (!propertyName || properties[propertyName] !== undefined) {\n continue;\n }\n const valueType = flag.value_type ?? \"boolean\";\n const schemaType =\n valueType === \"boolean\" ? \"boolean\" : valueType === \"number\" ? [\"number\", \"string\"] : \"string\";\n properties[propertyName] = {\n type: flag.repeatable ? \"array\" : schemaType,\n ...(flag.repeatable ? { items: { type: schemaType } } : {}),\n description: flag.description ?? `Extension option '${flag.flag}' for action '${contract.action}'.`,\n };\n if (flag.required === true) {\n required.push(propertyName);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n additionalProperties: true,\n \"x-extension-source\": contract.source,\n \"x-extension-command\": commands[0] ?? contract.command,\n \"x-extension-commands\": commands,\n };\n}\n\nfunction mergeExtensionFlagContract(existing: CliFlagContract, incoming: CliFlagContract): void {\n existing.description ??= incoming.description;\n existing.value_name ??= incoming.value_name;\n existing.value_type ??= incoming.value_type;\n if (incoming.required === true) {\n existing.required = true;\n }\n if (incoming.repeatable === true) {\n existing.repeatable = true;\n }\n}\n\nfunction mergeExtensionContractsByAction(\n contracts: ExtensionCommandContract[],\n): ExtensionCommandContract[] {\n const byAction = new Map<string, ExtensionCommandContract>();\n for (const contract of contracts) {\n const existing = byAction.get(contract.action);\n if (!existing) {\n byAction.set(contract.action, {\n ...contract,\n flags: [...contract.flags],\n examples: [...contract.examples],\n failure_hints: [...contract.failure_hints],\n });\n continue;\n }\n existing.command = [...new Set([existing.command, contract.command])]\n .sort((left, right) => left.localeCompare(right))\n .join(\"|\");\n existing.arguments = existing.arguments.length >= contract.arguments.length ? existing.arguments : contract.arguments;\n const flagKeys = new Set(existing.flags.map((flag) => `${flag.flag}|${flag.short ?? \"\"}`));\n for (const flag of contract.flags) {\n const key = `${flag.flag}|${flag.short ?? \"\"}`;\n if (!flagKeys.has(key)) {\n flagKeys.add(key);\n existing.flags.push(flag);\n } else {\n const existingFlag = existing.flags.find((candidate) => `${candidate.flag}|${candidate.short ?? \"\"}` === key);\n if (existingFlag) {\n mergeExtensionFlagContract(existingFlag, flag);\n }\n }\n }\n existing.examples = [...new Set([...existing.examples, ...contract.examples])];\n existing.failure_hints = [...new Set([...existing.failure_hints, ...contract.failure_hints])];\n }\n return [...byAction.values()].sort((left, right) => left.action.localeCompare(right.action));\n}\n/* c8 ignore stop */\n\nasync function resolveRuntimeExtensionActionProbe(\n global: GlobalOptions,\n): Promise<RuntimeExtensionActionProbe> {\n const defaultPolicyState = {\n mode: SETTINGS_DEFAULTS.extensions.policy.mode,\n trust_mode: SETTINGS_DEFAULTS.extensions.policy.trust_mode,\n default_sandbox_profile:\n SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile,\n };\n if (global.noExtensions) {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extensions_disabled\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return {\n handlers: new Set<string>(),\n disabledReason: null,\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const handlers = new Set<string>(\n activationResult.commands.handlers.map((entry) =>\n normalizeCommandPath(entry.command),\n ),\n );\n return {\n handlers,\n disabledReason: null,\n commandDefinitions: activationResult.registrations.commands,\n flagRegistrations: activationResult.registrations.flags,\n registrations: activationResult.registrations,\n policyState: {\n mode: loadResult.policy.mode,\n trust_mode: loadResult.policy.trust_mode,\n default_sandbox_profile: loadResult.policy.default_sandbox_profile,\n },\n };\n } catch {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extension_runtime_probe_failed\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n}\n\ninterface ActionContractDescriptor {\n action: string;\n provider: \"core\" | \"extension\";\n requires_extension: boolean;\n command_path: string | null;\n}\n\nfunction collectActionContractDescriptors(\n extensionContracts: ExtensionCommandContract[],\n options: { includePackageOwnedActions?: boolean } = {},\n): ActionContractDescriptor[] {\n /* c8 ignore start -- package-owned action descriptor permutations are covered in package-install integration suites. */\n const descriptors = new Map<string, ActionContractDescriptor>();\n for (const action of PM_TOOL_ACTIONS) {\n const packageOwned = PACKAGE_OWNED_ACTIONS.has(action);\n if (packageOwned && !options.includePackageOwnedActions) {\n continue;\n }\n const commandPath = resolveActionCommandPath(action as PmToolAction);\n descriptors.set(action, {\n action,\n provider: packageOwned ? \"extension\" : \"core\",\n requires_extension: packageOwned,\n command_path: commandPath,\n });\n }\n if (options.includePackageOwnedActions) {\n for (const action of PACKAGE_OWNED_ACTIONS) {\n if (descriptors.has(action)) {\n continue;\n }\n descriptors.set(action, {\n action,\n provider: \"extension\",\n requires_extension: true,\n command_path: resolveActionCommandPath(action as PmToolAction),\n });\n }\n }\n for (const contract of extensionContracts) {\n if (descriptors.has(contract.action)) {\n continue;\n }\n descriptors.set(contract.action, {\n action: contract.action,\n provider: \"extension\",\n requires_extension: true,\n command_path: normalizeCommandPath(contract.command),\n });\n }\n return [...descriptors.values()].sort((left, right) =>\n (left.action ?? \"\").localeCompare(right.action ?? \"\"),\n );\n /* c8 ignore stop */\n}\n\nfunction resolveActionAvailability(\n descriptor: ActionContractDescriptor,\n runtimeProbe: RuntimeExtensionActionProbe,\n): ContractsActionAvailability {\n /* c8 ignore start -- runtime extension availability branches are exercised in extension policy integration tests. */\n if (descriptor.provider === \"core\" && !descriptor.requires_extension) {\n return {\n action: descriptor.action,\n invocable: true,\n available: true,\n requires_extension: false,\n provider: \"core\",\n disabled_reason: null,\n command_path: descriptor.command_path,\n cli_exposed: descriptor.command_path !== null,\n };\n }\n\n const commandPaths = descriptor.command_path\n ? splitCommandPathAliases(descriptor.command_path)\n : [];\n const extensionCommandAvailable = commandPaths.some((commandPath) =>\n runtimeProbe.handlers.has(commandPath),\n );\n const optionalPackageHint = commandPaths\n .map((commandPath) => PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(commandPath))\n .find((hint): hint is string => typeof hint === \"string\");\n const invocable =\n runtimeProbe.disabledReason === null && extensionCommandAvailable;\n return {\n action: descriptor.action,\n invocable,\n available: invocable,\n requires_extension: true,\n provider: \"extension\",\n disabled_reason: invocable\n ? null\n : (runtimeProbe.disabledReason ?? (optionalPackageHint ? `optional_package_not_installed:${optionalPackageHint}` : \"extension_command_not_registered\")),\n command_path: descriptor.command_path,\n cli_exposed: extensionCommandAvailable,\n policy_state: {\n mode: runtimeProbe.policyState.mode,\n trust_mode: runtimeProbe.policyState.trust_mode,\n default_sandbox_profile: runtimeProbe.policyState.default_sandbox_profile,\n },\n };\n /* c8 ignore stop */\n}\n\nfunction resolveCoreCommandFlags(command: string): CliFlagContract[] {\n return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.get(command) ?? GLOBAL_FLAG_CONTRACTS;\n}\n\nfunction isCoreCommandPath(command: string): boolean {\n if (PACKAGE_OWNED_COMMANDS.has(command)) {\n return false;\n }\n return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.has(command);\n}\n\nfunction normalizeCommandForRuntimeFieldFlags(command: string): string {\n if (LIST_COMMAND_NAMES.has(command)) {\n return \"list\";\n }\n if (command === \"cal\") {\n return \"calendar\";\n }\n if (command === \"ctx\") {\n return \"context\";\n }\n if (command === \"update-many\") {\n return \"update_many\";\n }\n return command;\n}\n\nfunction toRuntimeLongFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return trimmed;\n }\n if (trimmed.startsWith(\"-\")) {\n return null;\n }\n return `--${trimmed}`;\n}\n\nfunction toRuntimeShortFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return null;\n }\n if (trimmed.startsWith(\"-\")) {\n return trimmed;\n }\n return null;\n}\n\nfunction buildRuntimeFieldFlagContracts(\n fieldRegistry: RuntimeFieldRegistry,\n): Map<string, CliFlagContract[]> {\n /* c8 ignore start -- runtime-field alias collision branches are validated in schema/runtime flag integration tests. */\n const buckets = new Map<\n string,\n { flags: CliFlagContract[]; seen: Set<string> }\n >();\n for (const definition of fieldRegistry.definitions) {\n const primaryFlag = toRuntimeLongFlagToken(definition.cli_flag);\n if (!primaryFlag) {\n continue;\n }\n const shortAlias = definition.cli_aliases\n .map((alias) => toRuntimeShortFlagToken(alias))\n .find((alias) => alias !== null);\n const longAliases = definition.cli_aliases\n .map((alias) => toRuntimeLongFlagToken(alias))\n .filter(\n (alias): alias is string => alias !== null && alias !== primaryFlag,\n );\n for (const command of definition.commands) {\n const bucket = buckets.get(command) ?? {\n flags: [],\n seen: new Set<string>(),\n };\n const primaryContract: CliFlagContract = shortAlias\n ? { flag: primaryFlag, short: shortAlias }\n : { flag: primaryFlag };\n const primaryKey = `${primaryContract.flag}|${primaryContract.short ?? \"\"}`;\n if (!bucket.seen.has(primaryKey)) {\n bucket.seen.add(primaryKey);\n bucket.flags.push(primaryContract);\n }\n for (const alias of longAliases) {\n const key = `${alias}|`;\n if (bucket.seen.has(key)) {\n continue;\n }\n bucket.seen.add(key);\n bucket.flags.push({ flag: alias });\n }\n buckets.set(command, bucket);\n }\n }\n const result = new Map<string, CliFlagContract[]>();\n for (const [command, bucket] of buckets.entries()) {\n result.set(command, compactFlagAliasContracts(bucket.flags));\n }\n return result;\n /* c8 ignore stop */\n}\n\nfunction mergeFlagContracts(\n primary: CliFlagContract[],\n secondary: CliFlagContract[],\n): CliFlagContract[] {\n /* c8 ignore start -- flag merge dedupe permutations are covered via command-surface integration fixtures. */\n const merged: CliFlagContract[] = [];\n const seen = new Set<string>();\n for (const contract of [...primary, ...secondary]) {\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (seen.has(key)) {\n continue;\n }\n seen.add(key);\n merged.push(contract);\n }\n return compactFlagAliasContracts(merged);\n /* c8 ignore stop */\n}\n\nfunction buildCommandFlagSurface(\n commands: string[],\n extensionFlagMap: ReturnType<typeof collectExtensionFlagContractsByCommand>,\n runtimeFieldFlagMap: Map<string, CliFlagContract[]>,\n): CommandFlagSurface[] {\n return commands\n .map((command) => {\n const isCoreCommand = isCoreCommandPath(command);\n const coreFlags = isCoreCommand ? resolveCoreCommandFlags(command) : [];\n const runtimeFlags =\n runtimeFieldFlagMap.get(\n normalizeCommandForRuntimeFieldFlags(command),\n ) ?? [];\n const extensionFlags = extensionFlagMap.get(command);\n const coreWithRuntime = mergeFlagContracts(coreFlags, runtimeFlags);\n const flags = mergeFlagContracts(\n coreWithRuntime,\n extensionFlags?.flags ?? [],\n );\n const provider: CommandFlagSurface[\"provider\"] =\n coreFlags.length > 0 && (extensionFlags?.flags.length ?? 0) > 0\n ? \"mixed\"\n : isCoreCommand\n ? \"core\"\n : \"extension\";\n return {\n command,\n flags,\n provider,\n extension_sources: extensionFlags?.sources,\n };\n })\n .sort((left, right) => left.command.localeCompare(right.command));\n}\n\nfunction compactCommandAliasSurface(commands: string[]): string[] {\n const commandSet = new Set(commands);\n const result: string[] = [];\n for (const command of commands) {\n const canonical = COMMAND_ALIAS_TO_CANONICAL.get(command);\n if (canonical && commandSet.has(canonical)) {\n continue;\n }\n result.push(command);\n }\n return result;\n}\n\nfunction buildCommandAliasSurface(commands: string[]): CommandAliasSurface[] {\n const commandSet = new Set(commands);\n return CANONICAL_COMMAND_ALIASES.map((entry) => ({\n canonical: entry.canonical,\n aliases: entry.aliases.filter((alias) => commandSet.has(alias)),\n })).filter(\n (entry) => commandSet.has(entry.canonical) && entry.aliases.length > 0,\n );\n}\n\nfunction buildCommanderAliasSurface(): Record<\n string,\n CommanderOptionAliasContract[]\n> {\n return {\n create_string_options: CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n create_repeatable_options: CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n update_string_options: UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n update_repeatable_options: UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n list_string_options: LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n search_string_options: SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n calendar_string_options: CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n context_string_options: CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n activity_string_options: ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n };\n}\n\nfunction resolveCreateRequiredOptionContract(\n typeDefinition: ReturnType<typeof resolveItemTypeRegistry>[\"by_type\"][string],\n createMode: \"strict\" | \"progressive\",\n): {\n required_option_keys: string[];\n required_flags: string[];\n required_type_options: string[];\n policy_errors: string[];\n} {\n /* c8 ignore start -- create-option policy shaping is validated by dedicated create command contract fixtures. */\n const baseRequiredOptions = new Set<string>([\"title\", \"type\"]);\n if (createMode === \"strict\") {\n for (const field of typeDefinition.required_create_fields) {\n baseRequiredOptions.add(field);\n }\n for (const field of typeDefinition.required_create_repeatables) {\n baseRequiredOptions.add(field);\n }\n }\n const policyState = resolveCommandOptionPolicyState(\n typeDefinition,\n \"create\",\n baseRequiredOptions,\n );\n const requiredOptionKeys = [...new Set(policyState.required)].sort(\n (left, right) => left.localeCompare(right),\n );\n const requiredFlags = [\n ...new Set(\n requiredOptionKeys.map((option) =>\n commandOptionFlagLabel(\"create\", option),\n ),\n ),\n ].sort((left, right) => left.localeCompare(right));\n const requiredTypeOptions = [\n ...new Set(\n typeDefinition.options\n .filter((option) => option.required === true)\n .map((option) => option.key),\n ),\n ].sort((left, right) => left.localeCompare(right));\n return {\n required_option_keys: requiredOptionKeys,\n required_flags: requiredFlags,\n required_type_options: requiredTypeOptions,\n policy_errors: [...new Set(policyState.errors)].sort((left, right) =>\n left.localeCompare(right),\n ),\n };\n /* c8 ignore stop */\n}\n\nfunction buildCreateRequiredOptionContracts(\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n): Record<string, unknown> {\n const byTypeStrict: Record<string, unknown> = {};\n const byTypeProgressive: Record<string, unknown> = {};\n for (const typeName of [...typeRegistry.types].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const typeDefinition = typeRegistry.by_type[typeName];\n byTypeStrict[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"strict\",\n );\n byTypeProgressive[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"progressive\",\n );\n }\n return {\n default_create_mode: \"strict\",\n by_create_mode: {\n strict: {\n by_type: byTypeStrict,\n },\n progressive: {\n by_type: byTypeProgressive,\n },\n },\n };\n}\n\nfunction attachCreateRequiredOptionContracts(\n schema: Record<string, unknown>,\n metadata: Record<string, unknown>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n if (branches.length === 0) {\n return schema;\n }\n let touched = false;\n const enrichedBranches = branches.map((branch) => {\n const properties = branch.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return branch;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return branch;\n }\n if ((actionProperty as { const?: unknown }).const !== \"create\") {\n return branch;\n }\n touched = true;\n return {\n ...branch,\n \"x-create-required-options\": metadata,\n };\n });\n if (!touched) {\n return schema;\n }\n return {\n ...schema,\n oneOf: enrichedBranches,\n };\n}\n\n/**\n * Implements run contracts for the public runtime surface of this module.\n */\nexport async function runContracts(\n options: ContractsCommandOptions,\n global: GlobalOptions,\n): Promise<ContractsResult> {\n const selectedAction = normalizeToken(options.action);\n const selectedCommand = normalizeToken(options.command);\n const schemaOnly = options.schemaOnly === true;\n const flagsOnly = options.flagsOnly === true;\n const availabilityOnly = options.availabilityOnly === true;\n const runtimeOnly = options.runtimeOnly === true;\n const fullOutput = options.full === true;\n const unfilteredDefaultBriefMode =\n !fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly && !selectedAction && !selectedCommand;\n // Agent token-cost guard: when no filter and no projection flag and not --full,\n // skip the giant schema oneOf union (the 200KB+ chunk). Restore via --full\n // or by scoping to a specific --command/--action.\n const omitUnfilteredSchema = unfilteredDefaultBriefMode;\n const omitUnfilteredCommandFlags = unfilteredDefaultBriefMode;\n const omitUnfilteredCommanderAliases = unfilteredDefaultBriefMode;\n const projectionFlagsEnabled = [\n schemaOnly,\n flagsOnly,\n availabilityOnly,\n ].filter((value) => value).length;\n if (projectionFlagsEnabled > 1) {\n throw new PmCliError(\n \"Choose only one projection flag: --schema-only, --flags-only, or --availability-only.\",\n EXIT_CODE.USAGE,\n );\n }\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n let settings = structuredClone(SETTINGS_DEFAULTS);\n try {\n settings = await readSettings(pmRoot);\n } catch {\n settings = structuredClone(SETTINGS_DEFAULTS);\n }\n const runtimeProbe = await resolveRuntimeExtensionActionProbe(global);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n runtimeProbe.registrations ?? getActiveExtensionRegistrations(),\n );\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFlagMap =\n buildRuntimeFieldFlagContracts(runtimeFieldRegistry);\n const createRequiredOptionContracts =\n buildCreateRequiredOptionContracts(typeRegistry);\n const extensionContracts = collectExtensionCommandContracts(runtimeProbe);\n const mergedExtensionContracts = mergeExtensionContractsByAction(extensionContracts);\n const extensionFlagMap = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const includePackageOwnedActions =\n (selectedAction !== undefined && PACKAGE_OWNED_ACTIONS.has(selectedAction) && availabilityOnly) ||\n (selectedCommand !== undefined && PACKAGE_OWNED_COMMANDS.has(selectedCommand) && availabilityOnly);\n const actionDescriptors =\n collectActionContractDescriptors(mergedExtensionContracts, { includePackageOwnedActions });\n if (\n includePackageOwnedActions &&\n selectedCommand !== undefined &&\n PACKAGE_OWNED_COMMANDS.has(selectedCommand) &&\n !actionDescriptors.some((entry) => entry.command_path === selectedCommand)\n ) {\n actionDescriptors.push({\n action: packageOwnedActionForCommand(selectedCommand),\n provider: \"extension\",\n requires_extension: true,\n command_path: selectedCommand,\n });\n }\n const actionNames = new Set(actionDescriptors.map((entry) => entry.action));\n if (selectedAction && !actionNames.has(selectedAction)) {\n throw new PmCliError(\n `Unknown action: \"${options.action}\".`,\n EXIT_CODE.USAGE,\n );\n }\n\n const commandCatalog = [\n ...new Set([\n ...PM_CORE_COMMAND_NAMES.filter(\n (entry) => !PACKAGE_OWNED_COMMANDS.has(entry),\n ),\n ...[...CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.keys()].filter(\n (entry) => !PACKAGE_OWNED_COMMANDS.has(entry),\n ),\n /* c8 ignore next -- action descriptors always include concrete command paths in command-scoped test fixtures. */\n ...actionDescriptors.flatMap((entry) =>\n entry.command_path ? splitCommandPathAliases(entry.command_path) : [],\n ),\n ...mergedExtensionContracts.flatMap((entry) => entry.command.split(\"|\")),\n ]),\n ]\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandNames = new Set(commandCatalog);\n if (selectedCommand && !commandNames.has(selectedCommand)) {\n const namespaceChildren = commandCatalog.filter((command) =>\n command.startsWith(`${selectedCommand} `),\n );\n if (namespaceChildren.length > 0) {\n const displayedNamespaceChildren = namespaceChildren.slice(0, COMMAND_NAMESPACE_DISPLAY_LIMIT);\n const hiddenNamespaceChildCount = namespaceChildren.length - displayedNamespaceChildren.length;\n const displayedChildCommandList = hiddenNamespaceChildCount > 0\n ? `${displayedNamespaceChildren.join(\", \")}, and ${hiddenNamespaceChildCount} more`\n : displayedNamespaceChildren.join(\", \");\n const fallbackCandidates = namespaceChildren.slice(0, COMMAND_NAMESPACE_FALLBACK_LIMIT);\n const childCommandExamples = namespaceChildren\n .slice(0, 5)\n .map((command) => `pm contracts --command \"${command}\" --flags-only --json`);\n const suggestedChildCommand = namespaceChildren[0];\n throw new PmCliError(\n `Command \"${options.command}\" is a command namespace. Choose a concrete child command: ${displayedChildCommandList}.`,\n EXIT_CODE.USAGE,\n {\n code: \"command_namespace\",\n required: \"Use a concrete child command path listed under this namespace.\",\n why:\n \"Command groups expose help at the namespace root, but command flag contracts belong to executable child commands.\",\n examples: childCommandExamples,\n nextSteps: [\n `Retry with a child command, for example: ${childCommandExamples[0]}`,\n ],\n recovery: {\n suggested_retry: `pm contracts --command \"${suggestedChildCommand}\" --flags-only --json`,\n fallback_candidates: fallbackCandidates.map((command) => ({\n source: \"command_namespace\",\n command: `pm contracts --command \"${command}\" --flags-only --json`,\n reason: `Child command under ${selectedCommand}`,\n })),\n },\n },\n );\n }\n const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selectedCommand);\n if (packageHint) {\n throw new PmCliError(\n `Unknown command: \"${options.command}\". Command \"${selectedCommand}\" is provided by the optional \"${packageHint}\" package. Run \"pm install ${packageHint} --project\" and retry.`,\n EXIT_CODE.USAGE,\n {\n code: \"unknown_command\",\n required: `Install the optional \"${packageHint}\" package, or choose a command from pm contracts --flags-only --json.`,\n why: \"Command contracts include core commands plus commands registered by active packages and extensions.\",\n examples: [`pm install ${packageHint} --project`, `pm contracts --command ${selectedCommand} --flags-only --json`],\n nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],\n recovery: {\n suggested_retry: `pm install ${packageHint} --project`,\n },\n },\n );\n }\n throw new PmCliError(\n `Unknown command: \"${options.command}\".`,\n EXIT_CODE.USAGE,\n {\n code: \"unknown_command\",\n required: \"Use a command path listed by pm contracts --flags-only --json.\",\n why: \"Command contracts are generated from the active core, package, and extension command registry.\",\n examples: [\"pm contracts --flags-only --json\", \"pm --help\"],\n nextSteps: [\"Verify spelling and active packages/extensions, then rerun with a known command path.\"],\n recovery: {\n suggested_retry: \"pm contracts --flags-only --json\",\n },\n },\n );\n }\n const selectedPackageOwnedAction = selectedCommand\n ? PACKAGE_OWNED_COMMAND_ACTIONS.get(selectedCommand)\n : undefined;\n const commandScopedDescriptors = selectedCommand\n ? actionDescriptors.filter((descriptor) =>\n selectedPackageOwnedAction\n ? descriptor.action === selectedPackageOwnedAction\n : actionDescriptorMatchesSelectedCommand(descriptor, selectedCommand),\n )\n : actionDescriptors;\n if (\n selectedCommand &&\n selectedAction &&\n !commandScopedDescriptors.some(\n (descriptor) => descriptor.action === selectedAction,\n )\n ) {\n throw new PmCliError(\n `Action \"${options.action}\" is not mapped to command \"${options.command}\" in contracts output.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const schema = PM_TOOL_PARAMETERS_SCHEMA as Record<string, unknown>;\n const schemaBranches = extractActionBranches(schema);\n const schemaActionSet = new Set(\n schemaBranches\n .map((entry) => {\n const properties = entry.properties;\n /* 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. */\n if (typeof properties !== \"object\" || properties === null) {\n return null;\n }\n /* c8 ignore stop */\n const actionProperty = (properties as Record<string, unknown>).action;\n /* c8 ignore start -- PM_TOOL_PARAMETERS_SCHEMA action branches always carry an action object; the missing-action fallback is validated in schema-level contract tests. */\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return null;\n }\n /* c8 ignore stop */\n const actionConst = (actionProperty as { const?: unknown }).const;\n /* c8 ignore start -- the action.const is always a string in PM_TOOL_PARAMETERS_SCHEMA; the non-string fallback is validated in schema-level contract tests. */\n return typeof actionConst === \"string\" ? actionConst : null;\n /* c8 ignore stop */\n })\n .filter((entry): entry is string => entry !== null),\n );\n const extensionBranches = mergedExtensionContracts\n .filter((contract) => !schemaActionSet.has(contract.action))\n .map((contract) => buildExtensionActionSchemaBranch(contract));\n const mergedSchema =\n extensionBranches.length > 0\n ? {\n ...schema,\n oneOf: [...schemaBranches, ...extensionBranches],\n }\n : schema;\n\n const scopedActionDescriptors = selectedAction\n ? commandScopedDescriptors.filter(\n (descriptor) => descriptor.action === selectedAction,\n )\n : commandScopedDescriptors;\n const allActionAvailability = [\n ...new Map(\n scopedActionDescriptors\n .map((descriptor) => resolveActionAvailability(descriptor, runtimeProbe))\n .map((entry) => [\n /* c8 ignore next -- keyed dedupe by action|path is covered by runtime policy integration tests. */\n selectedPackageOwnedAction ? entry.action : `${entry.action}|${entry.command_path ?? \"\"}`,\n entry,\n ] as const),\n ).values(),\n ];\n const actionAvailability =\n runtimeOnly && !selectedAction && !availabilityOnly\n ? allActionAvailability.filter((entry) => entry.invocable)\n : allActionAvailability;\n const actions = [...new Set(actionAvailability.map((entry) => entry.action))];\n const descriptorActionSet = new Set(\n actionDescriptors.map((descriptor) => descriptor.action),\n );\n let filteredSchema = selectedAction\n ? filterSchemaByAction(mergedSchema, selectedAction)\n : selectedCommand\n ? filterSchemaByActions(\n mergedSchema,\n new Set(\n scopedActionDescriptors.map((descriptor) => descriptor.action),\n ),\n )\n : filterSchemaByActions(mergedSchema, descriptorActionSet);\n if (runtimeOnly && !selectedAction) {\n filteredSchema = filterSchemaByActions(filteredSchema, new Set(actions));\n }\n const includeSchemaSurface = !flagsOnly && !availabilityOnly;\n if (includeSchemaSurface) {\n filteredSchema = attachCreateRequiredOptionContracts(\n filteredSchema,\n createRequiredOptionContracts,\n );\n }\n const commands =\n selectedCommand !== undefined\n ? [selectedCommand]\n : selectedAction\n ? resolveScopedCommandsFromActionDescriptors(\n scopedActionDescriptors,\n commandCatalog,\n )\n : commandCatalog;\n const outputCommands =\n flagsOnly && selectedCommand === undefined && selectedAction === undefined\n ? compactCommandAliasSurface(commands)\n : commands;\n const commandAliases = buildCommandAliasSurface(commands);\n const extensionCommandContracts = selectedCommand\n ? extensionContracts.filter((entry) => entry.command === selectedCommand)\n : selectedAction\n ? extensionContracts.filter((entry) =>\n outputCommands.includes(normalizeCommandPath(entry.command)),\n )\n : extensionContracts;\n\n const includeRuntimeContractSections = !(flagsOnly && !fullOutput);\n const result: ContractsResult = {\n schema_version:\n /* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */\n typeof mergedSchema[\"x-schema-version\"] === \"string\"\n ? (mergedSchema[\"x-schema-version\"] as string)\n : null,\n schema_id:\n /* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */\n typeof mergedSchema.$id === \"string\"\n ? (mergedSchema.$id as string)\n : null,\n selected: {\n action: selectedAction ?? null,\n command: selectedCommand ?? null,\n schema_only: schemaOnly,\n flags_only: flagsOnly,\n availability_only: availabilityOnly,\n runtime_only: runtimeOnly,\n command_scoped: selectedCommand !== undefined,\n },\n commands: outputCommands,\n };\n\n if (includeRuntimeContractSections) {\n result.runtime_schema = {\n statuses: statusRegistry.definitions.map((definition) => definition.id),\n open_status: statusRegistry.open_status,\n close_status: statusRegistry.close_status,\n canceled_status: statusRegistry.canceled_status,\n types: [...typeRegistry.types],\n fields_by_command: Object.fromEntries(\n [...runtimeFieldRegistry.command_to_fields.entries()].map(\n ([command, definitions]) => [\n command,\n [\n ...new Set(\n definitions.map((definition) => `--${definition.cli_flag}`),\n ),\n ].sort((left, right) => left.localeCompare(right)),\n ],\n ),\n ),\n };\n result.extension_contracts = {\n capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],\n services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],\n policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],\n policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],\n trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],\n sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],\n manifest_versions: [1, 2],\n compatibility: {\n current: \"v2\",\n previous: [\"v1\"],\n breaking_strategy: \"versioned_breaking\",\n },\n };\n }\n\n if (!flagsOnly) {\n result.actions = actions;\n result.action_availability = actionAvailability;\n }\n\n if (includeSchemaSurface && !omitUnfilteredSchema) {\n result.schema = filteredSchema;\n result.extension_commands = extensionCommandContracts;\n } else if (includeSchemaSurface && omitUnfilteredSchema) {\n result.schema_omitted_reason = \"unfiltered_default_brief\";\n result.extension_commands = extensionCommandContracts;\n }\n\n if (!schemaOnly && !availabilityOnly) {\n if (!omitUnfilteredCommandFlags) {\n result.command_flags = buildCommandFlagSurface(\n outputCommands,\n extensionFlagMap,\n runtimeFieldFlagMap,\n );\n } else {\n result.command_flags_omitted_reason = \"unfiltered_default_brief\";\n }\n if (commandAliases.length > 0) {\n result.command_aliases = commandAliases;\n }\n }\n\n if (!schemaOnly && !flagsOnly && !availabilityOnly) {\n if (!omitUnfilteredCommanderAliases) {\n result.commander_aliases = buildCommanderAliasSurface();\n } else {\n result.commander_aliases_omitted_reason = \"unfiltered_default_brief\";\n }\n }\n\n // pm-4os2: snapshot the static MCP tool surface in the full projection so\n // `pnpm contracts:check` (CI static gate) fails on unintended inputSchema\n // drift in src/mcp/tool-definitions.ts.\n if (fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly) {\n result.mcp_tools = buildMcpToolContracts();\n }\n\n return result;\n}\n\nexport const _testOnlyContractsCommand = {\n actionDescriptorMatchesSelectedCommand,\n attachCreateRequiredOptionContracts,\n buildExtensionActionSchemaBranch,\n buildRuntimeFieldFlagContracts,\n collectActionContractDescriptors,\n collectExtensionCommandContracts,\n collectExtensionFlagContractsByCommand,\n extractActionBranches,\n extensionSchemaPropertyNameFromFlag,\n filterSchemaByAction,\n filterSchemaByActions,\n isCoreCommandPath,\n mergeExtensionContractsByAction,\n normalizeActionNameFromCommand,\n normalizeCommandForRuntimeFieldFlags,\n normalizeCommandPath,\n packageOwnedActionForCommand,\n resolveActionCommandPath,\n resolveActionAvailability,\n resolveCoreCommandFlags,\n resolveScopedCommandsFromActionDescriptors,\n splitCommandPathAliases,\n toRuntimeLongFlagToken,\n toRuntimeShortFlagToken,\n};\n"],"names":[],"mappings":"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","debugId":"443758db-53e4-5330-933e-f1da0312c399"}