@unbrained/pm-cli 2026.7.5 → 2026.7.6

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 (825) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cli-bundle/chunks/activity-WJCGCYPU.js +18 -0
  3. package/dist/cli-bundle/chunks/activity-Z6QUAUSG.js +22 -0
  4. package/dist/cli-bundle/chunks/aggregate-BDM6EIAR.js +25 -0
  5. package/dist/cli-bundle/chunks/aggregate-VQ2DHU3S.js +21 -0
  6. package/dist/cli-bundle/chunks/append-BGML6VLD.js +19 -0
  7. package/dist/cli-bundle/chunks/append-RKJYPU74.js +15 -0
  8. package/dist/cli-bundle/chunks/chunk-22KBU3MW.js +57 -0
  9. package/dist/cli-bundle/chunks/chunk-24YG75HI.js +634 -0
  10. package/dist/cli-bundle/chunks/chunk-2XG4IZON.js +218 -0
  11. package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js +228 -0
  12. package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js +2330 -0
  13. package/dist/cli-bundle/chunks/chunk-3N6RRO2Q.js +808 -0
  14. package/dist/cli-bundle/chunks/chunk-3N6RRO2Q.js.map +7 -0
  15. package/dist/cli-bundle/chunks/chunk-3UJRFJ5R.js +1573 -0
  16. package/dist/cli-bundle/chunks/chunk-3VHSI5FL.js +1001 -0
  17. package/dist/cli-bundle/chunks/chunk-425E4QL5.js +278 -0
  18. package/dist/cli-bundle/chunks/chunk-425E4QL5.js.map +7 -0
  19. package/dist/cli-bundle/chunks/chunk-45FYNUFJ.js +38 -0
  20. package/dist/cli-bundle/chunks/chunk-45FYNUFJ.js.map +1 -0
  21. package/dist/cli-bundle/chunks/chunk-46CUF5L6.js +1018 -0
  22. package/dist/cli-bundle/chunks/chunk-4CJFCTLM.js +222 -0
  23. package/dist/cli-bundle/chunks/chunk-4CJFCTLM.js.map +1 -0
  24. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js +249 -0
  25. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js.map +7 -0
  26. package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js +819 -0
  27. package/dist/cli-bundle/chunks/chunk-4LELACOL.js +391 -0
  28. package/dist/cli-bundle/chunks/chunk-4LELACOL.js.map +1 -0
  29. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js +279 -0
  30. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js.map +1 -0
  31. package/dist/cli-bundle/chunks/chunk-4ZBE5GUN.js +184 -0
  32. package/dist/cli-bundle/chunks/chunk-4ZBE5GUN.js.map +7 -0
  33. package/dist/cli-bundle/chunks/chunk-57NWPFF2.js +5640 -0
  34. package/dist/cli-bundle/chunks/chunk-57NWPFF2.js.map +1 -0
  35. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js +268 -0
  36. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js.map +1 -0
  37. package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js +508 -0
  38. package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js.map +1 -0
  39. package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js +1868 -0
  40. package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js +1749 -0
  41. package/dist/cli-bundle/chunks/chunk-64YKRTSV.js +1961 -0
  42. package/dist/cli-bundle/chunks/chunk-6LLVNJXT.js +429 -0
  43. package/dist/cli-bundle/chunks/chunk-6QBJLYBP.js +120 -0
  44. package/dist/cli-bundle/chunks/chunk-6QBJLYBP.js.map +1 -0
  45. package/dist/cli-bundle/chunks/chunk-7D7OOEYG.js +278 -0
  46. package/dist/cli-bundle/chunks/chunk-7D7OOEYG.js.map +7 -0
  47. package/dist/cli-bundle/chunks/chunk-7DT4WSH2.js +60 -0
  48. package/dist/cli-bundle/chunks/chunk-7WBAJSS6.js +102 -0
  49. package/dist/cli-bundle/chunks/chunk-AGHMOTGM.js +150 -0
  50. package/dist/cli-bundle/chunks/chunk-ALFPSEWO.js +112 -0
  51. package/dist/cli-bundle/chunks/chunk-AZYGZGGI.js +361 -0
  52. package/dist/cli-bundle/chunks/chunk-B6DUFX6H.js +1413 -0
  53. package/dist/cli-bundle/chunks/chunk-B6XS3R3O.js +275 -0
  54. package/dist/cli-bundle/chunks/chunk-B6XS3R3O.js.map +1 -0
  55. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js +421 -0
  56. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js.map +1 -0
  57. package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js +1985 -0
  58. package/dist/cli-bundle/chunks/chunk-CFB33L7W.js +398 -0
  59. package/dist/cli-bundle/chunks/chunk-CFNGIXZP.js +784 -0
  60. package/dist/cli-bundle/chunks/chunk-CFNGIXZP.js.map +1 -0
  61. package/dist/cli-bundle/chunks/chunk-CL36D4PC.js +225 -0
  62. package/dist/cli-bundle/chunks/chunk-COSPOP7H.js +6677 -0
  63. package/dist/cli-bundle/chunks/chunk-COSPOP7H.js.map +7 -0
  64. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js +3461 -0
  65. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js.map +7 -0
  66. package/dist/cli-bundle/chunks/chunk-CRVYGJUI.js +553 -0
  67. package/dist/cli-bundle/chunks/chunk-CRVYGJUI.js.map +1 -0
  68. package/dist/cli-bundle/chunks/chunk-D2XRLB55.js +645 -0
  69. package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js +1858 -0
  70. package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js +1063 -0
  71. package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js.map +1 -0
  72. package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js +1932 -0
  73. package/dist/cli-bundle/chunks/chunk-E42XTBSP.js +1359 -0
  74. package/dist/cli-bundle/chunks/chunk-E42XTBSP.js.map +7 -0
  75. package/dist/cli-bundle/chunks/chunk-EBRZZ54H.js +655 -0
  76. package/dist/cli-bundle/chunks/chunk-EBRZZ54H.js.map +1 -0
  77. package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js +4712 -0
  78. package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js.map +1 -0
  79. package/dist/cli-bundle/chunks/chunk-EGY6JBQ3.js +160 -0
  80. package/dist/cli-bundle/chunks/chunk-EKFNL33R.js +222 -0
  81. package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js +1704 -0
  82. package/dist/cli-bundle/chunks/chunk-EOKXK3R3.js +2046 -0
  83. package/dist/cli-bundle/chunks/chunk-F3K4JGFD.js +121 -0
  84. package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js +231 -0
  85. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js +2090 -0
  86. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js.map +1 -0
  87. package/dist/cli-bundle/chunks/chunk-FT3QTERD.js +550 -0
  88. package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js +1570 -0
  89. package/dist/cli-bundle/chunks/chunk-G64OCSKU.js +444 -0
  90. package/dist/cli-bundle/chunks/chunk-GANUTS7W.js +1775 -0
  91. package/dist/cli-bundle/chunks/chunk-GBAX2ZAQ.js +401 -0
  92. package/dist/cli-bundle/chunks/chunk-GDDAGPWJ.js +105 -0
  93. package/dist/cli-bundle/chunks/chunk-GDDAGPWJ.js.map +1 -0
  94. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js +239 -0
  95. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js.map +1 -0
  96. package/dist/cli-bundle/chunks/chunk-GJ7QC5DJ.js +624 -0
  97. package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js +530 -0
  98. package/dist/cli-bundle/chunks/chunk-GZRDYONU.js +1005 -0
  99. package/dist/cli-bundle/chunks/chunk-HFDADVJZ.js +1356 -0
  100. package/dist/cli-bundle/chunks/chunk-HFDADVJZ.js.map +1 -0
  101. package/dist/cli-bundle/chunks/chunk-HIHMT6WS.js +41 -0
  102. package/dist/cli-bundle/chunks/chunk-HIHMT6WS.js.map +7 -0
  103. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js +277 -0
  104. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js.map +7 -0
  105. package/dist/cli-bundle/chunks/chunk-HOVCGJSD.js +293 -0
  106. package/dist/cli-bundle/chunks/chunk-HOVCGJSD.js.map +1 -0
  107. package/dist/cli-bundle/chunks/chunk-I36Y7PCE.js +38 -0
  108. package/dist/cli-bundle/chunks/chunk-I36Y7PCE.js.map +1 -0
  109. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js +309 -0
  110. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js.map +7 -0
  111. package/dist/cli-bundle/chunks/chunk-IWVU4C2F.js +358 -0
  112. package/dist/cli-bundle/chunks/chunk-IX5BXEMX.js +267 -0
  113. package/dist/cli-bundle/chunks/chunk-JDDLOQAE.js +265 -0
  114. package/dist/cli-bundle/chunks/chunk-JJP45OEI.js +119 -0
  115. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js +2257 -0
  116. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js.map +7 -0
  117. package/dist/cli-bundle/chunks/chunk-JVH7QBVV.js +24 -0
  118. package/dist/cli-bundle/chunks/chunk-JVH7QBVV.js.map +1 -0
  119. package/dist/cli-bundle/chunks/chunk-K46RF36U.js +207 -0
  120. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js +371 -0
  121. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js.map +7 -0
  122. package/dist/cli-bundle/chunks/chunk-KGFUY7WN.js +814 -0
  123. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js +76 -0
  124. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js.map +1 -0
  125. package/dist/cli-bundle/chunks/chunk-KUOOJR35.js +260 -0
  126. package/dist/cli-bundle/chunks/chunk-L5PSPMZ4.js +277 -0
  127. package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js +5799 -0
  128. package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js.map +7 -0
  129. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js +140 -0
  130. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js.map +1 -0
  131. package/dist/cli-bundle/chunks/chunk-LPSSSDJR.js +1239 -0
  132. package/dist/cli-bundle/chunks/chunk-M7JNBQAD.js +225 -0
  133. package/dist/cli-bundle/chunks/chunk-M7JNBQAD.js.map +7 -0
  134. package/dist/cli-bundle/chunks/chunk-MA4SM3QZ.js +655 -0
  135. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js +1601 -0
  136. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js.map +1 -0
  137. package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js +1031 -0
  138. package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js +995 -0
  139. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js +296 -0
  140. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js.map +1 -0
  141. package/dist/cli-bundle/chunks/chunk-MLIYFOE7.js +357 -0
  142. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js +2043 -0
  143. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js.map +7 -0
  144. package/dist/cli-bundle/chunks/chunk-MUH7A3FD.js +61 -0
  145. package/dist/cli-bundle/chunks/chunk-MVSP7WGJ.js +108 -0
  146. package/dist/cli-bundle/chunks/chunk-MVSP7WGJ.js.map +7 -0
  147. package/dist/cli-bundle/chunks/chunk-MVYWGY2A.js +262 -0
  148. package/dist/cli-bundle/chunks/chunk-MWMVPCIE.js +1423 -0
  149. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js +2033 -0
  150. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js.map +1 -0
  151. package/dist/cli-bundle/chunks/chunk-N745W3B3.js +1604 -0
  152. package/dist/cli-bundle/chunks/chunk-N745W3B3.js.map +7 -0
  153. package/dist/cli-bundle/chunks/chunk-NB7RLQFW.js +57 -0
  154. package/dist/cli-bundle/chunks/chunk-NB7RLQFW.js.map +7 -0
  155. package/dist/cli-bundle/chunks/chunk-NC33K5ZS.js +123 -0
  156. package/dist/cli-bundle/chunks/chunk-NC33K5ZS.js.map +7 -0
  157. package/dist/cli-bundle/chunks/chunk-NGXQ3PFT.js +263 -0
  158. package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js +1615 -0
  159. package/dist/cli-bundle/chunks/chunk-NO442GWJ.js +41 -0
  160. package/dist/cli-bundle/chunks/chunk-NO442GWJ.js.map +7 -0
  161. package/dist/cli-bundle/chunks/chunk-NZEHECMW.js +658 -0
  162. package/dist/cli-bundle/chunks/chunk-NZEHECMW.js.map +7 -0
  163. package/dist/cli-bundle/chunks/chunk-O6AWCQRQ.js +124 -0
  164. package/dist/cli-bundle/chunks/chunk-OGWQ2IEP.js +240 -0
  165. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js +143 -0
  166. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js.map +7 -0
  167. package/dist/cli-bundle/chunks/chunk-QLMX7SRD.js +210 -0
  168. package/dist/cli-bundle/chunks/chunk-QX6HM775.js +398 -0
  169. package/dist/cli-bundle/chunks/chunk-QX6HM775.js.map +7 -0
  170. package/dist/cli-bundle/chunks/chunk-R5BMJX33.js +27 -0
  171. package/dist/cli-bundle/chunks/chunk-R5BMJX33.js.map +7 -0
  172. package/dist/cli-bundle/chunks/chunk-RCQZK2GO.js +296 -0
  173. package/dist/cli-bundle/chunks/chunk-RCQZK2GO.js.map +7 -0
  174. package/dist/cli-bundle/chunks/chunk-RFNYTESG.js +520 -0
  175. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js +79 -0
  176. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js.map +7 -0
  177. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js +282 -0
  178. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js.map +7 -0
  179. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js +274 -0
  180. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js.map +1 -0
  181. package/dist/cli-bundle/chunks/chunk-SCUR7K7N.js +2198 -0
  182. package/dist/cli-bundle/chunks/chunk-SGMFPXKR.js +68 -0
  183. package/dist/cli-bundle/chunks/chunk-SGMFPXKR.js.map +1 -0
  184. package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js +1977 -0
  185. package/dist/cli-bundle/chunks/chunk-SMB7RV23.js +130 -0
  186. package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js +1041 -0
  187. package/dist/cli-bundle/chunks/chunk-SQOIV3OQ.js +563 -0
  188. package/dist/cli-bundle/chunks/chunk-SQOIV3OQ.js.map +7 -0
  189. package/dist/cli-bundle/chunks/chunk-SQYJ4HF2.js +1765 -0
  190. package/dist/cli-bundle/chunks/chunk-T42JWV3F.js +822 -0
  191. package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js +6567 -0
  192. package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js.map +1 -0
  193. package/dist/cli-bundle/chunks/chunk-TULGS6X6.js +2132 -0
  194. package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js +2306 -0
  195. package/dist/cli-bundle/chunks/chunk-UH7T2DAX.js +181 -0
  196. package/dist/cli-bundle/chunks/chunk-UH7T2DAX.js.map +1 -0
  197. package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js +4773 -0
  198. package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js.map +7 -0
  199. package/dist/cli-bundle/chunks/chunk-VPIM42PC.js +367 -0
  200. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js +368 -0
  201. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js.map +1 -0
  202. package/dist/cli-bundle/chunks/chunk-W3DSJQIO.js +447 -0
  203. package/dist/cli-bundle/chunks/chunk-W572BIEB.js +1249 -0
  204. package/dist/cli-bundle/chunks/chunk-W6DYWXPQ.js +1073 -0
  205. package/dist/cli-bundle/chunks/chunk-W6DYWXPQ.js.map +7 -0
  206. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js +3423 -0
  207. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js.map +1 -0
  208. package/dist/cli-bundle/chunks/chunk-WLSM645P.js +2247 -0
  209. package/dist/cli-bundle/chunks/chunk-WLSM645P.js.map +1 -0
  210. package/dist/cli-bundle/chunks/chunk-WRTENIX3.js +215 -0
  211. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js +388 -0
  212. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js.map +1 -0
  213. package/dist/cli-bundle/chunks/chunk-XB7KFVFI.js +533 -0
  214. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js +306 -0
  215. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js.map +1 -0
  216. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js +424 -0
  217. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js.map +7 -0
  218. package/dist/cli-bundle/chunks/chunk-XG625QP4.js +58 -0
  219. package/dist/cli-bundle/chunks/chunk-XHET7YUZ.js +71 -0
  220. package/dist/cli-bundle/chunks/chunk-XHET7YUZ.js.map +7 -0
  221. package/dist/cli-bundle/chunks/chunk-XUC7PI2H.js +243 -0
  222. package/dist/cli-bundle/chunks/chunk-Y46GD4IX.js +116 -0
  223. package/dist/cli-bundle/chunks/chunk-Y4M7CPQP.js +804 -0
  224. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js +2128 -0
  225. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js.map +7 -0
  226. package/dist/cli-bundle/chunks/chunk-YN7Y6DQZ.js +426 -0
  227. package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js +511 -0
  228. package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js.map +7 -0
  229. package/dist/cli-bundle/chunks/chunk-ZGK4L4JM.js +133 -0
  230. package/dist/cli-bundle/chunks/chunk-ZJ262CED.js +394 -0
  231. package/dist/cli-bundle/chunks/chunk-ZJ262CED.js.map +7 -0
  232. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js +299 -0
  233. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js.map +7 -0
  234. package/dist/cli-bundle/chunks/chunk-ZSUS2OD3.js +2105 -0
  235. package/dist/cli-bundle/chunks/chunk-ZWBEPGD7.js +54 -0
  236. package/dist/cli-bundle/chunks/chunk-ZWBEPGD7.js.map +1 -0
  237. package/dist/cli-bundle/chunks/chunk-ZZD4J5XY.js +1570 -0
  238. package/dist/cli-bundle/chunks/claim-RFS7BROJ.js +19 -0
  239. package/dist/cli-bundle/chunks/claim-XP5AWZ5H.js +23 -0
  240. package/dist/cli-bundle/chunks/close-2SSSHHUZ.js +20 -0
  241. package/dist/cli-bundle/chunks/close-GEANHQ2J.js +16 -0
  242. package/dist/cli-bundle/chunks/close-many-CMZW7ITN.js +31 -0
  243. package/dist/cli-bundle/chunks/close-many-ZFDIG6M7.js +27 -0
  244. package/dist/cli-bundle/chunks/comments-MFSYVNNU.js +21 -0
  245. package/dist/cli-bundle/chunks/comments-XUBPXDYX.js +17 -0
  246. package/dist/cli-bundle/chunks/config-D7XQMONX.js +18 -0
  247. package/dist/cli-bundle/chunks/config-T4FHBSYN.js +22 -0
  248. package/dist/cli-bundle/chunks/context-DIU275XI.js +48 -0
  249. package/dist/cli-bundle/chunks/context-JCOYB4LZ.js +44 -0
  250. package/dist/cli-bundle/chunks/contracts-BVO7CSLK.js +12 -0
  251. package/dist/cli-bundle/chunks/contracts-NYPEW2G4.js +16 -0
  252. package/dist/cli-bundle/chunks/copy-32ROBIDL.js +17 -0
  253. package/dist/cli-bundle/chunks/copy-NAGLGMHZ.js +13 -0
  254. package/dist/cli-bundle/chunks/create-4V7SWNBB.js +30 -0
  255. package/dist/cli-bundle/chunks/create-E77SDCUP.js +34 -0
  256. package/dist/cli-bundle/chunks/delete-NQI5OSKN.js +14 -0
  257. package/dist/cli-bundle/chunks/delete-RA5KTCLB.js +18 -0
  258. package/dist/cli-bundle/chunks/deps-32SU7HO5.js +21 -0
  259. package/dist/cli-bundle/chunks/deps-T7SCWXEX.js +17 -0
  260. package/dist/cli-bundle/chunks/docs-RRUPT7O2.js +22 -0
  261. package/dist/cli-bundle/chunks/docs-WL2IWGWV.js +18 -0
  262. package/dist/cli-bundle/chunks/eval-NF2J5SHR.js +23 -0
  263. package/dist/cli-bundle/chunks/eval-SKDT3MZU.js +27 -0
  264. package/dist/cli-bundle/chunks/extension-LAXKCAYE.js +42 -0
  265. package/dist/cli-bundle/chunks/extension-LAXKCAYE.js.map +1 -0
  266. package/dist/cli-bundle/chunks/extension-ZISPBRBC.js +38 -0
  267. package/dist/cli-bundle/chunks/extension-ZISPBRBC.js.map +7 -0
  268. package/dist/cli-bundle/chunks/files-EWRQHGIS.js +22 -0
  269. package/dist/cli-bundle/chunks/files-EWRQHGIS.js.map +7 -0
  270. package/dist/cli-bundle/chunks/files-PYKR2UUG.js +26 -0
  271. package/dist/cli-bundle/chunks/files-PYKR2UUG.js.map +1 -0
  272. package/dist/cli-bundle/chunks/focus-4T7TM4MT.js +18 -0
  273. package/dist/cli-bundle/chunks/focus-4T7TM4MT.js.map +1 -0
  274. package/dist/cli-bundle/chunks/focus-L3YUASOD.js +14 -0
  275. package/dist/cli-bundle/chunks/focus-L3YUASOD.js.map +7 -0
  276. package/dist/cli-bundle/chunks/gc-2DNMPXMC.js +16 -0
  277. package/dist/cli-bundle/chunks/gc-2DNMPXMC.js.map +1 -0
  278. package/dist/cli-bundle/chunks/gc-2PCTYYRI.js +12 -0
  279. package/dist/cli-bundle/chunks/gc-2PCTYYRI.js.map +7 -0
  280. package/dist/cli-bundle/chunks/get-7DMITJ3G.js +23 -0
  281. package/dist/cli-bundle/chunks/get-7DMITJ3G.js.map +1 -0
  282. package/dist/cli-bundle/chunks/get-VKQXCXLL.js +19 -0
  283. package/dist/cli-bundle/chunks/get-VKQXCXLL.js.map +7 -0
  284. package/dist/cli-bundle/chunks/health-CVSTAR2F.js +31 -0
  285. package/dist/cli-bundle/chunks/health-CVSTAR2F.js.map +7 -0
  286. package/dist/cli-bundle/chunks/health-TV3GKTFN.js +35 -0
  287. package/dist/cli-bundle/chunks/health-TV3GKTFN.js.map +1 -0
  288. package/dist/cli-bundle/chunks/history-D4JUX5XV.js +20 -0
  289. package/dist/cli-bundle/chunks/history-D4JUX5XV.js.map +7 -0
  290. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js +24 -0
  291. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js.map +1 -0
  292. package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js +29 -0
  293. package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js.map +1 -0
  294. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js +25 -0
  295. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js.map +7 -0
  296. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js +21 -0
  297. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js.map +7 -0
  298. package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js +25 -0
  299. package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js.map +1 -0
  300. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js +23 -0
  301. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js.map +7 -0
  302. package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js +27 -0
  303. package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js.map +1 -0
  304. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js +30 -0
  305. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js.map +1 -0
  306. package/dist/cli-bundle/chunks/init-J3DPGWQI.js +26 -0
  307. package/dist/cli-bundle/chunks/init-J3DPGWQI.js.map +7 -0
  308. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js +21 -0
  309. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js.map +1 -0
  310. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js +17 -0
  311. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js.map +7 -0
  312. package/dist/cli-bundle/chunks/list-O5NZVSPN.js +36 -0
  313. package/dist/cli-bundle/chunks/list-O5NZVSPN.js.map +1 -0
  314. package/dist/cli-bundle/chunks/list-Z55YCNTC.js +32 -0
  315. package/dist/cli-bundle/chunks/list-Z55YCNTC.js.map +7 -0
  316. package/dist/cli-bundle/chunks/next-GBNTGXFC.js +28 -0
  317. package/dist/cli-bundle/chunks/next-GBNTGXFC.js.map +7 -0
  318. package/dist/cli-bundle/chunks/next-QKW7PTKE.js +32 -0
  319. package/dist/cli-bundle/chunks/next-QKW7PTKE.js.map +1 -0
  320. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js +17 -0
  321. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js.map +7 -0
  322. package/dist/cli-bundle/chunks/notes-WCGIULVG.js +21 -0
  323. package/dist/cli-bundle/chunks/notes-WCGIULVG.js.map +1 -0
  324. package/dist/cli-bundle/chunks/plan-ADISFYH4.js +29 -0
  325. package/dist/cli-bundle/chunks/plan-ADISFYH4.js.map +7 -0
  326. package/dist/cli-bundle/chunks/plan-CHVE7PBR.js +33 -0
  327. package/dist/cli-bundle/chunks/plan-CHVE7PBR.js.map +1 -0
  328. package/dist/cli-bundle/chunks/profile-LD23PSI6.js +37 -0
  329. package/dist/cli-bundle/chunks/profile-LD23PSI6.js.map +7 -0
  330. package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js +41 -0
  331. package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js.map +1 -0
  332. package/dist/cli-bundle/chunks/register-list-query-B42JCCOI.js +409 -0
  333. package/dist/cli-bundle/chunks/register-list-query-OEYQHFXO.js +419 -0
  334. package/dist/cli-bundle/chunks/register-mutation-3QXIHCQG.js +1273 -0
  335. package/dist/cli-bundle/chunks/register-mutation-IAEST26S.js +1256 -0
  336. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js +19 -0
  337. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js.map +7 -0
  338. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js +23 -0
  339. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js.map +1 -0
  340. package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js +324 -0
  341. package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js.map +7 -0
  342. package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js +321 -0
  343. package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js.map +1 -0
  344. package/dist/cli-bundle/chunks/restore-5RQHAPMA.js +23 -0
  345. package/dist/cli-bundle/chunks/restore-5RQHAPMA.js.map +1 -0
  346. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js +19 -0
  347. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js.map +7 -0
  348. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js +29 -0
  349. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js.map +1 -0
  350. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js +25 -0
  351. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js.map +7 -0
  352. package/dist/cli-bundle/chunks/schema-245WW4G2.js +78 -0
  353. package/dist/cli-bundle/chunks/schema-245WW4G2.js.map +1 -0
  354. package/dist/cli-bundle/chunks/schema-HBORFC6B.js +74 -0
  355. package/dist/cli-bundle/chunks/schema-HBORFC6B.js.map +7 -0
  356. package/dist/cli-bundle/chunks/search-AOZC5SIK.js +34 -0
  357. package/dist/cli-bundle/chunks/search-AOZC5SIK.js.map +7 -0
  358. package/dist/cli-bundle/chunks/search-DRXPGHD7.js +38 -0
  359. package/dist/cli-bundle/chunks/search-DRXPGHD7.js.map +1 -0
  360. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js +21 -0
  361. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js.map +1 -0
  362. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js +17 -0
  363. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js.map +7 -0
  364. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js +14 -0
  365. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js.map +7 -0
  366. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js +18 -0
  367. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js.map +1 -0
  368. package/dist/cli-bundle/chunks/test-6CMOCWUC.js +39 -0
  369. package/dist/cli-bundle/chunks/test-6CMOCWUC.js.map +7 -0
  370. package/dist/cli-bundle/chunks/test-RI7XHBZL.js +43 -0
  371. package/dist/cli-bundle/chunks/test-RI7XHBZL.js.map +1 -0
  372. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js +29 -0
  373. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js.map +7 -0
  374. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js +33 -0
  375. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js.map +1 -0
  376. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js +28 -0
  377. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js.map +1 -0
  378. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js +24 -0
  379. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js.map +7 -0
  380. package/dist/cli-bundle/chunks/update-QVJDFEAP.js +30 -0
  381. package/dist/cli-bundle/chunks/update-QVJDFEAP.js.map +1 -0
  382. package/dist/cli-bundle/chunks/update-VQVHAY6X.js +26 -0
  383. package/dist/cli-bundle/chunks/update-VQVHAY6X.js.map +7 -0
  384. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js +37 -0
  385. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js.map +7 -0
  386. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js +41 -0
  387. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js.map +1 -0
  388. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js +24 -0
  389. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js.map +7 -0
  390. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js +28 -0
  391. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js.map +1 -0
  392. package/dist/cli-bundle/chunks/validate-4NTXSB62.js +36 -0
  393. package/dist/cli-bundle/chunks/validate-4NTXSB62.js.map +1 -0
  394. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js +32 -0
  395. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js.map +7 -0
  396. package/dist/cli-bundle/main.js +16 -16
  397. package/dist/cli-bundle/sdk-runtime.js +88 -28
  398. package/dist/cli-bundle/sdk-testing.js +6 -6
  399. package/dist/cli-bundle/sdk.js +92 -49
  400. package/dist/cli-bundle/sdk.js.map +2 -2
  401. package/dist/mcp/server.d.ts +22 -50
  402. package/dist/mcp/server.js +62 -916
  403. package/dist/mcp/server.js.map +1 -1
  404. package/dist/sdk/index.d.ts +4 -2
  405. package/dist/sdk/index.js +4 -4
  406. package/dist/sdk/index.js.map +1 -1
  407. package/dist/sdk/runtime.d.ts +168 -4
  408. package/dist/sdk/runtime.js +1149 -25
  409. package/dist/sdk/runtime.js.map +1 -1
  410. package/dist/sdk/workspace-contracts-cache.d.ts +17 -0
  411. package/dist/sdk/workspace-contracts-cache.js +36 -0
  412. package/dist/sdk/workspace-contracts-cache.js.map +1 -0
  413. package/docs/RELEASING.md +3 -1
  414. package/docs/SDK.md +46 -0
  415. package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +16 -2
  416. package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +16 -1
  417. package/package.json +1 -1
  418. package/dist/cli-bundle/chunks/activity-4XQIDNM5.js +0 -18
  419. package/dist/cli-bundle/chunks/activity-YKAKZTZ4.js +0 -22
  420. package/dist/cli-bundle/chunks/aggregate-EQX2RGB7.js +0 -375
  421. package/dist/cli-bundle/chunks/aggregate-EQX2RGB7.js.map +0 -7
  422. package/dist/cli-bundle/chunks/aggregate-PEGZGJXD.js +0 -372
  423. package/dist/cli-bundle/chunks/aggregate-PEGZGJXD.js.map +0 -1
  424. package/dist/cli-bundle/chunks/append-CZGUZ45Q.js +0 -73
  425. package/dist/cli-bundle/chunks/append-CZGUZ45Q.js.map +0 -7
  426. package/dist/cli-bundle/chunks/append-NSQBCXZJ.js +0 -70
  427. package/dist/cli-bundle/chunks/append-NSQBCXZJ.js.map +0 -1
  428. package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js +0 -1413
  429. package/dist/cli-bundle/chunks/chunk-3PL6LEKP.js +0 -1961
  430. package/dist/cli-bundle/chunks/chunk-3U3VEWK6.js +0 -1749
  431. package/dist/cli-bundle/chunks/chunk-3Y4OESPP.js +0 -277
  432. package/dist/cli-bundle/chunks/chunk-4LRVSBO6.js +0 -822
  433. package/dist/cli-bundle/chunks/chunk-4OFLJHX6.js +0 -356
  434. package/dist/cli-bundle/chunks/chunk-4QQ6PM7M.js +0 -1249
  435. package/dist/cli-bundle/chunks/chunk-53BTLLAF.js +0 -2181
  436. package/dist/cli-bundle/chunks/chunk-53BTLLAF.js.map +0 -1
  437. package/dist/cli-bundle/chunks/chunk-57C2RLW5.js +0 -1704
  438. package/dist/cli-bundle/chunks/chunk-5B3X4Y22.js +0 -2330
  439. package/dist/cli-bundle/chunks/chunk-5J2XPTAD.js +0 -225
  440. package/dist/cli-bundle/chunks/chunk-5JE6SMYS.js +0 -262
  441. package/dist/cli-bundle/chunks/chunk-5JZ7APJU.js +0 -995
  442. package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js +0 -5789
  443. package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js.map +0 -7
  444. package/dist/cli-bundle/chunks/chunk-75U6M5ZD.js +0 -819
  445. package/dist/cli-bundle/chunks/chunk-7EQNAZX2.js +0 -1018
  446. package/dist/cli-bundle/chunks/chunk-7MDXZAZS.js +0 -102
  447. package/dist/cli-bundle/chunks/chunk-7QH7DHUB.js +0 -2046
  448. package/dist/cli-bundle/chunks/chunk-7WYXBPYQ.js +0 -358
  449. package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js +0 -150
  450. package/dist/cli-bundle/chunks/chunk-ABRA3BHY.js +0 -429
  451. package/dist/cli-bundle/chunks/chunk-BFVHCAOO.js +0 -240
  452. package/dist/cli-bundle/chunks/chunk-BVEUCSH2.js +0 -530
  453. package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js +0 -160
  454. package/dist/cli-bundle/chunks/chunk-D3UCE7RW.js +0 -243
  455. package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js +0 -275
  456. package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js.map +0 -7
  457. package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js +0 -634
  458. package/dist/cli-bundle/chunks/chunk-DRBV5UC2.js +0 -231
  459. package/dist/cli-bundle/chunks/chunk-E2FUG6GD.js +0 -2184
  460. package/dist/cli-bundle/chunks/chunk-E2FUG6GD.js.map +0 -7
  461. package/dist/cli-bundle/chunks/chunk-EEY54JMF.js +0 -60
  462. package/dist/cli-bundle/chunks/chunk-EZFKWSC7.js +0 -1615
  463. package/dist/cli-bundle/chunks/chunk-FDBARR33.js +0 -655
  464. package/dist/cli-bundle/chunks/chunk-FGQKEDE4.js +0 -447
  465. package/dist/cli-bundle/chunks/chunk-FJRKQREY.js +0 -228
  466. package/dist/cli-bundle/chunks/chunk-FUM6UMY4.js +0 -804
  467. package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js +0 -3237
  468. package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js.map +0 -7
  469. package/dist/cli-bundle/chunks/chunk-HBYZDSK5.js +0 -426
  470. package/dist/cli-bundle/chunks/chunk-HJE4JTKQ.js +0 -124
  471. package/dist/cli-bundle/chunks/chunk-HK72NWAD.js +0 -1570
  472. package/dist/cli-bundle/chunks/chunk-IJ6CO3JV.js +0 -645
  473. package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js +0 -3206
  474. package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js.map +0 -1
  475. package/dist/cli-bundle/chunks/chunk-JLA7EVYV.js +0 -222
  476. package/dist/cli-bundle/chunks/chunk-K32L7HZO.js +0 -76
  477. package/dist/cli-bundle/chunks/chunk-K32L7HZO.js.map +0 -1
  478. package/dist/cli-bundle/chunks/chunk-K3AGVXSF.js +0 -444
  479. package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js +0 -79
  480. package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js.map +0 -7
  481. package/dist/cli-bundle/chunks/chunk-KL22PY6L.js +0 -915
  482. package/dist/cli-bundle/chunks/chunk-KL22PY6L.js.map +0 -1
  483. package/dist/cli-bundle/chunks/chunk-KLG4ZULO.js +0 -218
  484. package/dist/cli-bundle/chunks/chunk-LEKT4K7I.js +0 -2105
  485. package/dist/cli-bundle/chunks/chunk-MNZ7DRNC.js +0 -1858
  486. package/dist/cli-bundle/chunks/chunk-MTTXDAK4.js +0 -2198
  487. package/dist/cli-bundle/chunks/chunk-MZ7VNEVY.js +0 -520
  488. package/dist/cli-bundle/chunks/chunk-N6DNM2FA.js +0 -116
  489. package/dist/cli-bundle/chunks/chunk-N7X4WP6L.js +0 -1041
  490. package/dist/cli-bundle/chunks/chunk-NBFCNJ7Q.js +0 -2132
  491. package/dist/cli-bundle/chunks/chunk-NER3KUUS.js +0 -260
  492. package/dist/cli-bundle/chunks/chunk-OBA2WH65.js +0 -918
  493. package/dist/cli-bundle/chunks/chunk-OBA2WH65.js.map +0 -7
  494. package/dist/cli-bundle/chunks/chunk-OESSOFJ4.js +0 -1985
  495. package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js +0 -238
  496. package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js.map +0 -1
  497. package/dist/cli-bundle/chunks/chunk-OWTIRHX4.js +0 -112
  498. package/dist/cli-bundle/chunks/chunk-P3VRG72Q.js +0 -1765
  499. package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js +0 -1423
  500. package/dist/cli-bundle/chunks/chunk-P5YORJRH.js +0 -1977
  501. package/dist/cli-bundle/chunks/chunk-PDXT6Q55.js +0 -58
  502. package/dist/cli-bundle/chunks/chunk-PJ3A56YF.js +0 -1239
  503. package/dist/cli-bundle/chunks/chunk-PPAJG4GB.js +0 -1031
  504. package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js +0 -4725
  505. package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js.map +0 -1
  506. package/dist/cli-bundle/chunks/chunk-QHZO65XW.js +0 -1775
  507. package/dist/cli-bundle/chunks/chunk-R3ZBLGTC.js +0 -814
  508. package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js +0 -624
  509. package/dist/cli-bundle/chunks/chunk-RX3HQSYG.js +0 -265
  510. package/dist/cli-bundle/chunks/chunk-S4APD35C.js +0 -210
  511. package/dist/cli-bundle/chunks/chunk-S5AYOUT5.js +0 -130
  512. package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js +0 -1149
  513. package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js.map +0 -1
  514. package/dist/cli-bundle/chunks/chunk-T35XLYZF.js +0 -263
  515. package/dist/cli-bundle/chunks/chunk-T3ABIMGW.js +0 -361
  516. package/dist/cli-bundle/chunks/chunk-T3F4DF23.js +0 -267
  517. package/dist/cli-bundle/chunks/chunk-T4MX77AK.js +0 -272
  518. package/dist/cli-bundle/chunks/chunk-T4MX77AK.js.map +0 -1
  519. package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js +0 -5354
  520. package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js.map +0 -1
  521. package/dist/cli-bundle/chunks/chunk-TSPKZRRW.js +0 -1570
  522. package/dist/cli-bundle/chunks/chunk-TT42JUMF.js +0 -207
  523. package/dist/cli-bundle/chunks/chunk-UHKX7I75.js +0 -165
  524. package/dist/cli-bundle/chunks/chunk-UHKX7I75.js.map +0 -1
  525. package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js +0 -4786
  526. package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js.map +0 -7
  527. package/dist/cli-bundle/chunks/chunk-US3T3W5J.js +0 -1932
  528. package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js +0 -175
  529. package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js.map +0 -7
  530. package/dist/cli-bundle/chunks/chunk-VZIYHZDX.js +0 -1868
  531. package/dist/cli-bundle/chunks/chunk-WISPVC2E.js +0 -401
  532. package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js +0 -5434
  533. package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js.map +0 -7
  534. package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js +0 -1152
  535. package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js.map +0 -7
  536. package/dist/cli-bundle/chunks/chunk-Y76TWC45.js +0 -550
  537. package/dist/cli-bundle/chunks/chunk-YD5FML7K.js +0 -5630
  538. package/dist/cli-bundle/chunks/chunk-YD5FML7K.js.map +0 -1
  539. package/dist/cli-bundle/chunks/chunk-YFIE7YK6.js +0 -57
  540. package/dist/cli-bundle/chunks/chunk-YMABYTNG.js +0 -1573
  541. package/dist/cli-bundle/chunks/chunk-YOF5VPKM.js +0 -119
  542. package/dist/cli-bundle/chunks/chunk-YPPVU5GX.js +0 -398
  543. package/dist/cli-bundle/chunks/chunk-YQMMMONE.js +0 -133
  544. package/dist/cli-bundle/chunks/chunk-YSAH5FY5.js +0 -1001
  545. package/dist/cli-bundle/chunks/chunk-YZIR4R3U.js +0 -1005
  546. package/dist/cli-bundle/chunks/chunk-Z2CRRZYF.js +0 -215
  547. package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js +0 -533
  548. package/dist/cli-bundle/chunks/chunk-ZCJAA3JK.js +0 -121
  549. package/dist/cli-bundle/chunks/chunk-ZD34OFFQ.js +0 -366
  550. package/dist/cli-bundle/chunks/chunk-ZJB3UV5U.js +0 -2306
  551. package/dist/cli-bundle/chunks/chunk-ZMD35NYG.js +0 -61
  552. package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js +0 -241
  553. package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js.map +0 -7
  554. package/dist/cli-bundle/chunks/claim-4DROPSIS.js +0 -144
  555. package/dist/cli-bundle/chunks/claim-4DROPSIS.js.map +0 -1
  556. package/dist/cli-bundle/chunks/claim-VX54TV5U.js +0 -147
  557. package/dist/cli-bundle/chunks/claim-VX54TV5U.js.map +0 -7
  558. package/dist/cli-bundle/chunks/close-3YRR3XY6.js +0 -20
  559. package/dist/cli-bundle/chunks/close-OB2Y4QP5.js +0 -16
  560. package/dist/cli-bundle/chunks/close-many-AP4MWU36.js +0 -397
  561. package/dist/cli-bundle/chunks/close-many-AP4MWU36.js.map +0 -1
  562. package/dist/cli-bundle/chunks/close-many-OMZIGZB4.js +0 -400
  563. package/dist/cli-bundle/chunks/close-many-OMZIGZB4.js.map +0 -7
  564. package/dist/cli-bundle/chunks/comments-MIW5MZOX.js +0 -128
  565. package/dist/cli-bundle/chunks/comments-MIW5MZOX.js.map +0 -7
  566. package/dist/cli-bundle/chunks/comments-SAG5LSKL.js +0 -125
  567. package/dist/cli-bundle/chunks/comments-SAG5LSKL.js.map +0 -1
  568. package/dist/cli-bundle/chunks/config-DJJKZB5R.js +0 -1075
  569. package/dist/cli-bundle/chunks/config-DJJKZB5R.js.map +0 -7
  570. package/dist/cli-bundle/chunks/config-V57QD47V.js +0 -1065
  571. package/dist/cli-bundle/chunks/config-V57QD47V.js.map +0 -1
  572. package/dist/cli-bundle/chunks/context-4OQGIPSO.js +0 -45
  573. package/dist/cli-bundle/chunks/context-WLA6IAWE.js +0 -49
  574. package/dist/cli-bundle/chunks/contracts-HXJLKCRI.js +0 -12
  575. package/dist/cli-bundle/chunks/contracts-OJEXMKVW.js +0 -16
  576. package/dist/cli-bundle/chunks/copy-LEE6P6EM.js +0 -184
  577. package/dist/cli-bundle/chunks/copy-LEE6P6EM.js.map +0 -7
  578. package/dist/cli-bundle/chunks/copy-OTJOWFL6.js +0 -181
  579. package/dist/cli-bundle/chunks/copy-OTJOWFL6.js.map +0 -1
  580. package/dist/cli-bundle/chunks/create-WKOZKPQR.js +0 -30
  581. package/dist/cli-bundle/chunks/create-XWWQFQ6S.js +0 -34
  582. package/dist/cli-bundle/chunks/delete-62JQTYT4.js +0 -59
  583. package/dist/cli-bundle/chunks/delete-62JQTYT4.js.map +0 -7
  584. package/dist/cli-bundle/chunks/delete-HQKGRNRZ.js +0 -56
  585. package/dist/cli-bundle/chunks/delete-HQKGRNRZ.js.map +0 -1
  586. package/dist/cli-bundle/chunks/deps-55FTG6Z5.js +0 -224
  587. package/dist/cli-bundle/chunks/deps-55FTG6Z5.js.map +0 -1
  588. package/dist/cli-bundle/chunks/deps-L2FPIAD3.js +0 -227
  589. package/dist/cli-bundle/chunks/deps-L2FPIAD3.js.map +0 -7
  590. package/dist/cli-bundle/chunks/docs-6CRCSVKK.js +0 -33
  591. package/dist/cli-bundle/chunks/docs-6CRCSVKK.js.map +0 -1
  592. package/dist/cli-bundle/chunks/docs-S6UTOTO5.js +0 -36
  593. package/dist/cli-bundle/chunks/docs-S6UTOTO5.js.map +0 -7
  594. package/dist/cli-bundle/chunks/eval-N6UHFWVO.js +0 -288
  595. package/dist/cli-bundle/chunks/eval-N6UHFWVO.js.map +0 -7
  596. package/dist/cli-bundle/chunks/eval-PHOTWYHI.js +0 -278
  597. package/dist/cli-bundle/chunks/eval-PHOTWYHI.js.map +0 -1
  598. package/dist/cli-bundle/chunks/extension-NBAH62ML.js +0 -40
  599. package/dist/cli-bundle/chunks/extension-ZF6ZZPOU.js +0 -44
  600. package/dist/cli-bundle/chunks/files-6P57MRKL.js +0 -301
  601. package/dist/cli-bundle/chunks/files-6P57MRKL.js.map +0 -7
  602. package/dist/cli-bundle/chunks/files-JPU3FNJ7.js +0 -298
  603. package/dist/cli-bundle/chunks/files-JPU3FNJ7.js.map +0 -1
  604. package/dist/cli-bundle/chunks/focus-LFZ6IDBR.js +0 -106
  605. package/dist/cli-bundle/chunks/focus-LFZ6IDBR.js.map +0 -1
  606. package/dist/cli-bundle/chunks/focus-WNMYCVYA.js +0 -109
  607. package/dist/cli-bundle/chunks/focus-WNMYCVYA.js.map +0 -7
  608. package/dist/cli-bundle/chunks/gc-AETFKZ44.js +0 -398
  609. package/dist/cli-bundle/chunks/gc-AETFKZ44.js.map +0 -7
  610. package/dist/cli-bundle/chunks/gc-RLBP4QVN.js +0 -388
  611. package/dist/cli-bundle/chunks/gc-RLBP4QVN.js.map +0 -1
  612. package/dist/cli-bundle/chunks/get-NH2MPBCI.js +0 -283
  613. package/dist/cli-bundle/chunks/get-NH2MPBCI.js.map +0 -1
  614. package/dist/cli-bundle/chunks/get-P4ZQXCPZ.js +0 -286
  615. package/dist/cli-bundle/chunks/get-P4ZQXCPZ.js.map +0 -7
  616. package/dist/cli-bundle/chunks/health-3GVPMQBL.js +0 -1612
  617. package/dist/cli-bundle/chunks/health-3GVPMQBL.js.map +0 -1
  618. package/dist/cli-bundle/chunks/health-DNTM72GJ.js +0 -1615
  619. package/dist/cli-bundle/chunks/health-DNTM72GJ.js.map +0 -7
  620. package/dist/cli-bundle/chunks/history-RYKLC72X.js +0 -20
  621. package/dist/cli-bundle/chunks/history-SGPYRAFT.js +0 -24
  622. package/dist/cli-bundle/chunks/history-compact-3F6VELO7.js +0 -565
  623. package/dist/cli-bundle/chunks/history-compact-3F6VELO7.js.map +0 -7
  624. package/dist/cli-bundle/chunks/history-compact-656Y2TN4.js +0 -555
  625. package/dist/cli-bundle/chunks/history-compact-656Y2TN4.js.map +0 -1
  626. package/dist/cli-bundle/chunks/history-redact-4H3FCKF3.js +0 -21
  627. package/dist/cli-bundle/chunks/history-redact-54ICFKXM.js +0 -25
  628. package/dist/cli-bundle/chunks/history-repair-4N6SDVHK.js +0 -281
  629. package/dist/cli-bundle/chunks/history-repair-4N6SDVHK.js.map +0 -7
  630. package/dist/cli-bundle/chunks/history-repair-EVTO6LIH.js +0 -278
  631. package/dist/cli-bundle/chunks/history-repair-EVTO6LIH.js.map +0 -1
  632. package/dist/cli-bundle/chunks/init-RPIPQUNV.js +0 -32
  633. package/dist/cli-bundle/chunks/init-SKQAESQS.js +0 -28
  634. package/dist/cli-bundle/chunks/learnings-2HTPZNGZ.js +0 -48
  635. package/dist/cli-bundle/chunks/learnings-2HTPZNGZ.js.map +0 -7
  636. package/dist/cli-bundle/chunks/learnings-YBIHY3D6.js +0 -45
  637. package/dist/cli-bundle/chunks/learnings-YBIHY3D6.js.map +0 -1
  638. package/dist/cli-bundle/chunks/list-64LHZ3HM.js +0 -32
  639. package/dist/cli-bundle/chunks/list-7LXBTEKI.js +0 -36
  640. package/dist/cli-bundle/chunks/next-7ODPAQ4U.js +0 -306
  641. package/dist/cli-bundle/chunks/next-7ODPAQ4U.js.map +0 -7
  642. package/dist/cli-bundle/chunks/next-ODJUM4ZM.js +0 -303
  643. package/dist/cli-bundle/chunks/next-ODJUM4ZM.js.map +0 -1
  644. package/dist/cli-bundle/chunks/notes-72YXN5JX.js +0 -48
  645. package/dist/cli-bundle/chunks/notes-72YXN5JX.js.map +0 -7
  646. package/dist/cli-bundle/chunks/notes-NJ7IQJX4.js +0 -45
  647. package/dist/cli-bundle/chunks/notes-NJ7IQJX4.js.map +0 -1
  648. package/dist/cli-bundle/chunks/plan-R4NDQ27E.js +0 -1366
  649. package/dist/cli-bundle/chunks/plan-R4NDQ27E.js.map +0 -7
  650. package/dist/cli-bundle/chunks/plan-XWY5T67S.js +0 -1363
  651. package/dist/cli-bundle/chunks/plan-XWY5T67S.js.map +0 -1
  652. package/dist/cli-bundle/chunks/profile-XQWEQKS3.js +0 -397
  653. package/dist/cli-bundle/chunks/profile-XQWEQKS3.js.map +0 -1
  654. package/dist/cli-bundle/chunks/profile-YRDHLMRO.js +0 -400
  655. package/dist/cli-bundle/chunks/profile-YRDHLMRO.js.map +0 -7
  656. package/dist/cli-bundle/chunks/register-list-query-5H66WFYF.js +0 -419
  657. package/dist/cli-bundle/chunks/register-list-query-FB3FNDLZ.js +0 -409
  658. package/dist/cli-bundle/chunks/register-mutation-UJO23C7R.js +0 -1256
  659. package/dist/cli-bundle/chunks/register-mutation-Z2ETYHKS.js +0 -1273
  660. package/dist/cli-bundle/chunks/register-operations-A3XAM5J7.js +0 -513
  661. package/dist/cli-bundle/chunks/register-operations-A3XAM5J7.js.map +0 -1
  662. package/dist/cli-bundle/chunks/register-operations-SG7HBSUP.js +0 -516
  663. package/dist/cli-bundle/chunks/register-operations-SG7HBSUP.js.map +0 -7
  664. package/dist/cli-bundle/chunks/register-setup-I45OGJUV.js +0 -323
  665. package/dist/cli-bundle/chunks/register-setup-I45OGJUV.js.map +0 -1
  666. package/dist/cli-bundle/chunks/register-setup-K6U3NVY5.js +0 -326
  667. package/dist/cli-bundle/chunks/register-setup-K6U3NVY5.js.map +0 -7
  668. package/dist/cli-bundle/chunks/restore-PXOFL6AM.js +0 -19
  669. package/dist/cli-bundle/chunks/restore-YJ2ET6AT.js +0 -23
  670. package/dist/cli-bundle/chunks/scheduling-shortcuts-SSC4MYWQ.js +0 -91
  671. package/dist/cli-bundle/chunks/scheduling-shortcuts-SSC4MYWQ.js.map +0 -7
  672. package/dist/cli-bundle/chunks/scheduling-shortcuts-ULRG7MNP.js +0 -88
  673. package/dist/cli-bundle/chunks/scheduling-shortcuts-ULRG7MNP.js.map +0 -1
  674. package/dist/cli-bundle/chunks/schema-2PUXCZ25.js +0 -74
  675. package/dist/cli-bundle/chunks/schema-Y6DXXK2F.js +0 -78
  676. package/dist/cli-bundle/chunks/search-3S72CTD6.js +0 -38
  677. package/dist/cli-bundle/chunks/search-WNUNBQXO.js +0 -34
  678. package/dist/cli-bundle/chunks/stats-IJYTRQGV.js +0 -250
  679. package/dist/cli-bundle/chunks/stats-IJYTRQGV.js.map +0 -7
  680. package/dist/cli-bundle/chunks/stats-L2D5Y2O5.js +0 -240
  681. package/dist/cli-bundle/chunks/stats-L2D5Y2O5.js.map +0 -1
  682. package/dist/cli-bundle/chunks/telemetry-L2CVOKVN.js +0 -309
  683. package/dist/cli-bundle/chunks/telemetry-L2CVOKVN.js.map +0 -7
  684. package/dist/cli-bundle/chunks/telemetry-QBYWQA76.js +0 -306
  685. package/dist/cli-bundle/chunks/telemetry-QBYWQA76.js.map +0 -1
  686. package/dist/cli-bundle/chunks/test-DQ2QFJ7W.js +0 -45
  687. package/dist/cli-bundle/chunks/test-W7QBLVJS.js +0 -41
  688. package/dist/cli-bundle/chunks/test-all-636NTRTT.js +0 -434
  689. package/dist/cli-bundle/chunks/test-all-636NTRTT.js.map +0 -1
  690. package/dist/cli-bundle/chunks/test-all-DWYK3RG6.js +0 -437
  691. package/dist/cli-bundle/chunks/test-all-DWYK3RG6.js.map +0 -7
  692. package/dist/cli-bundle/chunks/test-runs-245OINZR.js +0 -28
  693. package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js +0 -24
  694. package/dist/cli-bundle/chunks/update-SFLZPJXX.js +0 -30
  695. package/dist/cli-bundle/chunks/update-SJZ6S77U.js +0 -26
  696. package/dist/cli-bundle/chunks/update-many-DC7X3EWM.js +0 -671
  697. package/dist/cli-bundle/chunks/update-many-DC7X3EWM.js.map +0 -7
  698. package/dist/cli-bundle/chunks/update-many-SLLAMHT7.js +0 -668
  699. package/dist/cli-bundle/chunks/update-many-SLLAMHT7.js.map +0 -1
  700. package/dist/cli-bundle/chunks/upgrade-HFFXLZJA.js +0 -290
  701. package/dist/cli-bundle/chunks/upgrade-HFFXLZJA.js.map +0 -7
  702. package/dist/cli-bundle/chunks/upgrade-UYQKM7RF.js +0 -287
  703. package/dist/cli-bundle/chunks/upgrade-UYQKM7RF.js.map +0 -1
  704. package/dist/cli-bundle/chunks/validate-PA4FDTOV.js +0 -2143
  705. package/dist/cli-bundle/chunks/validate-PA4FDTOV.js.map +0 -7
  706. package/dist/cli-bundle/chunks/validate-Z7L75YEJ.js +0 -2105
  707. package/dist/cli-bundle/chunks/validate-Z7L75YEJ.js.map +0 -1
  708. /package/dist/cli-bundle/chunks/{activity-4XQIDNM5.js.map → activity-WJCGCYPU.js.map} +0 -0
  709. /package/dist/cli-bundle/chunks/{activity-YKAKZTZ4.js.map → activity-Z6QUAUSG.js.map} +0 -0
  710. /package/dist/cli-bundle/chunks/{close-3YRR3XY6.js.map → aggregate-BDM6EIAR.js.map} +0 -0
  711. /package/dist/cli-bundle/chunks/{close-OB2Y4QP5.js.map → aggregate-VQ2DHU3S.js.map} +0 -0
  712. /package/dist/cli-bundle/chunks/{context-WLA6IAWE.js.map → append-BGML6VLD.js.map} +0 -0
  713. /package/dist/cli-bundle/chunks/{context-4OQGIPSO.js.map → append-RKJYPU74.js.map} +0 -0
  714. /package/dist/cli-bundle/chunks/{chunk-YFIE7YK6.js.map → chunk-22KBU3MW.js.map} +0 -0
  715. /package/dist/cli-bundle/chunks/{chunk-DLQ4ZTCU.js.map → chunk-24YG75HI.js.map} +0 -0
  716. /package/dist/cli-bundle/chunks/{chunk-KLG4ZULO.js.map → chunk-2XG4IZON.js.map} +0 -0
  717. /package/dist/cli-bundle/chunks/{chunk-FJRKQREY.js.map → chunk-3GCS5SKL.js.map} +0 -0
  718. /package/dist/cli-bundle/chunks/{chunk-5B3X4Y22.js.map → chunk-3KTN6IBA.js.map} +0 -0
  719. /package/dist/cli-bundle/chunks/{chunk-YMABYTNG.js.map → chunk-3UJRFJ5R.js.map} +0 -0
  720. /package/dist/cli-bundle/chunks/{chunk-YSAH5FY5.js.map → chunk-3VHSI5FL.js.map} +0 -0
  721. /package/dist/cli-bundle/chunks/{chunk-7EQNAZX2.js.map → chunk-46CUF5L6.js.map} +0 -0
  722. /package/dist/cli-bundle/chunks/{chunk-75U6M5ZD.js.map → chunk-4IWYTWGF.js.map} +0 -0
  723. /package/dist/cli-bundle/chunks/{chunk-VZIYHZDX.js.map → chunk-5GZ7TDD6.js.map} +0 -0
  724. /package/dist/cli-bundle/chunks/{chunk-3U3VEWK6.js.map → chunk-5VAA4YHR.js.map} +0 -0
  725. /package/dist/cli-bundle/chunks/{chunk-3PL6LEKP.js.map → chunk-64YKRTSV.js.map} +0 -0
  726. /package/dist/cli-bundle/chunks/{chunk-ABRA3BHY.js.map → chunk-6LLVNJXT.js.map} +0 -0
  727. /package/dist/cli-bundle/chunks/{chunk-EEY54JMF.js.map → chunk-7DT4WSH2.js.map} +0 -0
  728. /package/dist/cli-bundle/chunks/{chunk-7MDXZAZS.js.map → chunk-7WBAJSS6.js.map} +0 -0
  729. /package/dist/cli-bundle/chunks/{chunk-AAEQMOC6.js.map → chunk-AGHMOTGM.js.map} +0 -0
  730. /package/dist/cli-bundle/chunks/{chunk-OWTIRHX4.js.map → chunk-ALFPSEWO.js.map} +0 -0
  731. /package/dist/cli-bundle/chunks/{chunk-T3ABIMGW.js.map → chunk-AZYGZGGI.js.map} +0 -0
  732. /package/dist/cli-bundle/chunks/{chunk-3JZNEQBA.js.map → chunk-B6DUFX6H.js.map} +0 -0
  733. /package/dist/cli-bundle/chunks/{chunk-OESSOFJ4.js.map → chunk-C5JBZRPU.js.map} +0 -0
  734. /package/dist/cli-bundle/chunks/{chunk-YPPVU5GX.js.map → chunk-CFB33L7W.js.map} +0 -0
  735. /package/dist/cli-bundle/chunks/{chunk-5J2XPTAD.js.map → chunk-CL36D4PC.js.map} +0 -0
  736. /package/dist/cli-bundle/chunks/{chunk-IJ6CO3JV.js.map → chunk-D2XRLB55.js.map} +0 -0
  737. /package/dist/cli-bundle/chunks/{chunk-MNZ7DRNC.js.map → chunk-DEWEK6AN.js.map} +0 -0
  738. /package/dist/cli-bundle/chunks/{chunk-US3T3W5J.js.map → chunk-E3SZTQ4K.js.map} +0 -0
  739. /package/dist/cli-bundle/chunks/{chunk-C3PMDWGX.js.map → chunk-EGY6JBQ3.js.map} +0 -0
  740. /package/dist/cli-bundle/chunks/{chunk-JLA7EVYV.js.map → chunk-EKFNL33R.js.map} +0 -0
  741. /package/dist/cli-bundle/chunks/{chunk-57C2RLW5.js.map → chunk-ENGQOEUY.js.map} +0 -0
  742. /package/dist/cli-bundle/chunks/{chunk-7QH7DHUB.js.map → chunk-EOKXK3R3.js.map} +0 -0
  743. /package/dist/cli-bundle/chunks/{chunk-ZCJAA3JK.js.map → chunk-F3K4JGFD.js.map} +0 -0
  744. /package/dist/cli-bundle/chunks/{chunk-DRBV5UC2.js.map → chunk-FLZSGSQR.js.map} +0 -0
  745. /package/dist/cli-bundle/chunks/{chunk-Y76TWC45.js.map → chunk-FT3QTERD.js.map} +0 -0
  746. /package/dist/cli-bundle/chunks/{chunk-HK72NWAD.js.map → chunk-G24G7ZAV.js.map} +0 -0
  747. /package/dist/cli-bundle/chunks/{chunk-K3AGVXSF.js.map → chunk-G64OCSKU.js.map} +0 -0
  748. /package/dist/cli-bundle/chunks/{chunk-QHZO65XW.js.map → chunk-GANUTS7W.js.map} +0 -0
  749. /package/dist/cli-bundle/chunks/{chunk-WISPVC2E.js.map → chunk-GBAX2ZAQ.js.map} +0 -0
  750. /package/dist/cli-bundle/chunks/{chunk-RCT3YJOK.js.map → chunk-GJ7QC5DJ.js.map} +0 -0
  751. /package/dist/cli-bundle/chunks/{chunk-BVEUCSH2.js.map → chunk-GPLPTGOV.js.map} +0 -0
  752. /package/dist/cli-bundle/chunks/{chunk-YZIR4R3U.js.map → chunk-GZRDYONU.js.map} +0 -0
  753. /package/dist/cli-bundle/chunks/{chunk-7WYXBPYQ.js.map → chunk-IWVU4C2F.js.map} +0 -0
  754. /package/dist/cli-bundle/chunks/{chunk-T3F4DF23.js.map → chunk-IX5BXEMX.js.map} +0 -0
  755. /package/dist/cli-bundle/chunks/{chunk-RX3HQSYG.js.map → chunk-JDDLOQAE.js.map} +0 -0
  756. /package/dist/cli-bundle/chunks/{chunk-YOF5VPKM.js.map → chunk-JJP45OEI.js.map} +0 -0
  757. /package/dist/cli-bundle/chunks/{chunk-TT42JUMF.js.map → chunk-K46RF36U.js.map} +0 -0
  758. /package/dist/cli-bundle/chunks/{chunk-R3ZBLGTC.js.map → chunk-KGFUY7WN.js.map} +0 -0
  759. /package/dist/cli-bundle/chunks/{chunk-NER3KUUS.js.map → chunk-KUOOJR35.js.map} +0 -0
  760. /package/dist/cli-bundle/chunks/{chunk-3Y4OESPP.js.map → chunk-L5PSPMZ4.js.map} +0 -0
  761. /package/dist/cli-bundle/chunks/{chunk-PJ3A56YF.js.map → chunk-LPSSSDJR.js.map} +0 -0
  762. /package/dist/cli-bundle/chunks/{chunk-FDBARR33.js.map → chunk-MA4SM3QZ.js.map} +0 -0
  763. /package/dist/cli-bundle/chunks/{chunk-PPAJG4GB.js.map → chunk-MFAZSEM5.js.map} +0 -0
  764. /package/dist/cli-bundle/chunks/{chunk-5JZ7APJU.js.map → chunk-MFSCBT5Q.js.map} +0 -0
  765. /package/dist/cli-bundle/chunks/{chunk-4OFLJHX6.js.map → chunk-MLIYFOE7.js.map} +0 -0
  766. /package/dist/cli-bundle/chunks/{chunk-ZMD35NYG.js.map → chunk-MUH7A3FD.js.map} +0 -0
  767. /package/dist/cli-bundle/chunks/{chunk-5JE6SMYS.js.map → chunk-MVYWGY2A.js.map} +0 -0
  768. /package/dist/cli-bundle/chunks/{chunk-P5TFTLWW.js.map → chunk-MWMVPCIE.js.map} +0 -0
  769. /package/dist/cli-bundle/chunks/{chunk-T35XLYZF.js.map → chunk-NGXQ3PFT.js.map} +0 -0
  770. /package/dist/cli-bundle/chunks/{chunk-EZFKWSC7.js.map → chunk-NMP5I3I5.js.map} +0 -0
  771. /package/dist/cli-bundle/chunks/{chunk-HJE4JTKQ.js.map → chunk-O6AWCQRQ.js.map} +0 -0
  772. /package/dist/cli-bundle/chunks/{chunk-BFVHCAOO.js.map → chunk-OGWQ2IEP.js.map} +0 -0
  773. /package/dist/cli-bundle/chunks/{chunk-S4APD35C.js.map → chunk-QLMX7SRD.js.map} +0 -0
  774. /package/dist/cli-bundle/chunks/{chunk-MZ7VNEVY.js.map → chunk-RFNYTESG.js.map} +0 -0
  775. /package/dist/cli-bundle/chunks/{chunk-MTTXDAK4.js.map → chunk-SCUR7K7N.js.map} +0 -0
  776. /package/dist/cli-bundle/chunks/{chunk-P5YORJRH.js.map → chunk-SHQY2IDC.js.map} +0 -0
  777. /package/dist/cli-bundle/chunks/{chunk-S5AYOUT5.js.map → chunk-SMB7RV23.js.map} +0 -0
  778. /package/dist/cli-bundle/chunks/{chunk-N7X4WP6L.js.map → chunk-SPZ6DOGY.js.map} +0 -0
  779. /package/dist/cli-bundle/chunks/{chunk-P3VRG72Q.js.map → chunk-SQYJ4HF2.js.map} +0 -0
  780. /package/dist/cli-bundle/chunks/{chunk-4LRVSBO6.js.map → chunk-T42JWV3F.js.map} +0 -0
  781. /package/dist/cli-bundle/chunks/{chunk-NBFCNJ7Q.js.map → chunk-TULGS6X6.js.map} +0 -0
  782. /package/dist/cli-bundle/chunks/{chunk-ZJB3UV5U.js.map → chunk-TZXRBVAM.js.map} +0 -0
  783. /package/dist/cli-bundle/chunks/{chunk-ZD34OFFQ.js.map → chunk-VPIM42PC.js.map} +0 -0
  784. /package/dist/cli-bundle/chunks/{chunk-FGQKEDE4.js.map → chunk-W3DSJQIO.js.map} +0 -0
  785. /package/dist/cli-bundle/chunks/{chunk-4QQ6PM7M.js.map → chunk-W572BIEB.js.map} +0 -0
  786. /package/dist/cli-bundle/chunks/{chunk-Z2CRRZYF.js.map → chunk-WRTENIX3.js.map} +0 -0
  787. /package/dist/cli-bundle/chunks/{chunk-ZAHXPXVY.js.map → chunk-XB7KFVFI.js.map} +0 -0
  788. /package/dist/cli-bundle/chunks/{chunk-PDXT6Q55.js.map → chunk-XG625QP4.js.map} +0 -0
  789. /package/dist/cli-bundle/chunks/{chunk-D3UCE7RW.js.map → chunk-XUC7PI2H.js.map} +0 -0
  790. /package/dist/cli-bundle/chunks/{chunk-N6DNM2FA.js.map → chunk-Y46GD4IX.js.map} +0 -0
  791. /package/dist/cli-bundle/chunks/{chunk-FUM6UMY4.js.map → chunk-Y4M7CPQP.js.map} +0 -0
  792. /package/dist/cli-bundle/chunks/{chunk-HBYZDSK5.js.map → chunk-YN7Y6DQZ.js.map} +0 -0
  793. /package/dist/cli-bundle/chunks/{chunk-YQMMMONE.js.map → chunk-ZGK4L4JM.js.map} +0 -0
  794. /package/dist/cli-bundle/chunks/{chunk-LEKT4K7I.js.map → chunk-ZSUS2OD3.js.map} +0 -0
  795. /package/dist/cli-bundle/chunks/{chunk-TSPKZRRW.js.map → chunk-ZZD4J5XY.js.map} +0 -0
  796. /package/dist/cli-bundle/chunks/{contracts-HXJLKCRI.js.map → claim-RFS7BROJ.js.map} +0 -0
  797. /package/dist/cli-bundle/chunks/{contracts-OJEXMKVW.js.map → claim-XP5AWZ5H.js.map} +0 -0
  798. /package/dist/cli-bundle/chunks/{create-XWWQFQ6S.js.map → close-2SSSHHUZ.js.map} +0 -0
  799. /package/dist/cli-bundle/chunks/{create-WKOZKPQR.js.map → close-GEANHQ2J.js.map} +0 -0
  800. /package/dist/cli-bundle/chunks/{extension-ZF6ZZPOU.js.map → close-many-CMZW7ITN.js.map} +0 -0
  801. /package/dist/cli-bundle/chunks/{extension-NBAH62ML.js.map → close-many-ZFDIG6M7.js.map} +0 -0
  802. /package/dist/cli-bundle/chunks/{history-SGPYRAFT.js.map → comments-MFSYVNNU.js.map} +0 -0
  803. /package/dist/cli-bundle/chunks/{history-RYKLC72X.js.map → comments-XUBPXDYX.js.map} +0 -0
  804. /package/dist/cli-bundle/chunks/{history-redact-4H3FCKF3.js.map → config-D7XQMONX.js.map} +0 -0
  805. /package/dist/cli-bundle/chunks/{history-redact-54ICFKXM.js.map → config-T4FHBSYN.js.map} +0 -0
  806. /package/dist/cli-bundle/chunks/{init-RPIPQUNV.js.map → context-DIU275XI.js.map} +0 -0
  807. /package/dist/cli-bundle/chunks/{init-SKQAESQS.js.map → context-JCOYB4LZ.js.map} +0 -0
  808. /package/dist/cli-bundle/chunks/{list-64LHZ3HM.js.map → contracts-BVO7CSLK.js.map} +0 -0
  809. /package/dist/cli-bundle/chunks/{list-7LXBTEKI.js.map → contracts-NYPEW2G4.js.map} +0 -0
  810. /package/dist/cli-bundle/chunks/{restore-YJ2ET6AT.js.map → copy-32ROBIDL.js.map} +0 -0
  811. /package/dist/cli-bundle/chunks/{restore-PXOFL6AM.js.map → copy-NAGLGMHZ.js.map} +0 -0
  812. /package/dist/cli-bundle/chunks/{schema-2PUXCZ25.js.map → create-4V7SWNBB.js.map} +0 -0
  813. /package/dist/cli-bundle/chunks/{schema-Y6DXXK2F.js.map → create-E77SDCUP.js.map} +0 -0
  814. /package/dist/cli-bundle/chunks/{search-WNUNBQXO.js.map → delete-NQI5OSKN.js.map} +0 -0
  815. /package/dist/cli-bundle/chunks/{search-3S72CTD6.js.map → delete-RA5KTCLB.js.map} +0 -0
  816. /package/dist/cli-bundle/chunks/{test-DQ2QFJ7W.js.map → deps-32SU7HO5.js.map} +0 -0
  817. /package/dist/cli-bundle/chunks/{test-W7QBLVJS.js.map → deps-T7SCWXEX.js.map} +0 -0
  818. /package/dist/cli-bundle/chunks/{test-runs-245OINZR.js.map → docs-RRUPT7O2.js.map} +0 -0
  819. /package/dist/cli-bundle/chunks/{test-runs-ZRD4GCTT.js.map → docs-WL2IWGWV.js.map} +0 -0
  820. /package/dist/cli-bundle/chunks/{update-SJZ6S77U.js.map → eval-NF2J5SHR.js.map} +0 -0
  821. /package/dist/cli-bundle/chunks/{update-SFLZPJXX.js.map → eval-SKDT3MZU.js.map} +0 -0
  822. /package/dist/cli-bundle/chunks/{register-list-query-FB3FNDLZ.js.map → register-list-query-B42JCCOI.js.map} +0 -0
  823. /package/dist/cli-bundle/chunks/{register-list-query-5H66WFYF.js.map → register-list-query-OEYQHFXO.js.map} +0 -0
  824. /package/dist/cli-bundle/chunks/{register-mutation-Z2ETYHKS.js.map → register-mutation-3QXIHCQG.js.map} +0 -0
  825. /package/dist/cli-bundle/chunks/{register-mutation-UJO23C7R.js.map → register-mutation-IAEST26S.js.map} +0 -0
@@ -0,0 +1,2132 @@
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]="3b2e2c0b-d9a3-51c6-ba51-0bad9aa69284")}catch(e){}}();
3
+ import {
4
+ looksLikeStructuredLinkedTestEntry,
5
+ normalizeStructuredLinkedTestEntry,
6
+ parseLinkedTestAssertionEqualsMap,
7
+ parseLinkedTestAssertionGteMap,
8
+ parseLinkedTestBoolean,
9
+ parseLinkedTestContextMode,
10
+ parseLinkedTestEnvClear,
11
+ parseLinkedTestEnvSet,
12
+ parseLinkedTestMinLines,
13
+ parseLinkedTestRegexList,
14
+ parseLinkedTestStringList
15
+ } from "./chunk-RFNYTESG.js";
16
+ import {
17
+ assertNoUnknownCsvKeys,
18
+ createStdinTokenResolver,
19
+ looksLikeGenericKeyValueEntry,
20
+ mergeAdditiveTags,
21
+ parseCsvKv,
22
+ parseOptionalNumber,
23
+ parseTags
24
+ } from "./chunk-IWVU4C2F.js";
25
+ import {
26
+ getFocusedItem
27
+ } from "./chunk-XG625QP4.js";
28
+ import {
29
+ printError
30
+ } from "./chunk-MLIYFOE7.js";
31
+ import {
32
+ acquireLock,
33
+ appendHistoryEntry,
34
+ applyRegisteredItemFieldDefaultsAndValidation,
35
+ collectRegisteredItemFieldNames,
36
+ createHistoryEntry,
37
+ locateItem,
38
+ parseRegisteredItemFieldAssignments
39
+ } from "./chunk-ENGQOEUY.js";
40
+ import {
41
+ assertParentReferenceIsNotSelf,
42
+ isPlaceholderReferenceToken,
43
+ normalizeParentReferenceValue,
44
+ validateMissingParentReference,
45
+ validateSprintOrReleaseValue
46
+ } from "./chunk-7WBAJSS6.js";
47
+ import {
48
+ canonicalDocument,
49
+ collectRuntimeCreateFieldValues,
50
+ generateItemId,
51
+ normalizeFrontMatter,
52
+ normalizeItemId,
53
+ normalizeStatusInput,
54
+ serializeItemDocument
55
+ } from "./chunk-G24G7ZAV.js";
56
+ import {
57
+ nowIso,
58
+ resolveIsoOrRelative
59
+ } from "./chunk-3GCS5SKL.js";
60
+ import {
61
+ PmCliError,
62
+ getActiveExtensionRegistrations,
63
+ projectAfterCommandItemSnapshot,
64
+ readSettings,
65
+ recordAfterCommandAffectedItem,
66
+ runActiveCommandHandler,
67
+ runActiveOnWriteHooks
68
+ } from "./chunk-E3SZTQ4K.js";
69
+ import {
70
+ buildInvalidTypeError
71
+ } from "./chunk-KUOOJR35.js";
72
+ import {
73
+ CONFIDENCE_TEXT_VALUES,
74
+ CREATE_DIRECT_CLOSE_REASON_DEFAULT,
75
+ DEPENDENCY_KIND_VALUES,
76
+ EXIT_CODE,
77
+ FRONT_MATTER_KEY_ORDER,
78
+ ISSUE_SEVERITY_VALUES,
79
+ RECURRENCE_FREQUENCY_VALUES,
80
+ RECURRENCE_WEEKDAY_VALUES,
81
+ RISK_VALUES,
82
+ SCOPE_VALUES,
83
+ canonicalizeCommandOptionKey,
84
+ commandOptionFlagLabel,
85
+ getHistoryPath,
86
+ getItemPath,
87
+ getSettingsPath,
88
+ normalizeStatusInputWithRegistry,
89
+ pathExists,
90
+ removeFileIfExists,
91
+ resolveCommandOptionPolicyState,
92
+ resolveItemTypeRegistry,
93
+ resolveItemTypesFilePath,
94
+ resolvePmRoot,
95
+ resolveRuntimeFieldRegistry,
96
+ resolveRuntimeStatusRegistry,
97
+ resolveTypeDefinition,
98
+ resolveTypeName,
99
+ validateTypeOptions,
100
+ weekdayOrderIndex,
101
+ writeFileAtomic
102
+ } from "./chunk-57NWPFF2.js";
103
+
104
+ // dist/core/item/priority.js
105
+ var PRIORITY_NAME_TO_VALUE = {
106
+ critical: 0,
107
+ high: 1,
108
+ medium: 2,
109
+ low: 3,
110
+ minimal: 4
111
+ };
112
+ var PRIORITY_NAME_LIST = Object.keys(PRIORITY_NAME_TO_VALUE);
113
+ var PRIORITY_ACCEPTED_FORMS_HINT = `numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${PRIORITY_NAME_LIST.join(", ")}), case-insensitive`;
114
+ function priorityUsageError(raw) {
115
+ return new PmCliError(`Invalid priority "${raw}". Accepted values: ${PRIORITY_ACCEPTED_FORMS_HINT}.`, EXIT_CODE.USAGE);
116
+ }
117
+ function resolvePriority(raw) {
118
+ if (typeof raw === "number") {
119
+ if (Number.isInteger(raw) && raw >= 0 && raw <= 4) {
120
+ return raw;
121
+ }
122
+ throw priorityUsageError(String(raw));
123
+ }
124
+ if (typeof raw !== "string") {
125
+ throw priorityUsageError(String(raw));
126
+ }
127
+ const trimmed = raw.trim();
128
+ if (trimmed.length === 0) {
129
+ throw priorityUsageError(raw);
130
+ }
131
+ const normalizedName = trimmed.toLowerCase();
132
+ if (Object.prototype.hasOwnProperty.call(PRIORITY_NAME_TO_VALUE, normalizedName)) {
133
+ return PRIORITY_NAME_TO_VALUE[normalizedName];
134
+ }
135
+ if (/^[0-4]$/.test(trimmed)) {
136
+ return Number(trimmed);
137
+ }
138
+ throw priorityUsageError(raw);
139
+ }
140
+
141
+ // dist/core/item/type-synonyms.js
142
+ var TYPE_SYNONYMS = {
143
+ bug: "Issue",
144
+ bugfix: "Issue",
145
+ defect: "Issue",
146
+ incident: "Issue",
147
+ enhancement: "Feature",
148
+ story: "Feature",
149
+ userstory: "Feature",
150
+ "user-story": "Feature",
151
+ "user story": "Feature",
152
+ change: "Chore",
153
+ ticket: "Task",
154
+ todo: "Task"
155
+ };
156
+ function resolveTypeSynonym(rawType) {
157
+ if (rawType === void 0) {
158
+ return void 0;
159
+ }
160
+ return TYPE_SYNONYMS[rawType.trim().toLowerCase()];
161
+ }
162
+
163
+ // dist/cli/commands/metadata-normalizers.js
164
+ function normalizeRiskInput(value) {
165
+ const trimmed = value.trim();
166
+ return trimmed.toLowerCase() === "med" ? "medium" : trimmed;
167
+ }
168
+ function normalizeSeverityInput(value) {
169
+ const trimmed = value.trim();
170
+ return trimmed.toLowerCase() === "med" ? "medium" : trimmed;
171
+ }
172
+ function parseConfidenceInput(value) {
173
+ const trimmed = value.trim().toLowerCase();
174
+ if (trimmed === "med") {
175
+ return "medium";
176
+ }
177
+ if (CONFIDENCE_TEXT_VALUES.includes(trimmed)) {
178
+ return trimmed;
179
+ }
180
+ const parsed = parseOptionalNumber(value, "confidence");
181
+ if (!Number.isInteger(parsed) || parsed < 0 || parsed > 100) {
182
+ throw new PmCliError("Confidence must be an integer 0..100 or one of low|med|medium|high", EXIT_CODE.USAGE);
183
+ }
184
+ return parsed;
185
+ }
186
+ function parseRegressionInput(value) {
187
+ const normalized = value.trim().toLowerCase();
188
+ if (normalized === "true" || normalized === "1") {
189
+ return true;
190
+ }
191
+ if (normalized === "false" || normalized === "0") {
192
+ return false;
193
+ }
194
+ throw new PmCliError("Regression must be one of true|false|1|0", EXIT_CODE.USAGE);
195
+ }
196
+
197
+ // dist/cli/commands/legacy-none-tokens.js
198
+ var LEGACY_NONE_TOKENS = /* @__PURE__ */ new Set(["none", "null"]);
199
+ function isLegacyNoneToken(value) {
200
+ if (value === void 0) {
201
+ return false;
202
+ }
203
+ return LEGACY_NONE_TOKENS.has(value.trim().toLowerCase());
204
+ }
205
+ function assertNoLegacyNoneToken(value, flag, replacementHint) {
206
+ if (!isLegacyNoneToken(value)) {
207
+ return;
208
+ }
209
+ const suffix = replacementHint ? ` ${replacementHint}` : "";
210
+ throw new PmCliError(`${flag} no longer accepts "none" or "null".${suffix}`.trim(), EXIT_CODE.USAGE);
211
+ }
212
+ function assertNoLegacyNoneTokens(values, flag, replacementHint) {
213
+ if (!values || values.length === 0) {
214
+ return;
215
+ }
216
+ const hasLegacyToken = values.some((value) => isLegacyNoneToken(value));
217
+ if (!hasLegacyToken) {
218
+ return;
219
+ }
220
+ const suffix = replacementHint ? ` ${replacementHint}` : "";
221
+ throw new PmCliError(`${flag} no longer accepts "none" or "null".${suffix}`.trim(), EXIT_CODE.USAGE);
222
+ }
223
+ function applyLegacyNoneCollectionNormalizers(normalized, definitions) {
224
+ for (const definition of definitions) {
225
+ const candidate = normalized[definition.optionKey];
226
+ if (!Array.isArray(candidate) || candidate.length === 0) {
227
+ continue;
228
+ }
229
+ if (!candidate.every((entry) => typeof entry === "string")) {
230
+ throw new PmCliError(`${definition.valueFlag} entries must be strings.`, EXIT_CODE.USAGE);
231
+ }
232
+ const entries = candidate;
233
+ const hasLegacy = entries.some((entry) => isLegacyNoneToken(entry));
234
+ if (!hasLegacy) {
235
+ continue;
236
+ }
237
+ const concreteEntries = entries.filter((entry) => !isLegacyNoneToken(entry));
238
+ if (concreteEntries.length > 0) {
239
+ throw new PmCliError(`Cannot mix legacy clear token "none"/"null" with concrete ${definition.valueFlag} entries. Use ${definition.clearFlag} to clear or provide explicit entries.`, EXIT_CODE.USAGE);
240
+ }
241
+ normalized[definition.optionKey] = void 0;
242
+ normalized[definition.clearFlagKey] = true;
243
+ if (definition.disableFlagKey) {
244
+ normalized[definition.disableFlagKey] = false;
245
+ }
246
+ }
247
+ return normalized;
248
+ }
249
+
250
+ // dist/cli/commands/lifecycle-transitions.js
251
+ var NON_WORKABLE_TYPES = /* @__PURE__ */ new Set([
252
+ "event",
253
+ "meeting",
254
+ "reminder",
255
+ "milestone",
256
+ "decision",
257
+ "adr"
258
+ ]);
259
+ function suggestNextLifecycleTransition(id, type, status, statusRegistry) {
260
+ if (NON_WORKABLE_TYPES.has(type.trim().toLowerCase())) {
261
+ return void 0;
262
+ }
263
+ if (status !== statusRegistry.open_status) {
264
+ return void 0;
265
+ }
266
+ const inProgress = normalizeStatusInputWithRegistry("in_progress", statusRegistry);
267
+ if (inProgress === void 0 || inProgress === statusRegistry.open_status) {
268
+ return void 0;
269
+ }
270
+ return { command: `pm start-task ${id}`, to_status: inProgress };
271
+ }
272
+
273
+ // dist/cli/commands/shared-unset-fields.js
274
+ var COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON = [
275
+ { canonical: "tags", aliases: ["tags"], optionKey: "tags", frontMatterKey: "tags" }
276
+ ];
277
+ var COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR = [
278
+ { canonical: "deadline", aliases: ["deadline"], optionKey: "deadline", frontMatterKey: "deadline" },
279
+ {
280
+ canonical: "estimate",
281
+ aliases: ["estimate", "estimated_minutes", "estimated-minutes"],
282
+ optionKey: "estimatedMinutes",
283
+ frontMatterKey: "estimated_minutes"
284
+ },
285
+ {
286
+ canonical: "acceptance-criteria",
287
+ aliases: ["acceptance_criteria", "acceptance-criteria", "ac"],
288
+ optionKey: "acceptanceCriteria",
289
+ frontMatterKey: "acceptance_criteria"
290
+ },
291
+ {
292
+ canonical: "definition-of-ready",
293
+ aliases: ["definition_of_ready", "definition-of-ready"],
294
+ optionKey: "definitionOfReady",
295
+ frontMatterKey: "definition_of_ready"
296
+ },
297
+ { canonical: "order", aliases: ["order", "rank"], optionKey: "order", frontMatterKey: "order" },
298
+ { canonical: "goal", aliases: ["goal"], optionKey: "goal", frontMatterKey: "goal" },
299
+ { canonical: "objective", aliases: ["objective"], optionKey: "objective", frontMatterKey: "objective" },
300
+ { canonical: "value", aliases: ["value"], optionKey: "value", frontMatterKey: "value" },
301
+ { canonical: "impact", aliases: ["impact"], optionKey: "impact", frontMatterKey: "impact" },
302
+ { canonical: "outcome", aliases: ["outcome"], optionKey: "outcome", frontMatterKey: "outcome" },
303
+ { canonical: "why-now", aliases: ["why_now", "why-now"], optionKey: "whyNow", frontMatterKey: "why_now" }
304
+ ];
305
+ var COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_AUTHOR = [
306
+ ...COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,
307
+ ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR
308
+ ];
309
+ var COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR = [
310
+ { canonical: "assignee", aliases: ["assignee"], optionKey: "assignee", frontMatterKey: "assignee" },
311
+ { canonical: "parent", aliases: ["parent"], optionKey: "parent", frontMatterKey: "parent" },
312
+ { canonical: "reviewer", aliases: ["reviewer"], optionKey: "reviewer", frontMatterKey: "reviewer" },
313
+ { canonical: "risk", aliases: ["risk"], optionKey: "risk", frontMatterKey: "risk" },
314
+ { canonical: "confidence", aliases: ["confidence"], optionKey: "confidence", frontMatterKey: "confidence" },
315
+ { canonical: "sprint", aliases: ["sprint"], optionKey: "sprint", frontMatterKey: "sprint" },
316
+ { canonical: "release", aliases: ["release"], optionKey: "release", frontMatterKey: "release" },
317
+ {
318
+ canonical: "blocked-by",
319
+ aliases: ["blocked_by", "blocked-by"],
320
+ optionKey: "blockedBy",
321
+ frontMatterKey: "blocked_by"
322
+ },
323
+ {
324
+ canonical: "blocked-reason",
325
+ aliases: ["blocked_reason", "blocked-reason"],
326
+ optionKey: "blockedReason",
327
+ frontMatterKey: "blocked_reason"
328
+ },
329
+ {
330
+ canonical: "unblock-note",
331
+ aliases: ["unblock_note", "unblock-note"],
332
+ optionKey: "unblockNote",
333
+ frontMatterKey: "unblock_note"
334
+ },
335
+ { canonical: "reporter", aliases: ["reporter"], optionKey: "reporter", frontMatterKey: "reporter" },
336
+ { canonical: "severity", aliases: ["severity"], optionKey: "severity", frontMatterKey: "severity" },
337
+ {
338
+ canonical: "environment",
339
+ aliases: ["environment"],
340
+ optionKey: "environment",
341
+ frontMatterKey: "environment"
342
+ },
343
+ {
344
+ canonical: "repro-steps",
345
+ aliases: ["repro_steps", "repro-steps"],
346
+ optionKey: "reproSteps",
347
+ frontMatterKey: "repro_steps"
348
+ },
349
+ {
350
+ canonical: "resolution",
351
+ aliases: ["resolution"],
352
+ optionKey: "resolution",
353
+ frontMatterKey: "resolution"
354
+ },
355
+ {
356
+ canonical: "expected-result",
357
+ aliases: ["expected_result", "expected-result"],
358
+ optionKey: "expectedResult",
359
+ frontMatterKey: "expected_result"
360
+ },
361
+ {
362
+ canonical: "actual-result",
363
+ aliases: ["actual_result", "actual-result"],
364
+ optionKey: "actualResult",
365
+ frontMatterKey: "actual_result"
366
+ },
367
+ {
368
+ canonical: "affected-version",
369
+ aliases: ["affected_version", "affected-version"],
370
+ optionKey: "affectedVersion",
371
+ frontMatterKey: "affected_version"
372
+ },
373
+ {
374
+ canonical: "fixed-version",
375
+ aliases: ["fixed_version", "fixed-version"],
376
+ optionKey: "fixedVersion",
377
+ frontMatterKey: "fixed_version"
378
+ },
379
+ { canonical: "component", aliases: ["component"], optionKey: "component", frontMatterKey: "component" },
380
+ { canonical: "regression", aliases: ["regression"], optionKey: "regression", frontMatterKey: "regression" },
381
+ {
382
+ canonical: "customer-impact",
383
+ aliases: ["customer_impact", "customer-impact"],
384
+ optionKey: "customerImpact",
385
+ frontMatterKey: "customer_impact"
386
+ }
387
+ ];
388
+ function parseCommandUnsetTargets(options) {
389
+ const frontMatterKeys = /* @__PURE__ */ new Set();
390
+ const optionKeys = /* @__PURE__ */ new Set();
391
+ if (!options.raw || options.raw.length === 0) {
392
+ return { frontMatterKeys, optionKeys };
393
+ }
394
+ for (const entry of options.raw) {
395
+ const trimmed = entry.trim().toLowerCase();
396
+ if (!trimmed) {
397
+ throw new PmCliError("--unset values must not be empty", EXIT_CODE.USAGE);
398
+ }
399
+ if (isLegacyNoneToken(trimmed)) {
400
+ throw new PmCliError('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline', EXIT_CODE.USAGE);
401
+ }
402
+ const definition = options.resolveDefinition(trimmed);
403
+ if (!definition) {
404
+ throw new PmCliError(`Unsupported --unset field "${entry}". Supported fields: ${options.supportedFields}`, EXIT_CODE.USAGE);
405
+ }
406
+ frontMatterKeys.add(definition.frontMatterKey);
407
+ optionKeys.add(definition.optionKey);
408
+ }
409
+ return { frontMatterKeys, optionKeys };
410
+ }
411
+ function resolveRuntimeUnsetFieldDefinition(token, command, runtimeFieldRegistry) {
412
+ const normalizedToken = token.trim().toLowerCase();
413
+ if (!runtimeFieldRegistry) {
414
+ return void 0;
415
+ }
416
+ const definitions = runtimeFieldRegistry.command_to_fields?.get(command) ?? [];
417
+ for (const definition of definitions) {
418
+ if (definition.allow_unset === false) {
419
+ continue;
420
+ }
421
+ const candidates = /* @__PURE__ */ new Set();
422
+ if (typeof definition.key === "string" && definition.key.length > 0) {
423
+ candidates.add(definition.key.toLowerCase());
424
+ }
425
+ if (typeof definition.metadata_key === "string" && definition.metadata_key.length > 0) {
426
+ candidates.add(definition.metadata_key.toLowerCase());
427
+ }
428
+ if (typeof definition.cli_flag === "string" && definition.cli_flag.length > 0) {
429
+ candidates.add(definition.cli_flag.replaceAll("-", "_").toLowerCase());
430
+ candidates.add(definition.cli_flag.toLowerCase());
431
+ }
432
+ if (Array.isArray(definition.cli_aliases)) {
433
+ for (const alias of definition.cli_aliases) {
434
+ if (typeof alias !== "string" || alias.length === 0) {
435
+ continue;
436
+ }
437
+ candidates.add(alias.replaceAll("-", "_").toLowerCase());
438
+ candidates.add(alias.toLowerCase());
439
+ }
440
+ }
441
+ if (!candidates.has(normalizedToken)) {
442
+ continue;
443
+ }
444
+ return {
445
+ optionKey: definition.key,
446
+ frontMatterKey: definition.metadata_key
447
+ };
448
+ }
449
+ return void 0;
450
+ }
451
+
452
+ // dist/cli/commands/recurrence-parsers.js
453
+ function parseEventBoolean(value, flag) {
454
+ const normalized = value.trim().toLowerCase();
455
+ if (normalized === "true" || normalized === "1" || normalized === "yes") {
456
+ return true;
457
+ }
458
+ if (normalized === "false" || normalized === "0" || normalized === "no") {
459
+ return false;
460
+ }
461
+ throw new PmCliError(`${flag} must be one of true|false|1|0|yes|no`, EXIT_CODE.USAGE);
462
+ }
463
+ function parseDelimitedList(raw) {
464
+ if (!raw) {
465
+ return [];
466
+ }
467
+ return raw.split("|").map((value) => value.trim()).filter((value) => value.length > 0);
468
+ }
469
+ function ensureEnumValue(value, allowed, label) {
470
+ if (!allowed.includes(value)) {
471
+ throw new PmCliError(`Invalid ${label} value "${value}". Allowed: ${allowed.join(", ")}`, EXIT_CODE.USAGE);
472
+ }
473
+ return value;
474
+ }
475
+ var RECURRENCE_CSV_KEYS = [
476
+ "recur_freq",
477
+ "recur_interval",
478
+ "recur_count",
479
+ "recur_until",
480
+ "recur_by_weekday",
481
+ "recur_by_month_day",
482
+ "recur_exdates"
483
+ ];
484
+ function numericRecurrenceValueProvided(raw, guard) {
485
+ return guard === "defined" ? raw !== void 0 : Boolean(raw);
486
+ }
487
+ function parsePositiveRecurrenceInteger(raw, label, guard) {
488
+ if (!numericRecurrenceValueProvided(raw, guard)) {
489
+ return void 0;
490
+ }
491
+ const parsed = parseOptionalNumber(raw, `event ${label}`);
492
+ if (!Number.isInteger(parsed) || parsed < 1) {
493
+ throw new PmCliError(`--event ${label} must be an integer >= 1`, EXIT_CODE.USAGE);
494
+ }
495
+ return parsed;
496
+ }
497
+ function parseRecurrenceUntil(untilRaw, startAt, nowValue) {
498
+ const until = untilRaw ? resolveIsoOrRelative(untilRaw, nowValue, "event.recur_until") : void 0;
499
+ if (until && until < startAt) {
500
+ throw new PmCliError("--event recur_until must be at or after start", EXIT_CODE.USAGE);
501
+ }
502
+ return until;
503
+ }
504
+ function parseRecurrenceWeekdays(raw) {
505
+ return Array.from(new Set(parseDelimitedList(raw).map((value) => ensureEnumValue(value.toLowerCase(), RECURRENCE_WEEKDAY_VALUES, "event weekday")))).sort((left, right) => weekdayOrderIndex(left) - weekdayOrderIndex(right));
506
+ }
507
+ function parseRecurrenceMonthDays(raw) {
508
+ return Array.from(new Set(parseDelimitedList(raw).map((value) => {
509
+ const day = parseOptionalNumber(value, "event recur_by_month_day");
510
+ if (!Number.isInteger(day) || day < 1 || day > 31) {
511
+ throw new PmCliError("--event recur_by_month_day values must be integers 1..31", EXIT_CODE.USAGE);
512
+ }
513
+ return day;
514
+ }))).sort((left, right) => left - right);
515
+ }
516
+ function parseRecurrenceExdates(raw, nowValue) {
517
+ return Array.from(new Set(parseDelimitedList(raw).map((value) => resolveIsoOrRelative(value, nowValue, "event.recur_exdates")))).sort((left, right) => left.localeCompare(right));
518
+ }
519
+ function parseRecurrenceRule(kv, startAt, nowValue, emptyNumericGuard) {
520
+ const freqRaw = kv.recur_freq?.trim();
521
+ const intervalRaw = kv.recur_interval?.trim();
522
+ const countRaw = kv.recur_count?.trim();
523
+ const untilRaw = kv.recur_until?.trim();
524
+ const byWeekdayRaw = kv.recur_by_weekday?.trim();
525
+ const byMonthDayRaw = kv.recur_by_month_day?.trim();
526
+ const exdatesRaw = kv.recur_exdates?.trim();
527
+ const recurrenceInputsProvided = [freqRaw, intervalRaw, countRaw, untilRaw, byWeekdayRaw, byMonthDayRaw, exdatesRaw].some((value) => value !== void 0);
528
+ if (!recurrenceInputsProvided) {
529
+ return void 0;
530
+ }
531
+ if (!freqRaw) {
532
+ throw new PmCliError("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>", EXIT_CODE.USAGE);
533
+ }
534
+ const freq = ensureEnumValue(freqRaw.toLowerCase(), RECURRENCE_FREQUENCY_VALUES, "event recurrence frequency");
535
+ const interval = parsePositiveRecurrenceInteger(intervalRaw, "recur_interval", emptyNumericGuard);
536
+ const count = parsePositiveRecurrenceInteger(countRaw, "recur_count", emptyNumericGuard);
537
+ const until = parseRecurrenceUntil(untilRaw, startAt, nowValue);
538
+ const byWeekday = parseRecurrenceWeekdays(byWeekdayRaw);
539
+ const byMonthDay = parseRecurrenceMonthDays(byMonthDayRaw);
540
+ const exdates = parseRecurrenceExdates(exdatesRaw, nowValue);
541
+ return {
542
+ freq,
543
+ interval,
544
+ count,
545
+ until,
546
+ by_weekday: byWeekday.length > 0 ? byWeekday : void 0,
547
+ by_month_day: byMonthDay.length > 0 ? byMonthDay : void 0,
548
+ exdates: exdates.length > 0 ? exdates : void 0
549
+ };
550
+ }
551
+
552
+ // dist/cli/commands/event-validation-messages.js
553
+ var EVENT_END_AFTER_START_MESSAGE = "--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.";
554
+ var EVENT_END_DURATION_MUTUALLY_EXCLUSIVE_MESSAGE = "--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).";
555
+ var MINUTE_DURATION = /^([+-]?)(\d+)(min|mins|minute|minutes)$/i;
556
+ var ISO_8601_TIME_DURATION = /^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/;
557
+ var MILLIS_PER_SECOND = 1e3;
558
+ var MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND;
559
+ var MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE;
560
+ function toIsoTimestampOrThrow(timestampMs, durationRaw) {
561
+ const resolved = new Date(timestampMs);
562
+ if (!Number.isFinite(resolved.getTime())) {
563
+ throw new PmCliError(`Invalid event.duration value "${durationRaw}". Duration is out of supported timestamp range.`, EXIT_CODE.USAGE);
564
+ }
565
+ return resolved.toISOString();
566
+ }
567
+ function resolveDurationAgainstStart(startAt, durationRaw) {
568
+ const start = new Date(startAt);
569
+ const trimmedDuration = durationRaw.trim();
570
+ const minuteDuration = MINUTE_DURATION.exec(trimmedDuration);
571
+ if (minuteDuration) {
572
+ const sign = minuteDuration[1] === "-" ? -1 : 1;
573
+ const amount = Number.parseInt(minuteDuration[2], 10) * sign;
574
+ return toIsoTimestampOrThrow(start.getTime() + amount * MILLIS_PER_MINUTE, trimmedDuration);
575
+ }
576
+ const isoDuration = ISO_8601_TIME_DURATION.exec(trimmedDuration);
577
+ if (isoDuration) {
578
+ const [, signToken, hoursToken, minutesToken, secondsToken] = isoDuration;
579
+ const hasComponent = hoursToken || minutesToken || secondsToken;
580
+ if (hasComponent) {
581
+ const sign = signToken === "-" ? -1 : 1;
582
+ const hours = Number.parseInt(hoursToken ?? "0", 10);
583
+ const minutes = Number.parseInt(minutesToken ?? "0", 10);
584
+ const seconds = Number.parseInt(secondsToken ?? "0", 10);
585
+ const totalMillis = hours * MILLIS_PER_HOUR + minutes * MILLIS_PER_MINUTE + seconds * MILLIS_PER_SECOND;
586
+ return toIsoTimestampOrThrow(start.getTime() + sign * totalMillis, trimmedDuration);
587
+ }
588
+ }
589
+ const normalizedDuration = trimmedDuration.startsWith("+") || trimmedDuration.startsWith("-") ? trimmedDuration : `+${trimmedDuration}`;
590
+ return resolveIsoOrRelative(normalizedDuration, start, "event.duration");
591
+ }
592
+ function resolveEventEndAt(startAt, endRaw, durationRaw, referenceDate) {
593
+ if (endRaw && durationRaw) {
594
+ throw new PmCliError(EVENT_END_DURATION_MUTUALLY_EXCLUSIVE_MESSAGE, EXIT_CODE.USAGE);
595
+ }
596
+ if (durationRaw) {
597
+ const endAt2 = resolveDurationAgainstStart(startAt, durationRaw);
598
+ if (endAt2 < startAt) {
599
+ throw new PmCliError(EVENT_END_AFTER_START_MESSAGE, EXIT_CODE.USAGE);
600
+ }
601
+ if (endAt2 === startAt) {
602
+ return void 0;
603
+ }
604
+ return endAt2;
605
+ }
606
+ if (!endRaw) {
607
+ return void 0;
608
+ }
609
+ const endAt = resolveIsoOrRelative(endRaw, referenceDate, "event.end");
610
+ if (endAt < startAt) {
611
+ throw new PmCliError(EVENT_END_AFTER_START_MESSAGE, EXIT_CODE.USAGE);
612
+ }
613
+ if (endAt === startAt) {
614
+ return void 0;
615
+ }
616
+ return endAt;
617
+ }
618
+
619
+ // dist/cli/commands/repeatable-metadata-parsers.js
620
+ var REMINDER_KEYS = ["at", "date", "text", "title"];
621
+ var EVENT_KEYS = [
622
+ "start",
623
+ "date",
624
+ "end",
625
+ "duration",
626
+ "title",
627
+ "description",
628
+ "location",
629
+ "timezone",
630
+ "all_day",
631
+ ...RECURRENCE_CSV_KEYS
632
+ ];
633
+ var TYPE_OPTION_KEYS = ["key", "value"];
634
+ function optionalString(value, mode) {
635
+ return mode === "trimmed" ? value?.trim() : value;
636
+ }
637
+ function isProvided(value, guard) {
638
+ return guard === "defined" ? value !== void 0 : Boolean(value);
639
+ }
640
+ function parseReminderEntries(raw, nowValue, options) {
641
+ return raw.map((entry) => {
642
+ const kv = parseCsvKv(entry, "--reminder");
643
+ assertNoUnknownCsvKeys(kv, "--reminder", REMINDER_KEYS);
644
+ const atRaw = optionalString(kv.at ?? kv.date, options.valueMode);
645
+ const textRaw = optionalString(kv.text ?? kv.title, options.valueMode);
646
+ if (!atRaw || !textRaw) {
647
+ throw new PmCliError("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>", EXIT_CODE.USAGE);
648
+ }
649
+ const text = textRaw.trim();
650
+ if (!text) {
651
+ throw new PmCliError("--reminder text must not be empty", EXIT_CODE.USAGE);
652
+ }
653
+ return {
654
+ at: resolveIsoOrRelative(atRaw, nowValue, "reminder.at"),
655
+ text
656
+ };
657
+ });
658
+ }
659
+ function parseEventEntries(raw, nowValue, options) {
660
+ return raw.map((entry) => {
661
+ const kv = parseCsvKv(entry, "--event");
662
+ assertNoUnknownCsvKeys(kv, "--event", EVENT_KEYS);
663
+ const startRaw = (kv.start ?? kv.date)?.trim();
664
+ if (!startRaw) {
665
+ throw new PmCliError("--event requires start=<iso|relative> or date=<iso|relative>", EXIT_CODE.USAGE);
666
+ }
667
+ const startAt = resolveIsoOrRelative(startRaw, nowValue, "event.start");
668
+ const endRaw = kv.end?.trim();
669
+ const durationRaw = kv.duration?.trim();
670
+ const endAt = resolveEventEndAt(startAt, endRaw, durationRaw, nowValue);
671
+ const titleRaw = kv.title;
672
+ const descriptionRaw = kv.description;
673
+ const locationRaw = kv.location;
674
+ const timezoneRaw = kv.timezone;
675
+ const title = titleRaw?.trim();
676
+ const description = descriptionRaw?.trim();
677
+ const location = locationRaw?.trim();
678
+ const timezone = timezoneRaw?.trim();
679
+ const optionalTextFields = [
680
+ ["title", titleRaw, title],
681
+ ["description", descriptionRaw, description],
682
+ ["location", locationRaw, location],
683
+ ["timezone", timezoneRaw, timezone]
684
+ ];
685
+ for (const [fieldLabel, rawValue, trimmedValue] of optionalTextFields) {
686
+ if (rawValue !== void 0 && !trimmedValue) {
687
+ throw new PmCliError(`--event ${fieldLabel} must not be empty`, EXIT_CODE.USAGE);
688
+ }
689
+ }
690
+ const allDayRaw = kv.all_day?.trim();
691
+ const recurrence = parseRecurrenceRule(kv, startAt, nowValue, options.recurrenceEmptyNumericGuard);
692
+ const allDay = isProvided(allDayRaw, options.allDayEmptyGuard) ? parseEventBoolean(allDayRaw, "--event all_day") : void 0;
693
+ return {
694
+ start_at: startAt,
695
+ end_at: endAt,
696
+ title,
697
+ description,
698
+ location,
699
+ all_day: allDay,
700
+ timezone,
701
+ recurrence
702
+ };
703
+ });
704
+ }
705
+ function parseTypeOptionEntries(raw) {
706
+ const values = {};
707
+ for (const entry of raw) {
708
+ const trimmedEntry = entry.trim();
709
+ if (trimmedEntry.length === 0) {
710
+ throw new PmCliError("--type-option values must not be empty", EXIT_CODE.USAGE);
711
+ }
712
+ let key;
713
+ let value;
714
+ const prefersStructuredKv = trimmedEntry.includes(",") || trimmedEntry.includes("\n") || trimmedEntry.startsWith("```") || /^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(trimmedEntry);
715
+ if (prefersStructuredKv) {
716
+ const kv = parseCsvKv(trimmedEntry, "--type-option");
717
+ assertNoUnknownCsvKeys(kv, "--type-option", TYPE_OPTION_KEYS);
718
+ key = kv.key?.trim();
719
+ value = kv.value?.trim();
720
+ } else {
721
+ const equalsIndex = trimmedEntry.indexOf("=");
722
+ const colonIndex = trimmedEntry.indexOf(":");
723
+ let separatorIndex = equalsIndex;
724
+ if (equalsIndex <= 0 && colonIndex > 0) {
725
+ separatorIndex = colonIndex;
726
+ }
727
+ if (separatorIndex <= 0 || separatorIndex === trimmedEntry.length - 1) {
728
+ throw new PmCliError("--type-option requires key=value or key=<name>,value=<value> entries", EXIT_CODE.USAGE);
729
+ }
730
+ key = trimmedEntry.slice(0, separatorIndex).trim();
731
+ value = trimmedEntry.slice(separatorIndex + 1).trim();
732
+ }
733
+ if (!key || !value) {
734
+ throw new PmCliError("--type-option requires key and value", EXIT_CODE.USAGE);
735
+ }
736
+ values[key] = value;
737
+ }
738
+ return Object.fromEntries(Object.entries(values).sort((left, right) => left[0].localeCompare(right[0])));
739
+ }
740
+
741
+ // dist/cli/commands/create.js
742
+ var CREATE_MODE_VALUES = ["strict", "progressive"];
743
+ var SCHEDULE_CREATE_PRESET_VALUES = ["lightweight"];
744
+ var SCHEDULE_CREATE_PRESET_TYPES = /* @__PURE__ */ new Set(["Reminder", "Meeting", "Event"]);
745
+ var LOG_SEED_ALLOWED_KEYS = /* @__PURE__ */ new Set(["author", "created_at", "text"]);
746
+ var CREATE_UNSET_FIELD_DEFINITIONS = [
747
+ ...COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_AUTHOR,
748
+ { canonical: "author", aliases: ["author"], optionKey: "author", frontMatterKey: "author" },
749
+ ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR
750
+ ];
751
+ var CREATE_UNSET_ALIAS_MAP = (() => {
752
+ const map = /* @__PURE__ */ new Map();
753
+ for (const definition of CREATE_UNSET_FIELD_DEFINITIONS) {
754
+ for (const alias of definition.aliases) {
755
+ map.set(alias, {
756
+ optionKey: definition.optionKey,
757
+ frontMatterKey: definition.frontMatterKey
758
+ });
759
+ }
760
+ }
761
+ return map;
762
+ })();
763
+ var CREATE_OPTION_KEY_TO_UNSET_CANONICAL = new Map(CREATE_UNSET_FIELD_DEFINITIONS.map((definition) => [definition.optionKey, definition.canonical]));
764
+ var CREATE_UNSET_SUPPORTED_CANONICAL_FIELDS = CREATE_UNSET_FIELD_DEFINITIONS.map((definition) => definition.canonical).sort((left, right) => left.localeCompare(right)).join(", ");
765
+ function buildInvalidLogSeedKeysMessage(optionName, unsupportedKeys) {
766
+ const sortedUnsupported = [...unsupportedKeys].sort((left, right) => left.localeCompare(right));
767
+ const keyLabel = sortedUnsupported.length === 1 ? "key" : "keys";
768
+ return `${optionName} supports only author, created_at, and text seed fields. Found unsupported ${keyLabel}: ${sortedUnsupported.join(", ")}. If text contains comma-separated key:value-like fragments, wrap text in quotes (for example text="first,scope:project"), use markdown-style key/value input, or pass ${optionName} - with piped stdin.`;
769
+ }
770
+ function parseStatusValue(value, statusRegistry) {
771
+ const normalized = normalizeStatusInput(value, statusRegistry);
772
+ if (!normalized) {
773
+ const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);
774
+ throw new PmCliError(`Invalid status value "${value}". Allowed: ${allowedStatuses.join(", ")}`, EXIT_CODE.USAGE);
775
+ }
776
+ return normalized;
777
+ }
778
+ function resolveCreateDefaultStatus(typeDefinition, statusRegistry) {
779
+ const configured = typeDefinition.default_status;
780
+ if (configured !== void 0) {
781
+ const normalized = normalizeStatusInput(configured, statusRegistry);
782
+ if (normalized) {
783
+ return normalized;
784
+ }
785
+ }
786
+ return statusRegistry.open_status;
787
+ }
788
+ function parseCreatedAt(value, currentIso) {
789
+ if (!value || value.trim() === "" || value.trim().toLowerCase() === "now") {
790
+ return currentIso;
791
+ }
792
+ const parsed = Date.parse(value);
793
+ if (!Number.isFinite(parsed)) {
794
+ throw new PmCliError(`Invalid created_at timestamp "${value}"`, EXIT_CODE.USAGE);
795
+ }
796
+ return new Date(parsed).toISOString();
797
+ }
798
+ var CREATE_LEGACY_NONE_COLLECTION_NORMALIZERS = [
799
+ { optionKey: "dep", clearFlagKey: "clearDeps", valueFlag: "--dep", clearFlag: "--clear-deps" },
800
+ { optionKey: "comment", clearFlagKey: "clearComments", valueFlag: "--comment", clearFlag: "--clear-comments" },
801
+ { optionKey: "note", clearFlagKey: "clearNotes", valueFlag: "--note", clearFlag: "--clear-notes" },
802
+ { optionKey: "learning", clearFlagKey: "clearLearnings", valueFlag: "--learning", clearFlag: "--clear-learnings" },
803
+ { optionKey: "file", clearFlagKey: "clearFiles", valueFlag: "--file", clearFlag: "--clear-files" },
804
+ { optionKey: "test", clearFlagKey: "clearTests", valueFlag: "--test", clearFlag: "--clear-tests" },
805
+ { optionKey: "doc", clearFlagKey: "clearDocs", valueFlag: "--doc", clearFlag: "--clear-docs" },
806
+ { optionKey: "reminder", clearFlagKey: "clearReminders", valueFlag: "--reminder", clearFlag: "--clear-reminders" },
807
+ { optionKey: "event", clearFlagKey: "clearEvents", valueFlag: "--event", clearFlag: "--clear-events" },
808
+ { optionKey: "typeOption", clearFlagKey: "clearTypeOptions", valueFlag: "--type-option", clearFlag: "--clear-type-options" }
809
+ ];
810
+ function normalizeLegacyNoneCreateOptions(options) {
811
+ const normalized = {
812
+ ...options,
813
+ unset: options.unset ? [...options.unset] : void 0
814
+ };
815
+ const appendUnsetTarget = (value) => {
816
+ const current = normalized.unset ? [...normalized.unset] : [];
817
+ if (!current.includes(value)) {
818
+ current.push(value);
819
+ }
820
+ normalized.unset = current;
821
+ };
822
+ if (isLegacyNoneToken(normalized.template)) {
823
+ normalized.template = void 0;
824
+ }
825
+ const scalarOptionKeys = /* @__PURE__ */ new Set([...CREATE_OPTION_KEY_TO_UNSET_CANONICAL.keys(), "rank"]);
826
+ for (const optionKey of scalarOptionKeys) {
827
+ const candidate = normalized[optionKey];
828
+ if (typeof candidate !== "string" || !isLegacyNoneToken(candidate)) {
829
+ continue;
830
+ }
831
+ const canonicalUnset = optionKey === "rank" ? "order" : CREATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;
832
+ appendUnsetTarget(canonicalUnset);
833
+ normalized[optionKey] = void 0;
834
+ }
835
+ return applyLegacyNoneCollectionNormalizers(normalized, CREATE_LEGACY_NONE_COLLECTION_NORMALIZERS);
836
+ }
837
+ function parseOptionalString(value) {
838
+ if (value === void 0)
839
+ return void 0;
840
+ return value;
841
+ }
842
+ function parseCreateUnsetTargets(raw, runtimeFieldRegistry) {
843
+ return parseCommandUnsetTargets({
844
+ raw,
845
+ supportedFields: CREATE_UNSET_SUPPORTED_CANONICAL_FIELDS,
846
+ resolveDefinition: (trimmed) => CREATE_UNSET_ALIAS_MAP.get(trimmed) ?? resolveRuntimeUnsetFieldDefinition(trimmed, "create", runtimeFieldRegistry)
847
+ });
848
+ }
849
+ var DEP_SEED_KEYS = ["id", "kind", "type", "author", "created_at"];
850
+ var LINKED_ARTIFACT_SEED_KEYS = ["path", "scope", "note"];
851
+ function parseDependencies(raw, nowValue, prefix) {
852
+ if (!raw || raw.length === 0)
853
+ return { values: void 0, explicitEmpty: false };
854
+ assertNoLegacyNoneTokens(raw, "--dep", "Use --clear-deps to clear dependencies.");
855
+ const values = raw.map((entry) => {
856
+ const trimmedEntry = entry.trim();
857
+ const isStructured = looksLikeStructuredEntry(trimmedEntry, DEP_SEED_KEYS);
858
+ const kv = isStructured ? parseCsvKv(entry, "--dep") : { id: trimmedEntry, kind: "related" };
859
+ if (isStructured) {
860
+ assertNoUnknownCsvKeys(kv, "--dep", DEP_SEED_KEYS);
861
+ }
862
+ const id = parseOptionalString(kv.id);
863
+ const kind = normalizeDependencyKindInput(parseOptionalString(kv.kind ?? kv.type));
864
+ if (!id || !kind) {
865
+ throw new PmCliError("--dep requires id and kind, or a bare item id to create a related dependency", EXIT_CODE.USAGE);
866
+ }
867
+ if (id.trim().toLowerCase() === "undefined") {
868
+ throw new PmCliError(`--dep id must not use placeholder token "${id}". Use --clear-deps to clear dependencies.`, EXIT_CODE.USAGE);
869
+ }
870
+ return {
871
+ id: normalizeItemId(id, prefix),
872
+ kind: ensureEnumValue(kind, DEPENDENCY_KIND_VALUES, "dependency kind"),
873
+ created_at: parseCreatedAt(kv.created_at, nowValue),
874
+ author: parseOptionalString(kv.author)
875
+ };
876
+ });
877
+ return { values, explicitEmpty: false };
878
+ }
879
+ var DEPENDENCY_KIND_INPUT_ALIASES = {
880
+ "blocked-by": "blocked_by",
881
+ depends_on: "blocked_by",
882
+ "depends-on": "blocked_by"
883
+ };
884
+ function normalizeDependencyKindInput(raw) {
885
+ if (typeof raw !== "string") {
886
+ return raw;
887
+ }
888
+ const alias = DEPENDENCY_KIND_INPUT_ALIASES[raw.toLowerCase()];
889
+ return alias ?? raw;
890
+ }
891
+ function looksLikeStructuredEntry(raw, keys) {
892
+ if (raw.startsWith("```") || raw.includes("\n")) {
893
+ return true;
894
+ }
895
+ const keyPattern = keys.map((key) => key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|");
896
+ if (new RegExp(`^(?:[-*+]\\s+)?(?:${keyPattern})\\s*[:=]`, "i").test(raw)) {
897
+ return true;
898
+ }
899
+ return looksLikeGenericKeyValueEntry(raw);
900
+ }
901
+ function parseLogSeed(optionName, raw, nowValue, fallbackAuthor) {
902
+ if (!raw || raw.length === 0)
903
+ return { values: void 0, explicitEmpty: false };
904
+ const clearHint = optionName === "--comment" ? "Use --clear-comments to clear comments." : optionName === "--note" ? "Use --clear-notes to clear notes." : "Use --clear-learnings to clear learnings.";
905
+ assertNoLegacyNoneTokens(raw, optionName, clearHint);
906
+ const values = raw.map((entry) => {
907
+ const trimmedEntry = entry.trim();
908
+ const buildPlainTextCommentSeed = () => {
909
+ if (trimmedEntry.length === 0) {
910
+ throw new PmCliError(`${optionName} requires text=<value>`, EXIT_CODE.USAGE);
911
+ }
912
+ return {
913
+ created_at: nowValue,
914
+ author: fallbackAuthor,
915
+ text: trimmedEntry
916
+ };
917
+ };
918
+ let kv;
919
+ try {
920
+ kv = parseCsvKv(entry, optionName);
921
+ } catch (error) {
922
+ if (optionName === "--comment" || optionName === "--note" || optionName === "--learning") {
923
+ return buildPlainTextCommentSeed();
924
+ }
925
+ throw error;
926
+ }
927
+ const unsupportedKeys = Object.keys(kv).filter((key) => !LOG_SEED_ALLOWED_KEYS.has(key));
928
+ if (unsupportedKeys.length > 0) {
929
+ return {
930
+ created_at: parseCreatedAt(kv.created_at, nowValue),
931
+ author: parseOptionalString(kv.author) ?? fallbackAuthor,
932
+ text: trimmedEntry
933
+ };
934
+ }
935
+ const text = kv.text ?? "";
936
+ if (text === "") {
937
+ throw new PmCliError(`${optionName} requires text=<value>`, EXIT_CODE.USAGE);
938
+ }
939
+ return {
940
+ created_at: parseCreatedAt(kv.created_at, nowValue),
941
+ author: parseOptionalString(kv.author) ?? fallbackAuthor,
942
+ text
943
+ };
944
+ });
945
+ return { values, explicitEmpty: false };
946
+ }
947
+ function parseFiles(raw) {
948
+ if (!raw || raw.length === 0)
949
+ return { values: void 0, explicitEmpty: false };
950
+ assertNoLegacyNoneTokens(raw, "--file", "Use --clear-files to clear linked files.");
951
+ const values = raw.map((entry) => {
952
+ const trimmedEntry = entry.trim();
953
+ const isStructured = looksLikeStructuredEntry(trimmedEntry, LINKED_ARTIFACT_SEED_KEYS);
954
+ const kv = isStructured ? parseCsvKv(entry, "--file") : { path: trimmedEntry };
955
+ if (isStructured) {
956
+ assertNoUnknownCsvKeys(kv, "--file", LINKED_ARTIFACT_SEED_KEYS);
957
+ }
958
+ if (!kv.path) {
959
+ throw new PmCliError("--file requires path=<value> or a bare file path", EXIT_CODE.USAGE);
960
+ }
961
+ return {
962
+ path: kv.path,
963
+ scope: ensureEnumValue(kv.scope ?? "project", SCOPE_VALUES, "file scope"),
964
+ note: parseOptionalString(kv.note)
965
+ };
966
+ });
967
+ return { values, explicitEmpty: false };
968
+ }
969
+ function parseTests(raw) {
970
+ if (!raw || raw.length === 0)
971
+ return { values: void 0, explicitEmpty: false };
972
+ assertNoLegacyNoneTokens(raw, "--test", "Use --clear-tests to clear linked tests.");
973
+ const values = raw.map((entry) => {
974
+ const trimmedEntry = entry.trim();
975
+ const kv = looksLikeStructuredLinkedTestEntry(trimmedEntry) ? normalizeStructuredLinkedTestEntry(parseCsvKv(entry, "--test"), "--test") : { command: trimmedEntry };
976
+ const command = parseOptionalString(kv.command);
977
+ const filePath = parseOptionalString(kv.path);
978
+ if (!command) {
979
+ throw new PmCliError("--test requires command=<value> or a bare command (path=<value> is optional metadata)", EXIT_CODE.USAGE);
980
+ }
981
+ const timeoutSecondsRaw = parseOptionalString(kv.timeout_seconds);
982
+ const timeoutAliasRaw = parseOptionalString(kv.timeout);
983
+ if (timeoutSecondsRaw && timeoutAliasRaw && timeoutSecondsRaw !== timeoutAliasRaw) {
984
+ throw new PmCliError("--test timeout and timeout_seconds must match when both are provided", EXIT_CODE.USAGE);
985
+ }
986
+ const timeoutRaw = timeoutSecondsRaw ?? timeoutAliasRaw;
987
+ return {
988
+ command,
989
+ path: filePath,
990
+ scope: ensureEnumValue(kv.scope ?? "project", SCOPE_VALUES, "test scope"),
991
+ timeout_seconds: timeoutRaw ? parseOptionalNumber(timeoutRaw, "timeout_seconds") : void 0,
992
+ pm_context_mode: parseLinkedTestContextMode(kv.pm_context_mode, "--test"),
993
+ env_set: parseLinkedTestEnvSet(kv.env_set, "--test"),
994
+ env_clear: parseLinkedTestEnvClear(kv.env_clear, "--test"),
995
+ shared_host_safe: parseLinkedTestBoolean(kv.shared_host_safe, "--test", "shared_host_safe"),
996
+ assert_stdout_contains: parseLinkedTestStringList(kv.assert_stdout_contains),
997
+ assert_stdout_regex: parseLinkedTestRegexList(kv.assert_stdout_regex, "--test", "assert_stdout_regex"),
998
+ assert_stderr_contains: parseLinkedTestStringList(kv.assert_stderr_contains),
999
+ assert_stderr_regex: parseLinkedTestRegexList(kv.assert_stderr_regex, "--test", "assert_stderr_regex"),
1000
+ assert_stdout_min_lines: parseLinkedTestMinLines(kv.assert_stdout_min_lines, "--test"),
1001
+ assert_json_field_equals: parseLinkedTestAssertionEqualsMap(kv.assert_json_field_equals, "--test"),
1002
+ assert_json_field_gte: parseLinkedTestAssertionGteMap(kv.assert_json_field_gte, "--test"),
1003
+ note: parseOptionalString(kv.note)
1004
+ };
1005
+ });
1006
+ return { values, explicitEmpty: false };
1007
+ }
1008
+ function parseDocs(raw) {
1009
+ if (!raw || raw.length === 0)
1010
+ return { values: void 0, explicitEmpty: false };
1011
+ assertNoLegacyNoneTokens(raw, "--doc", "Use --clear-docs to clear linked docs.");
1012
+ const values = raw.map((entry) => {
1013
+ const trimmedEntry = entry.trim();
1014
+ const isStructured = looksLikeStructuredEntry(trimmedEntry, LINKED_ARTIFACT_SEED_KEYS);
1015
+ const kv = isStructured ? parseCsvKv(entry, "--doc") : { path: trimmedEntry };
1016
+ if (isStructured) {
1017
+ assertNoUnknownCsvKeys(kv, "--doc", LINKED_ARTIFACT_SEED_KEYS);
1018
+ }
1019
+ if (!kv.path) {
1020
+ throw new PmCliError("--doc requires path=<value> or a bare doc path", EXIT_CODE.USAGE);
1021
+ }
1022
+ return {
1023
+ path: kv.path,
1024
+ scope: ensureEnumValue(kv.scope ?? "project", SCOPE_VALUES, "doc scope"),
1025
+ note: parseOptionalString(kv.note)
1026
+ };
1027
+ });
1028
+ return { values, explicitEmpty: false };
1029
+ }
1030
+ function parseReminders(raw, nowValue) {
1031
+ if (!raw || raw.length === 0)
1032
+ return { values: void 0, explicitEmpty: false };
1033
+ assertNoLegacyNoneTokens(raw, "--reminder", "Use --clear-reminders to clear reminders.");
1034
+ return {
1035
+ values: parseReminderEntries(raw, new Date(nowValue), { valueMode: "raw" }),
1036
+ explicitEmpty: false
1037
+ };
1038
+ }
1039
+ function parseEvents(raw, nowValue) {
1040
+ if (!raw || raw.length === 0)
1041
+ return { values: void 0, explicitEmpty: false };
1042
+ assertNoLegacyNoneTokens(raw, "--event", "Use --clear-events to clear linked events.");
1043
+ return {
1044
+ values: parseEventEntries(raw, new Date(nowValue), {
1045
+ allDayEmptyGuard: "defined",
1046
+ recurrenceEmptyNumericGuard: "defined"
1047
+ }),
1048
+ explicitEmpty: false
1049
+ };
1050
+ }
1051
+ function buildChangedFields(frontMatter, body, explicitUnsets, additionalFrontMatterKeys = []) {
1052
+ const changed = [
1053
+ ...FRONT_MATTER_KEY_ORDER.filter((key) => frontMatter[key] !== void 0),
1054
+ ...additionalFrontMatterKeys.filter((key) => frontMatter[key] !== void 0),
1055
+ ...body.length > 0 ? ["body"] : [],
1056
+ ...explicitUnsets.map((key) => `unset:${key}`)
1057
+ ];
1058
+ return Array.from(new Set(changed));
1059
+ }
1060
+ function buildHistoryMessage(baseMessage, explicitUnsets) {
1061
+ const trimmed = baseMessage ?? "";
1062
+ if (explicitUnsets.length === 0) {
1063
+ return trimmed;
1064
+ }
1065
+ const suffix = `explicit_unset=${explicitUnsets.join(",")}`;
1066
+ return trimmed ? `${trimmed} | ${suffix}` : suffix;
1067
+ }
1068
+ function normalizeCreatePolicyOptionKey(raw, typeName, sourceLabel) {
1069
+ const canonical = canonicalizeCommandOptionKey("create", raw);
1070
+ if (!canonical) {
1071
+ throw new PmCliError(`Unsupported ${sourceLabel} entry "${raw}" for type "${typeName}"`, EXIT_CODE.CONFLICT);
1072
+ }
1073
+ return canonical;
1074
+ }
1075
+ function buildCreateOptionValueLookup(options) {
1076
+ return {
1077
+ scalarValues: {
1078
+ title: options.title,
1079
+ description: options.description,
1080
+ type: options.type,
1081
+ status: options.status,
1082
+ priority: options.priority,
1083
+ tags: options.tags,
1084
+ body: options.body,
1085
+ deadline: options.deadline,
1086
+ estimatedMinutes: options.estimatedMinutes,
1087
+ acceptanceCriteria: options.acceptanceCriteria,
1088
+ definitionOfReady: options.definitionOfReady,
1089
+ order: options.order ?? options.rank,
1090
+ goal: options.goal,
1091
+ objective: options.objective,
1092
+ value: options.value,
1093
+ impact: options.impact,
1094
+ outcome: options.outcome,
1095
+ whyNow: options.whyNow,
1096
+ author: options.author,
1097
+ message: options.message,
1098
+ assignee: options.assignee,
1099
+ parent: options.parent,
1100
+ reviewer: options.reviewer,
1101
+ risk: options.risk,
1102
+ confidence: options.confidence,
1103
+ sprint: options.sprint,
1104
+ release: options.release,
1105
+ blockedBy: options.blockedBy,
1106
+ blockedReason: options.blockedReason,
1107
+ unblockNote: options.unblockNote,
1108
+ reporter: options.reporter,
1109
+ severity: options.severity,
1110
+ environment: options.environment,
1111
+ reproSteps: options.reproSteps,
1112
+ resolution: options.resolution,
1113
+ expectedResult: options.expectedResult,
1114
+ actualResult: options.actualResult,
1115
+ affectedVersion: options.affectedVersion,
1116
+ fixedVersion: options.fixedVersion,
1117
+ component: options.component,
1118
+ regression: options.regression,
1119
+ customerImpact: options.customerImpact
1120
+ },
1121
+ repeatableValues: {
1122
+ dep: options.dep,
1123
+ comment: options.comment,
1124
+ note: options.note,
1125
+ learning: options.learning,
1126
+ file: options.file,
1127
+ test: options.test,
1128
+ doc: options.doc,
1129
+ reminder: options.reminder,
1130
+ event: options.event,
1131
+ typeOption: options.typeOption,
1132
+ field: options.field
1133
+ },
1134
+ addTags: options.addTags
1135
+ };
1136
+ }
1137
+ function hasCreateOptionValue(lookup, optionKey) {
1138
+ if (optionKey === "tags") {
1139
+ return lookup.scalarValues.tags !== void 0 || Array.isArray(lookup.addTags) && lookup.addTags.length > 0;
1140
+ }
1141
+ if (Object.prototype.hasOwnProperty.call(lookup.scalarValues, optionKey)) {
1142
+ return lookup.scalarValues[optionKey] !== void 0;
1143
+ }
1144
+ if (Object.prototype.hasOwnProperty.call(lookup.repeatableValues, optionKey)) {
1145
+ const value = lookup.repeatableValues[optionKey];
1146
+ return Array.isArray(value) && value.length > 0;
1147
+ }
1148
+ return false;
1149
+ }
1150
+ function buildRequiredCreateOptions(typeDefinition, createMode) {
1151
+ const requiredOptions = /* @__PURE__ */ new Set(["title", "type"]);
1152
+ if (createMode !== "strict") {
1153
+ return requiredOptions;
1154
+ }
1155
+ for (const field of typeDefinition.required_create_fields) {
1156
+ requiredOptions.add(normalizeCreatePolicyOptionKey(field, typeDefinition.name, "required_create_fields"));
1157
+ }
1158
+ for (const field of typeDefinition.required_create_repeatables) {
1159
+ requiredOptions.add(normalizeCreatePolicyOptionKey(field, typeDefinition.name, "required_create_repeatables"));
1160
+ }
1161
+ return requiredOptions;
1162
+ }
1163
+ function assertNoDisabledCreateOptions(disabledOptions, lookup, clearOptionKeys, typeName) {
1164
+ for (const option of disabledOptions) {
1165
+ if (!hasCreateOptionValue(lookup, option) && !clearOptionKeys.has(option)) {
1166
+ continue;
1167
+ }
1168
+ throw new PmCliError(`Option ${commandOptionFlagLabel("create", option)} is disabled for type "${typeName}" by command_option_policies`, EXIT_CODE.USAGE);
1169
+ }
1170
+ }
1171
+ function assertNoStrictRequiredOptionClears(requiredOptions, createMode, clearOptionKeys) {
1172
+ if (createMode !== "strict") {
1173
+ return;
1174
+ }
1175
+ const strictRequiredClears = requiredOptions.filter((required) => clearOptionKeys.has(required));
1176
+ if (strictRequiredClears.length === 0) {
1177
+ return;
1178
+ }
1179
+ const requiredFlags = [...new Set(strictRequiredClears.map((required) => commandOptionFlagLabel("create", required)))].sort((left, right) => left.localeCompare(right));
1180
+ throw new PmCliError(`Strict create mode requires concrete values for ${requiredFlags.join(", ")}; --unset/--clear-* directives cannot satisfy required options`, EXIT_CODE.USAGE);
1181
+ }
1182
+ function parseTypeOptions(raw) {
1183
+ if (!raw || raw.length === 0) {
1184
+ return { values: void 0, explicitEmpty: false };
1185
+ }
1186
+ assertNoLegacyNoneTokens(raw, "--type-option", "Use --clear-type-options to clear existing type options.");
1187
+ return {
1188
+ values: parseTypeOptionEntries(raw),
1189
+ explicitEmpty: false
1190
+ };
1191
+ }
1192
+ async function resolveCreateStdinInputs(options) {
1193
+ const stdinResolver = createStdinTokenResolver();
1194
+ return {
1195
+ ...options,
1196
+ body: await stdinResolver.resolveValue(options.body, "--body"),
1197
+ dep: await stdinResolver.resolveList(options.dep, "--dep"),
1198
+ comment: await stdinResolver.resolveList(options.comment, "--comment"),
1199
+ note: await stdinResolver.resolveList(options.note, "--note"),
1200
+ learning: await stdinResolver.resolveList(options.learning, "--learning"),
1201
+ file: await stdinResolver.resolveList(options.file, "--file"),
1202
+ test: await stdinResolver.resolveList(options.test, "--test"),
1203
+ doc: await stdinResolver.resolveList(options.doc, "--doc"),
1204
+ reminder: await stdinResolver.resolveList(options.reminder, "--reminder"),
1205
+ event: await stdinResolver.resolveList(options.event, "--event"),
1206
+ typeOption: await stdinResolver.resolveList(options.typeOption, "--type-option"),
1207
+ field: await stdinResolver.resolveList(options.field, "--field")
1208
+ };
1209
+ }
1210
+ function resolveCreateMode(createMode, defaultMode) {
1211
+ if (createMode === void 0) {
1212
+ return defaultMode;
1213
+ }
1214
+ const normalized = createMode.trim().toLowerCase();
1215
+ if (normalized.length === 0) {
1216
+ return defaultMode;
1217
+ }
1218
+ if (normalized === "strict" || normalized === "progressive") {
1219
+ return normalized;
1220
+ }
1221
+ throw new PmCliError(`Invalid --create-mode value "${createMode}". Allowed: ${CREATE_MODE_VALUES.join(", ")}`, EXIT_CODE.USAGE);
1222
+ }
1223
+ function resolveScheduleCreatePreset(raw) {
1224
+ if (raw === void 0) {
1225
+ return void 0;
1226
+ }
1227
+ const normalized = raw.trim().toLowerCase();
1228
+ if (normalized.length === 0) {
1229
+ throw new PmCliError("--schedule-preset must not be empty", EXIT_CODE.USAGE);
1230
+ }
1231
+ if (normalized === "lightweight" || normalized === "lite" || normalized === "schedule-lite") {
1232
+ return "lightweight";
1233
+ }
1234
+ throw new PmCliError(`Invalid --schedule-preset value "${raw}". Allowed: ${SCHEDULE_CREATE_PRESET_VALUES.join(", ")}`, EXIT_CODE.USAGE);
1235
+ }
1236
+ function resolveEffectiveCreateMode(createMode, schedulePreset, defaultMode) {
1237
+ const resolvedMode = resolveCreateMode(createMode, defaultMode);
1238
+ if (schedulePreset === void 0) {
1239
+ return resolvedMode;
1240
+ }
1241
+ const createModeWasExplicit = typeof createMode === "string" && createMode.trim().length > 0;
1242
+ if (createModeWasExplicit && resolvedMode === "strict") {
1243
+ throw new PmCliError("--schedule-preset lightweight cannot be combined with --create-mode strict. Use --create-mode progressive or omit --create-mode.", EXIT_CODE.USAGE);
1244
+ }
1245
+ return "progressive";
1246
+ }
1247
+ function requireCreateOptionByType(typeDefinition, options, createMode, clearOptionKeys) {
1248
+ const typeName = typeDefinition.name;
1249
+ const optionLookup = buildCreateOptionValueLookup(options);
1250
+ const baseRequiredOptions = buildRequiredCreateOptions(typeDefinition, createMode);
1251
+ const policyState = resolveCommandOptionPolicyState(typeDefinition, "create", baseRequiredOptions);
1252
+ if (policyState.errors.length > 0) {
1253
+ throw new PmCliError(policyState.errors.join("; "), EXIT_CODE.CONFLICT);
1254
+ }
1255
+ assertNoDisabledCreateOptions(policyState.disabled, optionLookup, clearOptionKeys, typeName);
1256
+ assertNoStrictRequiredOptionClears(policyState.required, createMode, clearOptionKeys);
1257
+ const satisfiesRequiredOption = (optionKey) => {
1258
+ if (optionKey === "status" && typeDefinition.default_status !== void 0) {
1259
+ return true;
1260
+ }
1261
+ return hasCreateOptionValue(optionLookup, optionKey);
1262
+ };
1263
+ const missingRequiredOptions = policyState.required.filter((required) => !satisfiesRequiredOption(required));
1264
+ return [...new Set(missingRequiredOptions.map((required) => commandOptionFlagLabel("create", required)))].sort((left, right) => left.localeCompare(right));
1265
+ }
1266
+ var MISSING_REQUIRED_TYPE_OPTION_PATTERN = /^Missing required type option "([^"]+)" for type "([^"]+)"$/;
1267
+ function collectMissingRequiredTypeOptionKeys(errors, typeName) {
1268
+ const missingKeys = [];
1269
+ for (const error of errors) {
1270
+ const match = error.match(MISSING_REQUIRED_TYPE_OPTION_PATTERN);
1271
+ if (!match) {
1272
+ continue;
1273
+ }
1274
+ if (match[2] !== typeName) {
1275
+ continue;
1276
+ }
1277
+ missingKeys.push(match[1]);
1278
+ }
1279
+ return [...new Set(missingKeys)].sort((left, right) => left.localeCompare(right));
1280
+ }
1281
+ function filterNonMissingTypeOptionErrors(errors, typeName) {
1282
+ return errors.filter((error) => {
1283
+ const match = error.match(MISSING_REQUIRED_TYPE_OPTION_PATTERN);
1284
+ return !match || match[2] !== typeName;
1285
+ });
1286
+ }
1287
+ function assertNoInvalidTypeOptions(errors, type, typeDefinition, statusRegistry) {
1288
+ const nonMissingTypeOptionErrors = filterNonMissingTypeOptionErrors(errors, type);
1289
+ if (nonMissingTypeOptionErrors.length === 0) {
1290
+ return;
1291
+ }
1292
+ const nextValidExample = buildTypeSpecificCreateExample(typeDefinition, [], [], statusRegistry.open_status);
1293
+ throw new PmCliError(nonMissingTypeOptionErrors.join("; "), EXIT_CODE.USAGE, {
1294
+ code: "invalid_argument_value",
1295
+ required: `Provide valid --type-option key/value pairs for type "${type}".`,
1296
+ examples: [nextValidExample],
1297
+ nextSteps: [`Run "pm create --help --type ${type}" to review allowed type-option keys and values.`]
1298
+ });
1299
+ }
1300
+ function typeOptionExampleValue(typeDefinition, key) {
1301
+ const optionDefinition = typeDefinition.options.find((option) => option.key === key);
1302
+ const firstAllowed = optionDefinition?.values[0];
1303
+ if (typeof firstAllowed === "string" && firstAllowed.trim().length > 0) {
1304
+ return firstAllowed;
1305
+ }
1306
+ return "<value>";
1307
+ }
1308
+ function createExampleTokensForFlag(flag, typeName, openStatus) {
1309
+ switch (flag) {
1310
+ case "--title":
1311
+ return ["--title", `"${typeName} example title"`];
1312
+ case "--description":
1313
+ return ["--description", `"${typeName} example description"`];
1314
+ case "--type":
1315
+ return ["--type", typeName];
1316
+ case "--status":
1317
+ return ["--status", openStatus];
1318
+ case "--priority":
1319
+ return ["--priority", "1"];
1320
+ case "--message":
1321
+ return ["--message", `"Create ${typeName} item"`];
1322
+ case "--dep":
1323
+ return ["--dep", '"id=pm-xxxx,kind=related,author=maintainer,created_at=now"'];
1324
+ case "--comment":
1325
+ return ["--comment", '"author=maintainer,created_at=now,text=Implementation context"'];
1326
+ case "--note":
1327
+ return ["--note", '"author=maintainer,created_at=now,text=Design note"'];
1328
+ case "--learning":
1329
+ return ["--learning", '"author=maintainer,created_at=now,text=Durable lesson"'];
1330
+ case "--file":
1331
+ return ["--file", '"path=src/example.ts,note=implementation file"'];
1332
+ case "--test":
1333
+ return ["--test", '"command=node scripts/run-tests.mjs test,timeout_seconds=240"'];
1334
+ case "--doc":
1335
+ return ["--doc", '"path=README.md,note=reference doc"'];
1336
+ default:
1337
+ return [flag, '"<value>"'];
1338
+ }
1339
+ }
1340
+ function buildTypeSpecificCreateExample(typeDefinition, missingCreateFlags, missingTypeOptionKeys, openStatus) {
1341
+ const tokens = ["pm", "create", "--title", `"${typeDefinition.name} example title"`, "--description", `"${typeDefinition.name} example description"`, "--type", typeDefinition.name];
1342
+ const optionalRecommendationFlags = ["--status", "--priority", "--message"];
1343
+ const orderedFlags = [.../* @__PURE__ */ new Set([...optionalRecommendationFlags, ...missingCreateFlags])];
1344
+ const includedFlags = /* @__PURE__ */ new Set(["--title", "--description", "--type"]);
1345
+ for (const flag of orderedFlags) {
1346
+ if (includedFlags.has(flag)) {
1347
+ continue;
1348
+ }
1349
+ tokens.push(...createExampleTokensForFlag(flag, typeDefinition.name, openStatus));
1350
+ includedFlags.add(flag);
1351
+ }
1352
+ for (const key of missingTypeOptionKeys) {
1353
+ const value = typeOptionExampleValue(typeDefinition, key);
1354
+ tokens.push("--type-option", `${key}=${value}`);
1355
+ }
1356
+ return tokens.join(" ");
1357
+ }
1358
+ function requireStringOption(value, flag) {
1359
+ if (value === void 0) {
1360
+ if (flag === "--title") {
1361
+ throw new PmCliError('Missing required option --title. Why required: every item needs a human-readable title for lookup, search, and reporting. Retry: pass the title as the first positional argument (example: pm create "Fix login bug" --type Issue) or with --title.', EXIT_CODE.USAGE);
1362
+ }
1363
+ throw new PmCliError(`Missing required option ${flag}`, EXIT_CODE.USAGE);
1364
+ }
1365
+ return value;
1366
+ }
1367
+ function selectAuthor(explicitAuthor, settingsAuthor) {
1368
+ const candidate = parseOptionalString(explicitAuthor) ?? process.env.PM_AUTHOR ?? settingsAuthor;
1369
+ const trimmed = candidate.trim();
1370
+ return trimmed || "unknown";
1371
+ }
1372
+ function ensurePriority(rawPriority) {
1373
+ return resolvePriority(rawPriority);
1374
+ }
1375
+ function mergeCreateOptionsWithTemplate(templateOptions, explicitOptions) {
1376
+ const merged = {};
1377
+ for (const [key, value] of Object.entries(templateOptions)) {
1378
+ merged[key] = Array.isArray(value) ? [...value] : value;
1379
+ }
1380
+ for (const [key, value] of Object.entries(explicitOptions)) {
1381
+ if (value !== void 0) {
1382
+ merged[key] = Array.isArray(value) ? [...value] : value;
1383
+ }
1384
+ }
1385
+ return merged;
1386
+ }
1387
+ function normalizeExtensionCommandPath(command) {
1388
+ return command.trim().toLowerCase().split(/\s+/).filter((part) => part.length > 0).join(" ");
1389
+ }
1390
+ function hasTemplatesShowHandler() {
1391
+ const registrations = getActiveExtensionRegistrations();
1392
+ if (!registrations) {
1393
+ return false;
1394
+ }
1395
+ return registrations.commands.some((entry) => {
1396
+ return entry.action === "templates-show" || normalizeExtensionCommandPath(entry.command) === "templates show";
1397
+ });
1398
+ }
1399
+ function readTemplateOptionsFromRuntimeResult(result, templateName) {
1400
+ if (typeof result !== "object" || result === null || !("options" in result)) {
1401
+ throw new PmCliError(`Templates package returned invalid payload for template "${templateName}". Expected an options object.`, EXIT_CODE.GENERIC_FAILURE);
1402
+ }
1403
+ const options = result.options;
1404
+ if (typeof options !== "object" || options === null || Array.isArray(options)) {
1405
+ throw new PmCliError(`Templates package returned invalid options for template "${templateName}".`, EXIT_CODE.GENERIC_FAILURE);
1406
+ }
1407
+ const normalized = {};
1408
+ for (const [key, value] of Object.entries(options)) {
1409
+ if (typeof value === "string") {
1410
+ normalized[key] = value;
1411
+ continue;
1412
+ }
1413
+ if (Array.isArray(value) && value.every((entry) => typeof entry === "string")) {
1414
+ normalized[key] = [...value];
1415
+ continue;
1416
+ }
1417
+ throw new PmCliError(`Templates package returned unsupported option value for "${key}" in template "${templateName}".`, EXIT_CODE.GENERIC_FAILURE);
1418
+ }
1419
+ return normalized;
1420
+ }
1421
+ async function loadCreateTemplateOptionsFromRuntime(templateName, global, pmRoot) {
1422
+ if (!hasTemplatesShowHandler()) {
1423
+ throw new PmCliError(`--template requires the templates package. Install it first (for example: pm install templates --project).`, EXIT_CODE.USAGE);
1424
+ }
1425
+ const handlerResult = await runActiveCommandHandler({
1426
+ command: "templates show",
1427
+ args: [templateName],
1428
+ options: {},
1429
+ global,
1430
+ pm_root: pmRoot
1431
+ });
1432
+ if (!handlerResult.handled) {
1433
+ const warningSuffix = handlerResult.warnings.length > 0 ? ` (${handlerResult.warnings.join(", ")})` : "";
1434
+ throw new PmCliError(`Unable to resolve template "${templateName}" via templates package. Run "pm templates show ${templateName}" for details.${warningSuffix}`, EXIT_CODE.USAGE);
1435
+ }
1436
+ return readTemplateOptionsFromRuntimeResult(handlerResult.result, templateName);
1437
+ }
1438
+ function ensureInitHasRun(pmRoot) {
1439
+ return pathExists(getSettingsPath(pmRoot)).then((exists) => {
1440
+ if (!exists) {
1441
+ throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
1442
+ }
1443
+ });
1444
+ }
1445
+ function resolveUnsettableOptionalString(unsetKeys, frontMatterKey, raw) {
1446
+ return unsetKeys.has(frontMatterKey) || raw === void 0 ? void 0 : parseOptionalString(raw);
1447
+ }
1448
+ function resolveUnsettableTransformed(unsetKeys, frontMatterKey, raw, transform) {
1449
+ return unsetKeys.has(frontMatterKey) || raw === void 0 ? void 0 : transform(raw);
1450
+ }
1451
+ var CALENDAR_RELEVANT_CREATE_TYPES = /* @__PURE__ */ new Set(["milestone", "meeting", "reminder", "event"]);
1452
+ function createItemLacksSchedule(type, deadline, reminders, events) {
1453
+ const hasDeadline = deadline !== void 0;
1454
+ const hasReminders = reminders !== void 0 && reminders.length > 0;
1455
+ const hasEvents = events !== void 0 && events.length > 0;
1456
+ return CALENDAR_RELEVANT_CREATE_TYPES.has(type.toLowerCase()) && !hasDeadline && !hasReminders && !hasEvents;
1457
+ }
1458
+ function collectCreateScheduleWarnings(type, id, deadline, reminders, events) {
1459
+ const warnings = [];
1460
+ if (type.toLowerCase() === "event" && (events === void 0 || events.length === 0)) {
1461
+ warnings.push(`event_without_schedule:${id}:no_time_set`);
1462
+ }
1463
+ if (createItemLacksSchedule(type, deadline, reminders, events)) {
1464
+ warnings.push(`calendar_item_without_schedule:${id}:no_deadline_or_reminder_or_event (hint: set --deadline <ISO> or --reminder "<when>", or link an Event via --event "start=<ISO>,end=<ISO>"; otherwise this item never appears on pm calendar)`);
1465
+ }
1466
+ return warnings;
1467
+ }
1468
+ async function inheritFocusedParent(parent, resolvedOptions, unsetKeys, pmRoot) {
1469
+ if (parent !== void 0 || unsetKeys.has("parent") || resolvedOptions.parent !== void 0) {
1470
+ return { parent, parentSource: void 0 };
1471
+ }
1472
+ const focused = await getFocusedItem(pmRoot);
1473
+ if (focused === void 0) {
1474
+ return { parent, parentSource: void 0 };
1475
+ }
1476
+ return { parent: focused, parentSource: "focus" };
1477
+ }
1478
+ async function validateCreateParentReference(pmRoot, settings, typeRegistry, itemId, parent, policy) {
1479
+ const normalized = normalizeParentReferenceValue(parent);
1480
+ assertParentReferenceIsNotSelf(itemId, normalized, settings.id_prefix);
1481
+ const parentLocated = await locateItem(pmRoot, normalized, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);
1482
+ if (parentLocated) {
1483
+ return { parent: normalized, warnings: [] };
1484
+ }
1485
+ const normalizedParentId = normalizeItemId(normalized, settings.id_prefix);
1486
+ return { parent: normalized, warnings: validateMissingParentReference(normalizedParentId, policy).warnings };
1487
+ }
1488
+ async function resolveCreateParentWithWarnings(params) {
1489
+ if (params.parent === void 0) {
1490
+ return { parent: void 0, warnings: [] };
1491
+ }
1492
+ const parentValidation = await validateCreateParentReference(params.pmRoot, params.settings, params.typeRegistry, params.itemId, params.parent, params.policy);
1493
+ return parentValidation;
1494
+ }
1495
+ async function resolveCreateItemId(params) {
1496
+ if (params.explicitId === void 0) {
1497
+ return generateItemId(params.pmRoot, params.settings.id_prefix);
1498
+ }
1499
+ if (typeof params.explicitId !== "string") {
1500
+ throw new PmCliError("--id must be a string", EXIT_CODE.USAGE);
1501
+ }
1502
+ const trimmedId = params.explicitId.trim();
1503
+ if (trimmedId.length === 0 || isPlaceholderReferenceToken(trimmedId)) {
1504
+ throw new PmCliError("--id must not be empty or use a placeholder token", EXIT_CODE.USAGE);
1505
+ }
1506
+ const normalizedId = normalizeItemId(trimmedId, params.settings.id_prefix);
1507
+ if (!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(normalizedId)) {
1508
+ throw new PmCliError("--id must contain only letters, numbers, and dashes after normalization", EXIT_CODE.USAGE);
1509
+ }
1510
+ return normalizedId;
1511
+ }
1512
+ function resolveCreateSprintOrRelease(unsetKeys, frontMatterKey, raw, field, policy) {
1513
+ const resolved = resolveUnsettableOptionalString(unsetKeys, frontMatterKey, raw);
1514
+ if (resolved === void 0) {
1515
+ return { value: void 0, warnings: [] };
1516
+ }
1517
+ const validation = validateSprintOrReleaseValue(field, resolved, policy);
1518
+ return { value: validation.value, warnings: validation.warnings };
1519
+ }
1520
+ async function resolveCreateBlockedByDependency(params) {
1521
+ const { pmRoot, settings, typeRegistry, statusRegistry, blockedBy, status, statusExplicit, nowValue, author } = params;
1522
+ let dependencyValues = params.dependencyValues;
1523
+ if (blockedBy === void 0) {
1524
+ return { dependencyValues, status };
1525
+ }
1526
+ const normalizedBlockedBy = normalizeItemId(blockedBy, settings.id_prefix);
1527
+ const blockedByLocated = await locateItem(pmRoot, normalizedBlockedBy, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);
1528
+ if (!blockedByLocated) {
1529
+ return { dependencyValues, status };
1530
+ }
1531
+ const hasBlockedByDependency = (dependencyValues ?? []).some((dependency) => dependency.id === blockedByLocated.id && dependency.kind === "blocked_by");
1532
+ if (!hasBlockedByDependency) {
1533
+ dependencyValues = [
1534
+ ...dependencyValues ?? [],
1535
+ { id: blockedByLocated.id, kind: "blocked_by", created_at: nowValue, author }
1536
+ ];
1537
+ }
1538
+ if (statusExplicit) {
1539
+ return { dependencyValues, status };
1540
+ }
1541
+ const blockedStatus = statusRegistry.blocked_statuses.has("blocked") ? "blocked" : [...statusRegistry.blocked_statuses].sort((left, right) => left.localeCompare(right))[0] ?? statusRegistry.open_status;
1542
+ return { dependencyValues, status: blockedStatus };
1543
+ }
1544
+ function applyCreateDefaultType(resolvedOptions, settings, typeRegistry) {
1545
+ const explicitStrictMode = typeof resolvedOptions.createMode === "string" && resolvedOptions.createMode.trim().toLowerCase() === "strict";
1546
+ if (explicitStrictMode) {
1547
+ return;
1548
+ }
1549
+ const defaultType = settings.governance.create_default_type?.trim();
1550
+ if (defaultType && defaultType.length > 0 && resolveTypeName(defaultType, typeRegistry)) {
1551
+ resolvedOptions.type = defaultType;
1552
+ return;
1553
+ }
1554
+ if (resolveTypeName("Task", typeRegistry)) {
1555
+ resolvedOptions.type = "Task";
1556
+ }
1557
+ }
1558
+ async function resolveCreateTypeSelection(options, global, pmRoot, settings, typeRegistry) {
1559
+ let resolvedOptions = options;
1560
+ if (resolvedOptions.template !== void 0) {
1561
+ const templateName = resolvedOptions.template.trim();
1562
+ if (templateName.length === 0) {
1563
+ throw new PmCliError("--template must not be empty. Omit --template to disable template usage.", EXIT_CODE.USAGE);
1564
+ }
1565
+ const templateOptions = await loadCreateTemplateOptionsFromRuntime(templateName, global, pmRoot);
1566
+ resolvedOptions = normalizeLegacyNoneCreateOptions(mergeCreateOptionsWithTemplate(templateOptions, resolvedOptions));
1567
+ }
1568
+ if (resolvedOptions.type === void 0) {
1569
+ applyCreateDefaultType(resolvedOptions, settings, typeRegistry);
1570
+ }
1571
+ if (resolvedOptions.type === void 0) {
1572
+ throw new PmCliError("Missing required option --type <value>", EXIT_CODE.USAGE);
1573
+ }
1574
+ let resolvedTypeName = resolveTypeName(resolvedOptions.type, typeRegistry);
1575
+ if (!resolvedTypeName) {
1576
+ const synonymCanonical = resolveTypeSynonym(resolvedOptions.type);
1577
+ const synonymResolved = synonymCanonical ? resolveTypeName(synonymCanonical, typeRegistry) : void 0;
1578
+ if (synonymResolved) {
1579
+ printError(`[pm] note: type '${resolvedOptions.type.trim()}' is not defined; using closest match '${synonymResolved}'. Run 'pm schema add-type "${resolvedOptions.type.trim()}"' to track it as a distinct type.`);
1580
+ resolvedOptions.type = synonymResolved;
1581
+ resolvedTypeName = synonymResolved;
1582
+ } else {
1583
+ throw new PmCliError(buildInvalidTypeError(resolvedOptions.type, typeRegistry.types, resolveItemTypesFilePath(pmRoot, settings.schema)), EXIT_CODE.USAGE);
1584
+ }
1585
+ }
1586
+ const typeDefinition = resolveTypeDefinition(resolvedTypeName, typeRegistry);
1587
+ if (!typeDefinition) {
1588
+ throw new PmCliError(`Invalid type value "${resolvedOptions.type}"`, EXIT_CODE.USAGE);
1589
+ }
1590
+ const type = typeDefinition.name;
1591
+ const schedulePreset = resolveScheduleCreatePreset(resolvedOptions.schedulePreset);
1592
+ if (schedulePreset !== void 0 && !SCHEDULE_CREATE_PRESET_TYPES.has(type)) {
1593
+ throw new PmCliError(`--schedule-preset ${schedulePreset} is only supported for Reminder, Meeting, or Event types`, EXIT_CODE.USAGE);
1594
+ }
1595
+ const createMode = resolveEffectiveCreateMode(resolvedOptions.createMode, schedulePreset, settings.governance.create_mode_default);
1596
+ return { resolvedOptions, typeDefinition, type, schedulePreset, createMode };
1597
+ }
1598
+ function collectCreateClearTargets(resolvedOptions, unsetTargets) {
1599
+ const explicitUnsets = new Set(unsetTargets.frontMatterKeys);
1600
+ const clearOptionKeys = new Set(unsetTargets.optionKeys);
1601
+ const clearCollectionDefinitions = [
1602
+ { enabled: resolvedOptions.clearDeps, optionKey: "dep", clearFlag: "--clear-deps", valueFlag: "--dep", values: resolvedOptions.dep, frontMatterKey: "dependencies" },
1603
+ { enabled: resolvedOptions.clearComments, optionKey: "comment", clearFlag: "--clear-comments", valueFlag: "--comment", values: resolvedOptions.comment, frontMatterKey: "comments" },
1604
+ { enabled: resolvedOptions.clearNotes, optionKey: "note", clearFlag: "--clear-notes", valueFlag: "--note", values: resolvedOptions.note, frontMatterKey: "notes" },
1605
+ { enabled: resolvedOptions.clearLearnings, optionKey: "learning", clearFlag: "--clear-learnings", valueFlag: "--learning", values: resolvedOptions.learning, frontMatterKey: "learnings" },
1606
+ { enabled: resolvedOptions.clearFiles, optionKey: "file", clearFlag: "--clear-files", valueFlag: "--file", values: resolvedOptions.file, frontMatterKey: "files" },
1607
+ { enabled: resolvedOptions.clearTests, optionKey: "test", clearFlag: "--clear-tests", valueFlag: "--test", values: resolvedOptions.test, frontMatterKey: "tests" },
1608
+ { enabled: resolvedOptions.clearDocs, optionKey: "doc", clearFlag: "--clear-docs", valueFlag: "--doc", values: resolvedOptions.doc, frontMatterKey: "docs" },
1609
+ { enabled: resolvedOptions.clearReminders, optionKey: "reminder", clearFlag: "--clear-reminders", valueFlag: "--reminder", values: resolvedOptions.reminder, frontMatterKey: "reminders" },
1610
+ { enabled: resolvedOptions.clearEvents, optionKey: "event", clearFlag: "--clear-events", valueFlag: "--event", values: resolvedOptions.event, frontMatterKey: "events" },
1611
+ { enabled: resolvedOptions.clearTypeOptions, optionKey: "typeOption", clearFlag: "--clear-type-options", valueFlag: "--type-option", values: resolvedOptions.typeOption, frontMatterKey: "type_options" }
1612
+ ];
1613
+ for (const definition of clearCollectionDefinitions) {
1614
+ if (!definition.enabled) {
1615
+ continue;
1616
+ }
1617
+ if (definition.values && definition.values.length > 0) {
1618
+ throw new PmCliError(`Cannot combine ${definition.clearFlag} with ${definition.valueFlag}`, EXIT_CODE.USAGE);
1619
+ }
1620
+ explicitUnsets.add(definition.frontMatterKey);
1621
+ clearOptionKeys.add(definition.optionKey);
1622
+ }
1623
+ return { explicitUnsets, clearOptionKeys };
1624
+ }
1625
+ function assertNoCreateScalarUnsetConflicts(resolvedOptions, unsetTargets) {
1626
+ const scalarOptionPresence = {
1627
+ tags: resolvedOptions.tags !== void 0,
1628
+ deadline: resolvedOptions.deadline !== void 0,
1629
+ estimatedMinutes: resolvedOptions.estimatedMinutes !== void 0,
1630
+ acceptanceCriteria: resolvedOptions.acceptanceCriteria !== void 0,
1631
+ /* c8 ignore next -- definitionOfReady option presence is covered by legacy migration tests. */
1632
+ definitionOfReady: resolvedOptions.definitionOfReady !== void 0,
1633
+ order: resolvedOptions.order !== void 0 || resolvedOptions.rank !== void 0,
1634
+ goal: resolvedOptions.goal !== void 0,
1635
+ objective: resolvedOptions.objective !== void 0,
1636
+ value: resolvedOptions.value !== void 0,
1637
+ impact: resolvedOptions.impact !== void 0,
1638
+ outcome: resolvedOptions.outcome !== void 0,
1639
+ whyNow: resolvedOptions.whyNow !== void 0,
1640
+ author: resolvedOptions.author !== void 0,
1641
+ assignee: resolvedOptions.assignee !== void 0,
1642
+ parent: resolvedOptions.parent !== void 0,
1643
+ reviewer: resolvedOptions.reviewer !== void 0,
1644
+ risk: resolvedOptions.risk !== void 0,
1645
+ confidence: resolvedOptions.confidence !== void 0,
1646
+ sprint: resolvedOptions.sprint !== void 0,
1647
+ release: resolvedOptions.release !== void 0,
1648
+ blockedBy: resolvedOptions.blockedBy !== void 0,
1649
+ blockedReason: resolvedOptions.blockedReason !== void 0,
1650
+ unblockNote: resolvedOptions.unblockNote !== void 0,
1651
+ reporter: resolvedOptions.reporter !== void 0,
1652
+ severity: resolvedOptions.severity !== void 0,
1653
+ environment: resolvedOptions.environment !== void 0,
1654
+ reproSteps: resolvedOptions.reproSteps !== void 0,
1655
+ resolution: resolvedOptions.resolution !== void 0,
1656
+ expectedResult: resolvedOptions.expectedResult !== void 0,
1657
+ actualResult: resolvedOptions.actualResult !== void 0,
1658
+ affectedVersion: resolvedOptions.affectedVersion !== void 0,
1659
+ fixedVersion: resolvedOptions.fixedVersion !== void 0,
1660
+ component: resolvedOptions.component !== void 0,
1661
+ regression: resolvedOptions.regression !== void 0,
1662
+ customerImpact: resolvedOptions.customerImpact !== void 0
1663
+ };
1664
+ for (const [optionKey, hasValue] of Object.entries(scalarOptionPresence)) {
1665
+ if (!hasValue || !unsetTargets.optionKeys.has(optionKey)) {
1666
+ continue;
1667
+ }
1668
+ const unsetField = CREATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;
1669
+ throw new PmCliError(`Cannot combine --unset ${unsetField} with ${commandOptionFlagLabel("create", optionKey)}`, EXIT_CODE.USAGE);
1670
+ }
1671
+ }
1672
+ function assertNoLegacyCreateScalarTokens(resolvedOptions) {
1673
+ const assertNoLegacyScalarToken = (value, optionKey) => {
1674
+ const unsetField = CREATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey);
1675
+ const hint = unsetField ? `Use --unset ${unsetField} to clear this field.` : void 0;
1676
+ assertNoLegacyNoneToken(value, commandOptionFlagLabel("create", optionKey), hint);
1677
+ };
1678
+ assertNoLegacyScalarToken(resolvedOptions.tags, "tags");
1679
+ assertNoLegacyScalarToken(resolvedOptions.deadline, "deadline");
1680
+ assertNoLegacyScalarToken(resolvedOptions.estimatedMinutes, "estimatedMinutes");
1681
+ assertNoLegacyScalarToken(resolvedOptions.acceptanceCriteria, "acceptanceCriteria");
1682
+ assertNoLegacyScalarToken(resolvedOptions.definitionOfReady, "definitionOfReady");
1683
+ assertNoLegacyScalarToken(resolvedOptions.order ?? resolvedOptions.rank, "order");
1684
+ assertNoLegacyScalarToken(resolvedOptions.goal, "goal");
1685
+ assertNoLegacyScalarToken(resolvedOptions.objective, "objective");
1686
+ assertNoLegacyScalarToken(resolvedOptions.value, "value");
1687
+ assertNoLegacyScalarToken(resolvedOptions.impact, "impact");
1688
+ assertNoLegacyScalarToken(resolvedOptions.outcome, "outcome");
1689
+ assertNoLegacyScalarToken(resolvedOptions.whyNow, "whyNow");
1690
+ assertNoLegacyScalarToken(resolvedOptions.author, "author");
1691
+ assertNoLegacyScalarToken(resolvedOptions.assignee, "assignee");
1692
+ assertNoLegacyScalarToken(resolvedOptions.parent, "parent");
1693
+ assertNoLegacyScalarToken(resolvedOptions.reviewer, "reviewer");
1694
+ assertNoLegacyScalarToken(resolvedOptions.risk, "risk");
1695
+ assertNoLegacyScalarToken(resolvedOptions.confidence, "confidence");
1696
+ assertNoLegacyScalarToken(resolvedOptions.sprint, "sprint");
1697
+ assertNoLegacyScalarToken(resolvedOptions.release, "release");
1698
+ assertNoLegacyScalarToken(resolvedOptions.blockedBy, "blockedBy");
1699
+ assertNoLegacyScalarToken(resolvedOptions.blockedReason, "blockedReason");
1700
+ assertNoLegacyScalarToken(resolvedOptions.unblockNote, "unblockNote");
1701
+ assertNoLegacyScalarToken(resolvedOptions.reporter, "reporter");
1702
+ assertNoLegacyScalarToken(resolvedOptions.severity, "severity");
1703
+ assertNoLegacyScalarToken(resolvedOptions.environment, "environment");
1704
+ assertNoLegacyScalarToken(resolvedOptions.reproSteps, "reproSteps");
1705
+ assertNoLegacyScalarToken(resolvedOptions.resolution, "resolution");
1706
+ assertNoLegacyScalarToken(resolvedOptions.expectedResult, "expectedResult");
1707
+ assertNoLegacyScalarToken(resolvedOptions.actualResult, "actualResult");
1708
+ assertNoLegacyScalarToken(resolvedOptions.affectedVersion, "affectedVersion");
1709
+ assertNoLegacyScalarToken(resolvedOptions.fixedVersion, "fixedVersion");
1710
+ assertNoLegacyScalarToken(resolvedOptions.component, "component");
1711
+ assertNoLegacyScalarToken(resolvedOptions.regression, "regression");
1712
+ assertNoLegacyScalarToken(resolvedOptions.customerImpact, "customerImpact");
1713
+ }
1714
+ function assertNoCreateFieldUnsetConflicts(registeredItemFieldValues, runtimeCreateFieldValues, unsetTargets) {
1715
+ for (const fieldKey of Object.keys(registeredItemFieldValues)) {
1716
+ if (!unsetTargets.frontMatterKeys.has(fieldKey)) {
1717
+ continue;
1718
+ }
1719
+ throw new PmCliError(`Cannot combine --unset ${fieldKey.replaceAll("_", "-")} with --field ${fieldKey}=...`, EXIT_CODE.USAGE);
1720
+ }
1721
+ for (const fieldKey of Object.keys(runtimeCreateFieldValues.values ?? {})) {
1722
+ if (!unsetTargets.frontMatterKeys.has(fieldKey)) {
1723
+ continue;
1724
+ }
1725
+ throw new PmCliError(`Cannot combine --unset ${fieldKey.replaceAll("_", "-")} with its value flag`, EXIT_CODE.USAGE);
1726
+ }
1727
+ }
1728
+ function assertNoMissingRequiredCreateOptions(params) {
1729
+ const { combinedMissingFlags, typeDefinition, missingRequiredCreateFlags, missingRequiredTypeOptionKeys, openStatus, type, createMode } = params;
1730
+ if (combinedMissingFlags.length === 0) {
1731
+ return;
1732
+ }
1733
+ const nextValidExample = buildTypeSpecificCreateExample(typeDefinition, missingRequiredCreateFlags, missingRequiredTypeOptionKeys, openStatus);
1734
+ const nextSteps = [`Run "pm create --help --type ${type}" for type-aware required option guidance.`];
1735
+ if (combinedMissingFlags.includes("--title")) {
1736
+ nextSteps.push('Title can also be passed as the first positional argument (example: pm create "Your title" --type ' + type + ").");
1737
+ }
1738
+ if (createMode === "strict") {
1739
+ nextSteps.push('For staged onboarding, retry with "--create-mode progressive".');
1740
+ if (SCHEDULE_CREATE_PRESET_TYPES.has(type)) {
1741
+ nextSteps.push('For minimal scheduling inputs, try "--schedule-preset lightweight".');
1742
+ }
1743
+ }
1744
+ const errorMessage = combinedMissingFlags.length === 1 ? `Missing required option ${combinedMissingFlags[0]} for type "${type}"` : `Missing required options ${combinedMissingFlags.join(", ")} for type "${type}"`;
1745
+ throw new PmCliError(errorMessage, EXIT_CODE.USAGE, {
1746
+ code: "missing_required_option",
1747
+ required: `Provide all required create options and type options for type "${type}" in one invocation.`,
1748
+ examples: [nextValidExample],
1749
+ nextSteps,
1750
+ recovery: createMode === "strict" ? {
1751
+ recovery_mode: "compact",
1752
+ missing_required_fields: combinedMissingFlags,
1753
+ suggested_flags: ["--create-mode progressive", ...combinedMissingFlags]
1754
+ } : void 0
1755
+ });
1756
+ }
1757
+ function resolveCreateTags(unsetKeys, resolvedOptions) {
1758
+ if (unsetKeys.has("tags") && Array.isArray(resolvedOptions.addTags) && resolvedOptions.addTags.length > 0) {
1759
+ throw new PmCliError("Cannot combine --unset tags with --add-tags", EXIT_CODE.USAGE);
1760
+ }
1761
+ const baseTags = unsetKeys.has("tags") ? [] : resolvedOptions.tags !== void 0 ? parseTags(resolvedOptions.tags) : [];
1762
+ return mergeAdditiveTags(baseTags, resolvedOptions.addTags);
1763
+ }
1764
+ function resolveCreateOrder(unsetKeys, resolvedOptions) {
1765
+ if (resolvedOptions.order !== void 0 && resolvedOptions.rank !== void 0 && resolvedOptions.order !== resolvedOptions.rank) {
1766
+ throw new PmCliError("--order and --rank must match when both are provided", EXIT_CODE.USAGE);
1767
+ }
1768
+ const orderRaw = resolvedOptions.order ?? resolvedOptions.rank;
1769
+ const order = resolveUnsettableTransformed(unsetKeys, "order", orderRaw, (raw) => parseOptionalNumber(raw, "order"));
1770
+ if (order !== void 0 && !Number.isInteger(order)) {
1771
+ throw new PmCliError("Order must be an integer", EXIT_CODE.USAGE);
1772
+ }
1773
+ return order;
1774
+ }
1775
+ function resolveCreateCloseReason(status, statusRegistry, settings, resolvedOptions, resolution) {
1776
+ if (status !== statusRegistry.close_status || !settings.governance.require_close_reason) {
1777
+ return { closeReason: void 0, warnings: [] };
1778
+ }
1779
+ const messageText = typeof resolvedOptions.message === "string" ? resolvedOptions.message.trim() : "";
1780
+ const resolutionText = typeof resolution === "string" ? resolution.trim() : "";
1781
+ const closeReason = messageText || resolutionText || CREATE_DIRECT_CLOSE_REASON_DEFAULT;
1782
+ const warnings = messageText.length === 0 && resolutionText.length === 0 ? ["close_reason_defaulted"] : [];
1783
+ return { closeReason, warnings };
1784
+ }
1785
+ async function writeCreatedItem(params) {
1786
+ const { pmRoot, type, id, settings, typeRegistry, author, extensionFieldNames, afterDocument, beforeDocument, historyMessage, changedFields, nowValue } = params;
1787
+ const itemPath = getItemPath(pmRoot, type, id, settings.item_format, typeRegistry.type_to_folder);
1788
+ const historyPath = getHistoryPath(pmRoot, id);
1789
+ const lockRelease = await acquireLock(pmRoot, id, settings.locks.ttl_seconds, author, false, settings.governance.force_required_for_stale_lock, settings.locks.wait_ms);
1790
+ let hookWarnings = [];
1791
+ try {
1792
+ const existing = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);
1793
+ if (existing) {
1794
+ throw new PmCliError(`Item "${id}" already exists`, EXIT_CODE.CONFLICT);
1795
+ }
1796
+ await writeFileAtomic(itemPath, serializeItemDocument(afterDocument, { format: settings.item_format, schema: settings.schema, extensionFieldNames }));
1797
+ try {
1798
+ const entry = createHistoryEntry({ nowIso: nowValue, author, op: "create", before: beforeDocument, after: afterDocument, message: historyMessage });
1799
+ await appendHistoryEntry(historyPath, entry);
1800
+ } catch (error) {
1801
+ await removeFileIfExists(itemPath);
1802
+ throw error;
1803
+ }
1804
+ hookWarnings = [
1805
+ ...await runActiveOnWriteHooks({
1806
+ path: itemPath,
1807
+ scope: "project",
1808
+ op: "create",
1809
+ item_id: afterDocument.metadata.id,
1810
+ item_type: afterDocument.metadata.type,
1811
+ before: beforeDocument,
1812
+ after: afterDocument,
1813
+ changed_fields: changedFields
1814
+ }),
1815
+ ...await runActiveOnWriteHooks({
1816
+ path: historyPath,
1817
+ scope: "project",
1818
+ op: "create:history",
1819
+ item_id: afterDocument.metadata.id,
1820
+ item_type: afterDocument.metadata.type,
1821
+ before: beforeDocument,
1822
+ after: afterDocument,
1823
+ changed_fields: changedFields
1824
+ })
1825
+ ];
1826
+ recordAfterCommandAffectedItem({
1827
+ id: afterDocument.metadata.id,
1828
+ op: "create",
1829
+ item_type: afterDocument.metadata.type,
1830
+ status: afterDocument.metadata.status,
1831
+ current: projectAfterCommandItemSnapshot(afterDocument.metadata, changedFields),
1832
+ changed_fields: changedFields
1833
+ });
1834
+ } finally {
1835
+ await lockRelease();
1836
+ }
1837
+ return hookWarnings;
1838
+ }
1839
+ async function runCreate(options, global) {
1840
+ let resolvedOptions = normalizeLegacyNoneCreateOptions(await resolveCreateStdinInputs(options));
1841
+ const pmRoot = resolvePmRoot(process.cwd(), global.path);
1842
+ await ensureInitHasRun(pmRoot);
1843
+ const settings = await readSettings(pmRoot);
1844
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
1845
+ const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);
1846
+ const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
1847
+ const typeSelection = await resolveCreateTypeSelection(resolvedOptions, global, pmRoot, settings, typeRegistry);
1848
+ resolvedOptions = typeSelection.resolvedOptions;
1849
+ const { typeDefinition, type, createMode } = typeSelection;
1850
+ const unsetTargets = parseCreateUnsetTargets(resolvedOptions.unset, runtimeFieldRegistry);
1851
+ const { explicitUnsets, clearOptionKeys } = collectCreateClearTargets(resolvedOptions, unsetTargets);
1852
+ assertNoCreateScalarUnsetConflicts(resolvedOptions, unsetTargets);
1853
+ assertNoLegacyCreateScalarTokens(resolvedOptions);
1854
+ const missingRequiredCreateFlags = requireCreateOptionByType(typeDefinition, resolvedOptions, createMode, clearOptionKeys);
1855
+ const nowValue = nowIso();
1856
+ const author = selectAuthor(resolvedOptions.author, settings.author_default);
1857
+ const dependencies = parseDependencies(resolvedOptions.dep, nowValue, settings.id_prefix);
1858
+ const comments = parseLogSeed("--comment", resolvedOptions.comment, nowValue, author);
1859
+ const notes = parseLogSeed("--note", resolvedOptions.note, nowValue, author);
1860
+ const learnings = parseLogSeed("--learning", resolvedOptions.learning, nowValue, author);
1861
+ const files = parseFiles(resolvedOptions.file);
1862
+ const tests = parseTests(resolvedOptions.test);
1863
+ const docs = parseDocs(resolvedOptions.doc);
1864
+ const reminders = parseReminders(resolvedOptions.reminder, nowValue);
1865
+ const events = parseEvents(resolvedOptions.event, nowValue);
1866
+ const typeOptions = parseTypeOptions(resolvedOptions.typeOption);
1867
+ const validatedTypeOptions = validateTypeOptions(type, typeOptions.values, typeRegistry);
1868
+ const extensionRegistrations = getActiveExtensionRegistrations();
1869
+ const extensionFieldNames = collectRegisteredItemFieldNames(extensionRegistrations);
1870
+ const registeredItemFieldValues = parseRegisteredItemFieldAssignments(resolvedOptions.field, extensionRegistrations);
1871
+ const runtimeCreateFieldValues = collectRuntimeCreateFieldValues(resolvedOptions, runtimeFieldRegistry, type);
1872
+ assertNoCreateFieldUnsetConflicts(registeredItemFieldValues, runtimeCreateFieldValues, unsetTargets);
1873
+ const missingRequiredTypeOptionKeys = collectMissingRequiredTypeOptionKeys(validatedTypeOptions.errors, type);
1874
+ const missingRequiredTypeOptionFlags = missingRequiredTypeOptionKeys.map((key) => `--type-option ${key}=<value>`);
1875
+ const combinedMissingFlags = [
1876
+ .../* @__PURE__ */ new Set([
1877
+ ...missingRequiredCreateFlags,
1878
+ ...missingRequiredTypeOptionFlags,
1879
+ /* c8 ignore next -- runtime-required flag aggregation is covered in runtime schema create tests. */
1880
+ ...runtimeCreateFieldValues.missing_required_flags
1881
+ ])
1882
+ ].sort((left, right) => left.localeCompare(right));
1883
+ assertNoMissingRequiredCreateOptions({
1884
+ combinedMissingFlags,
1885
+ typeDefinition,
1886
+ missingRequiredCreateFlags,
1887
+ missingRequiredTypeOptionKeys,
1888
+ openStatus: statusRegistry.open_status,
1889
+ type,
1890
+ createMode
1891
+ });
1892
+ assertNoInvalidTypeOptions(validatedTypeOptions.errors, type, typeDefinition, statusRegistry);
1893
+ const id = await resolveCreateItemId({
1894
+ pmRoot,
1895
+ settings,
1896
+ explicitId: resolvedOptions.id
1897
+ });
1898
+ let status = resolvedOptions.status !== void 0 ? parseStatusValue(resolvedOptions.status, statusRegistry) : resolveCreateDefaultStatus(typeDefinition, statusRegistry);
1899
+ const priority = resolvedOptions.priority !== void 0 ? ensurePriority(resolvedOptions.priority) : 2;
1900
+ const unsetKeys = unsetTargets.frontMatterKeys;
1901
+ const tags = resolveCreateTags(unsetKeys, resolvedOptions);
1902
+ const deadline = resolveUnsettableTransformed(unsetKeys, "deadline", resolvedOptions.deadline, (raw) => resolveIsoOrRelative(raw, new Date(nowValue), "deadline"));
1903
+ const estimatedMinutes = resolveUnsettableTransformed(unsetKeys, "estimated_minutes", resolvedOptions.estimatedMinutes, (raw) => parseOptionalNumber(raw, "estimated-minutes"));
1904
+ const acceptanceCriteria = resolveUnsettableOptionalString(unsetKeys, "acceptance_criteria", resolvedOptions.acceptanceCriteria);
1905
+ const definitionOfReady = resolveUnsettableOptionalString(unsetKeys, "definition_of_ready", resolvedOptions.definitionOfReady);
1906
+ const order = resolveCreateOrder(unsetKeys, resolvedOptions);
1907
+ const goal = resolveUnsettableOptionalString(unsetKeys, "goal", resolvedOptions.goal);
1908
+ const objective = resolveUnsettableOptionalString(unsetKeys, "objective", resolvedOptions.objective);
1909
+ const value = resolveUnsettableOptionalString(unsetKeys, "value", resolvedOptions.value);
1910
+ const impact = resolveUnsettableOptionalString(unsetKeys, "impact", resolvedOptions.impact);
1911
+ const outcome = resolveUnsettableOptionalString(unsetKeys, "outcome", resolvedOptions.outcome);
1912
+ const whyNow = resolveUnsettableOptionalString(unsetKeys, "why_now", resolvedOptions.whyNow);
1913
+ const assignee = resolveUnsettableOptionalString(unsetKeys, "assignee", resolvedOptions.assignee);
1914
+ const authorValue = unsetKeys.has("author") ? void 0 : parseOptionalString(resolvedOptions.author) ?? author;
1915
+ const initialParent = resolveUnsettableOptionalString(unsetKeys, "parent", resolvedOptions.parent);
1916
+ const inheritedParent = await inheritFocusedParent(initialParent, resolvedOptions, unsetKeys, pmRoot);
1917
+ let parent = inheritedParent.parent;
1918
+ const parentSource = inheritedParent.parentSource;
1919
+ const reviewer = resolveUnsettableOptionalString(unsetKeys, "reviewer", resolvedOptions.reviewer);
1920
+ const risk = resolveUnsettableTransformed(unsetKeys, "risk", resolvedOptions.risk, (raw) => ensureEnumValue(normalizeRiskInput(raw), RISK_VALUES, "risk"));
1921
+ const confidence = resolveUnsettableTransformed(unsetKeys, "confidence", resolvedOptions.confidence, (raw) => parseConfidenceInput(raw));
1922
+ const parentReferencePolicy = resolvedOptions.allowMissingParent === true && settings.validation.parent_reference === "strict_error" ? "warn" : settings.validation.parent_reference;
1923
+ const sprintReleasePolicy = settings.validation.sprint_release_format;
1924
+ const validationWarnings = collectCreateScheduleWarnings(type, id, deadline, reminders.values, events.values);
1925
+ const parentValidation = await resolveCreateParentWithWarnings({
1926
+ itemId: id,
1927
+ parent,
1928
+ pmRoot,
1929
+ settings,
1930
+ typeRegistry,
1931
+ policy: parentReferencePolicy
1932
+ });
1933
+ parent = parentValidation.parent;
1934
+ validationWarnings.push(...parentValidation.warnings);
1935
+ const sprintResolved = resolveCreateSprintOrRelease(unsetKeys, "sprint", resolvedOptions.sprint, "sprint", sprintReleasePolicy);
1936
+ const sprint = sprintResolved.value;
1937
+ validationWarnings.push(...sprintResolved.warnings);
1938
+ const releaseResolved = resolveCreateSprintOrRelease(unsetKeys, "release", resolvedOptions.release, "release", sprintReleasePolicy);
1939
+ const release = releaseResolved.value;
1940
+ validationWarnings.push(...releaseResolved.warnings);
1941
+ const blockedBy = resolveUnsettableOptionalString(unsetKeys, "blocked_by", resolvedOptions.blockedBy);
1942
+ const blockedByResolution = await resolveCreateBlockedByDependency({
1943
+ pmRoot,
1944
+ settings,
1945
+ typeRegistry,
1946
+ statusRegistry,
1947
+ blockedBy,
1948
+ dependencyValues: dependencies.values,
1949
+ status,
1950
+ statusExplicit: resolvedOptions.status !== void 0,
1951
+ nowValue,
1952
+ author
1953
+ });
1954
+ const dependencyValues = blockedByResolution.dependencyValues;
1955
+ status = blockedByResolution.status;
1956
+ const blockedReason = resolveUnsettableOptionalString(unsetKeys, "blocked_reason", resolvedOptions.blockedReason);
1957
+ const unblockNote = resolveUnsettableOptionalString(unsetKeys, "unblock_note", resolvedOptions.unblockNote);
1958
+ const reporter = resolveUnsettableOptionalString(unsetKeys, "reporter", resolvedOptions.reporter);
1959
+ const severity = resolveUnsettableTransformed(unsetKeys, "severity", resolvedOptions.severity, (raw) => ensureEnumValue(normalizeSeverityInput(raw), ISSUE_SEVERITY_VALUES, "severity"));
1960
+ const environment = resolveUnsettableOptionalString(unsetKeys, "environment", resolvedOptions.environment);
1961
+ const reproSteps = resolveUnsettableOptionalString(unsetKeys, "repro_steps", resolvedOptions.reproSteps);
1962
+ const resolution = resolveUnsettableOptionalString(unsetKeys, "resolution", resolvedOptions.resolution);
1963
+ const expectedResult = resolveUnsettableOptionalString(unsetKeys, "expected_result", resolvedOptions.expectedResult);
1964
+ const actualResult = resolveUnsettableOptionalString(unsetKeys, "actual_result", resolvedOptions.actualResult);
1965
+ const affectedVersion = resolveUnsettableOptionalString(unsetKeys, "affected_version", resolvedOptions.affectedVersion);
1966
+ const fixedVersion = resolveUnsettableOptionalString(unsetKeys, "fixed_version", resolvedOptions.fixedVersion);
1967
+ const component = resolveUnsettableOptionalString(unsetKeys, "component", resolvedOptions.component);
1968
+ const regression = resolveUnsettableTransformed(unsetKeys, "regression", resolvedOptions.regression, (raw) => parseRegressionInput(raw));
1969
+ const customerImpact = resolveUnsettableOptionalString(unsetKeys, "customer_impact", resolvedOptions.customerImpact);
1970
+ const title = requireStringOption(resolvedOptions.title, "--title");
1971
+ const description = resolvedOptions.description ?? "";
1972
+ const body = resolvedOptions.body ?? "";
1973
+ const closeReasonResolution = resolveCreateCloseReason(status, statusRegistry, settings, resolvedOptions, resolution);
1974
+ const closeReason = closeReasonResolution.closeReason;
1975
+ validationWarnings.push(...closeReasonResolution.warnings);
1976
+ const frontMatter = normalizeFrontMatter({
1977
+ id,
1978
+ title,
1979
+ description,
1980
+ type,
1981
+ type_options: validatedTypeOptions.normalized,
1982
+ status,
1983
+ close_reason: closeReason,
1984
+ priority,
1985
+ tags,
1986
+ created_at: nowValue,
1987
+ updated_at: nowValue,
1988
+ deadline,
1989
+ assignee,
1990
+ author: authorValue,
1991
+ estimated_minutes: estimatedMinutes,
1992
+ acceptance_criteria: acceptanceCriteria,
1993
+ definition_of_ready: definitionOfReady,
1994
+ order,
1995
+ goal,
1996
+ objective,
1997
+ value,
1998
+ impact,
1999
+ outcome,
2000
+ why_now: whyNow,
2001
+ parent,
2002
+ reviewer,
2003
+ risk,
2004
+ confidence,
2005
+ sprint,
2006
+ release,
2007
+ blocked_by: blockedBy,
2008
+ blocked_reason: blockedReason,
2009
+ unblock_note: unblockNote,
2010
+ reporter,
2011
+ severity,
2012
+ environment,
2013
+ repro_steps: reproSteps,
2014
+ resolution,
2015
+ expected_result: expectedResult,
2016
+ actual_result: actualResult,
2017
+ affected_version: affectedVersion,
2018
+ fixed_version: fixedVersion,
2019
+ component,
2020
+ regression,
2021
+ customer_impact: customerImpact,
2022
+ dependencies: dependencyValues,
2023
+ comments: comments.values,
2024
+ notes: notes.values,
2025
+ learnings: learnings.values,
2026
+ files: files.values,
2027
+ tests: tests.values,
2028
+ docs: docs.values,
2029
+ reminders: reminders.values,
2030
+ events: events.values,
2031
+ ...registeredItemFieldValues,
2032
+ ...runtimeCreateFieldValues.values
2033
+ });
2034
+ try {
2035
+ applyRegisteredItemFieldDefaultsAndValidation(frontMatter, extensionRegistrations);
2036
+ } catch (error) {
2037
+ throw new PmCliError(error instanceof Error ? error.message : "Invalid extension item field values", EXIT_CODE.USAGE);
2038
+ }
2039
+ const afterDocument = canonicalDocument({
2040
+ metadata: frontMatter,
2041
+ body
2042
+ }, { schema: settings.schema, extensionFieldNames });
2043
+ const beforeDocument = {
2044
+ metadata: {},
2045
+ body: ""
2046
+ };
2047
+ const explicitUnsetKeys = [...explicitUnsets].sort((left, right) => left.localeCompare(right));
2048
+ const historyMessage = buildHistoryMessage(resolvedOptions.message, explicitUnsetKeys);
2049
+ const changedFields = buildChangedFields(frontMatter, body, explicitUnsetKeys, [
2050
+ ...Object.keys(registeredItemFieldValues),
2051
+ /* c8 ignore start -- collectRuntimeCreateFieldValues always returns a `values` object, so the `?? {}` fallback is unreachable. */
2052
+ ...Object.keys(runtimeCreateFieldValues.values ?? {})
2053
+ /* c8 ignore stop */
2054
+ ]);
2055
+ const hookWarnings = await writeCreatedItem({
2056
+ pmRoot,
2057
+ type,
2058
+ id,
2059
+ settings,
2060
+ typeRegistry,
2061
+ author,
2062
+ extensionFieldNames,
2063
+ afterDocument,
2064
+ beforeDocument,
2065
+ historyMessage,
2066
+ changedFields,
2067
+ nowValue
2068
+ });
2069
+ const outputItem = structuredClone(frontMatter);
2070
+ const nextTransition = suggestNextLifecycleTransition(id, type, status, statusRegistry);
2071
+ if (createItemLacksSchedule(type, deadline, reminders.values, events.values)) {
2072
+ printError(`[pm] warning: ${type} '${id}' has no deadline/reminder/event \u2014 it will not appear on the calendar. Add one via 'pm update ${id} --deadline <ISO>' or 'pm update ${id} --event "start=<ISO>,end=<ISO>"'.`);
2073
+ }
2074
+ return {
2075
+ item: outputItem,
2076
+ changed_fields: changedFields,
2077
+ warnings: [...validationWarnings, ...hookWarnings],
2078
+ ...parentSource !== void 0 ? { parent_source: parentSource } : {},
2079
+ ...nextTransition !== void 0 ? { next_transition: nextTransition } : {}
2080
+ };
2081
+ }
2082
+ var _testOnlyCreateCommand = {
2083
+ buildHistoryMessage,
2084
+ buildInvalidLogSeedKeysMessage,
2085
+ buildTypeSpecificCreateExample,
2086
+ collectMissingRequiredTypeOptionKeys,
2087
+ createExampleTokensForFlag,
2088
+ filterNonMissingTypeOptionErrors,
2089
+ hasTemplatesShowHandler,
2090
+ hasCreateOptionValue,
2091
+ loadCreateTemplateOptionsFromRuntime,
2092
+ looksLikeStructuredEntry,
2093
+ mergeCreateOptionsWithTemplate,
2094
+ normalizeCreatePolicyOptionKey,
2095
+ normalizeDependencyKindInput,
2096
+ normalizeExtensionCommandPath,
2097
+ parseCreateUnsetTargets,
2098
+ requireStringOption,
2099
+ readTemplateOptionsFromRuntimeResult,
2100
+ resolveRuntimeCreateUnsetDefinition: (token, registry) => resolveRuntimeUnsetFieldDefinition(token, "create", registry),
2101
+ typeOptionExampleValue
2102
+ };
2103
+
2104
+ export {
2105
+ resolvePriority,
2106
+ normalizeRiskInput,
2107
+ normalizeSeverityInput,
2108
+ parseConfidenceInput,
2109
+ parseRegressionInput,
2110
+ isLegacyNoneToken,
2111
+ assertNoLegacyNoneToken,
2112
+ assertNoLegacyNoneTokens,
2113
+ applyLegacyNoneCollectionNormalizers,
2114
+ COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,
2115
+ COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR,
2116
+ COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR,
2117
+ parseCommandUnsetTargets,
2118
+ resolveRuntimeUnsetFieldDefinition,
2119
+ ensureEnumValue,
2120
+ parseReminderEntries,
2121
+ parseEventEntries,
2122
+ parseTypeOptionEntries,
2123
+ parseLogSeed,
2124
+ parseFiles,
2125
+ parseTests,
2126
+ parseDocs,
2127
+ runCreate,
2128
+ _testOnlyCreateCommand
2129
+ };
2130
+ //# sourceMappingURL=chunk-TULGS6X6.js.map
2131
+
2132
+ //# debugId=3b2e2c0b-d9a3-51c6-ba51-0bad9aa69284