@unbrained/pm-cli 2026.7.8 → 2026.7.10

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 (446) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -0
  3. package/dist/cli/bootstrap-args.js +6 -3
  4. package/dist/cli/bootstrap-args.js.map +1 -1
  5. package/dist/cli/commands/close.js +5 -2
  6. package/dist/cli/commands/close.js.map +1 -1
  7. package/dist/cli/commands/completion.js +8 -2
  8. package/dist/cli/commands/completion.js.map +1 -1
  9. package/dist/cli/commands/context.d.ts +23 -0
  10. package/dist/cli/commands/context.js +96 -7
  11. package/dist/cli/commands/context.js.map +1 -1
  12. package/dist/cli/commands/contracts.d.ts +11 -0
  13. package/dist/cli/commands/contracts.js +112 -15
  14. package/dist/cli/commands/contracts.js.map +1 -1
  15. package/dist/cli/commands/create.js +4 -2
  16. package/dist/cli/commands/create.js.map +1 -1
  17. package/dist/cli/commands/extension.d.ts +1 -1
  18. package/dist/cli/commands/extension.js +91 -32
  19. package/dist/cli/commands/extension.js.map +1 -1
  20. package/dist/cli/commands/init.d.ts +19 -3
  21. package/dist/cli/commands/init.js +57 -24
  22. package/dist/cli/commands/init.js.map +1 -1
  23. package/dist/cli/commands/list.d.ts +4 -0
  24. package/dist/cli/commands/list.js +32 -3
  25. package/dist/cli/commands/list.js.map +1 -1
  26. package/dist/cli/commands/next.d.ts +3 -1
  27. package/dist/cli/commands/next.js +19 -7
  28. package/dist/cli/commands/next.js.map +1 -1
  29. package/dist/cli/commands/update.d.ts +32 -1
  30. package/dist/cli/commands/update.js +37 -10
  31. package/dist/cli/commands/update.js.map +1 -1
  32. package/dist/cli/register-list-query.js +10 -4
  33. package/dist/cli/register-list-query.js.map +1 -1
  34. package/dist/cli/register-operations.js +4 -2
  35. package/dist/cli/register-operations.js.map +1 -1
  36. package/dist/cli/register-setup.js +11 -2
  37. package/dist/cli/register-setup.js.map +1 -1
  38. package/dist/cli/registration-helpers.js +4 -2
  39. package/dist/cli/registration-helpers.js.map +1 -1
  40. package/dist/cli-bundle/chunks/append-G7NGOQVU.js +11 -0
  41. package/dist/cli-bundle/chunks/{append-RSPHC423.js → append-SIECQAPH.js} +5 -5
  42. package/dist/cli-bundle/chunks/{chunk-CGDUIPJL.js → chunk-22PW73KV.js} +3 -3
  43. package/dist/cli-bundle/chunks/{chunk-ML27MHNM.js → chunk-2RW5DWHQ.js} +98 -22
  44. package/dist/cli-bundle/chunks/chunk-2RW5DWHQ.js.map +1 -0
  45. package/dist/cli-bundle/chunks/{chunk-GO2X6ZRB.js → chunk-35U3AVRY.js} +3 -3
  46. package/dist/cli-bundle/chunks/{chunk-4I7KS5ES.js → chunk-3JFQRPOI.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-NRMDT4OV.js → chunk-3THCOPYI.js} +4 -4
  48. package/dist/cli-bundle/chunks/{chunk-D6J5673C.js → chunk-4BINCIRM.js} +4 -4
  49. package/dist/cli-bundle/chunks/{chunk-D63PEJTB.js → chunk-4P2GYOM5.js} +7 -7
  50. package/dist/cli-bundle/chunks/{chunk-LHDHS4Z6.js → chunk-4QE5HOJY.js} +5 -5
  51. package/dist/cli-bundle/chunks/{chunk-5VAZHYVQ.js → chunk-56J3MPGE.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-UCRYCT5M.js → chunk-5BFBDJ4R.js} +38 -16
  53. package/dist/cli-bundle/chunks/chunk-5BFBDJ4R.js.map +1 -0
  54. package/dist/cli-bundle/chunks/{chunk-IINCZYM3.js → chunk-62ECRG6J.js} +3 -3
  55. package/dist/cli-bundle/chunks/{chunk-EYPIUFWJ.js → chunk-62KPBB2W.js} +10 -10
  56. package/dist/cli-bundle/chunks/{chunk-3FUXM574.js → chunk-6MK6M35B.js} +4 -4
  57. package/dist/cli-bundle/chunks/{chunk-XN5BEN2B.js → chunk-6PBZBIS6.js} +35 -8
  58. package/dist/cli-bundle/chunks/chunk-6PBZBIS6.js.map +1 -0
  59. package/dist/cli-bundle/chunks/{chunk-GQOKFX2G.js → chunk-6WIP52LQ.js} +8 -8
  60. package/dist/cli-bundle/chunks/{chunk-GLMJLBLR.js → chunk-75NAGPEL.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-6TD5QGIB.js → chunk-77CWXIAC.js} +4 -4
  62. package/dist/cli-bundle/chunks/{chunk-3FRNNVWY.js → chunk-7S2UC7S6.js} +427 -133
  63. package/dist/cli-bundle/chunks/chunk-7S2UC7S6.js.map +7 -0
  64. package/dist/cli-bundle/chunks/{chunk-PAWPLIWW.js → chunk-7THLDY3D.js} +5 -5
  65. package/dist/cli-bundle/chunks/{chunk-QJZM5WO5.js → chunk-7TRCAREE.js} +3 -3
  66. package/dist/cli-bundle/chunks/{chunk-EEJKHF7M.js → chunk-7TRVVYPI.js} +5 -5
  67. package/dist/cli-bundle/chunks/{chunk-PJPZTE7P.js → chunk-A62N3BM3.js} +8 -6
  68. package/dist/cli-bundle/chunks/chunk-A62N3BM3.js.map +7 -0
  69. package/dist/cli-bundle/chunks/{chunk-TU5P744I.js → chunk-A7DJG5EF.js} +55 -6
  70. package/dist/cli-bundle/chunks/chunk-A7DJG5EF.js.map +7 -0
  71. package/dist/cli-bundle/chunks/{chunk-ZMOPZFVT.js → chunk-AD4HJKQZ.js} +49 -7
  72. package/dist/cli-bundle/chunks/chunk-AD4HJKQZ.js.map +1 -0
  73. package/dist/cli-bundle/chunks/{chunk-7QKSLAHB.js → chunk-AIWGQK6K.js} +2 -2
  74. package/dist/cli-bundle/chunks/{chunk-P2WE5KCU.js → chunk-AKCHJXJ4.js} +7 -7
  75. package/dist/cli-bundle/chunks/{chunk-KFL3XHMA.js → chunk-AYPXY3HF.js} +2 -2
  76. package/dist/cli-bundle/chunks/{chunk-RL24NAUX.js → chunk-B7FCPO65.js} +4 -4
  77. package/dist/cli-bundle/chunks/{chunk-4OCWJ2AP.js → chunk-BC7QBM2A.js} +7 -7
  78. package/dist/cli-bundle/chunks/{chunk-LD2NBQ5T.js → chunk-BST7GFIX.js} +3 -3
  79. package/dist/cli-bundle/chunks/{chunk-GE44TQMC.js → chunk-CUBPPDDF.js} +145 -62
  80. package/dist/cli-bundle/chunks/chunk-CUBPPDDF.js.map +1 -0
  81. package/dist/cli-bundle/chunks/{chunk-FJR2S7S4.js → chunk-CYBW4HK7.js} +7 -7
  82. package/dist/cli-bundle/chunks/{chunk-7UCBLJDF.js → chunk-DDF7UMVV.js} +2 -2
  83. package/dist/cli-bundle/chunks/{chunk-YQEKE4FO.js → chunk-DLHFJZ2S.js} +7 -7
  84. package/dist/cli-bundle/chunks/{chunk-PCBZ2VJD.js → chunk-DMD2TENU.js} +4 -4
  85. package/dist/cli-bundle/chunks/{chunk-SCJPFQQT.js → chunk-DN67YDFH.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-7TBUV7XS.js → chunk-DNHILSD7.js} +4 -4
  87. package/dist/cli-bundle/chunks/{chunk-FFB3WITE.js → chunk-DT6NDP53.js} +3 -3
  88. package/dist/cli-bundle/chunks/{chunk-G4FKP4ID.js → chunk-DWGHHSDC.js} +9 -7
  89. package/dist/cli-bundle/chunks/chunk-DWGHHSDC.js.map +1 -0
  90. package/dist/cli-bundle/chunks/{chunk-3V5C7PUH.js → chunk-DYUAQVDK.js} +2 -2
  91. package/dist/cli-bundle/chunks/{chunk-MCH6IKK7.js → chunk-E2RJZQNW.js} +3 -3
  92. package/dist/cli-bundle/chunks/{chunk-6ZKDMEVT.js → chunk-ECXJ7OHI.js} +3 -3
  93. package/dist/cli-bundle/chunks/{chunk-LG4N6YOK.js → chunk-ESXG6VFX.js} +5 -5
  94. package/dist/cli-bundle/chunks/{chunk-TR2C6V5T.js → chunk-EXG6XTJC.js} +101 -25
  95. package/dist/cli-bundle/chunks/chunk-EXG6XTJC.js.map +7 -0
  96. package/dist/cli-bundle/chunks/{chunk-BPJ5NYSJ.js → chunk-F7UA74OZ.js} +54 -7
  97. package/dist/cli-bundle/chunks/chunk-F7UA74OZ.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-GSQVQINP.js → chunk-FBD2WUNS.js} +4 -4
  99. package/dist/cli-bundle/chunks/{chunk-YSRXFGNV.js → chunk-FSD7W7Y2.js} +3 -3
  100. package/dist/cli-bundle/chunks/{chunk-JYVPLGOW.js → chunk-FWL5XVYI.js} +4 -4
  101. package/dist/cli-bundle/chunks/{chunk-KMXVZ2P7.js → chunk-FYMHD6VX.js} +122 -27
  102. package/dist/cli-bundle/chunks/chunk-FYMHD6VX.js.map +1 -0
  103. package/dist/cli-bundle/chunks/{chunk-SIQGG335.js → chunk-GMNCW27N.js} +7 -7
  104. package/dist/cli-bundle/chunks/{chunk-3SHDAKMF.js → chunk-GPPWUJMR.js} +3 -3
  105. package/dist/cli-bundle/chunks/{chunk-W2VFNVSJ.js → chunk-H3HKQXQJ.js} +3 -3
  106. package/dist/cli-bundle/chunks/{chunk-UIHDZS6X.js → chunk-HFQ7QQZL.js} +7 -7
  107. package/dist/cli-bundle/chunks/{chunk-Z6RLSNUX.js → chunk-HLUB7G6J.js} +3 -3
  108. package/dist/cli-bundle/chunks/{chunk-ASMRSIDX.js → chunk-HWUIK7YL.js} +121 -26
  109. package/dist/cli-bundle/chunks/chunk-HWUIK7YL.js.map +7 -0
  110. package/dist/cli-bundle/chunks/{chunk-U72GF3I2.js → chunk-INAZHXOI.js} +3 -3
  111. package/dist/cli-bundle/chunks/{chunk-INOWVPUD.js → chunk-J3ELHLOJ.js} +5 -5
  112. package/dist/cli-bundle/chunks/{chunk-2BVD4ZD2.js → chunk-J3FDNQWM.js} +4 -3
  113. package/dist/cli-bundle/chunks/chunk-J3FDNQWM.js.map +7 -0
  114. package/dist/cli-bundle/chunks/{chunk-UH6VFRV6.js → chunk-J3Z2JMDV.js} +3 -3
  115. package/dist/cli-bundle/chunks/{chunk-HI27UADG.js → chunk-JDEXIVKQ.js} +372 -20
  116. package/dist/cli-bundle/chunks/chunk-JDEXIVKQ.js.map +1 -0
  117. package/dist/cli-bundle/chunks/{chunk-MYHFZNBO.js → chunk-JFOBTM4D.js} +8 -8
  118. package/dist/cli-bundle/chunks/{chunk-J6AD3GWC.js → chunk-JNELC5UO.js} +2 -2
  119. package/dist/cli-bundle/chunks/{chunk-YUCKM3MD.js → chunk-JQ5NB6O2.js} +4 -4
  120. package/dist/cli-bundle/chunks/{chunk-3UXIMY62.js → chunk-KFC6X4PI.js} +3 -3
  121. package/dist/cli-bundle/chunks/{chunk-C3YU3TXX.js → chunk-L2SWAZ3S.js} +2 -2
  122. package/dist/cli-bundle/chunks/{chunk-QLEH6FTQ.js → chunk-LVVZLEW5.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-RFHLRMLQ.js → chunk-M66PC7JI.js} +3 -3
  124. package/dist/cli-bundle/chunks/{chunk-UVFJSKTF.js → chunk-M7DWRMNY.js} +10 -7
  125. package/dist/cli-bundle/chunks/chunk-M7DWRMNY.js.map +1 -0
  126. package/dist/cli-bundle/chunks/{chunk-UEATYUZW.js → chunk-M7JYEBPT.js} +2 -2
  127. package/dist/cli-bundle/chunks/{chunk-Z2JQH2MG.js → chunk-MQ632QRB.js} +2 -2
  128. package/dist/cli-bundle/chunks/{chunk-IYRG5AEC.js → chunk-N7N3PUUP.js} +7 -7
  129. package/dist/cli-bundle/chunks/{chunk-3YJDIJIE.js → chunk-NPJLTZQZ.js} +3 -3
  130. package/dist/cli-bundle/chunks/{chunk-TUDAYIO7.js → chunk-NQTIOKHL.js} +12 -10
  131. package/dist/cli-bundle/chunks/{chunk-TUDAYIO7.js.map → chunk-NQTIOKHL.js.map} +1 -1
  132. package/dist/cli-bundle/chunks/{chunk-BFNFTHWQ.js → chunk-O67XP4FD.js} +3 -3
  133. package/dist/cli-bundle/chunks/{chunk-XPSGJ4IV.js → chunk-OVYXSZOQ.js} +11 -9
  134. package/dist/cli-bundle/chunks/{chunk-XPSGJ4IV.js.map → chunk-OVYXSZOQ.js.map} +2 -2
  135. package/dist/cli-bundle/chunks/{chunk-FOJEBRDD.js → chunk-P7PDLLCE.js} +5 -5
  136. package/dist/cli-bundle/chunks/{chunk-SN5X5GTU.js → chunk-PEACKWHL.js} +4 -4
  137. package/dist/cli-bundle/chunks/{chunk-HZZ3AC27.js → chunk-PFRGQZG2.js} +3 -3
  138. package/dist/cli-bundle/chunks/{chunk-Q3CFSOQZ.js → chunk-PMU2OJ3N.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-5STY7NVM.js → chunk-PUMTJMMF.js} +4 -4
  140. package/dist/cli-bundle/chunks/{chunk-K52C6YPA.js → chunk-QTJCMK2S.js} +5 -5
  141. package/dist/cli-bundle/chunks/{chunk-6FU5BVRB.js → chunk-RAE2SLNO.js} +4 -4
  142. package/dist/cli-bundle/chunks/{chunk-YR5R4FMQ.js → chunk-RYA7QE7B.js} +10 -10
  143. package/dist/cli-bundle/chunks/{chunk-TTCJCKUJ.js → chunk-SL337EYZ.js} +379 -20
  144. package/dist/cli-bundle/chunks/chunk-SL337EYZ.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-RDJXIAJB.js → chunk-SMKQFGDI.js} +9 -6
  146. package/dist/cli-bundle/chunks/chunk-SMKQFGDI.js.map +7 -0
  147. package/dist/cli-bundle/chunks/{chunk-UFNFHCAC.js → chunk-SWQMU4AD.js} +2 -2
  148. package/dist/cli-bundle/chunks/{chunk-MFLLULHU.js → chunk-TB2CZJAQ.js} +5 -4
  149. package/dist/cli-bundle/chunks/chunk-TB2CZJAQ.js.map +1 -0
  150. package/dist/cli-bundle/chunks/{chunk-WVEMZZCR.js → chunk-TEKAGPZV.js} +3 -3
  151. package/dist/cli-bundle/chunks/{chunk-JH5XDDYS.js → chunk-TM5E2IED.js} +5 -5
  152. package/dist/cli-bundle/chunks/{chunk-C6XSTACC.js → chunk-TTRL5GE6.js} +3 -3
  153. package/dist/cli-bundle/chunks/{chunk-AEOFBBWO.js → chunk-UA2VI62P.js} +3 -3
  154. package/dist/cli-bundle/chunks/{chunk-6RR4XM5H.js → chunk-UYK26VRP.js} +3 -3
  155. package/dist/cli-bundle/chunks/{chunk-CXH7EMSB.js → chunk-VBDQTL3Z.js} +3 -3
  156. package/dist/cli-bundle/chunks/{chunk-NGBWEYNY.js → chunk-W2FXYQ6D.js} +5 -5
  157. package/dist/cli-bundle/chunks/{chunk-UURYLDDC.js → chunk-WZ7EPGUX.js} +5 -5
  158. package/dist/cli-bundle/chunks/{chunk-2RADY7IB.js → chunk-XES6AVCK.js} +427 -126
  159. package/dist/cli-bundle/chunks/chunk-XES6AVCK.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{chunk-QYZMZD4L.js → chunk-XVCB574W.js} +4 -4
  161. package/dist/cli-bundle/chunks/{chunk-F5DDGY6R.js → chunk-XWS3Z57Q.js} +3 -3
  162. package/dist/cli-bundle/chunks/{chunk-EP2CKDS7.js → chunk-XXJB4GLJ.js} +2 -2
  163. package/dist/cli-bundle/chunks/{chunk-NTOOEVJ4.js → chunk-Y5Q4FEE4.js} +47 -7
  164. package/dist/cli-bundle/chunks/chunk-Y5Q4FEE4.js.map +1 -0
  165. package/dist/cli-bundle/chunks/{chunk-DUBC6TI3.js → chunk-YA4B6P3L.js} +37 -15
  166. package/dist/cli-bundle/chunks/chunk-YA4B6P3L.js.map +7 -0
  167. package/dist/cli-bundle/chunks/{chunk-FL625JJM.js → chunk-Z3R2Z5KW.js} +145 -62
  168. package/dist/cli-bundle/chunks/chunk-Z3R2Z5KW.js.map +7 -0
  169. package/dist/cli-bundle/chunks/{chunk-RLHQ3G4M.js → chunk-Z5MFM54X.js} +34 -7
  170. package/dist/cli-bundle/chunks/chunk-Z5MFM54X.js.map +7 -0
  171. package/dist/cli-bundle/chunks/{chunk-6WCXSC5V.js → chunk-ZGDJA6WI.js} +5 -5
  172. package/dist/cli-bundle/chunks/{chunk-TKWTJGD6.js → chunk-ZIU35KME.js} +5 -5
  173. package/dist/cli-bundle/chunks/{chunk-YUMNZS3X.js → chunk-ZQ2KEWE7.js} +3 -3
  174. package/dist/cli-bundle/chunks/close-2NVUCJXV.js +12 -0
  175. package/dist/cli-bundle/chunks/{close-K6BFI3OX.js → close-BZPS37KL.js} +5 -5
  176. package/dist/cli-bundle/chunks/{close-many-6NBL3PM4.js → close-many-KKNCGLVR.js} +13 -13
  177. package/dist/cli-bundle/chunks/close-many-S5WKLWVO.js +22 -0
  178. package/dist/cli-bundle/chunks/{comments-PLFK5ZKK.js → comments-PV5XG342.js} +7 -7
  179. package/dist/cli-bundle/chunks/comments-XAM2ADHO.js +13 -0
  180. package/dist/cli-bundle/chunks/copy-OJ2YNJ7S.js +9 -0
  181. package/dist/cli-bundle/chunks/{copy-VH3L4MN2.js → copy-OZDYDQUG.js} +4 -4
  182. package/dist/cli-bundle/chunks/create-5O3QK3PX.js +25 -0
  183. package/dist/cli-bundle/chunks/{create-TRIBYORN.js → create-WGFKEJAK.js} +9 -9
  184. package/dist/cli-bundle/chunks/{delete-ZNXUNCZR.js → delete-NTYXFL7A.js} +4 -4
  185. package/dist/cli-bundle/chunks/delete-V7FPW6JL.js +10 -0
  186. package/dist/cli-bundle/chunks/{deps-CVDY7FFK.js → deps-7WVENNH3.js} +4 -4
  187. package/dist/cli-bundle/chunks/{deps-SZXQHV73.js → deps-Z6RD6RWW.js} +4 -4
  188. package/dist/cli-bundle/chunks/{docs-DR74ITCD.js → docs-2NIRGHAN.js} +6 -6
  189. package/dist/cli-bundle/chunks/docs-SOY2CMH3.js +14 -0
  190. package/dist/cli-bundle/chunks/{files-QEFQ2M3H.js → files-4OH2I663.js} +6 -6
  191. package/dist/cli-bundle/chunks/{files-H5YCA74Z.js → files-5KNAFW67.js} +6 -6
  192. package/dist/cli-bundle/chunks/{focus-55TRYSNA.js → focus-CLNZWWKW.js} +5 -5
  193. package/dist/cli-bundle/chunks/focus-JUKXZN3J.js +10 -0
  194. package/dist/cli-bundle/chunks/{history-compact-JJZ4EFL3.js → history-compact-R3T3XPD4.js} +9 -9
  195. package/dist/cli-bundle/chunks/history-compact-WKAKPLFQ.js +21 -0
  196. package/dist/cli-bundle/chunks/{history-redact-TPPUT3A5.js → history-redact-CLJDCBNF.js} +7 -7
  197. package/dist/cli-bundle/chunks/history-redact-Y67UDKD3.js +17 -0
  198. package/dist/cli-bundle/chunks/history-repair-2WLXWQAM.js +19 -0
  199. package/dist/cli-bundle/chunks/{history-repair-J7PIZ6ZP.js → history-repair-LNA7V2VI.js} +9 -9
  200. package/dist/cli-bundle/chunks/{learnings-KB6BT4NR.js → learnings-2L72KBOE.js} +7 -7
  201. package/dist/cli-bundle/chunks/learnings-PNK7WUWO.js +13 -0
  202. package/dist/cli-bundle/chunks/{notes-ZTHXVOKM.js → notes-USDIABZV.js} +7 -7
  203. package/dist/cli-bundle/chunks/notes-X4SWEJSB.js +13 -0
  204. package/dist/cli-bundle/chunks/plan-JU454RMZ.js +24 -0
  205. package/dist/cli-bundle/chunks/{plan-CJPKFRBK.js → plan-U4RWU56Z.js} +10 -10
  206. package/dist/cli-bundle/chunks/{profile-AQNHXOYA.js → profile-COBKZJUQ.js} +9 -9
  207. package/dist/cli-bundle/chunks/{profile-HTBFINKQ.js → profile-RKIRCXH7.js} +9 -9
  208. package/dist/cli-bundle/chunks/{register-list-query-EEF33SUJ.js → register-list-query-2VBANNFM.js} +20 -18
  209. package/dist/cli-bundle/chunks/register-list-query-2VBANNFM.js.map +1 -0
  210. package/dist/cli-bundle/chunks/{register-list-query-S4FBWIWN.js → register-list-query-4AZEKWZ5.js} +19 -17
  211. package/dist/cli-bundle/chunks/register-list-query-4AZEKWZ5.js.map +7 -0
  212. package/dist/cli-bundle/chunks/{register-mutation-QFLRBCI7.js → register-mutation-JGXTDEIZ.js} +29 -29
  213. package/dist/cli-bundle/chunks/{register-mutation-L5Q7AUDN.js → register-mutation-XVO4GGZI.js} +29 -29
  214. package/dist/cli-bundle/chunks/{register-operations-HDE4FVW4.js → register-operations-4EEFV5KJ.js} +30 -29
  215. package/dist/cli-bundle/chunks/register-operations-4EEFV5KJ.js.map +1 -0
  216. package/dist/cli-bundle/chunks/{register-operations-QDU43FCG.js → register-operations-UV25Z4BN.js} +29 -28
  217. package/dist/cli-bundle/chunks/register-operations-UV25Z4BN.js.map +7 -0
  218. package/dist/cli-bundle/chunks/{register-setup-EGMTAXDC.js → register-setup-MMXQQC5J.js} +27 -19
  219. package/dist/cli-bundle/chunks/register-setup-MMXQQC5J.js.map +1 -0
  220. package/dist/cli-bundle/chunks/{register-setup-PNIO3L2P.js → register-setup-NQE5MW63.js} +26 -18
  221. package/dist/cli-bundle/chunks/register-setup-NQE5MW63.js.map +7 -0
  222. package/dist/cli-bundle/chunks/restore-54HR2EYD.js +15 -0
  223. package/dist/cli-bundle/chunks/{restore-BTBEZ5CK.js → restore-BINCHJIY.js} +7 -7
  224. package/dist/cli-bundle/chunks/{schema-DGSTYYQB.js → schema-2JZNEQSG.js} +6 -6
  225. package/dist/cli-bundle/chunks/{schema-HAIBEE24.js → schema-VV3K5WZI.js} +6 -6
  226. package/dist/cli-bundle/chunks/{update-MP4XLU56.js → update-DK3GAY5D.js} +12 -12
  227. package/dist/cli-bundle/chunks/update-OIMRKTX6.js +21 -0
  228. package/dist/cli-bundle/chunks/update-many-5KI6MW76.js +31 -0
  229. package/dist/cli-bundle/chunks/update-many-IOLDHIZT.js +35 -0
  230. package/dist/cli-bundle/main.js +16 -54
  231. package/dist/cli-bundle/main.js.map +3 -3
  232. package/dist/cli-bundle/sdk-runtime.js +117 -53
  233. package/dist/cli-bundle/sdk-testing.js +6 -6
  234. package/dist/cli-bundle/sdk.js +142 -58
  235. package/dist/cli-bundle/sdk.js.map +3 -3
  236. package/dist/core/extensions/extension-types.d.ts +1 -1
  237. package/dist/core/extensions/extension-types.js +3 -2
  238. package/dist/core/extensions/extension-types.js.map +1 -1
  239. package/dist/core/extensions/index.d.ts +1 -0
  240. package/dist/core/extensions/index.js +3 -2
  241. package/dist/core/extensions/index.js.map +1 -1
  242. package/dist/core/store/front-matter-cache.d.ts +8 -0
  243. package/dist/core/store/front-matter-cache.js +22 -9
  244. package/dist/core/store/front-matter-cache.js.map +1 -1
  245. package/dist/sdk/cli-contracts/commander-mutation-options.js +4 -4
  246. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  247. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  248. package/dist/sdk/cli-contracts/flag-contracts.js +10 -2
  249. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  250. package/dist/sdk/cli-contracts/tool-option-contracts.js +10 -5
  251. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  252. package/dist/sdk/cli-contracts/tool-parameter-tables.js +12 -4
  253. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  254. package/dist/sdk/cli-contracts/tool-schema.d.ts +4 -0
  255. package/dist/sdk/cli-contracts/tool-schema.js +66 -11
  256. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  257. package/dist/sdk/context-relevance.d.ts +166 -0
  258. package/dist/sdk/context-relevance.js +299 -0
  259. package/dist/sdk/context-relevance.js.map +1 -0
  260. package/dist/sdk/index.d.ts +2 -1
  261. package/dist/sdk/index.js +4 -3
  262. package/dist/sdk/index.js.map +1 -1
  263. package/dist/sdk/runtime.d.ts +340 -25
  264. package/dist/sdk/runtime.js +413 -25
  265. package/dist/sdk/runtime.js.map +1 -1
  266. package/docs/AGENT_GUIDE.md +3 -0
  267. package/docs/COMMANDS.md +17 -2
  268. package/docs/EXTENSIONS.md +3 -1
  269. package/docs/SDK.md +115 -0
  270. package/docs/TESTING.md +40 -1
  271. package/package.json +4 -2
  272. package/dist/cli-bundle/chunks/append-CDPAYYSB.js +0 -11
  273. package/dist/cli-bundle/chunks/chunk-2BVD4ZD2.js.map +0 -7
  274. package/dist/cli-bundle/chunks/chunk-2RADY7IB.js.map +0 -1
  275. package/dist/cli-bundle/chunks/chunk-3FRNNVWY.js.map +0 -7
  276. package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js.map +0 -7
  277. package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js.map +0 -7
  278. package/dist/cli-bundle/chunks/chunk-DUBC6TI3.js.map +0 -7
  279. package/dist/cli-bundle/chunks/chunk-FL625JJM.js.map +0 -7
  280. package/dist/cli-bundle/chunks/chunk-G4FKP4ID.js.map +0 -1
  281. package/dist/cli-bundle/chunks/chunk-GE44TQMC.js.map +0 -1
  282. package/dist/cli-bundle/chunks/chunk-HI27UADG.js.map +0 -1
  283. package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js.map +0 -1
  284. package/dist/cli-bundle/chunks/chunk-MFLLULHU.js.map +0 -1
  285. package/dist/cli-bundle/chunks/chunk-ML27MHNM.js.map +0 -1
  286. package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js.map +0 -1
  287. package/dist/cli-bundle/chunks/chunk-PJPZTE7P.js.map +0 -7
  288. package/dist/cli-bundle/chunks/chunk-RDJXIAJB.js.map +0 -7
  289. package/dist/cli-bundle/chunks/chunk-RLHQ3G4M.js.map +0 -7
  290. package/dist/cli-bundle/chunks/chunk-TR2C6V5T.js.map +0 -7
  291. package/dist/cli-bundle/chunks/chunk-TTCJCKUJ.js.map +0 -7
  292. package/dist/cli-bundle/chunks/chunk-TU5P744I.js.map +0 -7
  293. package/dist/cli-bundle/chunks/chunk-UCRYCT5M.js.map +0 -1
  294. package/dist/cli-bundle/chunks/chunk-UVFJSKTF.js.map +0 -1
  295. package/dist/cli-bundle/chunks/chunk-XN5BEN2B.js.map +0 -1
  296. package/dist/cli-bundle/chunks/chunk-ZMOPZFVT.js.map +0 -1
  297. package/dist/cli-bundle/chunks/close-E3RLZSP2.js +0 -12
  298. package/dist/cli-bundle/chunks/close-many-X4YKS3RO.js +0 -22
  299. package/dist/cli-bundle/chunks/comments-ZNOD5PTV.js +0 -13
  300. package/dist/cli-bundle/chunks/copy-F7BUFY4J.js +0 -9
  301. package/dist/cli-bundle/chunks/create-AMBMYP6F.js +0 -25
  302. package/dist/cli-bundle/chunks/delete-6KQHZYIP.js +0 -10
  303. package/dist/cli-bundle/chunks/docs-WCVYY6I7.js +0 -14
  304. package/dist/cli-bundle/chunks/focus-N2QGNS5D.js +0 -10
  305. package/dist/cli-bundle/chunks/history-compact-GWQ4UOEI.js +0 -21
  306. package/dist/cli-bundle/chunks/history-redact-4GJOLXCM.js +0 -17
  307. package/dist/cli-bundle/chunks/history-repair-HVCVCGUF.js +0 -19
  308. package/dist/cli-bundle/chunks/learnings-YYY3U2Y7.js +0 -13
  309. package/dist/cli-bundle/chunks/notes-BGG7VL72.js +0 -13
  310. package/dist/cli-bundle/chunks/plan-MK2QY3GA.js +0 -24
  311. package/dist/cli-bundle/chunks/register-list-query-EEF33SUJ.js.map +0 -1
  312. package/dist/cli-bundle/chunks/register-list-query-S4FBWIWN.js.map +0 -7
  313. package/dist/cli-bundle/chunks/register-operations-HDE4FVW4.js.map +0 -1
  314. package/dist/cli-bundle/chunks/register-operations-QDU43FCG.js.map +0 -7
  315. package/dist/cli-bundle/chunks/register-setup-EGMTAXDC.js.map +0 -1
  316. package/dist/cli-bundle/chunks/register-setup-PNIO3L2P.js.map +0 -7
  317. package/dist/cli-bundle/chunks/restore-EX4UUZL6.js +0 -15
  318. package/dist/cli-bundle/chunks/update-SDIRJGSY.js +0 -21
  319. package/dist/cli-bundle/chunks/update-many-34AIU6W7.js +0 -31
  320. package/dist/cli-bundle/chunks/update-many-JUPCNOKV.js +0 -35
  321. /package/dist/cli-bundle/chunks/{append-CDPAYYSB.js.map → append-G7NGOQVU.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{append-RSPHC423.js.map → append-SIECQAPH.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-CGDUIPJL.js.map → chunk-22PW73KV.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-GO2X6ZRB.js.map → chunk-35U3AVRY.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-4I7KS5ES.js.map → chunk-3JFQRPOI.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-NRMDT4OV.js.map → chunk-3THCOPYI.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-D6J5673C.js.map → chunk-4BINCIRM.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-D63PEJTB.js.map → chunk-4P2GYOM5.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-LHDHS4Z6.js.map → chunk-4QE5HOJY.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-5VAZHYVQ.js.map → chunk-56J3MPGE.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-IINCZYM3.js.map → chunk-62ECRG6J.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-EYPIUFWJ.js.map → chunk-62KPBB2W.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-3FUXM574.js.map → chunk-6MK6M35B.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-GQOKFX2G.js.map → chunk-6WIP52LQ.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-GLMJLBLR.js.map → chunk-75NAGPEL.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-6TD5QGIB.js.map → chunk-77CWXIAC.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-PAWPLIWW.js.map → chunk-7THLDY3D.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-QJZM5WO5.js.map → chunk-7TRCAREE.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-EEJKHF7M.js.map → chunk-7TRVVYPI.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-7QKSLAHB.js.map → chunk-AIWGQK6K.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-P2WE5KCU.js.map → chunk-AKCHJXJ4.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-KFL3XHMA.js.map → chunk-AYPXY3HF.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-RL24NAUX.js.map → chunk-B7FCPO65.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-4OCWJ2AP.js.map → chunk-BC7QBM2A.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-LD2NBQ5T.js.map → chunk-BST7GFIX.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-FJR2S7S4.js.map → chunk-CYBW4HK7.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-7UCBLJDF.js.map → chunk-DDF7UMVV.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-YQEKE4FO.js.map → chunk-DLHFJZ2S.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-PCBZ2VJD.js.map → chunk-DMD2TENU.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-SCJPFQQT.js.map → chunk-DN67YDFH.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-7TBUV7XS.js.map → chunk-DNHILSD7.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-FFB3WITE.js.map → chunk-DT6NDP53.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-3V5C7PUH.js.map → chunk-DYUAQVDK.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-MCH6IKK7.js.map → chunk-E2RJZQNW.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-6ZKDMEVT.js.map → chunk-ECXJ7OHI.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-LG4N6YOK.js.map → chunk-ESXG6VFX.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-GSQVQINP.js.map → chunk-FBD2WUNS.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-YSRXFGNV.js.map → chunk-FSD7W7Y2.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-JYVPLGOW.js.map → chunk-FWL5XVYI.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-SIQGG335.js.map → chunk-GMNCW27N.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-3SHDAKMF.js.map → chunk-GPPWUJMR.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-W2VFNVSJ.js.map → chunk-H3HKQXQJ.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-UIHDZS6X.js.map → chunk-HFQ7QQZL.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-Z6RLSNUX.js.map → chunk-HLUB7G6J.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-U72GF3I2.js.map → chunk-INAZHXOI.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-INOWVPUD.js.map → chunk-J3ELHLOJ.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{chunk-UH6VFRV6.js.map → chunk-J3Z2JMDV.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-MYHFZNBO.js.map → chunk-JFOBTM4D.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-J6AD3GWC.js.map → chunk-JNELC5UO.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-YUCKM3MD.js.map → chunk-JQ5NB6O2.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-3UXIMY62.js.map → chunk-KFC6X4PI.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-C3YU3TXX.js.map → chunk-L2SWAZ3S.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-QLEH6FTQ.js.map → chunk-LVVZLEW5.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-RFHLRMLQ.js.map → chunk-M66PC7JI.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-UEATYUZW.js.map → chunk-M7JYEBPT.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-Z2JQH2MG.js.map → chunk-MQ632QRB.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-IYRG5AEC.js.map → chunk-N7N3PUUP.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{chunk-3YJDIJIE.js.map → chunk-NPJLTZQZ.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{chunk-BFNFTHWQ.js.map → chunk-O67XP4FD.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{chunk-FOJEBRDD.js.map → chunk-P7PDLLCE.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{chunk-SN5X5GTU.js.map → chunk-PEACKWHL.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{chunk-HZZ3AC27.js.map → chunk-PFRGQZG2.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{chunk-Q3CFSOQZ.js.map → chunk-PMU2OJ3N.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{chunk-5STY7NVM.js.map → chunk-PUMTJMMF.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{chunk-K52C6YPA.js.map → chunk-QTJCMK2S.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{chunk-6FU5BVRB.js.map → chunk-RAE2SLNO.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{chunk-YR5R4FMQ.js.map → chunk-RYA7QE7B.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{chunk-UFNFHCAC.js.map → chunk-SWQMU4AD.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{chunk-WVEMZZCR.js.map → chunk-TEKAGPZV.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{chunk-JH5XDDYS.js.map → chunk-TM5E2IED.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{chunk-C6XSTACC.js.map → chunk-TTRL5GE6.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{chunk-AEOFBBWO.js.map → chunk-UA2VI62P.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{chunk-6RR4XM5H.js.map → chunk-UYK26VRP.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{chunk-CXH7EMSB.js.map → chunk-VBDQTL3Z.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{chunk-NGBWEYNY.js.map → chunk-W2FXYQ6D.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{chunk-UURYLDDC.js.map → chunk-WZ7EPGUX.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{chunk-QYZMZD4L.js.map → chunk-XVCB574W.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{chunk-F5DDGY6R.js.map → chunk-XWS3Z57Q.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{chunk-EP2CKDS7.js.map → chunk-XXJB4GLJ.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{chunk-6WCXSC5V.js.map → chunk-ZGDJA6WI.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{chunk-TKWTJGD6.js.map → chunk-ZIU35KME.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{chunk-YUMNZS3X.js.map → chunk-ZQ2KEWE7.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{close-E3RLZSP2.js.map → close-2NVUCJXV.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{close-K6BFI3OX.js.map → close-BZPS37KL.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{close-many-6NBL3PM4.js.map → close-many-KKNCGLVR.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{close-many-X4YKS3RO.js.map → close-many-S5WKLWVO.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{comments-PLFK5ZKK.js.map → comments-PV5XG342.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{comments-ZNOD5PTV.js.map → comments-XAM2ADHO.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{copy-F7BUFY4J.js.map → copy-OJ2YNJ7S.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{copy-VH3L4MN2.js.map → copy-OZDYDQUG.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{create-AMBMYP6F.js.map → create-5O3QK3PX.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{create-TRIBYORN.js.map → create-WGFKEJAK.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{delete-ZNXUNCZR.js.map → delete-NTYXFL7A.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{delete-6KQHZYIP.js.map → delete-V7FPW6JL.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{deps-CVDY7FFK.js.map → deps-7WVENNH3.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{deps-SZXQHV73.js.map → deps-Z6RD6RWW.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{docs-DR74ITCD.js.map → docs-2NIRGHAN.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{docs-WCVYY6I7.js.map → docs-SOY2CMH3.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{files-QEFQ2M3H.js.map → files-4OH2I663.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{files-H5YCA74Z.js.map → files-5KNAFW67.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{focus-55TRYSNA.js.map → focus-CLNZWWKW.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{focus-N2QGNS5D.js.map → focus-JUKXZN3J.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{history-compact-JJZ4EFL3.js.map → history-compact-R3T3XPD4.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{history-compact-GWQ4UOEI.js.map → history-compact-WKAKPLFQ.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{history-redact-TPPUT3A5.js.map → history-redact-CLJDCBNF.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{history-redact-4GJOLXCM.js.map → history-redact-Y67UDKD3.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{history-repair-HVCVCGUF.js.map → history-repair-2WLXWQAM.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{history-repair-J7PIZ6ZP.js.map → history-repair-LNA7V2VI.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{learnings-KB6BT4NR.js.map → learnings-2L72KBOE.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{learnings-YYY3U2Y7.js.map → learnings-PNK7WUWO.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{notes-ZTHXVOKM.js.map → notes-USDIABZV.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{notes-BGG7VL72.js.map → notes-X4SWEJSB.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{plan-MK2QY3GA.js.map → plan-JU454RMZ.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{plan-CJPKFRBK.js.map → plan-U4RWU56Z.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{profile-AQNHXOYA.js.map → profile-COBKZJUQ.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{profile-HTBFINKQ.js.map → profile-RKIRCXH7.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{register-mutation-QFLRBCI7.js.map → register-mutation-JGXTDEIZ.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{register-mutation-L5Q7AUDN.js.map → register-mutation-XVO4GGZI.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{restore-EX4UUZL6.js.map → restore-54HR2EYD.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{restore-BTBEZ5CK.js.map → restore-BINCHJIY.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{schema-DGSTYYQB.js.map → schema-2JZNEQSG.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{schema-HAIBEE24.js.map → schema-VV3K5WZI.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{update-MP4XLU56.js.map → update-DK3GAY5D.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{update-SDIRJGSY.js.map → update-OIMRKTX6.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{update-many-34AIU6W7.js.map → update-many-5KI6MW76.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{update-many-JUPCNOKV.js.map → update-many-IOLDHIZT.js.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  lintProjectProfile,
6
6
  resolveProfileCatalog,
7
7
  resolveProfileEntry
8
- } from "./chunk-3FUXM574.js";
8
+ } from "./chunk-6MK6M35B.js";
9
9
  import {
10
10
  parseNestedSettingValue,
11
11
  readNestedSettingValue,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-VUHVWI4C.js";
15
15
  import {
16
16
  ensureTypeFolderScaffold
17
- } from "./chunk-UURYLDDC.js";
17
+ } from "./chunk-WZ7EPGUX.js";
18
18
  import {
19
19
  normalizeAddFieldInput,
20
20
  normalizeAddStatusInput,
@@ -24,16 +24,16 @@ import {
24
24
  serializeStatusDefsFile,
25
25
  upsertField,
26
26
  upsertStatusDef
27
- } from "./chunk-CXH7EMSB.js";
27
+ } from "./chunk-VBDQTL3Z.js";
28
28
  import {
29
29
  CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS
30
- } from "./chunk-TR2C6V5T.js";
30
+ } from "./chunk-EXG6XTJC.js";
31
31
  import {
32
32
  normalizeAddTypeInput,
33
33
  parseItemTypesFile,
34
34
  serializeItemTypesFile,
35
35
  upsertItemType
36
- } from "./chunk-7UCBLJDF.js";
36
+ } from "./chunk-DDF7UMVV.js";
37
37
  import {
38
38
  PmCliError,
39
39
  acquireLock,
@@ -43,7 +43,7 @@ import {
43
43
  resolveGovernanceKnobs,
44
44
  runActiveOnWriteHooks,
45
45
  writeSettings
46
- } from "./chunk-BPJ5NYSJ.js";
46
+ } from "./chunk-F7UA74OZ.js";
47
47
  import {
48
48
  DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
49
49
  EXIT_CODE,
@@ -54,7 +54,7 @@ import {
54
54
  readFileIfExists,
55
55
  resolvePmRoot,
56
56
  writeFileAtomic
57
- } from "./chunk-2BVD4ZD2.js";
57
+ } from "./chunk-J3FDNQWM.js";
58
58
 
59
59
  // dist/cli/commands/profile.js
60
60
  import path2 from "node:path";
@@ -801,4 +801,4 @@ export {
801
801
  formatProfileLintHuman,
802
802
  formatProfileApplyHuman
803
803
  };
804
- //# sourceMappingURL=chunk-MYHFZNBO.js.map
804
+ //# sourceMappingURL=chunk-JFOBTM4D.js.map
@@ -2,7 +2,7 @@
2
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]="1f86aff5-7cfc-566c-8c4b-af6365719945")}catch(e){}}();
3
3
  import {
4
4
  toNonEmptyStringOrUndefined
5
- } from "./chunk-MFLLULHU.js";
5
+ } from "./chunk-TB2CZJAQ.js";
6
6
 
7
7
  // dist/core/governance/metadata-coverage.js
8
8
  function normalizeStatus(status, registry) {
@@ -257,6 +257,6 @@ export {
257
257
  computeMetadataCoverage,
258
258
  groupItemsByDimension
259
259
  };
260
- //# sourceMappingURL=chunk-J6AD3GWC.js.map
260
+ //# sourceMappingURL=chunk-JNELC5UO.js.map
261
261
 
262
262
  //# debugId=1f86aff5-7cfc-566c-8c4b-af6365719945
@@ -2,7 +2,7 @@
2
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]="a8a20387-429b-5ef4-aeb8-015a8d90b6e5")}catch(e){}}();
3
3
  import {
4
4
  runCreate
5
- } from "./chunk-TUDAYIO7.js";
5
+ } from "./chunk-NQTIOKHL.js";
6
6
  import {
7
7
  splitCommaList
8
8
  } from "./chunk-P4SESZGT.js";
@@ -14,7 +14,7 @@ import {
14
14
  nowIso,
15
15
  readLocatedItem,
16
16
  readSettings
17
- } from "./chunk-NTOOEVJ4.js";
17
+ } from "./chunk-Y5Q4FEE4.js";
18
18
  import {
19
19
  EXIT_CODE,
20
20
  PLAN_HARNESS_VALUES,
@@ -26,7 +26,7 @@ import {
26
26
  resolveItemTypeRegistry,
27
27
  resolvePmRoot,
28
28
  resolveTypeName
29
- } from "./chunk-MFLLULHU.js";
29
+ } from "./chunk-TB2CZJAQ.js";
30
30
 
31
31
  // dist/cli/commands/plan.js
32
32
  var PLAN_SUBCOMMANDS = [
@@ -1347,6 +1347,6 @@ export {
1347
1347
  resolvePlanTemplateSteps,
1348
1348
  runPlan
1349
1349
  };
1350
- //# sourceMappingURL=chunk-YUCKM3MD.js.map
1350
+ //# sourceMappingURL=chunk-JQ5NB6O2.js.map
1351
1351
 
1352
1352
  //# debugId=a8a20387-429b-5ef4-aeb8-015a8d90b6e5
@@ -2,7 +2,7 @@ import {
2
2
  parseItemDocument,
3
3
  runActiveOnWriteHooks,
4
4
  serializeItemDocument
5
- } from "./chunk-BPJ5NYSJ.js";
5
+ } from "./chunk-F7UA74OZ.js";
6
6
  import {
7
7
  TYPE_TO_FOLDER,
8
8
  getItemFormatFromPath,
@@ -10,7 +10,7 @@ import {
10
10
  readFileIfExists,
11
11
  removeFileIfExists,
12
12
  writeFileAtomic
13
- } from "./chunk-2BVD4ZD2.js";
13
+ } from "./chunk-J3FDNQWM.js";
14
14
 
15
15
  // dist/core/store/item-format-migration.js
16
16
  import fs from "node:fs/promises";
@@ -119,4 +119,4 @@ async function migrateItemFilesToFormat(pmRoot, targetFormat, op = "item_format:
119
119
  export {
120
120
  migrateItemFilesToFormat
121
121
  };
122
- //# sourceMappingURL=chunk-3UXIMY62.js.map
122
+ //# sourceMappingURL=chunk-KFC6X4PI.js.map
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  isTerminalStatus,
5
5
  normalizeStatusForRegistry
6
- } from "./chunk-NTOOEVJ4.js";
6
+ } from "./chunk-Y5Q4FEE4.js";
7
7
 
8
8
  // dist/core/item/actionability.js
9
9
  var BLOCKED_BY_DEPENDENCY_KIND = "blocked_by";
@@ -111,6 +111,6 @@ export {
111
111
  collectBlockedByIds,
112
112
  computeActionabilityReport
113
113
  };
114
- //# sourceMappingURL=chunk-C3YU3TXX.js.map
114
+ //# sourceMappingURL=chunk-L2SWAZ3S.js.map
115
115
 
116
116
  //# debugId=bf636ecd-87ea-5f64-922e-24b95e830769
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  verifyHistoryChain
3
- } from "./chunk-GLMJLBLR.js";
3
+ } from "./chunk-75NAGPEL.js";
4
4
  import {
5
5
  hashDocument
6
- } from "./chunk-BPJ5NYSJ.js";
6
+ } from "./chunk-F7UA74OZ.js";
7
7
  import {
8
8
  getHistoryPath,
9
9
  writeFileAtomic
10
- } from "./chunk-2BVD4ZD2.js";
10
+ } from "./chunk-J3FDNQWM.js";
11
11
 
12
12
  // dist/core/history/drift-scan.js
13
13
  import fs from "node:fs/promises";
@@ -207,4 +207,4 @@ async function scanHistoryDrift(pmRoot, items, options = {}) {
207
207
  export {
208
208
  scanHistoryDrift
209
209
  };
210
- //# sourceMappingURL=chunk-QLEH6FTQ.js.map
210
+ //# sourceMappingURL=chunk-LVVZLEW5.js.map
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  PmCliError,
5
5
  normalizeItemId
6
- } from "./chunk-NTOOEVJ4.js";
6
+ } from "./chunk-Y5Q4FEE4.js";
7
7
  import {
8
8
  EXIT_CODE
9
- } from "./chunk-MFLLULHU.js";
9
+ } from "./chunk-TB2CZJAQ.js";
10
10
 
11
11
  // dist/core/item/parent-reference-policy.js
12
12
  var PLACEHOLDER_REFERENCE_TOKENS = /* @__PURE__ */ new Set(["none", "null", "undefined"]);
@@ -95,6 +95,6 @@ export {
95
95
  normalizeSprintReleaseFormatPolicy,
96
96
  validateSprintOrReleaseValue
97
97
  };
98
- //# sourceMappingURL=chunk-RFHLRMLQ.js.map
98
+ //# sourceMappingURL=chunk-M66PC7JI.js.map
99
99
 
100
100
  //# debugId=e5aa93b8-d63d-557c-9183-bbd636aa5dee
@@ -1,8 +1,8 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5249c38b-0c03-5818-a5d1-6f63742d0a73")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6d1ae971-b01b-54ec-9164-36e28343725b")}catch(e){}}();
3
3
  import {
4
4
  collectBlockedByIds
5
- } from "./chunk-C3YU3TXX.js";
5
+ } from "./chunk-L2SWAZ3S.js";
6
6
  import {
7
7
  PmCliError,
8
8
  buildItemNotFoundError,
@@ -13,7 +13,7 @@ import {
13
13
  readLocatedItem,
14
14
  readSettings,
15
15
  toItemRecord
16
- } from "./chunk-NTOOEVJ4.js";
16
+ } from "./chunk-Y5Q4FEE4.js";
17
17
  import {
18
18
  EXIT_CODE,
19
19
  getSettingsPath,
@@ -21,7 +21,7 @@ import {
21
21
  resolveItemTypeRegistry,
22
22
  resolvePmRoot,
23
23
  resolveRuntimeStatusRegistry
24
- } from "./chunk-MFLLULHU.js";
24
+ } from "./chunk-TB2CZJAQ.js";
25
25
 
26
26
  // dist/cli/commands/close.js
27
27
  function toAuthor(candidate, defaultAuthor) {
@@ -352,8 +352,10 @@ function mutateCloseMetadata(metadata, context) {
352
352
  const duplicateFallbackFields = applyDuplicateCloseMetadata(metadata, context.duplicateOf);
353
353
  const mutationWarnings = collectCloseValidationWarnings(metadata, context.validateCloseMode, context.activeChildIds);
354
354
  metadata.status = context.statusRegistry.close_status;
355
+ metadata.closed_at = context.closedAt;
355
356
  const changedFields = [
356
357
  "status",
358
+ "closed_at",
357
359
  ...applyCloseReason(metadata, context.closeReason),
358
360
  ...inlineChangedFields
359
361
  ];
@@ -417,7 +419,8 @@ async function runClose(id, closeReasonText, options, global) {
417
419
  duplicateOf,
418
420
  validateCloseMode,
419
421
  activeChildIds,
420
- closeReason
422
+ closeReason,
423
+ closedAt: (/* @__PURE__ */ new Date()).toISOString()
421
424
  });
422
425
  }
423
426
  });
@@ -435,6 +438,6 @@ export {
435
438
  _testOnlyCloseCommand,
436
439
  runClose
437
440
  };
438
- //# sourceMappingURL=chunk-UVFJSKTF.js.map
441
+ //# sourceMappingURL=chunk-M7DWRMNY.js.map
439
442
 
440
- //# debugId=5249c38b-0c03-5818-a5d1-6f63742d0a73
443
+ //# debugId=6d1ae971-b01b-54ec-9164-36e28343725b
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/close.ts"],"sourcesContent":["/**\n * @module cli/commands/close\n *\n * Implements the pm close command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { collectBlockedByIds } from \"../../core/item/actionability.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry, type RuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport {\n buildItemNotFoundError,\n listAllFrontMatterLight,\n locateItem,\n mutateItem,\n readLocatedItem,\n} from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter } from \"../../types/index.js\";\n\n/**\n * Documents the close command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseCommandOptions {\n author?: string;\n message?: string;\n validateClose?: string;\n force?: boolean;\n // pm-fl0c #11 (2026-05-28): allow setting the three closure validation\n // fields inline on `pm close` so agents do not have to issue a prior\n // `pm update` just to satisfy --validate-close warn|strict. These map 1:1\n // to ItemFrontMatter.{resolution,expected_result,actual_result}.\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n duplicateOf?: string;\n}\n\n/**\n * Documents the close result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseResult {\n item: Record<string, unknown>;\n changed_fields: string[];\n warnings: string[];\n}\n\ninterface AutoUnblockCandidate {\n id: string;\n blocker_ids: string[];\n}\n\ntype CloseInlineFieldKey = \"resolution\" | \"expected_result\" | \"actual_result\";\n\ninterface CloseMutationContext {\n statusRegistry: RuntimeStatusRegistry;\n force: boolean | undefined;\n options: CloseCommandOptions;\n duplicateOf: string | undefined;\n validateCloseMode: ValidateCloseMode;\n activeChildIds: string[];\n closeReason: string | undefined;\n closedAt: string;\n}\n\nfunction toAuthor(candidate: string | undefined, defaultAuthor: string): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\nfunction normalizeCloseReason(reasonText: string | undefined, required: boolean): string | undefined {\n const reason = (reasonText ?? \"\").trim();\n if (reason.length > 0) {\n return reason;\n }\n if (required) {\n throw new PmCliError(\n \"Close reason text is required because governance.require_close_reason is enabled\",\n EXIT_CODE.USAGE,\n {\n code: \"close_reason_required\",\n required: \"Provide a one-line closing summary as the positional text, --reason, or --message.\",\n why: \"governance.require_close_reason is enabled, so every close must record why the item is done.\",\n examples: [\n 'pm close <id> \"Done: <what changed and why>\"',\n 'pm close <id> --reason \"<closing summary>\"',\n 'pm close <id> -m \"<closing summary>\"',\n \"pm close <id> --duplicate-of <canonical-id>\",\n ],\n nextSteps: [\n \"Re-run the close with a closing summary.\",\n 'When closing as a duplicate, --duplicate-of <id> auto-fills the close reason as \"Duplicate of <id>\".',\n \"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled\",\n ],\n },\n );\n }\n return undefined;\n}\n\ntype ValidateCloseMode = \"off\" | \"warn\" | \"strict\";\n\ninterface CloseReasonFallbackInput {\n closeReasonText: string | undefined;\n duplicateOf: string | undefined;\n resolution: string | undefined;\n message: string | undefined;\n requireCloseReason: boolean;\n}\n\nfunction resolveEffectiveCloseReasonText(input: CloseReasonFallbackInput): string | undefined {\n if ((input.closeReasonText ?? \"\").trim().length > 0) {\n return input.closeReasonText;\n }\n if (input.duplicateOf !== undefined) {\n return `Duplicate of ${input.duplicateOf}`;\n }\n const trimmedResolution = typeof input.resolution === \"string\" ? input.resolution.trim() : \"\";\n if (trimmedResolution.length > 0) {\n return trimmedResolution;\n }\n const trimmedMessage = typeof input.message === \"string\" ? input.message.trim() : \"\";\n if (input.requireCloseReason && trimmedMessage.length > 0) {\n return trimmedMessage;\n }\n return input.closeReasonText;\n}\n\nconst CLOSE_VALIDATION_FIELDS: Array<{ key: keyof Pick<ItemFrontMatter, \"resolution\" | \"expected_result\" | \"actual_result\">; label: string }> = [\n { key: \"resolution\", label: \"resolution\" },\n { key: \"expected_result\", label: \"expected_result\" },\n { key: \"actual_result\", label: \"actual_result\" },\n];\n\nfunction parseValidateCloseMode(raw: string | undefined): ValidateCloseMode | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized.length === 0 || normalized === \"warn\") {\n return \"warn\";\n }\n if (normalized === \"off\" || normalized === \"none\" || normalized === \"disabled\") {\n return \"off\";\n }\n if (normalized === \"strict\") {\n return \"strict\";\n }\n throw new PmCliError(`Invalid --validate-close mode \"${raw}\" (expected \"off\", \"warn\", or \"strict\")`, EXIT_CODE.USAGE);\n}\n\nfunction findMissingCloseValidationFields(frontMatter: ItemFrontMatter): string[] {\n const missing: string[] = [];\n for (const field of CLOSE_VALIDATION_FIELDS) {\n const rawValue = frontMatter[field.key];\n if (typeof rawValue !== \"string\" || rawValue.trim().length === 0) {\n missing.push(field.label);\n }\n }\n return missing;\n}\n\nasync function duplicateChainReferencesClosingItem(\n loadItemById: (id: string) => Promise<ItemFrontMatter | null>,\n initialDuplicateOf: unknown,\n closingId: string,\n): Promise<boolean> {\n const visited = new Set<string>();\n let current = initialDuplicateOf;\n while (typeof current === \"string\" && current.trim().length > 0) {\n const currentId = current.trim();\n if (currentId === closingId) {\n return true;\n }\n if (visited.has(currentId)) {\n return false;\n }\n visited.add(currentId);\n current = (await loadItemById(currentId))?.duplicate_of;\n }\n return false;\n}\n\nfunction shouldApplyDuplicateFallback(value: unknown): boolean {\n return typeof value !== \"string\" || value.trim().length === 0;\n}\n\nasync function assertDuplicateTargetExists(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n duplicateOf: string | undefined,\n closingId: string,\n): Promise<string | undefined> {\n const rawTarget = duplicateOf?.trim();\n if (!rawTarget) {\n return undefined;\n }\n if (rawTarget === closingId) {\n throw new PmCliError(\"An item cannot be closed as a duplicate of itself.\", EXIT_CODE.USAGE, {\n code: \"duplicate_target_self\",\n why: \"--duplicate-of must identify the canonical item that should remain open or already represent the work.\",\n });\n }\n const typeRegistry = resolveItemTypeRegistry(settings);\n const itemCache = new Map<string, ItemFrontMatter | null>();\n const loadItemById = async (id: string): Promise<ItemFrontMatter | null> => {\n if (itemCache.has(id)) {\n return itemCache.get(id) ?? null;\n }\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n itemCache.set(id, null);\n return null;\n }\n const { document } = await readLocatedItem(located, { schema: settings.schema });\n itemCache.set(id, document.metadata);\n return document.metadata;\n };\n const target = await loadItemById(rawTarget);\n if (!target) {\n throw new PmCliError(`Duplicate target \"${rawTarget}\" was not found. Create or locate the canonical item first.`, EXIT_CODE.USAGE, {\n code: \"duplicate_target_missing\",\n why: \"Duplicate closure should point at a real canonical pm item so future dedupe and changelog tooling can trace the relationship.\",\n examples: [`pm close ${closingId} \"Duplicate of ${rawTarget}\" --duplicate-of ${rawTarget}`],\n nextSteps: [\"Run pm search/list to find the canonical item, then retry with --duplicate-of <id>.\"],\n });\n }\n if (await duplicateChainReferencesClosingItem(loadItemById, target.duplicate_of, closingId)) {\n throw new PmCliError(`Circular duplicate reference detected. Target \"${rawTarget}\" points back to \"${closingId}\".`, EXIT_CODE.USAGE, {\n code: \"duplicate_target_circular\",\n why: \"Circular duplicate relationships create loops for dedupe and status propagation tooling.\",\n nextSteps: [\"Choose the existing canonical item, or clear the target duplicate_of metadata before closing this item as a duplicate.\"],\n });\n }\n if (typeof target.duplicate_of === \"string\" && target.duplicate_of.trim().length > 0) {\n throw new PmCliError(`Duplicate target \"${rawTarget}\" is already marked as a duplicate of \"${target.duplicate_of.trim()}\".`, EXIT_CODE.USAGE, {\n code: \"duplicate_target_is_duplicate\",\n why: \"Duplicate closure should point directly at the canonical item, not another duplicate.\",\n examples: [`pm close ${closingId} \"Duplicate of ${target.duplicate_of.trim()}\" --duplicate-of ${target.duplicate_of.trim()}`],\n nextSteps: [\"Use the canonical item referenced by duplicate_of as the --duplicate-of target.\"],\n });\n }\n return target.id;\n}\n\nasync function findActiveChildIds(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n parentId: string,\n statusRegistry: RuntimeStatusRegistry,\n): Promise<string[]> {\n const typeRegistry = resolveItemTypeRegistry(settings);\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n return items\n .filter((item) => item.parent === parentId && !isTerminalStatus(item.status, statusRegistry))\n .map((item) => item.id)\n .sort((left, right) => left.localeCompare(right));\n}\n\nasync function findAutoUnblockCandidates(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n closedId: string,\n statusRegistry: RuntimeStatusRegistry,\n): Promise<AutoUnblockCandidate[]> {\n const typeRegistry = resolveItemTypeRegistry(settings);\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const itemsById = new Map(items.map((item) => [item.id, item]));\n const blockedStatuses = statusRegistry.blocked_statuses;\n return items\n .filter((item) => blockedStatuses.has(item.status))\n .map((item) => ({ item, blockerIds: collectBlockedByIds(item) }))\n .filter(({ blockerIds }) => blockerIds.includes(closedId))\n .filter(({ blockerIds }) =>\n blockerIds.every((blockerId) => {\n const blocker = itemsById.get(blockerId);\n return blocker !== undefined && isTerminalStatus(blocker.status, statusRegistry);\n }),\n )\n .map(({ item, blockerIds }) => ({ id: item.id, blocker_ids: blockerIds }))\n .sort((left, right) => left.id.localeCompare(right.id));\n}\n\nasync function autoUnblockResolvedDependents(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n closedId: string,\n author: string,\n statusRegistry: RuntimeStatusRegistry,\n): Promise<string[]> {\n const candidates = await findAutoUnblockCandidates(pmRoot, settings, closedId, statusRegistry);\n const warnings: string[] = [];\n for (const candidate of candidates) {\n try {\n const unblocked = await mutateItem({\n pmRoot,\n settings,\n id: candidate.id,\n op: \"update\",\n author,\n message: `Auto-unblocked after blocker ${closedId} closed`,\n mutate(document) {\n /* c8 ignore start -- normal auto-unblock candidates carry dependency metadata; fallback preserves hand-edited scalar-only blockers. */\n const dependencies = document.metadata.dependencies ?? [];\n /* c8 ignore stop */\n const remainingDependencies = dependencies.filter((dependency) => {\n const dependencyId = dependency.id.trim();\n return dependency.kind !== \"blocked_by\" || !candidate.blocker_ids.includes(dependencyId);\n });\n document.metadata.status = statusRegistry.open_status;\n delete document.metadata.blocked_by;\n delete document.metadata.blocked_reason;\n document.metadata.unblock_note = `Auto-unblocked after blocker ${closedId} closed; all blockers resolved (${candidate.blocker_ids.join(\", \")}).`;\n if (remainingDependencies.length > 0) {\n document.metadata.dependencies = remainingDependencies;\n } else {\n delete document.metadata.dependencies;\n }\n const changedFields = [\"status\", \"blocked_by\", \"blocked_reason\", \"unblock_note\"];\n if (remainingDependencies.length !== dependencies.length) {\n changedFields.push(\"dependencies\");\n }\n return {\n changedFields,\n };\n },\n });\n warnings.push(`auto_unblocked:${unblocked.item.id}:resolved_blockers=${candidate.blocker_ids.join(\",\")}`);\n /* c8 ignore start -- defensive fan-out failure path; normal lock/claim state is auditable and still unblocks. */\n } catch (error) {\n const reason = error instanceof Error ? error.message.replace(/\\s+/g, \" \").trim() : \"unknown\";\n warnings.push(`auto_unblock_failed:${candidate.id}:${reason}`);\n }\n /* c8 ignore stop */\n }\n return warnings;\n}\n\nfunction applyInlineCloseFields(metadata: ItemFrontMatter, options: CloseCommandOptions): CloseInlineFieldKey[] {\n const changedFields: CloseInlineFieldKey[] = [];\n const inlineCloseFields: Array<{ option: string | undefined; key: CloseInlineFieldKey }> = [\n { option: options.resolution, key: \"resolution\" },\n { option: options.expectedResult, key: \"expected_result\" },\n { option: options.actualResult, key: \"actual_result\" },\n ];\n for (const { option, key } of inlineCloseFields) {\n if (typeof option !== \"string\") {\n continue;\n }\n const trimmed = option.trim();\n if (trimmed.length === 0) {\n continue;\n }\n metadata[key] = trimmed;\n changedFields.push(key);\n }\n return changedFields;\n}\n\nfunction applyDuplicateCloseMetadata(metadata: ItemFrontMatter, duplicateOf: string | undefined): CloseInlineFieldKey[] {\n if (duplicateOf === undefined) {\n return [];\n }\n metadata.duplicate_of = duplicateOf;\n const duplicateFallbackFields: CloseInlineFieldKey[] = [];\n const fallbackValues: Array<{ key: CloseInlineFieldKey; value: string }> = [\n { key: \"resolution\", value: `Duplicate of ${duplicateOf}` },\n { key: \"expected_result\", value: `Canonical item ${duplicateOf} tracks the work.` },\n { key: \"actual_result\", value: `Closed as duplicate of ${duplicateOf}.` },\n ];\n for (const { key, value } of fallbackValues) {\n if (shouldApplyDuplicateFallback(metadata[key])) {\n metadata[key] = value;\n duplicateFallbackFields.push(key);\n }\n }\n return duplicateFallbackFields;\n}\n\nfunction collectCloseValidationWarnings(\n metadata: ItemFrontMatter,\n validateCloseMode: ValidateCloseMode,\n activeChildIds: string[],\n): string[] {\n const warnings: string[] = [];\n if (validateCloseMode !== \"off\") {\n const missingFields = findMissingCloseValidationFields(metadata);\n if (missingFields.length > 0) {\n if (validateCloseMode === \"strict\") {\n throw new PmCliError(\n `Cannot close item ${metadata.id}: missing ${missingFields.join(\", \")}. Populate fields or use --validate-close warn.`,\n EXIT_CODE.USAGE,\n );\n }\n warnings.push(`close_validation_missing_fields:${metadata.id}:${missingFields.join(\",\")}`);\n }\n if (activeChildIds.length > 0) {\n if (validateCloseMode === \"strict\") {\n throw new PmCliError(\n `Cannot close item ${metadata.id}: active child items remain open (${activeChildIds.join(\", \")}). Close, cancel, or re-parent them first, or use --validate-close warn.`,\n EXIT_CODE.USAGE,\n );\n }\n warnings.push(`close_validation_active_children:${metadata.id}:${activeChildIds.join(\",\")}`);\n }\n return warnings;\n }\n if (activeChildIds.length > 0) {\n warnings.push(`closed_with_active_children:${metadata.id}:${activeChildIds.join(\",\")}`);\n }\n return warnings;\n}\n\nfunction applyCloseReason(metadata: ItemFrontMatter, closeReason: string | undefined): string[] {\n if (closeReason !== undefined) {\n metadata.close_reason = closeReason;\n return [\"close_reason\"];\n }\n if (metadata.close_reason !== undefined) {\n delete metadata.close_reason;\n return [\"close_reason\"];\n }\n return [];\n}\n\nfunction clearCloseAssignee(metadata: ItemFrontMatter): string[] {\n if (metadata.assignee === undefined) {\n return [];\n }\n delete metadata.assignee;\n return [\"assignee\"];\n}\n\nfunction clearClosedBlockerSignals(metadata: ItemFrontMatter): { changedFields: string[]; warnings: string[] } {\n const previousBlockedBy = typeof metadata.blocked_by === \"string\" ? metadata.blocked_by.trim() : \"\";\n const existingDeps = metadata.dependencies ?? [];\n const blockedByEdge = existingDeps.find((dep) => dep.kind === \"blocked_by\");\n const hadBlockedReason = metadata.blocked_reason !== undefined;\n if (previousBlockedBy.length === 0 && blockedByEdge === undefined && !hadBlockedReason) {\n return { changedFields: [], warnings: [] };\n }\n const changedFields: string[] = [];\n if (previousBlockedBy.length > 0) {\n delete metadata.blocked_by;\n changedFields.push(\"blocked_by\");\n }\n if (hadBlockedReason) {\n delete metadata.blocked_reason;\n changedFields.push(\"blocked_reason\");\n }\n if (blockedByEdge !== undefined) {\n const remainingDeps = existingDeps.filter((dep) => dep.kind !== \"blocked_by\");\n if (remainingDeps.length > 0) {\n metadata.dependencies = remainingDeps;\n } else {\n delete metadata.dependencies;\n }\n changedFields.push(\"dependencies\");\n }\n // A stale reason-only close has no blocker identity; omit the blocker-clear warning instead of inventing one.\n const reportedBlocker = previousBlockedBy || blockedByEdge?.id;\n return {\n changedFields,\n warnings: reportedBlocker ? [`closed_cleared_blocked_by:${metadata.id}:${reportedBlocker}`] : [],\n };\n}\n\nfunction mutateCloseMetadata(metadata: ItemFrontMatter, context: CloseMutationContext): { changedFields: string[]; warnings?: string[] } {\n if (isTerminalStatus(metadata.status, context.statusRegistry) && !context.force) {\n throw new PmCliError(`Item ${metadata.id} is already terminal; use --force to close again.`, EXIT_CODE.CONFLICT);\n }\n const inlineChangedFields = applyInlineCloseFields(metadata, context.options);\n const duplicateFallbackFields = applyDuplicateCloseMetadata(metadata, context.duplicateOf);\n const mutationWarnings = collectCloseValidationWarnings(metadata, context.validateCloseMode, context.activeChildIds);\n metadata.status = context.statusRegistry.close_status;\n metadata.closed_at = context.closedAt;\n const changedFields = [\n \"status\",\n \"closed_at\",\n ...applyCloseReason(metadata, context.closeReason),\n ...inlineChangedFields,\n ];\n if (context.duplicateOf !== undefined) {\n changedFields.push(\"duplicate_of\");\n for (const key of duplicateFallbackFields) {\n /* v8 ignore start -- duplicate fallback keys are already pre-deduped by applyDuplicateCloseMetadata in covered close paths */\n if (!changedFields.includes(key)) {\n changedFields.push(key);\n }\n /* v8 ignore stop */\n }\n }\n changedFields.push(...clearCloseAssignee(metadata));\n const blockerCleanup = clearClosedBlockerSignals(metadata);\n changedFields.push(...blockerCleanup.changedFields);\n mutationWarnings.push(...blockerCleanup.warnings);\n return {\n changedFields,\n ...(mutationWarnings.length > 0 ? { warnings: mutationWarnings } : {}),\n };\n}\n\nexport const _testOnlyCloseCommand = {\n blockedByIds: collectBlockedByIds,\n};\n\n/**\n * Implements run close for the public runtime surface of this module.\n */\nexport async function runClose(\n id: string,\n closeReasonText: string | undefined,\n options: CloseCommandOptions,\n global: GlobalOptions,\n): Promise<CloseResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const author = toAuthor(options.author, settings.author_default);\n // GH-250: verify the target item EXISTS before the governance close-reason\n // gate fires. Otherwise closing a typo'd id with no reason reports\n // \"Close reason text is required\" and hides the real cause (bad id) until a\n // reason is supplied. Existence is the more fundamental precondition, so it\n // is validated first regardless of whether a reason was provided.\n const typeToFolder = resolveItemTypeRegistry(settings).type_to_folder;\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeToFolder);\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeToFolder);\n }\n // GH-204: resolve the duplicate target BEFORE reason validation so\n // `pm close <id> --duplicate-of <canonical>` succeeds under\n // governance.require_close_reason without a manual reason — when no\n // positional/--reason text is provided the reason defaults to\n // \"Duplicate of <id>\" (mirroring the auto-filled closure metadata).\n // Explicit reason text still wins.\n const duplicateOf = await assertDuplicateTargetExists(pmRoot, settings, options.duplicateOf, id);\n // pm-7x8d / pm-9hry / GH-204: when no explicit positional/--reason text is given, derive\n // the close reason from the next-best closure signal instead of hard-blocking\n // under governance.require_close_reason. Precedence: explicit reason text >\n // --duplicate-of (\"Duplicate of <id>\") > --resolution summary > --message.\n // Resolution still writes metadata.resolution below; message still writes the\n // history entry through mutateItem. Reusing either as the close reason just lets\n // a single agent-authored close command succeed when it already supplied a\n // closure summary through another structured option.\n const effectiveCloseReasonText = resolveEffectiveCloseReasonText({\n closeReasonText,\n duplicateOf,\n resolution: options.resolution,\n message: options.message,\n requireCloseReason: settings.governance.require_close_reason,\n });\n const closeReason = normalizeCloseReason(effectiveCloseReasonText, settings.governance.require_close_reason);\n const validateCloseMode = parseValidateCloseMode(options.validateClose) ?? settings.governance.close_validation_default;\n // C3 (pm-fu5d): scan for active children even under minimal governance so\n // closing a parent is never silently orphaning — off mode emits an\n // informational note instead of the warn/strict validation warning.\n const activeChildIds = await findActiveChildIds(pmRoot, settings, id, statusRegistry);\n\n const result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"close\",\n author,\n message: options.message,\n force: options.force,\n mutate(document) {\n return mutateCloseMetadata(document.metadata, {\n statusRegistry,\n force: options.force,\n options,\n duplicateOf,\n validateCloseMode,\n activeChildIds,\n closeReason,\n closedAt: new Date().toISOString(),\n });\n },\n });\n\n return {\n item: toItemRecord(result.item),\n changed_fields: result.changedFields,\n warnings: [\n ...result.warnings,\n ...(await autoUnblockResolvedDependents(pmRoot, settings, located.id, author, statusRegistry)),\n ],\n };\n}\n"],"names":[],"mappings":"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","debugId":"6d1ae971-b01b-54ec-9164-36e28343725b"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  toNonEmptyStringOrUndefined
3
- } from "./chunk-2BVD4ZD2.js";
3
+ } from "./chunk-J3FDNQWM.js";
4
4
 
5
5
  // dist/core/governance/metadata-coverage.js
6
6
  !(function() {
@@ -262,4 +262,4 @@ export {
262
262
  computeMetadataCoverage,
263
263
  groupItemsByDimension
264
264
  };
265
- //# sourceMappingURL=chunk-UEATYUZW.js.map
265
+ //# sourceMappingURL=chunk-M7JYEBPT.js.map
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  collectUsedExtensionCapabilities,
5
5
  normalizeExtensionName
6
- } from "./chunk-MFLLULHU.js";
6
+ } from "./chunk-TB2CZJAQ.js";
7
7
 
8
8
  // dist/core/extensions/activation-summary.js
9
9
  var HOOK_REGISTRY_FIELD_TO_KIND = [
@@ -145,6 +145,6 @@ export {
145
145
  describeExtensionActivation,
146
146
  renderExtensionSurfaceMarkdown
147
147
  };
148
- //# sourceMappingURL=chunk-Z2JQH2MG.js.map
148
+ //# sourceMappingURL=chunk-MQ632QRB.js.map
149
149
 
150
150
  //# debugId=b7da1375-1527-5871-9f84-948595aee48f
@@ -5,20 +5,20 @@ import {
5
5
  loadMutationCheckpoint,
6
6
  restoreCheckpointItems,
7
7
  writeMutationCheckpoint
8
- } from "./chunk-W2VFNVSJ.js";
8
+ } from "./chunk-H3HKQXQJ.js";
9
9
  import {
10
10
  runRestore
11
- } from "./chunk-PAWPLIWW.js";
11
+ } from "./chunk-7THLDY3D.js";
12
12
  import {
13
13
  runClose
14
- } from "./chunk-UVFJSKTF.js";
14
+ } from "./chunk-M7DWRMNY.js";
15
15
  import {
16
16
  resolveAuthor
17
17
  } from "./chunk-T5RRNDA7.js";
18
18
  import {
19
19
  hasListFilters,
20
20
  runList
21
- } from "./chunk-XN5BEN2B.js";
21
+ } from "./chunk-6PBZBIS6.js";
22
22
  import {
23
23
  PmCliError,
24
24
  getActiveExtensionRegistrations,
@@ -26,7 +26,7 @@ import {
26
26
  listAllFrontMatterLight,
27
27
  nowIso,
28
28
  readSettings
29
- } from "./chunk-NTOOEVJ4.js";
29
+ } from "./chunk-Y5Q4FEE4.js";
30
30
  import {
31
31
  EXIT_CODE,
32
32
  getSettingsPath,
@@ -35,7 +35,7 @@ import {
35
35
  resolvePmRoot,
36
36
  resolveRuntimeStatusRegistry,
37
37
  toErrorMessage
38
- } from "./chunk-MFLLULHU.js";
38
+ } from "./chunk-TB2CZJAQ.js";
39
39
 
40
40
  // dist/cli/commands/close-many.js
41
41
  var CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;
@@ -378,6 +378,6 @@ export {
378
378
  runCloseMany,
379
379
  _testOnly
380
380
  };
381
- //# sourceMappingURL=chunk-IYRG5AEC.js.map
381
+ //# sourceMappingURL=chunk-N7N3PUUP.js.map
382
382
 
383
383
  //# debugId=0a9c0e97-1d91-55f1-830c-2822eb0a32bb
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  PmCliError,
3
3
  normalizeItemId
4
- } from "./chunk-BPJ5NYSJ.js";
4
+ } from "./chunk-F7UA74OZ.js";
5
5
  import {
6
6
  EXIT_CODE
7
- } from "./chunk-2BVD4ZD2.js";
7
+ } from "./chunk-J3FDNQWM.js";
8
8
 
9
9
  // dist/core/item/parent-reference-policy.js
10
10
  !(function() {
@@ -107,4 +107,4 @@ export {
107
107
  normalizeSprintReleaseFormatPolicy,
108
108
  validateSprintOrReleaseValue
109
109
  };
110
- //# sourceMappingURL=chunk-3YJDIJIE.js.map
110
+ //# sourceMappingURL=chunk-NPJLTZQZ.js.map
@@ -1,8 +1,8 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="59bf43ec-201a-5ebc-b1f7-9e467826b815")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f57d2940-529b-5291-a4b6-d86b5fcf41c5")}catch(e){}}();
3
3
  import {
4
4
  getFocusedItem
5
- } from "./chunk-EP2CKDS7.js";
5
+ } from "./chunk-XXJB4GLJ.js";
6
6
  import {
7
7
  assertNoUnknownCsvKeys,
8
8
  createStdinTokenResolver,
@@ -11,23 +11,23 @@ import {
11
11
  parseCsvKv,
12
12
  parseOptionalNumber,
13
13
  parseTags
14
- } from "./chunk-3SHDAKMF.js";
14
+ } from "./chunk-GPPWUJMR.js";
15
15
  import {
16
16
  assertParentReferenceIsNotSelf,
17
17
  isPlaceholderReferenceToken,
18
18
  normalizeParentReferenceValue,
19
19
  validateMissingParentReference,
20
20
  validateSprintOrReleaseValue
21
- } from "./chunk-RFHLRMLQ.js";
21
+ } from "./chunk-M66PC7JI.js";
22
22
  import {
23
23
  buildInvalidTypeError
24
- } from "./chunk-7QKSLAHB.js";
24
+ } from "./chunk-AIWGQK6K.js";
25
25
  import {
26
26
  splitCommaList
27
27
  } from "./chunk-P4SESZGT.js";
28
28
  import {
29
29
  printError
30
- } from "./chunk-U72GF3I2.js";
30
+ } from "./chunk-INAZHXOI.js";
31
31
  import {
32
32
  PmCliError,
33
33
  acquireLock,
@@ -52,7 +52,7 @@ import {
52
52
  runActiveCommandHandler,
53
53
  runActiveOnWriteHooks,
54
54
  serializeItemDocument
55
- } from "./chunk-NTOOEVJ4.js";
55
+ } from "./chunk-Y5Q4FEE4.js";
56
56
  import {
57
57
  CONFIDENCE_TEXT_VALUES,
58
58
  CREATE_DIRECT_CLOSE_REASON_DEFAULT,
@@ -83,7 +83,7 @@ import {
83
83
  validateTypeOptions,
84
84
  weekdayOrderIndex,
85
85
  writeFileAtomic
86
- } from "./chunk-MFLLULHU.js";
86
+ } from "./chunk-TB2CZJAQ.js";
87
87
 
88
88
  // dist/core/item/priority.js
89
89
  var PRIORITY_NAME_TO_VALUE = {
@@ -2441,6 +2441,7 @@ async function runCreate(options, global) {
2441
2441
  const body = resolvedOptions.body ?? "";
2442
2442
  const closeReasonResolution = resolveCreateCloseReason(status, statusRegistry, settings, resolvedOptions, resolution);
2443
2443
  const closeReason = closeReasonResolution.closeReason;
2444
+ const closedAt = status === statusRegistry.close_status ? nowValue : void 0;
2444
2445
  validationWarnings.push(...closeReasonResolution.warnings);
2445
2446
  const frontMatter = normalizeFrontMatter({
2446
2447
  id,
@@ -2449,6 +2450,7 @@ async function runCreate(options, global) {
2449
2450
  type,
2450
2451
  type_options: validatedTypeOptions.normalized,
2451
2452
  status,
2453
+ closed_at: closedAt,
2452
2454
  close_reason: closeReason,
2453
2455
  priority,
2454
2456
  tags,
@@ -2610,6 +2612,6 @@ export {
2610
2612
  runCreate,
2611
2613
  _testOnlyCreateCommand
2612
2614
  };
2613
- //# sourceMappingURL=chunk-TUDAYIO7.js.map
2615
+ //# sourceMappingURL=chunk-NQTIOKHL.js.map
2614
2616
 
2615
- //# debugId=59bf43ec-201a-5ebc-b1f7-9e467826b815
2617
+ //# debugId=f57d2940-529b-5291-a4b6-d86b5fcf41c5