@unbrained/pm-cli 2026.7.6 → 2026.7.8

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 (688) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/cli/commands/annotation-command.d.ts +1 -0
  3. package/dist/cli/commands/annotation-command.js +29 -2
  4. package/dist/cli/commands/annotation-command.js.map +1 -1
  5. package/dist/cli/commands/comments.js +3 -4
  6. package/dist/cli/commands/comments.js.map +1 -1
  7. package/dist/cli/commands/completion.js +10 -2
  8. package/dist/cli/commands/completion.js.map +1 -1
  9. package/dist/cli/commands/context.d.ts +1 -0
  10. package/dist/cli/commands/context.js +4 -4
  11. package/dist/cli/commands/context.js.map +1 -1
  12. package/dist/cli/commands/extension/bundled-catalog.d.ts +3 -0
  13. package/dist/cli/commands/extension/bundled-catalog.js +38 -28
  14. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  15. package/dist/cli/commands/extension/install-sources.js +81 -18
  16. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  17. package/dist/cli/commands/extension.d.ts +23 -19
  18. package/dist/cli/commands/extension.js +167 -57
  19. package/dist/cli/commands/extension.js.map +1 -1
  20. package/dist/cli/commands/health.js +9 -5
  21. package/dist/cli/commands/health.js.map +1 -1
  22. package/dist/cli/commands/learnings.js +5 -3
  23. package/dist/cli/commands/learnings.js.map +1 -1
  24. package/dist/cli/commands/notes.js +5 -3
  25. package/dist/cli/commands/notes.js.map +1 -1
  26. package/dist/cli/commands/reindex.js +4 -3
  27. package/dist/cli/commands/reindex.js.map +1 -1
  28. package/dist/cli/commands/search.js +4 -4
  29. package/dist/cli/commands/search.js.map +1 -1
  30. package/dist/cli/commands/test.d.ts +9 -0
  31. package/dist/cli/commands/test.js +144 -105
  32. package/dist/cli/commands/test.js.map +1 -1
  33. package/dist/cli/extension-command-help.js +10 -2
  34. package/dist/cli/extension-command-help.js.map +1 -1
  35. package/dist/cli/help-content.js +28 -2
  36. package/dist/cli/help-content.js.map +1 -1
  37. package/dist/cli/register-list-query.d.ts +1 -1
  38. package/dist/cli/register-list-query.js +19 -27
  39. package/dist/cli/register-list-query.js.map +1 -1
  40. package/dist/cli/register-operations.d.ts +0 -8
  41. package/dist/cli/register-operations.js +41 -46
  42. package/dist/cli/register-operations.js.map +1 -1
  43. package/dist/cli/register-setup.js +119 -13
  44. package/dist/cli/register-setup.js.map +1 -1
  45. package/dist/cli/registration-helpers.d.ts +5 -1
  46. package/dist/cli/registration-helpers.js +14 -2
  47. package/dist/cli/registration-helpers.js.map +1 -1
  48. package/dist/cli-bundle/chunks/append-CDPAYYSB.js +11 -0
  49. package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js → append-RSPHC423.js} +8 -9
  50. package/dist/cli-bundle/chunks/{chunk-LK6XLOGP.js → chunk-2BVD4ZD2.js} +288 -233
  51. package/dist/cli-bundle/chunks/chunk-2BVD4ZD2.js.map +7 -0
  52. package/dist/cli-bundle/chunks/{chunk-TKD5VCTD.js → chunk-2RADY7IB.js} +517 -195
  53. package/dist/cli-bundle/chunks/chunk-2RADY7IB.js.map +1 -0
  54. package/dist/cli-bundle/chunks/{chunk-COSPOP7H.js → chunk-3FRNNVWY.js} +518 -196
  55. package/dist/cli-bundle/chunks/chunk-3FRNNVWY.js.map +7 -0
  56. package/dist/cli-bundle/chunks/{chunk-24YG75HI.js → chunk-3FUXM574.js} +8 -8
  57. package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js → chunk-3SHDAKMF.js} +3 -3
  58. package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js → chunk-3UXIMY62.js} +4 -6
  59. package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js.map → chunk-3UXIMY62.js.map} +1 -1
  60. package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js → chunk-3V5C7PUH.js} +2 -2
  61. package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js → chunk-3YJDIJIE.js} +4 -6
  62. package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js.map → chunk-3YJDIJIE.js.map} +1 -1
  63. package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js → chunk-4I7KS5ES.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js → chunk-4OCWJ2AP.js} +13 -17
  65. package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js.map → chunk-4OCWJ2AP.js.map} +1 -1
  66. package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js → chunk-5STY7NVM.js} +8 -8
  67. package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js → chunk-5VAZHYVQ.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js → chunk-6FU5BVRB.js} +12 -14
  69. package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js.map → chunk-6FU5BVRB.js.map} +1 -1
  70. package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js → chunk-6RR4XM5H.js} +3 -3
  71. package/dist/cli-bundle/chunks/{chunk-K46RF36U.js → chunk-6TD5QGIB.js} +7 -7
  72. package/dist/cli-bundle/chunks/chunk-6TD5QGIB.js.map +1 -0
  73. package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js → chunk-6WCXSC5V.js} +12 -16
  74. package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js.map → chunk-6WCXSC5V.js.map} +1 -1
  75. package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js → chunk-6ZKDMEVT.js} +7 -9
  76. package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js.map → chunk-6ZKDMEVT.js.map} +1 -1
  77. package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js → chunk-7QKSLAHB.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js → chunk-7TBUV7XS.js} +8 -12
  79. package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js.map → chunk-7TBUV7XS.js.map} +1 -1
  80. package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js → chunk-7UCBLJDF.js} +2 -2
  81. package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js → chunk-AEOFBBWO.js} +6 -8
  82. package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js.map → chunk-AEOFBBWO.js.map} +1 -1
  83. package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js +10498 -0
  84. package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js.map +7 -0
  85. package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js → chunk-BFNFTHWQ.js} +3 -3
  86. package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js +5509 -0
  87. package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js.map +7 -0
  88. package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js → chunk-C3YU3TXX.js} +2 -2
  89. package/dist/cli-bundle/chunks/{chunk-VPIM42PC.js → chunk-C6XSTACC.js} +11 -7
  90. package/dist/cli-bundle/chunks/chunk-C6XSTACC.js.map +7 -0
  91. package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js → chunk-CGDUIPJL.js} +3 -3
  92. package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js → chunk-CXH7EMSB.js} +5 -7
  93. package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js.map → chunk-CXH7EMSB.js.map} +1 -1
  94. package/dist/cli-bundle/chunks/{chunk-DMRNBQOI.js → chunk-D63PEJTB.js} +256 -36
  95. package/dist/cli-bundle/chunks/chunk-D63PEJTB.js.map +1 -0
  96. package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js → chunk-D6J5673C.js} +7 -9
  97. package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js.map → chunk-D6J5673C.js.map} +1 -1
  98. package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js → chunk-DUBC6TI3.js} +28 -34
  99. package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js.map → chunk-DUBC6TI3.js.map} +1 -1
  100. package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js → chunk-EEJKHF7M.js} +7 -6
  101. package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js.map → chunk-EEJKHF7M.js.map} +2 -2
  102. package/dist/cli-bundle/chunks/{chunk-XG625QP4.js → chunk-EP2CKDS7.js} +2 -2
  103. package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js → chunk-EYPIUFWJ.js} +24 -32
  104. package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js.map → chunk-EYPIUFWJ.js.map} +1 -1
  105. package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js → chunk-F5DDGY6R.js} +6 -6
  106. package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js.map → chunk-F5DDGY6R.js.map} +1 -1
  107. package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js → chunk-FFB3WITE.js} +10 -16
  108. package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js.map → chunk-FFB3WITE.js.map} +1 -1
  109. package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js → chunk-FJR2S7S4.js} +10 -14
  110. package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js.map → chunk-FJR2S7S4.js.map} +1 -1
  111. package/dist/cli-bundle/chunks/chunk-FL625JJM.js +6792 -0
  112. package/dist/cli-bundle/chunks/chunk-FL625JJM.js.map +7 -0
  113. package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js → chunk-FOJEBRDD.js} +16 -20
  114. package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js.map → chunk-FOJEBRDD.js.map} +1 -1
  115. package/dist/cli-bundle/chunks/{chunk-EOKXK3R3.js → chunk-G4FKP4ID.js} +1220 -398
  116. package/dist/cli-bundle/chunks/chunk-G4FKP4ID.js.map +1 -0
  117. package/dist/cli-bundle/chunks/chunk-GE44TQMC.js +6726 -0
  118. package/dist/cli-bundle/chunks/chunk-GE44TQMC.js.map +1 -0
  119. package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js → chunk-GLMJLBLR.js} +6 -10
  120. package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js.map → chunk-GLMJLBLR.js.map} +1 -1
  121. package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js → chunk-GO2X6ZRB.js} +4 -6
  122. package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js.map → chunk-GO2X6ZRB.js.map} +1 -1
  123. package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js → chunk-GQOKFX2G.js} +22 -26
  124. package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js.map → chunk-GQOKFX2G.js.map} +1 -1
  125. package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js → chunk-GSQVQINP.js} +8 -10
  126. package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js.map → chunk-GSQVQINP.js.map} +1 -1
  127. package/dist/cli-bundle/chunks/chunk-HI27UADG.js +5434 -0
  128. package/dist/cli-bundle/chunks/chunk-HI27UADG.js.map +1 -0
  129. package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js → chunk-HZZ3AC27.js} +6 -6
  130. package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js.map → chunk-HZZ3AC27.js.map} +1 -1
  131. package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js → chunk-IINCZYM3.js} +8 -12
  132. package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js.map → chunk-IINCZYM3.js.map} +1 -1
  133. package/dist/cli-bundle/chunks/{chunk-EKFNL33R.js → chunk-INOWVPUD.js} +37 -16
  134. package/dist/cli-bundle/chunks/chunk-INOWVPUD.js.map +1 -0
  135. package/dist/cli-bundle/chunks/{chunk-4LELACOL.js → chunk-IYRG5AEC.js} +15 -23
  136. package/dist/cli-bundle/chunks/{chunk-4LELACOL.js.map → chunk-IYRG5AEC.js.map} +1 -1
  137. package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js → chunk-J6AD3GWC.js} +2 -2
  138. package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js → chunk-JH5XDDYS.js} +14 -20
  139. package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js.map → chunk-JH5XDDYS.js.map} +1 -1
  140. package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js → chunk-JYVPLGOW.js} +9 -11
  141. package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js.map → chunk-JYVPLGOW.js.map} +1 -1
  142. package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js → chunk-K52C6YPA.js} +12 -18
  143. package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js.map → chunk-K52C6YPA.js.map} +1 -1
  144. package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js → chunk-KFL3XHMA.js} +2 -2
  145. package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js +10320 -0
  146. package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js → chunk-LD2NBQ5T.js} +6 -8
  148. package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js.map → chunk-LD2NBQ5T.js.map} +1 -1
  149. package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js → chunk-LG4N6YOK.js} +8 -7
  150. package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js.map → chunk-LG4N6YOK.js.map} +1 -1
  151. package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js → chunk-LHDHS4Z6.js} +10 -14
  152. package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js.map → chunk-LHDHS4Z6.js.map} +1 -1
  153. package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js → chunk-MCH6IKK7.js} +4 -6
  154. package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js.map → chunk-MCH6IKK7.js.map} +1 -1
  155. package/dist/cli-bundle/chunks/{chunk-57NWPFF2.js → chunk-MFLLULHU.js} +281 -233
  156. package/dist/cli-bundle/chunks/chunk-MFLLULHU.js.map +1 -0
  157. package/dist/cli-bundle/chunks/{chunk-EGAP5OWD.js → chunk-ML27MHNM.js} +35 -17
  158. package/dist/cli-bundle/chunks/chunk-ML27MHNM.js.map +1 -0
  159. package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js → chunk-MYHFZNBO.js} +20 -24
  160. package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js.map → chunk-MYHFZNBO.js.map} +1 -1
  161. package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js → chunk-NGBWEYNY.js} +12 -18
  162. package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js.map → chunk-NGBWEYNY.js.map} +1 -1
  163. package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js → chunk-NRMDT4OV.js} +10 -14
  164. package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js.map → chunk-NRMDT4OV.js.map} +1 -1
  165. package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js +5359 -0
  166. package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js.map +1 -0
  167. package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js → chunk-P2WE5KCU.js} +261 -34
  168. package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js.map → chunk-P2WE5KCU.js.map} +4 -4
  169. package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js → chunk-PAWPLIWW.js} +14 -20
  170. package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js.map → chunk-PAWPLIWW.js.map} +1 -1
  171. package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js → chunk-PCBZ2VJD.js} +7 -7
  172. package/dist/cli-bundle/chunks/{chunk-ZSUS2OD3.js → chunk-PJPZTE7P.js} +1216 -387
  173. package/dist/cli-bundle/chunks/chunk-PJPZTE7P.js.map +7 -0
  174. package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js → chunk-Q3CFSOQZ.js} +7 -7
  175. package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js → chunk-QJZM5WO5.js} +5 -5
  176. package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js.map → chunk-QJZM5WO5.js.map} +2 -2
  177. package/dist/cli-bundle/chunks/{chunk-QLMX7SRD.js → chunk-QLEH6FTQ.js} +6 -6
  178. package/dist/cli-bundle/chunks/chunk-QLEH6FTQ.js.map +7 -0
  179. package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js → chunk-QYZMZD4L.js} +10 -12
  180. package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js.map → chunk-QYZMZD4L.js.map} +1 -1
  181. package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js → chunk-RDJXIAJB.js} +7 -11
  182. package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js.map → chunk-RDJXIAJB.js.map} +1 -1
  183. package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js → chunk-RFHLRMLQ.js} +6 -8
  184. package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js.map → chunk-RFHLRMLQ.js.map} +1 -1
  185. package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js → chunk-RL24NAUX.js} +10 -12
  186. package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js.map → chunk-RL24NAUX.js.map} +1 -1
  187. package/dist/cli-bundle/chunks/{chunk-46CUF5L6.js → chunk-RLHQ3G4M.js} +99 -51
  188. package/dist/cli-bundle/chunks/chunk-RLHQ3G4M.js.map +7 -0
  189. package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js → chunk-SCJPFQQT.js} +12 -18
  190. package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js.map → chunk-SCJPFQQT.js.map} +1 -1
  191. package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js → chunk-SIQGG335.js} +12 -16
  192. package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js.map → chunk-SIQGG335.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js → chunk-SN5X5GTU.js} +8 -12
  194. package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js.map → chunk-SN5X5GTU.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{chunk-CL36D4PC.js → chunk-TKWTJGD6.js} +36 -15
  196. package/dist/cli-bundle/chunks/chunk-TKWTJGD6.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-VIIUS6N6.js → chunk-TR2C6V5T.js} +37 -19
  198. package/dist/cli-bundle/chunks/chunk-TR2C6V5T.js.map +7 -0
  199. package/dist/cli-bundle/chunks/chunk-TTCJCKUJ.js +5514 -0
  200. package/dist/cli-bundle/chunks/chunk-TTCJCKUJ.js.map +7 -0
  201. package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js → chunk-TU5P744I.js} +4 -4
  202. package/dist/cli-bundle/chunks/{chunk-TULGS6X6.js → chunk-TUDAYIO7.js} +529 -46
  203. package/dist/cli-bundle/chunks/chunk-TUDAYIO7.js.map +1 -0
  204. package/dist/cli-bundle/chunks/{chunk-MLIYFOE7.js → chunk-U72GF3I2.js} +12 -8
  205. package/dist/cli-bundle/chunks/chunk-U72GF3I2.js.map +1 -0
  206. package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js → chunk-UCRYCT5M.js} +30 -36
  207. package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js.map → chunk-UCRYCT5M.js.map} +1 -1
  208. package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js → chunk-UEATYUZW.js} +2 -2
  209. package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js → chunk-UFNFHCAC.js} +2 -2
  210. package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js → chunk-UH6VFRV6.js} +5 -7
  211. package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js.map → chunk-UH6VFRV6.js.map} +1 -1
  212. package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js → chunk-UIHDZS6X.js} +11 -15
  213. package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js.map → chunk-UIHDZS6X.js.map} +1 -1
  214. package/dist/cli-bundle/chunks/{chunk-W572BIEB.js → chunk-UURYLDDC.js} +14 -18
  215. package/dist/cli-bundle/chunks/{chunk-W572BIEB.js.map → chunk-UURYLDDC.js.map} +1 -1
  216. package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js → chunk-UVFJSKTF.js} +9 -13
  217. package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js.map → chunk-UVFJSKTF.js.map} +1 -1
  218. package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js → chunk-W2VFNVSJ.js} +6 -8
  219. package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js.map → chunk-W2VFNVSJ.js.map} +1 -1
  220. package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js → chunk-WVEMZZCR.js} +5 -5
  221. package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js.map → chunk-WVEMZZCR.js.map} +2 -2
  222. package/dist/cli-bundle/chunks/{chunk-3VHSI5FL.js → chunk-XN5BEN2B.js} +94 -53
  223. package/dist/cli-bundle/chunks/chunk-XN5BEN2B.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-SCUR7K7N.js → chunk-XPSGJ4IV.js} +541 -44
  225. package/dist/cli-bundle/chunks/chunk-XPSGJ4IV.js.map +7 -0
  226. package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js → chunk-YQEKE4FO.js} +13 -21
  227. package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js.map → chunk-YQEKE4FO.js.map} +1 -1
  228. package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js → chunk-YR5R4FMQ.js} +26 -34
  229. package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js.map → chunk-YR5R4FMQ.js.map} +1 -1
  230. package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js → chunk-YSRXFGNV.js} +7 -9
  231. package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js.map → chunk-YSRXFGNV.js.map} +1 -1
  232. package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js → chunk-YUCKM3MD.js} +10 -14
  233. package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js.map → chunk-YUCKM3MD.js.map} +1 -1
  234. package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js → chunk-YUMNZS3X.js} +6 -8
  235. package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js.map → chunk-YUMNZS3X.js.map} +1 -1
  236. package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js → chunk-Z2JQH2MG.js} +2 -2
  237. package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js → chunk-Z6RLSNUX.js} +4 -6
  238. package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js.map → chunk-Z6RLSNUX.js.map} +1 -1
  239. package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js → chunk-ZMOPZFVT.js} +4 -4
  240. package/dist/cli-bundle/chunks/close-E3RLZSP2.js +12 -0
  241. package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js → close-K6BFI3OX.js} +5 -9
  242. package/dist/cli-bundle/chunks/close-many-6NBL3PM4.js +26 -0
  243. package/dist/cli-bundle/chunks/close-many-X4YKS3RO.js +22 -0
  244. package/dist/cli-bundle/chunks/comments-PLFK5ZKK.js +17 -0
  245. package/dist/cli-bundle/chunks/comments-ZNOD5PTV.js +13 -0
  246. package/dist/cli-bundle/chunks/copy-F7BUFY4J.js +9 -0
  247. package/dist/cli-bundle/chunks/{copy-32ROBIDL.js → copy-VH3L4MN2.js} +4 -8
  248. package/dist/cli-bundle/chunks/create-AMBMYP6F.js +25 -0
  249. package/dist/cli-bundle/chunks/{create-E77SDCUP.js → create-TRIBYORN.js} +9 -14
  250. package/dist/cli-bundle/chunks/delete-6KQHZYIP.js +10 -0
  251. package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js → delete-ZNXUNCZR.js} +4 -8
  252. package/dist/cli-bundle/chunks/deps-CVDY7FFK.js +13 -0
  253. package/dist/cli-bundle/chunks/{deps-32SU7HO5.js → deps-SZXQHV73.js} +4 -8
  254. package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js → docs-DR74ITCD.js} +6 -10
  255. package/dist/cli-bundle/chunks/docs-WCVYY6I7.js +14 -0
  256. package/dist/cli-bundle/chunks/files-H5YCA74Z.js +18 -0
  257. package/dist/cli-bundle/chunks/{files-PYKR2UUG.js → files-QEFQ2M3H.js} +6 -10
  258. package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js → focus-55TRYSNA.js} +7 -9
  259. package/dist/cli-bundle/chunks/focus-N2QGNS5D.js +10 -0
  260. package/dist/cli-bundle/chunks/history-compact-GWQ4UOEI.js +21 -0
  261. package/dist/cli-bundle/chunks/{history-compact-3MNXLKAT.js → history-compact-JJZ4EFL3.js} +9 -13
  262. package/dist/cli-bundle/chunks/history-redact-4GJOLXCM.js +17 -0
  263. package/dist/cli-bundle/chunks/{history-redact-P6DYF55G.js → history-redact-TPPUT3A5.js} +7 -11
  264. package/dist/cli-bundle/chunks/history-repair-HVCVCGUF.js +19 -0
  265. package/dist/cli-bundle/chunks/{history-repair-ZJQFMWPD.js → history-repair-J7PIZ6ZP.js} +9 -13
  266. package/dist/cli-bundle/chunks/{append-BGML6VLD.js → learnings-KB6BT4NR.js} +9 -11
  267. package/dist/cli-bundle/chunks/learnings-YYY3U2Y7.js +13 -0
  268. package/dist/cli-bundle/chunks/notes-BGG7VL72.js +13 -0
  269. package/dist/cli-bundle/chunks/notes-ZTHXVOKM.js +17 -0
  270. package/dist/cli-bundle/chunks/{plan-CHVE7PBR.js → plan-CJPKFRBK.js} +10 -15
  271. package/dist/cli-bundle/chunks/plan-MK2QY3GA.js +24 -0
  272. package/dist/cli-bundle/chunks/{profile-ZXGSKBJD.js → profile-AQNHXOYA.js} +9 -13
  273. package/dist/cli-bundle/chunks/{profile-LD23PSI6.js → profile-HTBFINKQ.js} +9 -13
  274. package/dist/cli-bundle/chunks/{register-list-query-B42JCCOI.js → register-list-query-EEF33SUJ.js} +43 -34
  275. package/dist/cli-bundle/chunks/register-list-query-EEF33SUJ.js.map +1 -0
  276. package/dist/cli-bundle/chunks/{register-list-query-OEYQHFXO.js → register-list-query-S4FBWIWN.js} +42 -33
  277. package/dist/cli-bundle/chunks/register-list-query-S4FBWIWN.js.map +7 -0
  278. package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js → register-mutation-L5Q7AUDN.js} +34 -39
  279. package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js.map → register-mutation-L5Q7AUDN.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js → register-mutation-QFLRBCI7.js} +36 -41
  281. package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js.map → register-mutation-QFLRBCI7.js.map} +1 -1
  282. package/dist/cli-bundle/chunks/{chunk-5BMM6XQY.js → register-operations-HDE4FVW4.js} +79 -46
  283. package/dist/cli-bundle/chunks/register-operations-HDE4FVW4.js.map +1 -0
  284. package/dist/cli-bundle/chunks/{chunk-Z3U3U5KD.js → register-operations-QDU43FCG.js} +78 -45
  285. package/dist/cli-bundle/chunks/register-operations-QDU43FCG.js.map +7 -0
  286. package/dist/cli-bundle/chunks/{register-setup-Q6KFNIOZ.js → register-setup-EGMTAXDC.js} +134 -32
  287. package/dist/cli-bundle/chunks/register-setup-EGMTAXDC.js.map +1 -0
  288. package/dist/cli-bundle/chunks/{register-setup-3ZVVX2VN.js → register-setup-PNIO3L2P.js} +133 -31
  289. package/dist/cli-bundle/chunks/register-setup-PNIO3L2P.js.map +7 -0
  290. package/dist/cli-bundle/chunks/{restore-5RQHAPMA.js → restore-BTBEZ5CK.js} +7 -11
  291. package/dist/cli-bundle/chunks/restore-EX4UUZL6.js +15 -0
  292. package/dist/cli-bundle/chunks/{schema-HBORFC6B.js → schema-DGSTYYQB.js} +6 -10
  293. package/dist/cli-bundle/chunks/{schema-245WW4G2.js → schema-HAIBEE24.js} +6 -10
  294. package/dist/cli-bundle/chunks/update-MP4XLU56.js +25 -0
  295. package/dist/cli-bundle/chunks/update-SDIRJGSY.js +21 -0
  296. package/dist/cli-bundle/chunks/update-many-34AIU6W7.js +31 -0
  297. package/dist/cli-bundle/chunks/update-many-JUPCNOKV.js +35 -0
  298. package/dist/cli-bundle/main.js +56 -32
  299. package/dist/cli-bundle/main.js.map +2 -2
  300. package/dist/cli-bundle/sdk-runtime.js +161 -107
  301. package/dist/cli-bundle/sdk-testing.js +7 -8
  302. package/dist/cli-bundle/sdk.js +154 -117
  303. package/dist/cli-bundle/sdk.js.map +2 -2
  304. package/dist/core/extensions/extension-types.d.ts +1 -0
  305. package/dist/core/extensions/extension-types.js +2 -2
  306. package/dist/core/extensions/extension-types.js.map +1 -1
  307. package/dist/core/extensions/loader.js +268 -231
  308. package/dist/core/extensions/loader.js.map +1 -1
  309. package/dist/core/history/drift-scan.js +3 -8
  310. package/dist/core/history/drift-scan.js.map +1 -1
  311. package/dist/core/output/mutation-projection.js +11 -5
  312. package/dist/core/output/mutation-projection.js.map +1 -1
  313. package/dist/core/search/cache.js +3 -3
  314. package/dist/core/search/cache.js.map +1 -1
  315. package/dist/core/search/semantic-defaults.d.ts +2 -0
  316. package/dist/core/search/semantic-defaults.js +11 -4
  317. package/dist/core/search/semantic-defaults.js.map +1 -1
  318. package/dist/core/search/vector-stores.d.ts +1 -1
  319. package/dist/core/search/vector-stores.js +33 -7
  320. package/dist/core/search/vector-stores.js.map +1 -1
  321. package/dist/mcp/server.d.ts +1 -1
  322. package/dist/sdk/cli-contracts/commander-types.js +3 -3
  323. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  324. package/dist/sdk/cli-contracts/flag-contracts.js +12 -8
  325. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  326. package/dist/sdk/cli-contracts/tool-parameter-tables.js +10 -2
  327. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  328. package/dist/sdk/cli-contracts/tool-schema.js +14 -8
  329. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  330. package/dist/sdk/index.d.ts +1 -1
  331. package/dist/sdk/index.js +3 -3
  332. package/dist/sdk/index.js.map +1 -1
  333. package/dist/sdk/runtime.d.ts +282 -8
  334. package/dist/sdk/runtime.js +453 -14
  335. package/dist/sdk/runtime.js.map +1 -1
  336. package/dist/sdk/start-task-status.d.ts +13 -0
  337. package/dist/sdk/start-task-status.js +19 -0
  338. package/dist/sdk/start-task-status.js.map +1 -0
  339. package/docs/COMMANDS.md +10 -1
  340. package/docs/EXTENSIONS.md +7 -20
  341. package/docs/RELEASING.md +6 -0
  342. package/docs/SDK.md +65 -0
  343. package/docs/TESTING.md +3 -0
  344. package/package.json +2 -1
  345. package/dist/cli-bundle/chunks/activity-WJCGCYPU.js +0 -18
  346. package/dist/cli-bundle/chunks/activity-Z6QUAUSG.js +0 -22
  347. package/dist/cli-bundle/chunks/aggregate-BDM6EIAR.js +0 -25
  348. package/dist/cli-bundle/chunks/aggregate-VQ2DHU3S.js +0 -21
  349. package/dist/cli-bundle/chunks/append-RKJYPU74.js +0 -15
  350. package/dist/cli-bundle/chunks/chunk-2XG4IZON.js +0 -218
  351. package/dist/cli-bundle/chunks/chunk-2XG4IZON.js.map +0 -7
  352. package/dist/cli-bundle/chunks/chunk-37E72CNS.js +0 -217
  353. package/dist/cli-bundle/chunks/chunk-37E72CNS.js.map +0 -1
  354. package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js +0 -228
  355. package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js.map +0 -1
  356. package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js +0 -2330
  357. package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js.map +0 -7
  358. package/dist/cli-bundle/chunks/chunk-3VHSI5FL.js.map +0 -1
  359. package/dist/cli-bundle/chunks/chunk-425E4QL5.js +0 -278
  360. package/dist/cli-bundle/chunks/chunk-425E4QL5.js.map +0 -7
  361. package/dist/cli-bundle/chunks/chunk-46CUF5L6.js.map +0 -7
  362. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +0 -87
  363. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +0 -7
  364. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js +0 -249
  365. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js.map +0 -7
  366. package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js +0 -819
  367. package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js.map +0 -1
  368. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js +0 -279
  369. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js.map +0 -1
  370. package/dist/cli-bundle/chunks/chunk-57NWPFF2.js.map +0 -1
  371. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js +0 -268
  372. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js.map +0 -1
  373. package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js.map +0 -1
  374. package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js +0 -1868
  375. package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js.map +0 -7
  376. package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js +0 -1749
  377. package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js.map +0 -7
  378. package/dist/cli-bundle/chunks/chunk-64YKRTSV.js +0 -1961
  379. package/dist/cli-bundle/chunks/chunk-64YKRTSV.js.map +0 -1
  380. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js +0 -23
  381. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js.map +0 -7
  382. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js +0 -421
  383. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js.map +0 -1
  384. package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js +0 -1985
  385. package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js.map +0 -7
  386. package/dist/cli-bundle/chunks/chunk-CL36D4PC.js.map +0 -7
  387. package/dist/cli-bundle/chunks/chunk-COSPOP7H.js.map +0 -7
  388. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js +0 -3461
  389. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js.map +0 -7
  390. package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js +0 -1858
  391. package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js.map +0 -1
  392. package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js.map +0 -1
  393. package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js +0 -1932
  394. package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js.map +0 -1
  395. package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js.map +0 -1
  396. package/dist/cli-bundle/chunks/chunk-EKFNL33R.js.map +0 -1
  397. package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js +0 -1704
  398. package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js.map +0 -1
  399. package/dist/cli-bundle/chunks/chunk-EOKXK3R3.js.map +0 -1
  400. package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js +0 -231
  401. package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js.map +0 -7
  402. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js +0 -2090
  403. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js.map +0 -1
  404. package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js +0 -1570
  405. package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js.map +0 -1
  406. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js +0 -239
  407. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js.map +0 -1
  408. package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js +0 -530
  409. package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js.map +0 -7
  410. package/dist/cli-bundle/chunks/chunk-GZRDYONU.js +0 -1005
  411. package/dist/cli-bundle/chunks/chunk-GZRDYONU.js.map +0 -7
  412. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js +0 -277
  413. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js.map +0 -7
  414. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js +0 -309
  415. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js.map +0 -7
  416. package/dist/cli-bundle/chunks/chunk-JINYH2DB.js +0 -371
  417. package/dist/cli-bundle/chunks/chunk-JINYH2DB.js.map +0 -7
  418. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js +0 -2257
  419. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js.map +0 -7
  420. package/dist/cli-bundle/chunks/chunk-K46RF36U.js.map +0 -1
  421. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js +0 -371
  422. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js.map +0 -7
  423. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js +0 -76
  424. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js.map +0 -1
  425. package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js.map +0 -7
  426. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js +0 -140
  427. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js.map +0 -1
  428. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js +0 -1601
  429. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js.map +0 -1
  430. package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js +0 -1031
  431. package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js.map +0 -1
  432. package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js +0 -995
  433. package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js.map +0 -1
  434. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js +0 -296
  435. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js.map +0 -1
  436. package/dist/cli-bundle/chunks/chunk-MLIYFOE7.js.map +0 -1
  437. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js +0 -2043
  438. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js.map +0 -7
  439. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js +0 -2033
  440. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js.map +0 -1
  441. package/dist/cli-bundle/chunks/chunk-N745W3B3.js +0 -1604
  442. package/dist/cli-bundle/chunks/chunk-N745W3B3.js.map +0 -7
  443. package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js +0 -1615
  444. package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js.map +0 -7
  445. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js +0 -20
  446. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js.map +0 -1
  447. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js +0 -143
  448. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-QLMX7SRD.js.map +0 -7
  450. package/dist/cli-bundle/chunks/chunk-QX6HM775.js +0 -398
  451. package/dist/cli-bundle/chunks/chunk-QX6HM775.js.map +0 -7
  452. package/dist/cli-bundle/chunks/chunk-QZ342C63.js +0 -220
  453. package/dist/cli-bundle/chunks/chunk-QZ342C63.js.map +0 -7
  454. package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js +0 -368
  455. package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js.map +0 -1
  456. package/dist/cli-bundle/chunks/chunk-RFNYTESG.js +0 -520
  457. package/dist/cli-bundle/chunks/chunk-RFNYTESG.js.map +0 -1
  458. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js +0 -79
  459. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js.map +0 -7
  460. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js +0 -282
  461. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js.map +0 -7
  462. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js +0 -274
  463. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js.map +0 -1
  464. package/dist/cli-bundle/chunks/chunk-SCUR7K7N.js.map +0 -7
  465. package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js +0 -1977
  466. package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js.map +0 -7
  467. package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js +0 -1041
  468. package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js.map +0 -7
  469. package/dist/cli-bundle/chunks/chunk-T42JWV3F.js +0 -822
  470. package/dist/cli-bundle/chunks/chunk-T42JWV3F.js.map +0 -7
  471. package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js.map +0 -1
  472. package/dist/cli-bundle/chunks/chunk-TULGS6X6.js.map +0 -1
  473. package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js +0 -2306
  474. package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js.map +0 -1
  475. package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js.map +0 -7
  476. package/dist/cli-bundle/chunks/chunk-VPIM42PC.js.map +0 -7
  477. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js +0 -368
  478. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js.map +0 -1
  479. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +0 -84
  480. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +0 -1
  481. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js +0 -3423
  482. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js.map +0 -1
  483. package/dist/cli-bundle/chunks/chunk-WLSM645P.js +0 -2247
  484. package/dist/cli-bundle/chunks/chunk-WLSM645P.js.map +0 -1
  485. package/dist/cli-bundle/chunks/chunk-WRTENIX3.js +0 -215
  486. package/dist/cli-bundle/chunks/chunk-WRTENIX3.js.map +0 -1
  487. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js +0 -388
  488. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js.map +0 -1
  489. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js +0 -306
  490. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js.map +0 -1
  491. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js +0 -424
  492. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js.map +0 -7
  493. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js +0 -2128
  494. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js.map +0 -7
  495. package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js.map +0 -7
  496. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js +0 -299
  497. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js.map +0 -7
  498. package/dist/cli-bundle/chunks/chunk-ZSUS2OD3.js.map +0 -7
  499. package/dist/cli-bundle/chunks/claim-RFS7BROJ.js +0 -19
  500. package/dist/cli-bundle/chunks/claim-XP5AWZ5H.js +0 -23
  501. package/dist/cli-bundle/chunks/close-GEANHQ2J.js +0 -16
  502. package/dist/cli-bundle/chunks/close-many-CMZW7ITN.js +0 -31
  503. package/dist/cli-bundle/chunks/close-many-ZFDIG6M7.js +0 -27
  504. package/dist/cli-bundle/chunks/comments-MFSYVNNU.js +0 -21
  505. package/dist/cli-bundle/chunks/comments-XUBPXDYX.js +0 -17
  506. package/dist/cli-bundle/chunks/config-D7XQMONX.js +0 -18
  507. package/dist/cli-bundle/chunks/config-T4FHBSYN.js +0 -22
  508. package/dist/cli-bundle/chunks/context-DIU275XI.js +0 -48
  509. package/dist/cli-bundle/chunks/context-JCOYB4LZ.js +0 -44
  510. package/dist/cli-bundle/chunks/contracts-BVO7CSLK.js +0 -12
  511. package/dist/cli-bundle/chunks/copy-NAGLGMHZ.js +0 -13
  512. package/dist/cli-bundle/chunks/create-4V7SWNBB.js +0 -30
  513. package/dist/cli-bundle/chunks/delete-NQI5OSKN.js +0 -14
  514. package/dist/cli-bundle/chunks/deps-T7SCWXEX.js +0 -17
  515. package/dist/cli-bundle/chunks/docs-WL2IWGWV.js +0 -18
  516. package/dist/cli-bundle/chunks/eval-NF2J5SHR.js +0 -23
  517. package/dist/cli-bundle/chunks/eval-SKDT3MZU.js +0 -27
  518. package/dist/cli-bundle/chunks/extension-LAXKCAYE.js +0 -42
  519. package/dist/cli-bundle/chunks/extension-ZISPBRBC.js +0 -38
  520. package/dist/cli-bundle/chunks/files-EWRQHGIS.js +0 -22
  521. package/dist/cli-bundle/chunks/focus-4T7TM4MT.js +0 -18
  522. package/dist/cli-bundle/chunks/focus-L3YUASOD.js +0 -14
  523. package/dist/cli-bundle/chunks/gc-2PCTYYRI.js +0 -12
  524. package/dist/cli-bundle/chunks/get-7DMITJ3G.js +0 -23
  525. package/dist/cli-bundle/chunks/get-VKQXCXLL.js +0 -19
  526. package/dist/cli-bundle/chunks/health-CVSTAR2F.js +0 -31
  527. package/dist/cli-bundle/chunks/health-TV3GKTFN.js +0 -35
  528. package/dist/cli-bundle/chunks/history-D4JUX5XV.js +0 -20
  529. package/dist/cli-bundle/chunks/history-D4JUX5XV.js.map +0 -7
  530. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js +0 -24
  531. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js.map +0 -1
  532. package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js.map +0 -1
  533. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js +0 -25
  534. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js.map +0 -7
  535. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js +0 -21
  536. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js.map +0 -7
  537. package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js.map +0 -1
  538. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js +0 -23
  539. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js.map +0 -7
  540. package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js.map +0 -1
  541. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js +0 -30
  542. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js.map +0 -1
  543. package/dist/cli-bundle/chunks/init-J3DPGWQI.js +0 -26
  544. package/dist/cli-bundle/chunks/init-J3DPGWQI.js.map +0 -7
  545. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js +0 -21
  546. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js.map +0 -1
  547. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js +0 -17
  548. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js.map +0 -7
  549. package/dist/cli-bundle/chunks/list-O5NZVSPN.js +0 -36
  550. package/dist/cli-bundle/chunks/list-O5NZVSPN.js.map +0 -1
  551. package/dist/cli-bundle/chunks/list-Z55YCNTC.js +0 -32
  552. package/dist/cli-bundle/chunks/list-Z55YCNTC.js.map +0 -7
  553. package/dist/cli-bundle/chunks/next-GBNTGXFC.js +0 -28
  554. package/dist/cli-bundle/chunks/next-GBNTGXFC.js.map +0 -7
  555. package/dist/cli-bundle/chunks/next-QKW7PTKE.js +0 -32
  556. package/dist/cli-bundle/chunks/next-QKW7PTKE.js.map +0 -1
  557. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js +0 -17
  558. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js.map +0 -7
  559. package/dist/cli-bundle/chunks/notes-WCGIULVG.js +0 -21
  560. package/dist/cli-bundle/chunks/notes-WCGIULVG.js.map +0 -1
  561. package/dist/cli-bundle/chunks/plan-ADISFYH4.js +0 -29
  562. package/dist/cli-bundle/chunks/plan-ADISFYH4.js.map +0 -7
  563. package/dist/cli-bundle/chunks/plan-CHVE7PBR.js.map +0 -1
  564. package/dist/cli-bundle/chunks/profile-LD23PSI6.js.map +0 -7
  565. package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js.map +0 -1
  566. package/dist/cli-bundle/chunks/register-list-query-B42JCCOI.js.map +0 -1
  567. package/dist/cli-bundle/chunks/register-list-query-OEYQHFXO.js.map +0 -7
  568. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js +0 -19
  569. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js.map +0 -7
  570. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js +0 -23
  571. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js.map +0 -1
  572. package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js.map +0 -7
  573. package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js.map +0 -1
  574. package/dist/cli-bundle/chunks/restore-5RQHAPMA.js.map +0 -1
  575. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js +0 -19
  576. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js.map +0 -7
  577. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js +0 -29
  578. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js.map +0 -1
  579. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js +0 -25
  580. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js.map +0 -7
  581. package/dist/cli-bundle/chunks/schema-245WW4G2.js.map +0 -1
  582. package/dist/cli-bundle/chunks/schema-HBORFC6B.js.map +0 -7
  583. package/dist/cli-bundle/chunks/search-AOZC5SIK.js +0 -34
  584. package/dist/cli-bundle/chunks/search-AOZC5SIK.js.map +0 -7
  585. package/dist/cli-bundle/chunks/search-DRXPGHD7.js +0 -38
  586. package/dist/cli-bundle/chunks/search-DRXPGHD7.js.map +0 -1
  587. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js +0 -21
  588. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js.map +0 -1
  589. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js +0 -17
  590. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js.map +0 -7
  591. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js +0 -14
  592. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js.map +0 -7
  593. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js +0 -18
  594. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js.map +0 -1
  595. package/dist/cli-bundle/chunks/test-6CMOCWUC.js +0 -39
  596. package/dist/cli-bundle/chunks/test-6CMOCWUC.js.map +0 -7
  597. package/dist/cli-bundle/chunks/test-RI7XHBZL.js +0 -43
  598. package/dist/cli-bundle/chunks/test-RI7XHBZL.js.map +0 -1
  599. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js +0 -29
  600. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js.map +0 -7
  601. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js +0 -33
  602. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js.map +0 -1
  603. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js +0 -28
  604. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js.map +0 -1
  605. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js +0 -24
  606. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js.map +0 -7
  607. package/dist/cli-bundle/chunks/update-QVJDFEAP.js +0 -30
  608. package/dist/cli-bundle/chunks/update-QVJDFEAP.js.map +0 -1
  609. package/dist/cli-bundle/chunks/update-VQVHAY6X.js +0 -26
  610. package/dist/cli-bundle/chunks/update-VQVHAY6X.js.map +0 -7
  611. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js +0 -37
  612. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js.map +0 -7
  613. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js +0 -41
  614. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js.map +0 -1
  615. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js +0 -24
  616. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js.map +0 -7
  617. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js +0 -28
  618. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js.map +0 -1
  619. package/dist/cli-bundle/chunks/validate-4NTXSB62.js +0 -36
  620. package/dist/cli-bundle/chunks/validate-4NTXSB62.js.map +0 -1
  621. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js +0 -32
  622. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js.map +0 -7
  623. /package/dist/cli-bundle/chunks/{activity-WJCGCYPU.js.map → append-CDPAYYSB.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{activity-Z6QUAUSG.js.map → append-RSPHC423.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{chunk-24YG75HI.js.map → chunk-3FUXM574.js.map} +0 -0
  626. /package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js.map → chunk-3SHDAKMF.js.map} +0 -0
  627. /package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js.map → chunk-3V5C7PUH.js.map} +0 -0
  628. /package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js.map → chunk-4I7KS5ES.js.map} +0 -0
  629. /package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js.map → chunk-5STY7NVM.js.map} +0 -0
  630. /package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js.map → chunk-5VAZHYVQ.js.map} +0 -0
  631. /package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js.map → chunk-6RR4XM5H.js.map} +0 -0
  632. /package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js.map → chunk-7QKSLAHB.js.map} +0 -0
  633. /package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js.map → chunk-7UCBLJDF.js.map} +0 -0
  634. /package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js.map → chunk-BFNFTHWQ.js.map} +0 -0
  635. /package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js.map → chunk-C3YU3TXX.js.map} +0 -0
  636. /package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js.map → chunk-CGDUIPJL.js.map} +0 -0
  637. /package/dist/cli-bundle/chunks/{chunk-XG625QP4.js.map → chunk-EP2CKDS7.js.map} +0 -0
  638. /package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js.map → chunk-J6AD3GWC.js.map} +0 -0
  639. /package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js.map → chunk-KFL3XHMA.js.map} +0 -0
  640. /package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js.map → chunk-PCBZ2VJD.js.map} +0 -0
  641. /package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js.map → chunk-Q3CFSOQZ.js.map} +0 -0
  642. /package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js.map → chunk-TU5P744I.js.map} +0 -0
  643. /package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js.map → chunk-UEATYUZW.js.map} +0 -0
  644. /package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js.map → chunk-UFNFHCAC.js.map} +0 -0
  645. /package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js.map → chunk-Z2JQH2MG.js.map} +0 -0
  646. /package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js.map → chunk-ZMOPZFVT.js.map} +0 -0
  647. /package/dist/cli-bundle/chunks/{aggregate-VQ2DHU3S.js.map → close-E3RLZSP2.js.map} +0 -0
  648. /package/dist/cli-bundle/chunks/{aggregate-BDM6EIAR.js.map → close-K6BFI3OX.js.map} +0 -0
  649. /package/dist/cli-bundle/chunks/{append-BGML6VLD.js.map → close-many-6NBL3PM4.js.map} +0 -0
  650. /package/dist/cli-bundle/chunks/{append-RKJYPU74.js.map → close-many-X4YKS3RO.js.map} +0 -0
  651. /package/dist/cli-bundle/chunks/{claim-XP5AWZ5H.js.map → comments-PLFK5ZKK.js.map} +0 -0
  652. /package/dist/cli-bundle/chunks/{claim-RFS7BROJ.js.map → comments-ZNOD5PTV.js.map} +0 -0
  653. /package/dist/cli-bundle/chunks/{close-GEANHQ2J.js.map → copy-F7BUFY4J.js.map} +0 -0
  654. /package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js.map → copy-VH3L4MN2.js.map} +0 -0
  655. /package/dist/cli-bundle/chunks/{close-many-ZFDIG6M7.js.map → create-AMBMYP6F.js.map} +0 -0
  656. /package/dist/cli-bundle/chunks/{close-many-CMZW7ITN.js.map → create-TRIBYORN.js.map} +0 -0
  657. /package/dist/cli-bundle/chunks/{comments-XUBPXDYX.js.map → delete-6KQHZYIP.js.map} +0 -0
  658. /package/dist/cli-bundle/chunks/{comments-MFSYVNNU.js.map → delete-ZNXUNCZR.js.map} +0 -0
  659. /package/dist/cli-bundle/chunks/{config-D7XQMONX.js.map → deps-CVDY7FFK.js.map} +0 -0
  660. /package/dist/cli-bundle/chunks/{config-T4FHBSYN.js.map → deps-SZXQHV73.js.map} +0 -0
  661. /package/dist/cli-bundle/chunks/{context-DIU275XI.js.map → docs-DR74ITCD.js.map} +0 -0
  662. /package/dist/cli-bundle/chunks/{context-JCOYB4LZ.js.map → docs-WCVYY6I7.js.map} +0 -0
  663. /package/dist/cli-bundle/chunks/{contracts-BVO7CSLK.js.map → files-H5YCA74Z.js.map} +0 -0
  664. /package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js.map → files-QEFQ2M3H.js.map} +0 -0
  665. /package/dist/cli-bundle/chunks/{copy-32ROBIDL.js.map → focus-55TRYSNA.js.map} +0 -0
  666. /package/dist/cli-bundle/chunks/{copy-NAGLGMHZ.js.map → focus-N2QGNS5D.js.map} +0 -0
  667. /package/dist/cli-bundle/chunks/{create-4V7SWNBB.js.map → history-compact-GWQ4UOEI.js.map} +0 -0
  668. /package/dist/cli-bundle/chunks/{create-E77SDCUP.js.map → history-compact-JJZ4EFL3.js.map} +0 -0
  669. /package/dist/cli-bundle/chunks/{delete-NQI5OSKN.js.map → history-redact-4GJOLXCM.js.map} +0 -0
  670. /package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js.map → history-redact-TPPUT3A5.js.map} +0 -0
  671. /package/dist/cli-bundle/chunks/{deps-T7SCWXEX.js.map → history-repair-HVCVCGUF.js.map} +0 -0
  672. /package/dist/cli-bundle/chunks/{deps-32SU7HO5.js.map → history-repair-J7PIZ6ZP.js.map} +0 -0
  673. /package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js.map → learnings-KB6BT4NR.js.map} +0 -0
  674. /package/dist/cli-bundle/chunks/{docs-WL2IWGWV.js.map → learnings-YYY3U2Y7.js.map} +0 -0
  675. /package/dist/cli-bundle/chunks/{eval-NF2J5SHR.js.map → notes-BGG7VL72.js.map} +0 -0
  676. /package/dist/cli-bundle/chunks/{eval-SKDT3MZU.js.map → notes-ZTHXVOKM.js.map} +0 -0
  677. /package/dist/cli-bundle/chunks/{extension-LAXKCAYE.js.map → plan-CJPKFRBK.js.map} +0 -0
  678. /package/dist/cli-bundle/chunks/{extension-ZISPBRBC.js.map → plan-MK2QY3GA.js.map} +0 -0
  679. /package/dist/cli-bundle/chunks/{files-PYKR2UUG.js.map → profile-AQNHXOYA.js.map} +0 -0
  680. /package/dist/cli-bundle/chunks/{files-EWRQHGIS.js.map → profile-HTBFINKQ.js.map} +0 -0
  681. /package/dist/cli-bundle/chunks/{focus-4T7TM4MT.js.map → restore-BTBEZ5CK.js.map} +0 -0
  682. /package/dist/cli-bundle/chunks/{focus-L3YUASOD.js.map → restore-EX4UUZL6.js.map} +0 -0
  683. /package/dist/cli-bundle/chunks/{gc-2PCTYYRI.js.map → schema-DGSTYYQB.js.map} +0 -0
  684. /package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js.map → schema-HAIBEE24.js.map} +0 -0
  685. /package/dist/cli-bundle/chunks/{get-7DMITJ3G.js.map → update-MP4XLU56.js.map} +0 -0
  686. /package/dist/cli-bundle/chunks/{get-VKQXCXLL.js.map → update-SDIRJGSY.js.map} +0 -0
  687. /package/dist/cli-bundle/chunks/{health-CVSTAR2F.js.map → update-many-34AIU6W7.js.map} +0 -0
  688. /package/dist/cli-bundle/chunks/{health-TV3GKTFN.js.map → update-many-JUPCNOKV.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../../../../../core/config/positional-value.ts", "../../../../../../../../cli/commands/config.ts"],
4
- "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 PmSettings,\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);\nconst CONFIG_KEY_BY_ALIAS: Readonly<Record<string, ConfigKey>> = Object.fromEntries(\n (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).flatMap((key) =>\n CONFIG_KEY_ALIASES[key].map((alias) => [alias, key] as const),\n ),\n) as Readonly<Record<string, ConfigKey>>;\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 = [\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] as const satisfies readonly ConfigKey[];\ntype LifecyclePatternConfigKey = (typeof LIFECYCLE_PATTERN_CONFIG_KEYS)[number];\ntype CriteriaConfigKey = \"metadata_required_fields\" | LifecyclePatternConfigKey;\ntype ValidationConfigKey =\n | \"history_missing_stream_policy\"\n | \"sprint_release_format_policy\"\n | \"parent_reference_policy\"\n | \"metadata_validation_profile\";\ntype GovernancePolicyConfigKey =\n | \"governance_ownership_enforcement\"\n | \"governance_create_mode_default\"\n | \"governance_close_validation_default\";\ntype GovernanceValidationConfigKey =\n | \"governance_parent_reference_policy\"\n | \"governance_metadata_validation_profile\"\n | \"governance_workflow_enforcement\";\ntype GovernancePresetOrTypeConfigKey = \"governance_preset\" | \"governance_create_default_type\";\n\nconst CRITERIA_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"metadata_required_fields\",\n ...LIFECYCLE_PATTERN_CONFIG_KEYS,\n]);\nconst TRACKING_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"test_result_tracking\",\n \"telemetry_tracking\",\n]);\nconst GOVERNANCE_BOOLEAN_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_require_close_reason\",\n \"governance_force_required_for_stale_lock\",\n]);\nconst GOVERNANCE_POLICY_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_ownership_enforcement\",\n \"governance_create_mode_default\",\n \"governance_close_validation_default\",\n]);\nconst GOVERNANCE_VALIDATION_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_parent_reference_policy\",\n \"governance_metadata_validation_profile\",\n \"governance_workflow_enforcement\",\n]);\nconst GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_preset\",\n \"governance_create_default_type\",\n]);\n\nconst isCriteriaValueConfigKey = (key: ConfigKey): key is CriteriaConfigKey => CRITERIA_CONFIG_KEYS.has(key);\nconst isGovernancePolicyConfigKey = (key: ConfigKey): key is GovernancePolicyConfigKey =>\n GOVERNANCE_POLICY_CONFIG_KEYS.has(key);\nconst isGovernanceValidationConfigKey = (key: ConfigKey): key is GovernanceValidationConfigKey =>\n GOVERNANCE_VALIDATION_CONFIG_KEYS.has(key);\nconst isGovernancePresetOrTypeConfigKey = (key: ConfigKey): key is GovernancePresetOrTypeConfigKey =>\n GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS.has(key);\n\nfunction isCriteriaConfigKey(key: ConfigKey): boolean {\n return key === \"definition_of_done\" || isCriteriaValueConfigKey(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 const key = CONFIG_KEY_BY_ALIAS[value];\n if (key) {\n return key;\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\nconst CONFIG_VALUE_READERS: Readonly<Record<ConfigKey, (settings: PmSettings) => ConfigValue>> = {\n definition_of_done: (settings) => [...settings.workflow.definition_of_done],\n item_format: (settings) => settings.item_format,\n history_missing_stream_policy: (settings) => settings.history.missing_stream,\n sprint_release_format_policy: (settings) => settings.validation.sprint_release_format,\n parent_reference_policy: (settings) => settings.validation.parent_reference,\n metadata_validation_profile: (settings) => settings.validation.metadata_profile,\n metadata_required_fields: (settings) => [...settings.validation.metadata_required_fields],\n lifecycle_stale_blocker_reason_patterns: (settings) => [\n ...settings.validation.lifecycle_stale_blocker_reason_patterns,\n ],\n lifecycle_closure_like_blocked_reason_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_blocked_reason_patterns,\n ],\n lifecycle_closure_like_resolution_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_resolution_patterns,\n ],\n lifecycle_closure_like_actual_result_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_actual_result_patterns,\n ],\n governance_preset: (settings) => settings.governance.preset,\n governance_ownership_enforcement: (settings) => settings.governance.ownership_enforcement,\n governance_create_mode_default: (settings) => settings.governance.create_mode_default,\n governance_close_validation_default: (settings) => settings.governance.close_validation_default,\n governance_require_close_reason: (settings) => settings.governance.require_close_reason ? \"enabled\" : \"disabled\",\n governance_create_default_type: (settings) => settings.governance.create_default_type ?? \"\",\n governance_workflow_enforcement: (settings) => settings.governance.workflow_enforcement ?? \"off\",\n governance_parent_reference_policy: (settings) => settings.governance.parent_reference,\n governance_metadata_validation_profile: (settings) => settings.governance.metadata_profile,\n governance_force_required_for_stale_lock: (settings) =>\n settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n test_result_tracking: (settings) => settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n telemetry_tracking: (settings) => settings.telemetry.enabled ? \"enabled\" : \"disabled\",\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};\n\nfunction readConfigValue(settings: PmSettings, key: ConfigKey): ConfigValue {\n return CONFIG_VALUE_READERS[key](settings);\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: 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\nfunction applyNestedSettingPositionalValue(\n keyValue: string,\n valueValue: string,\n options: ConfigCommandOptions,\n): ConfigCommandOptions {\n if (options.value !== 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 return { ...options, value: valueValue };\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 return applyNestedSettingPositionalValue(keyValue, valueValue, options);\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\ninterface ConfigExecutionContext {\n scope: ConfigScope;\n target: { pmRoot: string; settingsPath: string };\n settings: PmSettings;\n metadata: { has_explicit_item_format: boolean };\n warnings: string[];\n}\n\nfunction buildConfigListResult(context: ConfigExecutionContext): ConfigResult {\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(context.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(context.settings, descriptor),\n }));\n return withWarnings(\n {\n scope: context.scope,\n keys,\n nested_settings: nestedSettings,\n count: keys.length,\n settings_path: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n}\n\nfunction buildConfigExportResult(context: ConfigExecutionContext): ConfigResult {\n const values = Object.fromEntries(\n (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map((key) => [key, readConfigValue(context.settings, key)]),\n ) as Record<ConfigKey, ConfigValue>;\n return withWarnings(\n {\n scope: context.scope,\n values,\n settings_path: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n}\n\nfunction buildConfigGetResult(context: ConfigExecutionContext, key: ConfigKey): ConfigResult {\n const value = readConfigValue(context.settings, key);\n const base = {\n scope: context.scope,\n key,\n settings_path: context.target.settingsPath,\n changed: false,\n };\n if (key === \"item_format\") {\n return withWarnings(\n {\n ...base,\n format: context.settings.item_format,\n has_explicit_item_format: context.metadata.has_explicit_item_format,\n },\n context.warnings,\n );\n }\n if (key === \"context\") {\n return withWarnings({ ...base, context_settings: value as ContextConfigValue }, context.warnings);\n }\n if (Array.isArray(value)) {\n return withWarnings({ ...base, criteria: value }, context.warnings);\n }\n return withWarnings({ ...base, policy: value as ConfigResult[\"policy\"] }, context.warnings);\n}\n\nasync function buildNestedSettingResult(\n context: ConfigExecutionContext,\n action: ConfigAction,\n nestedSetting: NestedSettingDescriptor,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (action === \"get\") {\n const currentValue = readNestedSettingValue(context.settings, nestedSetting);\n return withWarnings(\n {\n scope: context.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: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n }\n\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 ${context.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 context.settings as unknown as Record<string, unknown>,\n nestedSetting,\n parsed.parsed.value,\n );\n if (changed) {\n await writeSettings(context.target.pmRoot, context.settings, `config:set:${nestedSetting.path}`);\n }\n return withWarnings(\n {\n scope: context.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: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function writeConfigSettingsIfChanged(\n context: ConfigExecutionContext,\n changed: boolean,\n reason: string,\n): Promise<void> {\n if (changed) {\n await writeSettings(context.target.pmRoot, context.settings, reason);\n }\n}\n\nfunction hasGovernanceValidationMirrorChange<T extends ParentReferencePolicy | ValidateMetadataProfile>(\n governanceValue: T,\n validationValue: T,\n nextPolicy: T,\n): boolean {\n return governanceValue !== nextPolicy || validationValue !== nextPolicy;\n}\n\nfunction buildPolicyResult(\n context: ConfigExecutionContext,\n key: ConfigKey,\n policy: ConfigResult[\"policy\"],\n changed: boolean,\n): ConfigResult {\n return withWarnings(\n {\n scope: context.scope,\n key,\n policy,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nfunction buildCriteriaResult(\n context: ConfigExecutionContext,\n key: ConfigKey,\n criteria: string[],\n changed: boolean,\n): ConfigResult {\n return withWarnings(\n {\n scope: context.scope,\n key,\n criteria,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function setItemFormatConfig(context: ConfigExecutionContext, options: ConfigCommandOptions): Promise<ConfigResult> {\n const nextFormat = normalizeItemFormat(options.format);\n const changed = context.settings.item_format !== nextFormat || !context.metadata.has_explicit_item_format;\n let migration: ConfigResult[\"migration\"] = undefined;\n if (changed) {\n const typeRegistry = resolveItemTypeRegistry(context.settings, getActiveExtensionRegistrations());\n const migrated = await migrateItemFilesToFormat(\n context.target.pmRoot,\n nextFormat,\n \"config:set:item_format:migrate\",\n typeRegistry.type_to_folder,\n context.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 context.settings.item_format = nextFormat;\n await writeSettings(context.target.pmRoot, context.settings, \"config:set:item_format\");\n }\n return withWarnings(\n {\n scope: context.scope,\n key: \"item_format\",\n format: context.settings.item_format,\n has_explicit_item_format: true,\n migration,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function setValidationConfig(\n context: ConfigExecutionContext,\n key: ValidationConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"history_missing_stream_policy\") {\n const nextPolicy = normalizeHistoryMissingStreamPolicy(options.policy);\n const changed = context.settings.history.missing_stream !== nextPolicy;\n context.settings.history.missing_stream = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:history_missing_stream_policy\");\n return buildPolicyResult(context, key, context.settings.history.missing_stream, changed);\n }\n if (key === \"sprint_release_format_policy\") {\n const nextPolicy = normalizeSprintReleaseFormatPolicy(options.policy);\n const changed = context.settings.validation.sprint_release_format !== nextPolicy;\n context.settings.validation.sprint_release_format = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:sprint_release_format_policy\");\n return buildPolicyResult(context, key, context.settings.validation.sprint_release_format, changed);\n }\n if (key === \"parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n context.settings.validation.parent_reference !== nextPolicy ||\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.parent_reference !== nextPolicy;\n context.settings.validation.parent_reference = nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.parent_reference = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:parent_reference_policy\");\n return buildPolicyResult(context, key, context.settings.validation.parent_reference, changed);\n }\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n context.settings.validation.metadata_profile !== nextPolicy ||\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.metadata_profile !== nextPolicy;\n context.settings.validation.metadata_profile = nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.metadata_profile = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:metadata_validation_profile\");\n return buildPolicyResult(context, key, context.settings.validation.metadata_profile, changed);\n}\n\nasync function setCriteriaConfig(\n context: ConfigExecutionContext,\n key: CriteriaConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"metadata_required_fields\") {\n const nextCriteria = normalizeMetadataRequiredFields(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== context.settings.validation.metadata_required_fields.length ||\n nextCriteria.some((value, index) => value !== context.settings.validation.metadata_required_fields[index]);\n context.settings.validation.metadata_required_fields = nextCriteria;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:metadata_required_fields\");\n return buildCriteriaResult(context, key, [...context.settings.validation.metadata_required_fields], changed);\n }\n\n const lifecycleTargets: Record<LifecyclePatternConfigKey, string[]> = {\n lifecycle_stale_blocker_reason_patterns: context.settings.validation.lifecycle_stale_blocker_reason_patterns,\n lifecycle_closure_like_blocked_reason_patterns:\n context.settings.validation.lifecycle_closure_like_blocked_reason_patterns,\n lifecycle_closure_like_resolution_patterns:\n context.settings.validation.lifecycle_closure_like_resolution_patterns,\n lifecycle_closure_like_actual_result_patterns:\n context.settings.validation.lifecycle_closure_like_actual_result_patterns,\n };\n const currentCriteria = lifecycleTargets[key];\n\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== currentCriteria.length ||\n nextCriteria.some((value, index) => value !== currentCriteria[index]);\n currentCriteria.splice(0, currentCriteria.length, ...nextCriteria);\n await writeConfigSettingsIfChanged(context, changed, `config:set:${key}`);\n return buildCriteriaResult(context, key, [...currentCriteria], changed);\n}\n\nasync function setGovernancePresetOrTypeConfig(\n context: ConfigExecutionContext,\n key: GovernancePresetOrTypeConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_preset\") {\n const nextPolicy = normalizeGovernancePreset(options.policy);\n const changed = context.settings.governance.preset !== nextPolicy;\n context.settings.governance.preset = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_preset\");\n return buildPolicyResult(context, key, context.settings.governance.preset, changed);\n }\n\n const policyProvided = typeof options.policy === \"string\";\n const rawType = policyProvided ? options.policy!.trim() : \"\";\n if (policyProvided && rawType.length === 0) {\n const changed = context.settings.governance.create_default_type !== undefined;\n delete context.settings.governance.create_default_type;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_default_type\");\n return buildPolicyResult(context, key, context.settings.governance.create_default_type ?? \"\", changed);\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 const typeRegistry = resolveItemTypeRegistry(context.settings, getActiveExtensionRegistrations());\n const resolvedType = resolveTypeName(rawType, typeRegistry);\n if (!resolvedType) {\n throw new PmCliError(\n buildInvalidTypeError(rawType, typeRegistry.types, resolveItemTypesFilePath(context.target.pmRoot, context.settings.schema)),\n EXIT_CODE.USAGE,\n );\n }\n const changed = context.settings.governance.create_default_type !== resolvedType;\n context.settings.governance.create_default_type = resolvedType;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_default_type\");\n return buildPolicyResult(context, key, context.settings.governance.create_default_type, changed);\n}\n\nasync function setGovernancePolicyConfig(\n context: ConfigExecutionContext,\n key: GovernancePolicyConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_ownership_enforcement\") {\n const nextPolicy = normalizeGovernanceOwnershipEnforcement(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.ownership_enforcement !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.ownership_enforcement = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_ownership_enforcement\");\n return buildPolicyResult(context, key, context.settings.governance.ownership_enforcement, changed);\n }\n if (key === \"governance_create_mode_default\") {\n const nextPolicy = normalizeGovernanceCreateModeDefault(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.create_mode_default !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.create_mode_default = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_mode_default\");\n return buildPolicyResult(context, key, context.settings.governance.create_mode_default, changed);\n }\n const nextPolicy = normalizeGovernanceCloseValidationDefault(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.close_validation_default !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.close_validation_default = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_close_validation_default\");\n return buildPolicyResult(context, key, context.settings.governance.close_validation_default, changed);\n}\n\nasync function setGovernanceValidationConfig(\n context: ConfigExecutionContext,\n key: GovernanceValidationConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n hasGovernanceValidationMirrorChange(\n context.settings.governance.parent_reference,\n context.settings.validation.parent_reference,\n nextPolicy,\n );\n context.settings.governance.preset = \"custom\";\n context.settings.governance.parent_reference = nextPolicy;\n context.settings.validation.parent_reference = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_parent_reference_policy\");\n return buildPolicyResult(context, key, context.settings.governance.parent_reference, changed);\n }\n if (key === \"governance_metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n hasGovernanceValidationMirrorChange(\n context.settings.governance.metadata_profile,\n context.settings.validation.metadata_profile,\n nextPolicy,\n );\n context.settings.governance.preset = \"custom\";\n context.settings.governance.metadata_profile = nextPolicy;\n context.settings.validation.metadata_profile = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_metadata_validation_profile\");\n return buildPolicyResult(context, key, context.settings.governance.metadata_profile, changed);\n }\n const nextPolicy = normalizeGovernanceWorkflowEnforcement(options.policy);\n const changed = (context.settings.governance.workflow_enforcement ?? \"off\") !== nextPolicy;\n context.settings.governance.workflow_enforcement = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_workflow_enforcement\");\n return buildPolicyResult(context, key, context.settings.governance.workflow_enforcement, changed);\n}\n\nasync function setGovernanceBooleanConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_require_close_reason\") {\n const nextPolicy = normalizeGovernanceRequireCloseReasonPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = context.settings.governance.require_close_reason !== nextEnabled;\n context.settings.governance.require_close_reason = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_require_close_reason\");\n return buildPolicyResult(context, key, context.settings.governance.require_close_reason ? \"enabled\" : \"disabled\", changed);\n }\n const nextPolicy = normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.force_required_for_stale_lock !== nextEnabled;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.force_required_for_stale_lock = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_force_required_for_stale_lock\");\n return buildPolicyResult(\n context,\n key,\n context.settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n changed,\n );\n}\n\nasync function setTrackingConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"test_result_tracking\") {\n const nextPolicy = normalizeTestResultTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = context.settings.testing.record_results_to_items !== nextEnabled;\n context.settings.testing.record_results_to_items = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:test_result_tracking\");\n return buildPolicyResult(context, key, context.settings.testing.record_results_to_items ? \"enabled\" : \"disabled\", changed);\n }\n const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n context.settings.telemetry.enabled !== nextEnabled ||\n !context.settings.telemetry.first_run_prompt_completed;\n context.settings.telemetry.enabled = nextEnabled;\n context.settings.telemetry.first_run_prompt_completed = true;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:telemetry_tracking\");\n return buildPolicyResult(context, key, context.settings.telemetry.enabled ? \"enabled\" : \"disabled\", changed);\n}\n\nasync function setDefinitionOfDoneConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n const nextCriteria = normalizeCriteria(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== context.settings.workflow.definition_of_done.length ||\n nextCriteria.some((value, index) => value !== context.settings.workflow.definition_of_done[index]);\n context.settings.workflow.definition_of_done = nextCriteria;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:definition_of_done\");\n return buildCriteriaResult(context, key, [...context.settings.workflow.definition_of_done], changed);\n}\n\nasync function setConfigValue(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {\n throw new PmCliError(\"--clear-criteria is only supported with config set criteria-list keys\", EXIT_CODE.USAGE);\n }\n if (key === \"item_format\") {\n return setItemFormatConfig(context, options);\n }\n if (key === \"context\") {\n return applyContextConfig(context.settings, options, context.target, context.scope, context.warnings);\n }\n if (key === \"definition_of_done\") {\n return setDefinitionOfDoneConfig(context, key, options);\n }\n if (isCriteriaValueConfigKey(key)) {\n return setCriteriaConfig(context, key, options);\n }\n if (TRACKING_CONFIG_KEYS.has(key)) {\n return setTrackingConfig(context, key, options);\n }\n if (GOVERNANCE_BOOLEAN_CONFIG_KEYS.has(key)) {\n return setGovernanceBooleanConfig(context, key, options);\n }\n if (isGovernancePolicyConfigKey(key)) {\n return setGovernancePolicyConfig(context, key, options);\n }\n if (isGovernanceValidationConfigKey(key)) {\n return setGovernanceValidationConfig(context, key, options);\n }\n if (isGovernancePresetOrTypeConfigKey(key)) {\n return setGovernancePresetOrTypeConfig(context, key, options);\n }\n return setValidationConfig(context, key as ValidationConfigKey, options);\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 const nestedSetting =\n (action === \"get\" || action === \"set\") ? resolveNestedSettingDescriptor(keyValue) : undefined;\n const key = nestedSetting ? undefined : normalizeKeyForAction(action, keyValue);\n const routedOptions = 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 context: ConfigExecutionContext = {\n scope,\n target,\n settings,\n metadata,\n warnings: normalizeWarnings(settingsReadWarnings),\n };\n\n if (nestedSetting) {\n return buildNestedSettingResult(context, action, nestedSetting, routedOptions);\n }\n if (action === \"list\") {\n return buildConfigListResult(context);\n }\n if (action === \"export\") {\n return buildConfigExportResult(context);\n }\n\n assertConfigKeyDefined(key);\n return action === \"get\" ? buildConfigGetResult(context, key) : setConfigValue(context, key, routedOptions);\n}\n\nexport const _testOnlyConfigCommand = {\n hasGovernanceValidationMirrorChange,\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"],
5
- "mappings": "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",
6
- "names": ["global", "nextPolicy", "changed", "nextCriteria", "nextEnabled"]
3
+ "sources": ["../../../../../../../../core/config/positional-value.ts", "../../../../../../../../cli/commands/config.ts", "../../../../../../../../cli/commands/upgrade.ts"],
4
+ "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 PmSettings,\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);\nconst CONFIG_KEY_BY_ALIAS: Readonly<Record<string, ConfigKey>> = Object.fromEntries(\n (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).flatMap((key) =>\n CONFIG_KEY_ALIASES[key].map((alias) => [alias, key] as const),\n ),\n) as Readonly<Record<string, ConfigKey>>;\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 = [\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] as const satisfies readonly ConfigKey[];\ntype LifecyclePatternConfigKey = (typeof LIFECYCLE_PATTERN_CONFIG_KEYS)[number];\ntype CriteriaConfigKey = \"metadata_required_fields\" | LifecyclePatternConfigKey;\ntype ValidationConfigKey =\n | \"history_missing_stream_policy\"\n | \"sprint_release_format_policy\"\n | \"parent_reference_policy\"\n | \"metadata_validation_profile\";\ntype GovernancePolicyConfigKey =\n | \"governance_ownership_enforcement\"\n | \"governance_create_mode_default\"\n | \"governance_close_validation_default\";\ntype GovernanceValidationConfigKey =\n | \"governance_parent_reference_policy\"\n | \"governance_metadata_validation_profile\"\n | \"governance_workflow_enforcement\";\ntype GovernancePresetOrTypeConfigKey = \"governance_preset\" | \"governance_create_default_type\";\n\nconst CRITERIA_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"metadata_required_fields\",\n ...LIFECYCLE_PATTERN_CONFIG_KEYS,\n]);\nconst TRACKING_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"test_result_tracking\",\n \"telemetry_tracking\",\n]);\nconst GOVERNANCE_BOOLEAN_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_require_close_reason\",\n \"governance_force_required_for_stale_lock\",\n]);\nconst GOVERNANCE_POLICY_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_ownership_enforcement\",\n \"governance_create_mode_default\",\n \"governance_close_validation_default\",\n]);\nconst GOVERNANCE_VALIDATION_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_parent_reference_policy\",\n \"governance_metadata_validation_profile\",\n \"governance_workflow_enforcement\",\n]);\nconst GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS: ReadonlySet<ConfigKey> = new Set<ConfigKey>([\n \"governance_preset\",\n \"governance_create_default_type\",\n]);\n\nconst isCriteriaValueConfigKey = (key: ConfigKey): key is CriteriaConfigKey => CRITERIA_CONFIG_KEYS.has(key);\nconst isGovernancePolicyConfigKey = (key: ConfigKey): key is GovernancePolicyConfigKey =>\n GOVERNANCE_POLICY_CONFIG_KEYS.has(key);\nconst isGovernanceValidationConfigKey = (key: ConfigKey): key is GovernanceValidationConfigKey =>\n GOVERNANCE_VALIDATION_CONFIG_KEYS.has(key);\nconst isGovernancePresetOrTypeConfigKey = (key: ConfigKey): key is GovernancePresetOrTypeConfigKey =>\n GOVERNANCE_PRESET_OR_TYPE_CONFIG_KEYS.has(key);\n\nfunction isCriteriaConfigKey(key: ConfigKey): boolean {\n return key === \"definition_of_done\" || isCriteriaValueConfigKey(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 const key = CONFIG_KEY_BY_ALIAS[value];\n if (key) {\n return key;\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\nconst CONFIG_VALUE_READERS: Readonly<Record<ConfigKey, (settings: PmSettings) => ConfigValue>> = {\n definition_of_done: (settings) => [...settings.workflow.definition_of_done],\n item_format: (settings) => settings.item_format,\n history_missing_stream_policy: (settings) => settings.history.missing_stream,\n sprint_release_format_policy: (settings) => settings.validation.sprint_release_format,\n parent_reference_policy: (settings) => settings.validation.parent_reference,\n metadata_validation_profile: (settings) => settings.validation.metadata_profile,\n metadata_required_fields: (settings) => [...settings.validation.metadata_required_fields],\n lifecycle_stale_blocker_reason_patterns: (settings) => [\n ...settings.validation.lifecycle_stale_blocker_reason_patterns,\n ],\n lifecycle_closure_like_blocked_reason_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_blocked_reason_patterns,\n ],\n lifecycle_closure_like_resolution_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_resolution_patterns,\n ],\n lifecycle_closure_like_actual_result_patterns: (settings) => [\n ...settings.validation.lifecycle_closure_like_actual_result_patterns,\n ],\n governance_preset: (settings) => settings.governance.preset,\n governance_ownership_enforcement: (settings) => settings.governance.ownership_enforcement,\n governance_create_mode_default: (settings) => settings.governance.create_mode_default,\n governance_close_validation_default: (settings) => settings.governance.close_validation_default,\n governance_require_close_reason: (settings) => settings.governance.require_close_reason ? \"enabled\" : \"disabled\",\n governance_create_default_type: (settings) => settings.governance.create_default_type ?? \"\",\n governance_workflow_enforcement: (settings) => settings.governance.workflow_enforcement ?? \"off\",\n governance_parent_reference_policy: (settings) => settings.governance.parent_reference,\n governance_metadata_validation_profile: (settings) => settings.governance.metadata_profile,\n governance_force_required_for_stale_lock: (settings) =>\n settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n test_result_tracking: (settings) => settings.testing.record_results_to_items ? \"enabled\" : \"disabled\",\n telemetry_tracking: (settings) => settings.telemetry.enabled ? \"enabled\" : \"disabled\",\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};\n\nfunction readConfigValue(settings: PmSettings, key: ConfigKey): ConfigValue {\n return CONFIG_VALUE_READERS[key](settings);\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: 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\nfunction applyNestedSettingPositionalValue(\n keyValue: string,\n valueValue: string,\n options: ConfigCommandOptions,\n): ConfigCommandOptions {\n if (options.value !== 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 return { ...options, value: valueValue };\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 return applyNestedSettingPositionalValue(keyValue, valueValue, options);\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\ninterface ConfigExecutionContext {\n scope: ConfigScope;\n target: { pmRoot: string; settingsPath: string };\n settings: PmSettings;\n metadata: { has_explicit_item_format: boolean };\n warnings: string[];\n}\n\nfunction buildConfigListResult(context: ConfigExecutionContext): ConfigResult {\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(context.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(context.settings, descriptor),\n }));\n return withWarnings(\n {\n scope: context.scope,\n keys,\n nested_settings: nestedSettings,\n count: keys.length,\n settings_path: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n}\n\nfunction buildConfigExportResult(context: ConfigExecutionContext): ConfigResult {\n const values = Object.fromEntries(\n (Object.keys(CONFIG_KEY_ALIASES) as ConfigKey[]).map((key) => [key, readConfigValue(context.settings, key)]),\n ) as Record<ConfigKey, ConfigValue>;\n return withWarnings(\n {\n scope: context.scope,\n values,\n settings_path: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n}\n\nfunction buildConfigGetResult(context: ConfigExecutionContext, key: ConfigKey): ConfigResult {\n const value = readConfigValue(context.settings, key);\n const base = {\n scope: context.scope,\n key,\n settings_path: context.target.settingsPath,\n changed: false,\n };\n if (key === \"item_format\") {\n return withWarnings(\n {\n ...base,\n format: context.settings.item_format,\n has_explicit_item_format: context.metadata.has_explicit_item_format,\n },\n context.warnings,\n );\n }\n if (key === \"context\") {\n return withWarnings({ ...base, context_settings: value as ContextConfigValue }, context.warnings);\n }\n if (Array.isArray(value)) {\n return withWarnings({ ...base, criteria: value }, context.warnings);\n }\n return withWarnings({ ...base, policy: value as ConfigResult[\"policy\"] }, context.warnings);\n}\n\nasync function buildNestedSettingResult(\n context: ConfigExecutionContext,\n action: ConfigAction,\n nestedSetting: NestedSettingDescriptor,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (action === \"get\") {\n const currentValue = readNestedSettingValue(context.settings, nestedSetting);\n return withWarnings(\n {\n scope: context.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: context.target.settingsPath,\n changed: false,\n },\n context.warnings,\n );\n }\n\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 ${context.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 context.settings as unknown as Record<string, unknown>,\n nestedSetting,\n parsed.parsed.value,\n );\n if (changed) {\n await writeSettings(context.target.pmRoot, context.settings, `config:set:${nestedSetting.path}`);\n }\n return withWarnings(\n {\n scope: context.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: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function writeConfigSettingsIfChanged(\n context: ConfigExecutionContext,\n changed: boolean,\n reason: string,\n): Promise<void> {\n if (changed) {\n await writeSettings(context.target.pmRoot, context.settings, reason);\n }\n}\n\nfunction hasGovernanceValidationMirrorChange<T extends ParentReferencePolicy | ValidateMetadataProfile>(\n governanceValue: T,\n validationValue: T,\n nextPolicy: T,\n): boolean {\n return governanceValue !== nextPolicy || validationValue !== nextPolicy;\n}\n\nfunction buildPolicyResult(\n context: ConfigExecutionContext,\n key: ConfigKey,\n policy: ConfigResult[\"policy\"],\n changed: boolean,\n): ConfigResult {\n return withWarnings(\n {\n scope: context.scope,\n key,\n policy,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nfunction buildCriteriaResult(\n context: ConfigExecutionContext,\n key: ConfigKey,\n criteria: string[],\n changed: boolean,\n): ConfigResult {\n return withWarnings(\n {\n scope: context.scope,\n key,\n criteria,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function setItemFormatConfig(context: ConfigExecutionContext, options: ConfigCommandOptions): Promise<ConfigResult> {\n const nextFormat = normalizeItemFormat(options.format);\n const changed = context.settings.item_format !== nextFormat || !context.metadata.has_explicit_item_format;\n let migration: ConfigResult[\"migration\"] = undefined;\n if (changed) {\n const typeRegistry = resolveItemTypeRegistry(context.settings, getActiveExtensionRegistrations());\n const migrated = await migrateItemFilesToFormat(\n context.target.pmRoot,\n nextFormat,\n \"config:set:item_format:migrate\",\n typeRegistry.type_to_folder,\n context.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 context.settings.item_format = nextFormat;\n await writeSettings(context.target.pmRoot, context.settings, \"config:set:item_format\");\n }\n return withWarnings(\n {\n scope: context.scope,\n key: \"item_format\",\n format: context.settings.item_format,\n has_explicit_item_format: true,\n migration,\n settings_path: context.target.settingsPath,\n changed,\n },\n context.warnings,\n );\n}\n\nasync function setValidationConfig(\n context: ConfigExecutionContext,\n key: ValidationConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"history_missing_stream_policy\") {\n const nextPolicy = normalizeHistoryMissingStreamPolicy(options.policy);\n const changed = context.settings.history.missing_stream !== nextPolicy;\n context.settings.history.missing_stream = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:history_missing_stream_policy\");\n return buildPolicyResult(context, key, context.settings.history.missing_stream, changed);\n }\n if (key === \"sprint_release_format_policy\") {\n const nextPolicy = normalizeSprintReleaseFormatPolicy(options.policy);\n const changed = context.settings.validation.sprint_release_format !== nextPolicy;\n context.settings.validation.sprint_release_format = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:sprint_release_format_policy\");\n return buildPolicyResult(context, key, context.settings.validation.sprint_release_format, changed);\n }\n if (key === \"parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n context.settings.validation.parent_reference !== nextPolicy ||\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.parent_reference !== nextPolicy;\n context.settings.validation.parent_reference = nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.parent_reference = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:parent_reference_policy\");\n return buildPolicyResult(context, key, context.settings.validation.parent_reference, changed);\n }\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n context.settings.validation.metadata_profile !== nextPolicy ||\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.metadata_profile !== nextPolicy;\n context.settings.validation.metadata_profile = nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.metadata_profile = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:metadata_validation_profile\");\n return buildPolicyResult(context, key, context.settings.validation.metadata_profile, changed);\n}\n\nasync function setCriteriaConfig(\n context: ConfigExecutionContext,\n key: CriteriaConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"metadata_required_fields\") {\n const nextCriteria = normalizeMetadataRequiredFields(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== context.settings.validation.metadata_required_fields.length ||\n nextCriteria.some((value, index) => value !== context.settings.validation.metadata_required_fields[index]);\n context.settings.validation.metadata_required_fields = nextCriteria;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:metadata_required_fields\");\n return buildCriteriaResult(context, key, [...context.settings.validation.metadata_required_fields], changed);\n }\n\n const lifecycleTargets: Record<LifecyclePatternConfigKey, string[]> = {\n lifecycle_stale_blocker_reason_patterns: context.settings.validation.lifecycle_stale_blocker_reason_patterns,\n lifecycle_closure_like_blocked_reason_patterns:\n context.settings.validation.lifecycle_closure_like_blocked_reason_patterns,\n lifecycle_closure_like_resolution_patterns:\n context.settings.validation.lifecycle_closure_like_resolution_patterns,\n lifecycle_closure_like_actual_result_patterns:\n context.settings.validation.lifecycle_closure_like_actual_result_patterns,\n };\n const currentCriteria = lifecycleTargets[key];\n\n const nextCriteria = normalizeLifecyclePatternCriteria(key, options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== currentCriteria.length ||\n nextCriteria.some((value, index) => value !== currentCriteria[index]);\n currentCriteria.splice(0, currentCriteria.length, ...nextCriteria);\n await writeConfigSettingsIfChanged(context, changed, `config:set:${key}`);\n return buildCriteriaResult(context, key, [...currentCriteria], changed);\n}\n\nasync function setGovernancePresetOrTypeConfig(\n context: ConfigExecutionContext,\n key: GovernancePresetOrTypeConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_preset\") {\n const nextPolicy = normalizeGovernancePreset(options.policy);\n const changed = context.settings.governance.preset !== nextPolicy;\n context.settings.governance.preset = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_preset\");\n return buildPolicyResult(context, key, context.settings.governance.preset, changed);\n }\n\n const policyProvided = typeof options.policy === \"string\";\n const rawType = policyProvided ? options.policy!.trim() : \"\";\n if (policyProvided && rawType.length === 0) {\n const changed = context.settings.governance.create_default_type !== undefined;\n delete context.settings.governance.create_default_type;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_default_type\");\n return buildPolicyResult(context, key, context.settings.governance.create_default_type ?? \"\", changed);\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 const typeRegistry = resolveItemTypeRegistry(context.settings, getActiveExtensionRegistrations());\n const resolvedType = resolveTypeName(rawType, typeRegistry);\n if (!resolvedType) {\n throw new PmCliError(\n buildInvalidTypeError(rawType, typeRegistry.types, resolveItemTypesFilePath(context.target.pmRoot, context.settings.schema)),\n EXIT_CODE.USAGE,\n );\n }\n const changed = context.settings.governance.create_default_type !== resolvedType;\n context.settings.governance.create_default_type = resolvedType;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_default_type\");\n return buildPolicyResult(context, key, context.settings.governance.create_default_type, changed);\n}\n\nasync function setGovernancePolicyConfig(\n context: ConfigExecutionContext,\n key: GovernancePolicyConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_ownership_enforcement\") {\n const nextPolicy = normalizeGovernanceOwnershipEnforcement(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.ownership_enforcement !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.ownership_enforcement = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_ownership_enforcement\");\n return buildPolicyResult(context, key, context.settings.governance.ownership_enforcement, changed);\n }\n if (key === \"governance_create_mode_default\") {\n const nextPolicy = normalizeGovernanceCreateModeDefault(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.create_mode_default !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.create_mode_default = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_create_mode_default\");\n return buildPolicyResult(context, key, context.settings.governance.create_mode_default, changed);\n }\n const nextPolicy = normalizeGovernanceCloseValidationDefault(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.close_validation_default !== nextPolicy;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.close_validation_default = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_close_validation_default\");\n return buildPolicyResult(context, key, context.settings.governance.close_validation_default, changed);\n}\n\nasync function setGovernanceValidationConfig(\n context: ConfigExecutionContext,\n key: GovernanceValidationConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_parent_reference_policy\") {\n const nextPolicy = normalizeParentReferencePolicy(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n hasGovernanceValidationMirrorChange(\n context.settings.governance.parent_reference,\n context.settings.validation.parent_reference,\n nextPolicy,\n );\n context.settings.governance.preset = \"custom\";\n context.settings.governance.parent_reference = nextPolicy;\n context.settings.validation.parent_reference = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_parent_reference_policy\");\n return buildPolicyResult(context, key, context.settings.governance.parent_reference, changed);\n }\n if (key === \"governance_metadata_validation_profile\") {\n const nextPolicy = normalizeValidateMetadataProfile(options.policy);\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n hasGovernanceValidationMirrorChange(\n context.settings.governance.metadata_profile,\n context.settings.validation.metadata_profile,\n nextPolicy,\n );\n context.settings.governance.preset = \"custom\";\n context.settings.governance.metadata_profile = nextPolicy;\n context.settings.validation.metadata_profile = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_metadata_validation_profile\");\n return buildPolicyResult(context, key, context.settings.governance.metadata_profile, changed);\n }\n const nextPolicy = normalizeGovernanceWorkflowEnforcement(options.policy);\n const changed = (context.settings.governance.workflow_enforcement ?? \"off\") !== nextPolicy;\n context.settings.governance.workflow_enforcement = nextPolicy;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_workflow_enforcement\");\n return buildPolicyResult(context, key, context.settings.governance.workflow_enforcement, changed);\n}\n\nasync function setGovernanceBooleanConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"governance_require_close_reason\") {\n const nextPolicy = normalizeGovernanceRequireCloseReasonPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = context.settings.governance.require_close_reason !== nextEnabled;\n context.settings.governance.require_close_reason = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_require_close_reason\");\n return buildPolicyResult(context, key, context.settings.governance.require_close_reason ? \"enabled\" : \"disabled\", changed);\n }\n const nextPolicy = normalizeGovernanceForceRequiredForStaleLockPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n context.settings.governance.preset !== \"custom\" ||\n context.settings.governance.force_required_for_stale_lock !== nextEnabled;\n context.settings.governance.preset = \"custom\";\n context.settings.governance.force_required_for_stale_lock = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:governance_force_required_for_stale_lock\");\n return buildPolicyResult(\n context,\n key,\n context.settings.governance.force_required_for_stale_lock ? \"enabled\" : \"disabled\",\n changed,\n );\n}\n\nasync function setTrackingConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (key === \"test_result_tracking\") {\n const nextPolicy = normalizeTestResultTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed = context.settings.testing.record_results_to_items !== nextEnabled;\n context.settings.testing.record_results_to_items = nextEnabled;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:test_result_tracking\");\n return buildPolicyResult(context, key, context.settings.testing.record_results_to_items ? \"enabled\" : \"disabled\", changed);\n }\n const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);\n const nextEnabled = nextPolicy === \"enabled\";\n const changed =\n context.settings.telemetry.enabled !== nextEnabled ||\n !context.settings.telemetry.first_run_prompt_completed;\n context.settings.telemetry.enabled = nextEnabled;\n context.settings.telemetry.first_run_prompt_completed = true;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:telemetry_tracking\");\n return buildPolicyResult(context, key, context.settings.telemetry.enabled ? \"enabled\" : \"disabled\", changed);\n}\n\nasync function setDefinitionOfDoneConfig(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n const nextCriteria = normalizeCriteria(options.criterion, options.clearCriteria);\n const changed =\n nextCriteria.length !== context.settings.workflow.definition_of_done.length ||\n nextCriteria.some((value, index) => value !== context.settings.workflow.definition_of_done[index]);\n context.settings.workflow.definition_of_done = nextCriteria;\n await writeConfigSettingsIfChanged(context, changed, \"config:set:definition_of_done\");\n return buildCriteriaResult(context, key, [...context.settings.workflow.definition_of_done], changed);\n}\n\nasync function setConfigValue(\n context: ConfigExecutionContext,\n key: ConfigKey,\n options: ConfigCommandOptions,\n): Promise<ConfigResult> {\n if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {\n throw new PmCliError(\"--clear-criteria is only supported with config set criteria-list keys\", EXIT_CODE.USAGE);\n }\n if (key === \"item_format\") {\n return setItemFormatConfig(context, options);\n }\n if (key === \"context\") {\n return applyContextConfig(context.settings, options, context.target, context.scope, context.warnings);\n }\n if (key === \"definition_of_done\") {\n return setDefinitionOfDoneConfig(context, key, options);\n }\n if (isCriteriaValueConfigKey(key)) {\n return setCriteriaConfig(context, key, options);\n }\n if (TRACKING_CONFIG_KEYS.has(key)) {\n return setTrackingConfig(context, key, options);\n }\n if (GOVERNANCE_BOOLEAN_CONFIG_KEYS.has(key)) {\n return setGovernanceBooleanConfig(context, key, options);\n }\n if (isGovernancePolicyConfigKey(key)) {\n return setGovernancePolicyConfig(context, key, options);\n }\n if (isGovernanceValidationConfigKey(key)) {\n return setGovernanceValidationConfig(context, key, options);\n }\n if (isGovernancePresetOrTypeConfigKey(key)) {\n return setGovernancePresetOrTypeConfig(context, key, options);\n }\n return setValidationConfig(context, key as ValidationConfigKey, options);\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 const nestedSetting =\n (action === \"get\" || action === \"set\") ? resolveNestedSettingDescriptor(keyValue) : undefined;\n const key = nestedSetting ? undefined : normalizeKeyForAction(action, keyValue);\n const routedOptions = 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 context: ConfigExecutionContext = {\n scope,\n target,\n settings,\n metadata,\n warnings: normalizeWarnings(settingsReadWarnings),\n };\n\n if (nestedSetting) {\n return buildNestedSettingResult(context, action, nestedSetting, routedOptions);\n }\n if (action === \"list\") {\n return buildConfigListResult(context);\n }\n if (action === \"export\") {\n return buildConfigExportResult(context);\n }\n\n assertConfigKeyDefined(key);\n return action === \"get\" ? buildConfigGetResult(context, key) : setConfigValue(context, key, routedOptions);\n}\n\nexport const _testOnlyConfigCommand = {\n hasGovernanceValidationMirrorChange,\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", "/**\n * @module cli/commands/upgrade\n *\n * Implements the pm upgrade command surface and its agent-facing runtime behavior.\n */\nimport { execFile } from \"node:child_process\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport {\n readManagedExtensionState,\n runExtension,\n type ExtensionScope,\n type ManagedExtensionRecord,\n type ManagedExtensionSource,\n} from \"./extension.js\";\nimport { resolveExtensionRoots } from \"../../core/extensions/loader.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { resolvePmRoot } from \"../../core/store/paths.js\";\nimport { resolvePmCliVersion } from \"../../core/packages/root.js\";\n\nconst execFileAsync = promisify(execFile);\nconst DEFAULT_CLI_PACKAGE = \"@unbrained/pm-cli\";\nconst DEFAULT_TAG = \"latest\";\n\n/**\n * Documents the upgrade command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpgradeCommandOptions {\n dryRun?: boolean;\n cliOnly?: boolean;\n packagesOnly?: boolean;\n project?: boolean;\n local?: boolean;\n global?: boolean;\n repair?: boolean;\n tag?: string;\n packageName?: string;\n commandRunner?: UpgradeCommandRunner;\n}\n\nexport const _testOnly = {\n defaultCommandRunner,\n isLocalNpmSpec,\n normalizeTarget,\n packageRecordMatchesTarget,\n resolveCliPackage,\n resolvePackageInstallSource,\n resolveRunnablePackageSource,\n resolveScope,\n resolveTag,\n packageCommandFor,\n summarize,\n};\n\n/**\n * Documents the upgrade command runner result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpgradeCommandRunnerResult {\n stdout: string;\n stderr: string;\n}\n\n/**\n * Restricts upgrade command runner values accepted by command, SDK, and storage contracts.\n */\nexport type UpgradeCommandRunner = (\n command: string,\n args: string[],\n options?: { cwd?: string },\n) => Promise<UpgradeCommandRunnerResult>;\n\n/**\n * Documents the upgrade cli result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpgradeCliResult {\n requested: boolean;\n status: \"planned\" | \"updated\" | \"failed\" | \"skipped\";\n package: string;\n target: string;\n command: string[];\n before_version?: string;\n after_version?: string;\n repair: boolean;\n reason?: string;\n error?: string;\n}\n\n/**\n * Documents the upgrade package result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpgradePackageResult {\n name: string;\n directory: string;\n scope: ExtensionScope;\n source: ManagedExtensionSource;\n status: \"planned\" | \"updated\" | \"failed\" | \"skipped\";\n command: string[];\n previous_version: string;\n installed_version?: string;\n reason?: string;\n error?: string;\n}\n\n/**\n * Documents the upgrade result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpgradeResult {\n ok: boolean;\n action: \"upgrade\";\n dry_run: boolean;\n scope: ExtensionScope;\n target?: string;\n cli: UpgradeCliResult;\n packages: UpgradePackageResult[];\n summary: {\n requested_cli: boolean;\n requested_packages: boolean;\n planned: number;\n updated: number;\n skipped: number;\n failed: number;\n };\n}\n\nfunction resolveScope(options: UpgradeCommandOptions): ExtensionScope {\n const projectLike = options.project === true || options.local === true;\n const global = options.global === true;\n if (projectLike && global) {\n throw new PmCliError('Options \"--project/--local\" and \"--global\" are mutually exclusive.', EXIT_CODE.USAGE);\n }\n return global ? \"global\" : \"project\";\n}\n\nfunction normalizeTarget(value: string): string {\n return value.trim().toLowerCase();\n}\n\nfunction packageRecordMatchesTarget(record: ManagedExtensionRecord, target: string): boolean {\n const normalizedTarget = normalizeTarget(target);\n const values = [\n record.name,\n record.directory,\n record.source.input,\n record.source.location,\n record.source.package,\n record.source.repository,\n record.source.owner && record.source.repo ? `${record.source.owner}/${record.source.repo}` : undefined,\n ];\n return values.some((value) => typeof value === \"string\" && normalizeTarget(value) === normalizedTarget);\n}\n\nfunction resolveRoots(scope: ExtensionScope, global: GlobalOptions): {\n selected_root: string;\n} {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const roots = resolveExtensionRoots(pmRoot, process.cwd());\n return {\n selected_root: scope === \"global\" ? roots.global : roots.project,\n };\n}\n\nasync function defaultCommandRunner(\n command: string,\n args: string[],\n options?: { cwd?: string },\n): Promise<UpgradeCommandRunnerResult> {\n try {\n const result = await execFileAsync(command, args, {\n cwd: options?.cwd,\n encoding: \"utf8\",\n });\n return {\n stdout: result.stdout,\n stderr: result.stderr,\n };\n } catch (error: unknown) {\n const stderr = typeof error === \"object\" && error !== null && \"stderr\" in error\n ? String((error as { stderr?: unknown }).stderr ?? \"\")\n : \"\";\n const message = stderr.trim().length > 0 ? stderr.trim() : error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Command failed: ${command} ${args.join(\" \")}\\n${message}`, EXIT_CODE.GENERIC_FAILURE);\n }\n}\n\nasync function readCurrentVersion(): Promise<string | undefined> {\n return resolvePmCliVersion(import.meta.url, [\"../../..\"]);\n}\n\nfunction resolveTag(options: UpgradeCommandOptions): string {\n return typeof options.tag === \"string\" && options.tag.trim().length > 0 ? options.tag.trim() : DEFAULT_TAG;\n}\n\nfunction resolveCliPackage(options: UpgradeCommandOptions): string {\n return typeof options.packageName === \"string\" && options.packageName.trim().length > 0\n ? options.packageName.trim()\n : DEFAULT_CLI_PACKAGE;\n}\n\nasync function upgradeCli(options: UpgradeCommandOptions, dryRun: boolean): Promise<UpgradeCliResult> {\n const runner = options.commandRunner ?? defaultCommandRunner;\n const packageName = resolveCliPackage(options);\n const tag = resolveTag(options);\n const target = `${packageName}@${tag}`;\n const command = [\"npm\", \"install\", \"-g\", target];\n if (options.repair === true) {\n command.push(\"--force\");\n }\n const beforeVersion = await readCurrentVersion();\n const planned: UpgradeCliResult = {\n requested: true,\n status: \"planned\",\n package: packageName,\n target,\n command,\n before_version: beforeVersion,\n repair: options.repair === true,\n };\n if (dryRun) {\n return planned;\n }\n try {\n await runner(command[0]!, command.slice(1));\n const verified = await runner(\"pm\", [\"--version\"]);\n return {\n ...planned,\n status: \"updated\",\n after_version: verified.stdout.trim() || undefined,\n };\n } catch (error: unknown) {\n return {\n ...planned,\n status: \"failed\",\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nfunction isLocalNpmSpec(spec: string): boolean {\n return path.isAbsolute(spec) || spec.startsWith(\".\") || spec.startsWith(\"..\") || spec.startsWith(\"file:\");\n}\n\nfunction resolvePackageInstallSource(source: ManagedExtensionSource, tag: string): string {\n if (source.kind === \"npm\") {\n const rawSpec = source.input.startsWith(\"npm:\") ? source.input.slice(\"npm:\".length).trim() : source.input.trim();\n if (!isLocalNpmSpec(rawSpec) && source.package && source.package.trim().length > 0) {\n return `npm:${source.package.trim()}@${tag}`;\n }\n return source.input.startsWith(\"npm:\") ? source.input : `npm:${source.input}`;\n }\n return source.input;\n}\n\nasync function resolveRunnablePackageSource(source: ManagedExtensionSource, tag: string): Promise<string> {\n const installSource = resolvePackageInstallSource(source, tag);\n if (source.kind !== \"local\") {\n return installSource;\n }\n if (await pathExists(installSource)) {\n return installSource;\n }\n if (await pathExists(source.location)) {\n return source.location;\n }\n return installSource;\n}\n\nfunction packageCommandFor(source: ManagedExtensionSource, installSource: string, scope: ExtensionScope, ref?: string): string[] {\n const command = [\"pm\", \"install\", installSource, scope === \"global\" ? \"--global\" : \"--project\"];\n if (source.kind === \"github\" && ref && ref.trim().length > 0) {\n command.push(\"--ref\", ref.trim());\n }\n return command;\n}\n\nasync function readManagedRecords(scope: ExtensionScope, global: GlobalOptions): Promise<ManagedExtensionRecord[]> {\n const roots = resolveRoots(scope, global);\n const managedState = await readManagedExtensionState(roots.selected_root);\n return managedState.state.entries.filter((entry) => entry.scope === scope);\n}\n\nasync function refreshManagedRecord(\n scope: ExtensionScope,\n global: GlobalOptions,\n record: ManagedExtensionRecord,\n): Promise<ManagedExtensionRecord | undefined> {\n const records = await readManagedRecords(scope, global);\n return records.find((candidate) => packageRecordMatchesTarget(candidate, record.name)) ??\n records.find((candidate) => normalizeTarget(candidate.directory) === normalizeTarget(record.directory));\n}\n\nasync function upgradePackageRecord(\n record: ManagedExtensionRecord,\n options: UpgradeCommandOptions,\n global: GlobalOptions,\n scope: ExtensionScope,\n dryRun: boolean,\n): Promise<UpgradePackageResult> {\n const tag = resolveTag(options);\n const installSource = await resolveRunnablePackageSource(record.source, tag);\n const command = packageCommandFor(record.source, installSource, scope, record.source.ref);\n const planned: UpgradePackageResult = {\n name: record.name,\n directory: record.directory,\n scope,\n source: record.source,\n status: \"planned\",\n command,\n previous_version: record.manifest_version,\n };\n if (dryRun) {\n return planned;\n }\n try {\n await runExtension(\n installSource,\n {\n install: true,\n project: scope === \"project\",\n global: scope === \"global\",\n ref: record.source.kind === \"github\" ? record.source.ref : undefined,\n },\n global,\n );\n const refreshed = await refreshManagedRecord(scope, global, record);\n return {\n ...planned,\n status: \"updated\",\n installed_version: refreshed?.manifest_version,\n };\n } catch (error: unknown) {\n return {\n ...planned,\n status: \"failed\",\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nfunction summarize(\n cli: UpgradeCliResult,\n packages: UpgradePackageResult[],\n includeCli: boolean,\n includePackages: boolean,\n): UpgradeResult[\"summary\"] {\n const statuses = [includeCli ? cli.status : undefined, ...packages.map((entry) => entry.status)].filter(\n (value): value is UpgradeCliResult[\"status\"] => typeof value === \"string\",\n );\n return {\n requested_cli: includeCli,\n requested_packages: includePackages,\n planned: statuses.filter((status) => status === \"planned\").length,\n updated: statuses.filter((status) => status === \"updated\").length,\n skipped: statuses.filter((status) => status === \"skipped\").length,\n failed: statuses.filter((status) => status === \"failed\").length,\n };\n}\n\n/**\n * Implements run upgrade for the public runtime surface of this module.\n */\nexport async function runUpgrade(\n target: string | undefined,\n options: UpgradeCommandOptions,\n global: GlobalOptions,\n): Promise<UpgradeResult> {\n if (options.cliOnly === true && options.packagesOnly === true) {\n throw new PmCliError('Options \"--cli-only\" and \"--packages-only\" are mutually exclusive.', EXIT_CODE.USAGE);\n }\n\n const scope = resolveScope(options);\n const dryRun = options.dryRun === true;\n const normalizedTarget = typeof target === \"string\" && target.trim().length > 0 ? target.trim() : undefined;\n if (options.cliOnly === true && normalizedTarget) {\n throw new PmCliError('A package target cannot be used with \"--cli-only\".', EXIT_CODE.USAGE);\n }\n const includeCli = options.packagesOnly === true || normalizedTarget ? false : true;\n const includePackages = options.cliOnly === true ? false : true;\n const cli = includeCli\n ? await upgradeCli(options, dryRun)\n : {\n requested: false,\n status: \"skipped\",\n package: resolveCliPackage(options),\n target: `${resolveCliPackage(options)}@${resolveTag(options)}`,\n command: [\"npm\", \"install\", \"-g\", `${resolveCliPackage(options)}@${resolveTag(options)}`],\n repair: options.repair === true,\n reason: \"not_requested\",\n } as UpgradeCliResult;\n\n let packageRecords = includePackages ? await readManagedRecords(scope, global) : [];\n if (normalizedTarget) {\n packageRecords = packageRecords.filter((entry) => packageRecordMatchesTarget(entry, normalizedTarget));\n if (packageRecords.length === 0) {\n throw new PmCliError(`Managed package \"${normalizedTarget}\" was not found in ${scope} scope.`, EXIT_CODE.NOT_FOUND);\n }\n }\n\n const packages: UpgradePackageResult[] = [];\n for (const record of packageRecords) {\n packages.push(await upgradePackageRecord(record, options, global, scope, dryRun));\n }\n\n const summary = summarize(cli, packages, includeCli, includePackages);\n return {\n ok: summary.failed === 0,\n action: \"upgrade\",\n dry_run: dryRun,\n scope,\n target: normalizedTarget,\n cli,\n packages,\n summary,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["global", "nextPolicy", "changed", "nextCriteria", "nextEnabled", "global"]
7
7
  }
@@ -1,11 +1,11 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="652b0f45-5bb7-52ea-967d-44b4e556bc1b")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="80e4cdd6-dd3f-5ce4-9549-330a2bc292cd")}catch(e){}}();
3
3
  import {
4
4
  resolveAuthor
5
5
  } from "./chunk-T5RRNDA7.js";
6
6
  import {
7
7
  readHistoryEntries
8
- } from "./chunk-IX5BXEMX.js";
8
+ } from "./chunk-6WCXSC5V.js";
9
9
  import {
10
10
  EMPTY_REPLAY_DOCUMENT,
11
11
  normalizeReplayPatchOps,
@@ -13,32 +13,26 @@ import {
13
13
  replayToCanonicalItemDocument,
14
14
  replayToItemDocument,
15
15
  toReplayDocument
16
- } from "./chunk-OGWQ2IEP.js";
16
+ } from "./chunk-IINCZYM3.js";
17
17
  import {
18
+ PmCliError,
18
19
  acquireLock,
19
20
  appendHistoryEntry,
21
+ canonicalDocument,
20
22
  createHistoryEntry,
21
23
  enforceHistoryStreamPolicyForItem,
24
+ getActiveExtensionRegistrations,
22
25
  locateItem,
23
- readLocatedItem
24
- } from "./chunk-ENGQOEUY.js";
25
- import {
26
- canonicalDocument,
27
26
  normalizeItemId,
28
27
  normalizeRawItemId,
29
- serializeItemDocument
30
- } from "./chunk-G24G7ZAV.js";
31
- import {
32
- nowIso
33
- } from "./chunk-3GCS5SKL.js";
34
- import {
35
- PmCliError,
36
- getActiveExtensionRegistrations,
28
+ nowIso,
37
29
  projectAfterCommandItemSnapshot,
30
+ readLocatedItem,
38
31
  readSettings,
39
32
  recordAfterCommandAffectedItem,
40
- runActiveOnWriteHooks
41
- } from "./chunk-E3SZTQ4K.js";
33
+ runActiveOnWriteHooks,
34
+ serializeItemDocument
35
+ } from "./chunk-NTOOEVJ4.js";
42
36
  import {
43
37
  EXIT_CODE,
44
38
  getHistoryPath,
@@ -49,7 +43,7 @@ import {
49
43
  resolveItemTypeRegistry,
50
44
  resolvePmRoot,
51
45
  writeFileAtomic
52
- } from "./chunk-57NWPFF2.js";
46
+ } from "./chunk-MFLLULHU.js";
53
47
 
54
48
  // dist/cli/commands/restore.js
55
49
  import jsonPatch from "fast-json-patch";
@@ -421,6 +415,6 @@ export {
421
415
  runRestore,
422
416
  _testOnlyRestoreCommand
423
417
  };
424
- //# sourceMappingURL=chunk-YN7Y6DQZ.js.map
418
+ //# sourceMappingURL=chunk-PAWPLIWW.js.map
425
419
 
426
- //# debugId=652b0f45-5bb7-52ea-967d-44b4e556bc1b
420
+ //# debugId=80e4cdd6-dd3f-5ce4-9549-330a2bc292cd