@unbrained/pm-cli 2026.7.7 → 2026.7.9

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 (428) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +1 -0
  3. package/dist/cli/commands/close.js +5 -2
  4. package/dist/cli/commands/close.js.map +1 -1
  5. package/dist/cli/commands/completion.js +16 -2
  6. package/dist/cli/commands/completion.js.map +1 -1
  7. package/dist/cli/commands/context.d.ts +1 -0
  8. package/dist/cli/commands/context.js +4 -4
  9. package/dist/cli/commands/context.js.map +1 -1
  10. package/dist/cli/commands/contracts.d.ts +11 -0
  11. package/dist/cli/commands/contracts.js +112 -15
  12. package/dist/cli/commands/contracts.js.map +1 -1
  13. package/dist/cli/commands/create.js +4 -2
  14. package/dist/cli/commands/create.js.map +1 -1
  15. package/dist/cli/commands/extension.d.ts +23 -19
  16. package/dist/cli/commands/extension.js +167 -57
  17. package/dist/cli/commands/extension.js.map +1 -1
  18. package/dist/cli/commands/list.d.ts +4 -0
  19. package/dist/cli/commands/list.js +32 -3
  20. package/dist/cli/commands/list.js.map +1 -1
  21. package/dist/cli/commands/search.js +3 -3
  22. package/dist/cli/commands/search.js.map +1 -1
  23. package/dist/cli/commands/update.d.ts +32 -1
  24. package/dist/cli/commands/update.js +19 -2
  25. package/dist/cli/commands/update.js.map +1 -1
  26. package/dist/cli/help-content.js +28 -2
  27. package/dist/cli/help-content.js.map +1 -1
  28. package/dist/cli/register-list-query.js +5 -2
  29. package/dist/cli/register-list-query.js.map +1 -1
  30. package/dist/cli/register-operations.js +4 -2
  31. package/dist/cli/register-operations.js.map +1 -1
  32. package/dist/cli/register-setup.js +8 -2
  33. package/dist/cli/register-setup.js.map +1 -1
  34. package/dist/cli/registration-helpers.js +4 -2
  35. package/dist/cli/registration-helpers.js.map +1 -1
  36. package/dist/cli-bundle/chunks/append-CDPAYYSB.js +11 -0
  37. package/dist/cli-bundle/chunks/{append-PVCTBVJG.js → append-RSPHC423.js} +5 -5
  38. package/dist/cli-bundle/chunks/{chunk-6G6O3OPQ.js → chunk-26MFLA7K.js} +7 -7
  39. package/dist/cli-bundle/chunks/{chunk-LCFJ7XAM.js → chunk-2BVD4ZD2.js} +267 -232
  40. package/dist/cli-bundle/chunks/chunk-2BVD4ZD2.js.map +7 -0
  41. package/dist/cli-bundle/chunks/{chunk-7ML7JONU.js → chunk-2FKIIQMJ.js} +14 -14
  42. package/dist/cli-bundle/chunks/chunk-2FKIIQMJ.js.map +1 -0
  43. package/dist/cli-bundle/chunks/{chunk-H2SMKL2N.js → chunk-3FUXM574.js} +4 -4
  44. package/dist/cli-bundle/chunks/{chunk-DR2V5OIV.js → chunk-3SHDAKMF.js} +3 -3
  45. package/dist/cli-bundle/chunks/{chunk-MRFWUSVA.js → chunk-3UXIMY62.js} +3 -3
  46. package/dist/cli-bundle/chunks/{chunk-WCWVEXGA.js → chunk-3V5C7PUH.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-43YSKY75.js → chunk-3YJDIJIE.js} +3 -3
  48. package/dist/cli-bundle/chunks/{chunk-HX6QXV5P.js → chunk-4I7KS5ES.js} +2 -2
  49. package/dist/cli-bundle/chunks/{chunk-XHCVAZGM.js → chunk-4OCWJ2AP.js} +7 -7
  50. package/dist/cli-bundle/chunks/{chunk-C5ACVMOI.js → chunk-5RJ4LFD3.js} +34 -7
  51. package/dist/cli-bundle/chunks/chunk-5RJ4LFD3.js.map +7 -0
  52. package/dist/cli-bundle/chunks/{chunk-3TYOW6RR.js → chunk-5STY7NVM.js} +4 -4
  53. package/dist/cli-bundle/chunks/{chunk-7VQ3JJN5.js → chunk-5VAZHYVQ.js} +2 -2
  54. package/dist/cli-bundle/chunks/{chunk-4IQKDKGE.js → chunk-5ZMZF53A.js} +7 -7
  55. package/dist/cli-bundle/chunks/{chunk-6LCJRGPD.js → chunk-63PZJCKO.js} +10 -7
  56. package/dist/cli-bundle/chunks/chunk-63PZJCKO.js.map +1 -0
  57. package/dist/cli-bundle/chunks/{chunk-MCEUKJKW.js → chunk-6FU5BVRB.js} +4 -4
  58. package/dist/cli-bundle/chunks/{chunk-AJUON7E6.js → chunk-6RR4XM5H.js} +3 -3
  59. package/dist/cli-bundle/chunks/{chunk-TEISGNSH.js → chunk-6TD5QGIB.js} +4 -4
  60. package/dist/cli-bundle/chunks/{chunk-565WYS5W.js → chunk-6WCXSC5V.js} +5 -5
  61. package/dist/cli-bundle/chunks/{chunk-NWWL22C7.js → chunk-6ZKDMEVT.js} +3 -3
  62. package/dist/cli-bundle/chunks/{chunk-VLEA2UTQ.js → chunk-7QKSLAHB.js} +2 -2
  63. package/dist/cli-bundle/chunks/{chunk-S6VC2A2K.js → chunk-7TBUV7XS.js} +4 -4
  64. package/dist/cli-bundle/chunks/{chunk-YPMZMKN7.js → chunk-7UCBLJDF.js} +2 -2
  65. package/dist/cli-bundle/chunks/{chunk-4MZOKTI2.js → chunk-AEOFBBWO.js} +3 -3
  66. package/dist/cli-bundle/chunks/{chunk-QFBSP3NI.js → chunk-ASSVI7FP.js} +12 -10
  67. package/dist/cli-bundle/chunks/{chunk-QFBSP3NI.js.map → chunk-ASSVI7FP.js.map} +1 -1
  68. package/dist/cli-bundle/chunks/{chunk-ZO7CLOY2.js → chunk-BFNFTHWQ.js} +3 -3
  69. package/dist/cli-bundle/chunks/{chunk-YNCFP5AR.js → chunk-BPJ5NYSJ.js} +2 -2
  70. package/dist/cli-bundle/chunks/{chunk-J2VGADNG.js → chunk-BPYVKTZE.js} +122 -27
  71. package/dist/cli-bundle/chunks/chunk-BPYVKTZE.js.map +1 -0
  72. package/dist/cli-bundle/chunks/{chunk-P3MJJW7P.js → chunk-C3YU3TXX.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-SY75LYXR.js → chunk-C6XSTACC.js} +3 -3
  74. package/dist/cli-bundle/chunks/{chunk-S547WBYG.js → chunk-CEX2DQXZ.js} +600 -96
  75. package/dist/cli-bundle/chunks/chunk-CEX2DQXZ.js.map +7 -0
  76. package/dist/cli-bundle/chunks/{chunk-2TILG6F2.js → chunk-CGDUIPJL.js} +3 -3
  77. package/dist/cli-bundle/chunks/{chunk-LZQU6XJG.js → chunk-CHSXGTWF.js} +23 -9
  78. package/dist/cli-bundle/chunks/{chunk-LZQU6XJG.js.map → chunk-CHSXGTWF.js.map} +2 -2
  79. package/dist/cli-bundle/chunks/{chunk-J7BOLHAV.js → chunk-CXH7EMSB.js} +3 -3
  80. package/dist/cli-bundle/chunks/{chunk-W5HXHC7C.js → chunk-D6J5673C.js} +4 -4
  81. package/dist/cli-bundle/chunks/{chunk-XZWL7VNE.js → chunk-DBV5A7FT.js} +9 -7
  82. package/dist/cli-bundle/chunks/chunk-DBV5A7FT.js.map +1 -0
  83. package/dist/cli-bundle/chunks/{chunk-ARKHKYYS.js → chunk-DQLP22K2.js} +7 -7
  84. package/dist/cli-bundle/chunks/{chunk-YPD7SQ5P.js → chunk-EEJKHF7M.js} +5 -5
  85. package/dist/cli-bundle/chunks/{chunk-EDO7VXSO.js → chunk-EP2CKDS7.js} +2 -2
  86. package/dist/cli-bundle/chunks/{chunk-SIM5JDON.js → chunk-F5DDGY6R.js} +3 -3
  87. package/dist/cli-bundle/chunks/{chunk-I74FMIWA.js → chunk-FFB3WITE.js} +3 -3
  88. package/dist/cli-bundle/chunks/{chunk-43UQN754.js → chunk-FJR2S7S4.js} +7 -7
  89. package/dist/cli-bundle/chunks/{chunk-CJQM7O7R.js → chunk-FOJEBRDD.js} +5 -5
  90. package/dist/cli-bundle/chunks/{chunk-E3YQFSFE.js → chunk-GLMJLBLR.js} +3 -3
  91. package/dist/cli-bundle/chunks/{chunk-KTGJ2CBU.js → chunk-GO2X6ZRB.js} +3 -3
  92. package/dist/cli-bundle/chunks/{chunk-DDDWVPID.js → chunk-GSQVQINP.js} +4 -4
  93. package/dist/cli-bundle/chunks/{chunk-EVEPHNXJ.js → chunk-GZ365M6E.js} +4 -4
  94. package/dist/cli-bundle/chunks/{chunk-VGO73OCK.js → chunk-HZZ3AC27.js} +3 -3
  95. package/dist/cli-bundle/chunks/{chunk-7Y5N34HX.js → chunk-IINCZYM3.js} +3 -3
  96. package/dist/cli-bundle/chunks/{chunk-GLS6VMWI.js → chunk-INOWVPUD.js} +5 -5
  97. package/dist/cli-bundle/chunks/{chunk-PDXJXEZJ.js → chunk-J6AD3GWC.js} +2 -2
  98. package/dist/cli-bundle/chunks/{chunk-52NS7JDP.js → chunk-JH5XDDYS.js} +5 -5
  99. package/dist/cli-bundle/chunks/{chunk-GPIDUMMN.js → chunk-JYVPLGOW.js} +4 -4
  100. package/dist/cli-bundle/chunks/{chunk-XC3X7BQR.js → chunk-K2OKKYSO.js} +11 -9
  101. package/dist/cli-bundle/chunks/{chunk-XC3X7BQR.js.map → chunk-K2OKKYSO.js.map} +2 -2
  102. package/dist/cli-bundle/chunks/{chunk-YCVWWIKY.js → chunk-K4NMHZR3.js} +111 -24
  103. package/dist/cli-bundle/chunks/chunk-K4NMHZR3.js.map +7 -0
  104. package/dist/cli-bundle/chunks/{chunk-EIUBK2LT.js → chunk-K52C6YPA.js} +5 -5
  105. package/dist/cli-bundle/chunks/{chunk-IDIBF4E2.js → chunk-KAJNWMBE.js} +8 -8
  106. package/dist/cli-bundle/chunks/{chunk-2LEJGRQ7.js → chunk-KFL3XHMA.js} +2 -2
  107. package/dist/cli-bundle/chunks/{chunk-XS2TMNXR.js → chunk-LD2NBQ5T.js} +3 -3
  108. package/dist/cli-bundle/chunks/{chunk-II7R6KD4.js → chunk-LG4N6YOK.js} +5 -5
  109. package/dist/cli-bundle/chunks/{chunk-M62RO3XK.js → chunk-LHDHS4Z6.js} +5 -5
  110. package/dist/cli-bundle/chunks/{chunk-YTD5GICJ.js → chunk-MBLHA6LR.js} +4 -4
  111. package/dist/cli-bundle/chunks/{chunk-F6MT7KKE.js → chunk-MCH6IKK7.js} +3 -3
  112. package/dist/cli-bundle/chunks/{chunk-7PNQA24K.js → chunk-MCZK7LY6.js} +24 -10
  113. package/dist/cli-bundle/chunks/{chunk-7PNQA24K.js.map → chunk-MCZK7LY6.js.map} +1 -1
  114. package/dist/cli-bundle/chunks/{chunk-UO7XAZK6.js → chunk-MFLLULHU.js} +267 -232
  115. package/dist/cli-bundle/chunks/chunk-MFLLULHU.js.map +1 -0
  116. package/dist/cli-bundle/chunks/{chunk-FILL6BB2.js → chunk-N4S7BV43.js} +14 -14
  117. package/dist/cli-bundle/chunks/chunk-N4S7BV43.js.map +7 -0
  118. package/dist/cli-bundle/chunks/{chunk-2APXX4TZ.js → chunk-NBJCIAVV.js} +108 -21
  119. package/dist/cli-bundle/chunks/chunk-NBJCIAVV.js.map +1 -0
  120. package/dist/cli-bundle/chunks/{chunk-Y7KYVCZM.js → chunk-NGBWEYNY.js} +5 -5
  121. package/dist/cli-bundle/chunks/{chunk-RB3KLPAH.js → chunk-NRMDT4OV.js} +4 -4
  122. package/dist/cli-bundle/chunks/{chunk-TZLYO4PP.js → chunk-NRYZ4QLH.js} +121 -26
  123. package/dist/cli-bundle/chunks/chunk-NRYZ4QLH.js.map +7 -0
  124. package/dist/cli-bundle/chunks/{chunk-F6YC2A6X.js → chunk-NSPSJWGL.js} +9 -6
  125. package/dist/cli-bundle/chunks/chunk-NSPSJWGL.js.map +7 -0
  126. package/dist/cli-bundle/chunks/{chunk-GH73UOSJ.js → chunk-NTOOEVJ4.js} +2 -2
  127. package/dist/cli-bundle/chunks/{chunk-6XTSYPPO.js → chunk-ONADVBMD.js} +8 -6
  128. package/dist/cli-bundle/chunks/chunk-ONADVBMD.js.map +7 -0
  129. package/dist/cli-bundle/chunks/{chunk-Y5IKRUEM.js → chunk-P5SUMCU5.js} +167 -65
  130. package/dist/cli-bundle/chunks/chunk-P5SUMCU5.js.map +1 -0
  131. package/dist/cli-bundle/chunks/{chunk-EMXPI36L.js → chunk-PAWPLIWW.js} +5 -5
  132. package/dist/cli-bundle/chunks/{chunk-AGAVEDIE.js → chunk-PCBZ2VJD.js} +4 -4
  133. package/dist/cli-bundle/chunks/{chunk-MHNMCDWR.js → chunk-PPY3GXFK.js} +600 -96
  134. package/dist/cli-bundle/chunks/chunk-PPY3GXFK.js.map +1 -0
  135. package/dist/cli-bundle/chunks/{chunk-3X542TEY.js → chunk-Q3CFSOQZ.js} +4 -4
  136. package/dist/cli-bundle/chunks/{chunk-4BKDAEDF.js → chunk-QJZM5WO5.js} +3 -3
  137. package/dist/cli-bundle/chunks/{chunk-HHEWQXPD.js → chunk-QLEH6FTQ.js} +4 -4
  138. package/dist/cli-bundle/chunks/{chunk-D2DCTFTL.js → chunk-QYZMZD4L.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-6UQCNWFV.js → chunk-RFHLRMLQ.js} +3 -3
  140. package/dist/cli-bundle/chunks/{chunk-Q64AYQYW.js → chunk-RL24NAUX.js} +4 -4
  141. package/dist/cli-bundle/chunks/{chunk-QDABF2RB.js → chunk-S7J3GEHL.js} +10 -10
  142. package/dist/cli-bundle/chunks/{chunk-5FIQ4EX3.js → chunk-SCJPFQQT.js} +3 -3
  143. package/dist/cli-bundle/chunks/{chunk-42LXP4VO.js → chunk-SIQGG335.js} +7 -7
  144. package/dist/cli-bundle/chunks/{chunk-RY7PTTUB.js → chunk-TI7QSUFK.js} +35 -8
  145. package/dist/cli-bundle/chunks/chunk-TI7QSUFK.js.map +1 -0
  146. package/dist/cli-bundle/chunks/{chunk-43SIHQND.js → chunk-TKWTJGD6.js} +5 -5
  147. package/dist/cli-bundle/chunks/{chunk-EOUVR7JN.js → chunk-U72GF3I2.js} +3 -3
  148. package/dist/cli-bundle/chunks/{chunk-FN6SB4HU.js → chunk-UEATYUZW.js} +2 -2
  149. package/dist/cli-bundle/chunks/{chunk-V5ZWKJNY.js → chunk-UFNFHCAC.js} +2 -2
  150. package/dist/cli-bundle/chunks/{chunk-XBX5CBRQ.js → chunk-UH6VFRV6.js} +3 -3
  151. package/dist/cli-bundle/chunks/{chunk-GTM5HQL4.js → chunk-UIHDZS6X.js} +7 -7
  152. package/dist/cli-bundle/chunks/{chunk-TGUK6XN6.js → chunk-UURYLDDC.js} +5 -5
  153. package/dist/cli-bundle/chunks/{chunk-S5BNGFN5.js → chunk-VCGHRLJU.js} +10 -10
  154. package/dist/cli-bundle/chunks/{chunk-3G6UMXT3.js → chunk-W2VFNVSJ.js} +3 -3
  155. package/dist/cli-bundle/chunks/{chunk-ZNEG2UDO.js → chunk-WDNPNW22.js} +7 -7
  156. package/dist/cli-bundle/chunks/{chunk-DG6BSXZ7.js → chunk-WVEMZZCR.js} +3 -3
  157. package/dist/cli-bundle/chunks/{chunk-TNC6MZUD.js → chunk-XXN2B2MJ.js} +4 -4
  158. package/dist/cli-bundle/chunks/{chunk-YH5NBDFA.js → chunk-Y2736PT5.js} +8 -8
  159. package/dist/cli-bundle/chunks/{chunk-X47MKQXU.js → chunk-YHKXNGLA.js} +166 -64
  160. package/dist/cli-bundle/chunks/chunk-YHKXNGLA.js.map +7 -0
  161. package/dist/cli-bundle/chunks/{chunk-XXIYUTLK.js → chunk-YPE5MFPJ.js} +4 -4
  162. package/dist/cli-bundle/chunks/{chunk-XPMXPR7K.js → chunk-YSRXFGNV.js} +3 -3
  163. package/dist/cli-bundle/chunks/{chunk-N6ZHDLUY.js → chunk-YUMNZS3X.js} +3 -3
  164. package/dist/cli-bundle/chunks/{chunk-TEKZOS7M.js → chunk-Z2JQH2MG.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-E3LWJUGF.js → chunk-Z6RLSNUX.js} +3 -3
  166. package/dist/cli-bundle/chunks/close-5WY6QO5F.js +12 -0
  167. package/dist/cli-bundle/chunks/{close-3YYQ5OG2.js → close-TKTFRL7N.js} +5 -5
  168. package/dist/cli-bundle/chunks/{close-many-D366FTIG.js → close-many-HEPL66EG.js} +13 -13
  169. package/dist/cli-bundle/chunks/close-many-U2KLQ3NL.js +22 -0
  170. package/dist/cli-bundle/chunks/{comments-54XDJNFE.js → comments-PLFK5ZKK.js} +7 -7
  171. package/dist/cli-bundle/chunks/comments-ZNOD5PTV.js +13 -0
  172. package/dist/cli-bundle/chunks/copy-F7BUFY4J.js +9 -0
  173. package/dist/cli-bundle/chunks/{copy-44RT5GDW.js → copy-VH3L4MN2.js} +4 -4
  174. package/dist/cli-bundle/chunks/create-KCQM6UYM.js +25 -0
  175. package/dist/cli-bundle/chunks/{create-4GWJWPXG.js → create-LD4SEUD6.js} +9 -9
  176. package/dist/cli-bundle/chunks/delete-6KQHZYIP.js +10 -0
  177. package/dist/cli-bundle/chunks/{delete-YQ2VPXNF.js → delete-ZNXUNCZR.js} +4 -4
  178. package/dist/cli-bundle/chunks/{deps-FMANWFRP.js → deps-CVDY7FFK.js} +4 -4
  179. package/dist/cli-bundle/chunks/{deps-BU5EBJDU.js → deps-SZXQHV73.js} +4 -4
  180. package/dist/cli-bundle/chunks/{docs-OQBSJNIA.js → docs-DR74ITCD.js} +6 -6
  181. package/dist/cli-bundle/chunks/docs-WCVYY6I7.js +14 -0
  182. package/dist/cli-bundle/chunks/{files-72HZEBOE.js → files-H5YCA74Z.js} +6 -6
  183. package/dist/cli-bundle/chunks/{files-HTSB2KJG.js → files-QEFQ2M3H.js} +6 -6
  184. package/dist/cli-bundle/chunks/{focus-FOG4ALC2.js → focus-55TRYSNA.js} +5 -5
  185. package/dist/cli-bundle/chunks/focus-N2QGNS5D.js +10 -0
  186. package/dist/cli-bundle/chunks/history-compact-GWQ4UOEI.js +21 -0
  187. package/dist/cli-bundle/chunks/{history-compact-M6IFAMBP.js → history-compact-JJZ4EFL3.js} +9 -9
  188. package/dist/cli-bundle/chunks/history-redact-4GJOLXCM.js +17 -0
  189. package/dist/cli-bundle/chunks/{history-redact-NQX3OGZP.js → history-redact-TPPUT3A5.js} +7 -7
  190. package/dist/cli-bundle/chunks/history-repair-HVCVCGUF.js +19 -0
  191. package/dist/cli-bundle/chunks/{history-repair-NHOJG7WO.js → history-repair-J7PIZ6ZP.js} +9 -9
  192. package/dist/cli-bundle/chunks/{learnings-T63JGKKN.js → learnings-KB6BT4NR.js} +7 -7
  193. package/dist/cli-bundle/chunks/learnings-YYY3U2Y7.js +13 -0
  194. package/dist/cli-bundle/chunks/notes-BGG7VL72.js +13 -0
  195. package/dist/cli-bundle/chunks/{notes-U7L6HQQ2.js → notes-ZTHXVOKM.js} +7 -7
  196. package/dist/cli-bundle/chunks/plan-B42KBMX7.js +24 -0
  197. package/dist/cli-bundle/chunks/{plan-TN537L24.js → plan-LUR7C24X.js} +10 -10
  198. package/dist/cli-bundle/chunks/{profile-TIGLAKJ7.js → profile-5F75MO5O.js} +9 -9
  199. package/dist/cli-bundle/chunks/{profile-MHAMXMHQ.js → profile-JRDMDGT5.js} +9 -9
  200. package/dist/cli-bundle/chunks/{register-list-query-ZCRABAPN.js → register-list-query-GZYRZLQZ.js} +17 -16
  201. package/dist/cli-bundle/chunks/register-list-query-GZYRZLQZ.js.map +1 -0
  202. package/dist/cli-bundle/chunks/{register-list-query-OHXD7G5N.js → register-list-query-W2W7RQJJ.js} +16 -15
  203. package/dist/cli-bundle/chunks/register-list-query-W2W7RQJJ.js.map +7 -0
  204. package/dist/cli-bundle/chunks/{register-mutation-XX4H56PE.js → register-mutation-5UDT3WL3.js} +29 -29
  205. package/dist/cli-bundle/chunks/{register-mutation-P3G4XP6Q.js → register-mutation-7DMOYDPC.js} +29 -29
  206. package/dist/cli-bundle/chunks/{register-operations-V6VKTG54.js → register-operations-NW43IUPE.js} +29 -28
  207. package/dist/cli-bundle/chunks/register-operations-NW43IUPE.js.map +7 -0
  208. package/dist/cli-bundle/chunks/{register-operations-V6PIYEDU.js → register-operations-Y4E32W4D.js} +30 -29
  209. package/dist/cli-bundle/chunks/register-operations-Y4E32W4D.js.map +1 -0
  210. package/dist/cli-bundle/chunks/{register-setup-6YVUSQYD.js → register-setup-3GVJ7XPE.js} +21 -19
  211. package/dist/cli-bundle/chunks/register-setup-3GVJ7XPE.js.map +1 -0
  212. package/dist/cli-bundle/chunks/{register-setup-6RVAWT6W.js → register-setup-MPTTS52V.js} +20 -18
  213. package/dist/cli-bundle/chunks/register-setup-MPTTS52V.js.map +7 -0
  214. package/dist/cli-bundle/chunks/{restore-HC3YSWF7.js → restore-BTBEZ5CK.js} +7 -7
  215. package/dist/cli-bundle/chunks/restore-EX4UUZL6.js +15 -0
  216. package/dist/cli-bundle/chunks/{schema-DAGSYO6E.js → schema-DGSTYYQB.js} +6 -6
  217. package/dist/cli-bundle/chunks/{schema-UBXJCQAC.js → schema-HAIBEE24.js} +6 -6
  218. package/dist/cli-bundle/chunks/update-76CRUMC7.js +21 -0
  219. package/dist/cli-bundle/chunks/{update-LKD64AFP.js → update-ZMYVXM77.js} +12 -12
  220. package/dist/cli-bundle/chunks/update-many-QYQRGNPU.js +31 -0
  221. package/dist/cli-bundle/chunks/update-many-U4CEQWI4.js +35 -0
  222. package/dist/cli-bundle/main.js +39 -13
  223. package/dist/cli-bundle/main.js.map +2 -2
  224. package/dist/cli-bundle/sdk-runtime.js +149 -53
  225. package/dist/cli-bundle/sdk-testing.js +6 -6
  226. package/dist/cli-bundle/sdk.js +153 -57
  227. package/dist/cli-bundle/sdk.js.map +3 -3
  228. package/dist/core/extensions/extension-types.d.ts +1 -0
  229. package/dist/core/extensions/extension-types.js +2 -2
  230. package/dist/core/extensions/extension-types.js.map +1 -1
  231. package/dist/core/extensions/loader.js +268 -231
  232. package/dist/core/extensions/loader.js.map +1 -1
  233. package/dist/sdk/cli-contracts/commander-types.js +3 -3
  234. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  235. package/dist/sdk/cli-contracts/flag-contracts.js +10 -3
  236. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  237. package/dist/sdk/cli-contracts/tool-option-contracts.js +10 -5
  238. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  239. package/dist/sdk/cli-contracts/tool-parameter-tables.js +20 -4
  240. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  241. package/dist/sdk/cli-contracts/tool-schema.d.ts +4 -0
  242. package/dist/sdk/cli-contracts/tool-schema.js +71 -12
  243. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  244. package/dist/sdk/index.d.ts +1 -1
  245. package/dist/sdk/index.js +3 -3
  246. package/dist/sdk/index.js.map +1 -1
  247. package/dist/sdk/runtime.d.ts +471 -25
  248. package/dist/sdk/runtime.js +611 -25
  249. package/dist/sdk/runtime.js.map +1 -1
  250. package/docs/AGENT_GUIDE.md +3 -0
  251. package/docs/COMMANDS.md +10 -1
  252. package/docs/EXTENSIONS.md +7 -20
  253. package/docs/RELEASING.md +6 -0
  254. package/docs/SDK.md +67 -0
  255. package/package.json +2 -1
  256. package/dist/cli-bundle/chunks/append-F7WPGIQL.js +0 -11
  257. package/dist/cli-bundle/chunks/chunk-2APXX4TZ.js.map +0 -1
  258. package/dist/cli-bundle/chunks/chunk-6LCJRGPD.js.map +0 -1
  259. package/dist/cli-bundle/chunks/chunk-6XTSYPPO.js.map +0 -7
  260. package/dist/cli-bundle/chunks/chunk-7ML7JONU.js.map +0 -1
  261. package/dist/cli-bundle/chunks/chunk-C5ACVMOI.js.map +0 -7
  262. package/dist/cli-bundle/chunks/chunk-F6YC2A6X.js.map +0 -7
  263. package/dist/cli-bundle/chunks/chunk-FILL6BB2.js.map +0 -7
  264. package/dist/cli-bundle/chunks/chunk-J2VGADNG.js.map +0 -1
  265. package/dist/cli-bundle/chunks/chunk-LCFJ7XAM.js.map +0 -7
  266. package/dist/cli-bundle/chunks/chunk-MHNMCDWR.js.map +0 -1
  267. package/dist/cli-bundle/chunks/chunk-RY7PTTUB.js.map +0 -1
  268. package/dist/cli-bundle/chunks/chunk-S547WBYG.js.map +0 -7
  269. package/dist/cli-bundle/chunks/chunk-TZLYO4PP.js.map +0 -7
  270. package/dist/cli-bundle/chunks/chunk-UO7XAZK6.js.map +0 -1
  271. package/dist/cli-bundle/chunks/chunk-X47MKQXU.js.map +0 -7
  272. package/dist/cli-bundle/chunks/chunk-XZWL7VNE.js.map +0 -1
  273. package/dist/cli-bundle/chunks/chunk-Y5IKRUEM.js.map +0 -1
  274. package/dist/cli-bundle/chunks/chunk-YCVWWIKY.js.map +0 -7
  275. package/dist/cli-bundle/chunks/close-Z3Q4U7TS.js +0 -12
  276. package/dist/cli-bundle/chunks/close-many-3L2RXH3M.js +0 -22
  277. package/dist/cli-bundle/chunks/comments-HGHC2PN6.js +0 -13
  278. package/dist/cli-bundle/chunks/copy-UGMUGHZA.js +0 -9
  279. package/dist/cli-bundle/chunks/create-AZXCUYKP.js +0 -25
  280. package/dist/cli-bundle/chunks/delete-Y6SXIQ4X.js +0 -10
  281. package/dist/cli-bundle/chunks/docs-VNPBZXEL.js +0 -14
  282. package/dist/cli-bundle/chunks/focus-SUTMKXGX.js +0 -10
  283. package/dist/cli-bundle/chunks/history-compact-NEXRPP2O.js +0 -21
  284. package/dist/cli-bundle/chunks/history-redact-WQJBZ3PX.js +0 -17
  285. package/dist/cli-bundle/chunks/history-repair-CBHMHAJO.js +0 -19
  286. package/dist/cli-bundle/chunks/learnings-M64NTSOR.js +0 -13
  287. package/dist/cli-bundle/chunks/notes-73WE2UV2.js +0 -13
  288. package/dist/cli-bundle/chunks/plan-OSCNYFGC.js +0 -24
  289. package/dist/cli-bundle/chunks/register-list-query-OHXD7G5N.js.map +0 -7
  290. package/dist/cli-bundle/chunks/register-list-query-ZCRABAPN.js.map +0 -1
  291. package/dist/cli-bundle/chunks/register-operations-V6PIYEDU.js.map +0 -1
  292. package/dist/cli-bundle/chunks/register-operations-V6VKTG54.js.map +0 -7
  293. package/dist/cli-bundle/chunks/register-setup-6RVAWT6W.js.map +0 -7
  294. package/dist/cli-bundle/chunks/register-setup-6YVUSQYD.js.map +0 -1
  295. package/dist/cli-bundle/chunks/restore-LFAMMRYZ.js +0 -15
  296. package/dist/cli-bundle/chunks/update-CJGG5WMV.js +0 -21
  297. package/dist/cli-bundle/chunks/update-many-G4SM7BHC.js +0 -31
  298. package/dist/cli-bundle/chunks/update-many-VLIV3D7R.js +0 -35
  299. /package/dist/cli-bundle/chunks/{append-F7WPGIQL.js.map → append-CDPAYYSB.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{append-PVCTBVJG.js.map → append-RSPHC423.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{chunk-6G6O3OPQ.js.map → chunk-26MFLA7K.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{chunk-H2SMKL2N.js.map → chunk-3FUXM574.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{chunk-DR2V5OIV.js.map → chunk-3SHDAKMF.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{chunk-MRFWUSVA.js.map → chunk-3UXIMY62.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{chunk-WCWVEXGA.js.map → chunk-3V5C7PUH.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{chunk-43YSKY75.js.map → chunk-3YJDIJIE.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{chunk-HX6QXV5P.js.map → chunk-4I7KS5ES.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{chunk-XHCVAZGM.js.map → chunk-4OCWJ2AP.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{chunk-3TYOW6RR.js.map → chunk-5STY7NVM.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{chunk-7VQ3JJN5.js.map → chunk-5VAZHYVQ.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{chunk-4IQKDKGE.js.map → chunk-5ZMZF53A.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{chunk-MCEUKJKW.js.map → chunk-6FU5BVRB.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-AJUON7E6.js.map → chunk-6RR4XM5H.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-TEISGNSH.js.map → chunk-6TD5QGIB.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-565WYS5W.js.map → chunk-6WCXSC5V.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-NWWL22C7.js.map → chunk-6ZKDMEVT.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-VLEA2UTQ.js.map → chunk-7QKSLAHB.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-S6VC2A2K.js.map → chunk-7TBUV7XS.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-YPMZMKN7.js.map → chunk-7UCBLJDF.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-4MZOKTI2.js.map → chunk-AEOFBBWO.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-ZO7CLOY2.js.map → chunk-BFNFTHWQ.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-YNCFP5AR.js.map → chunk-BPJ5NYSJ.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-P3MJJW7P.js.map → chunk-C3YU3TXX.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-SY75LYXR.js.map → chunk-C6XSTACC.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-2TILG6F2.js.map → chunk-CGDUIPJL.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-J7BOLHAV.js.map → chunk-CXH7EMSB.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-W5HXHC7C.js.map → chunk-D6J5673C.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-ARKHKYYS.js.map → chunk-DQLP22K2.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-YPD7SQ5P.js.map → chunk-EEJKHF7M.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-EDO7VXSO.js.map → chunk-EP2CKDS7.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-SIM5JDON.js.map → chunk-F5DDGY6R.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-I74FMIWA.js.map → chunk-FFB3WITE.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-43UQN754.js.map → chunk-FJR2S7S4.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-CJQM7O7R.js.map → chunk-FOJEBRDD.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-E3YQFSFE.js.map → chunk-GLMJLBLR.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-KTGJ2CBU.js.map → chunk-GO2X6ZRB.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-DDDWVPID.js.map → chunk-GSQVQINP.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-EVEPHNXJ.js.map → chunk-GZ365M6E.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-VGO73OCK.js.map → chunk-HZZ3AC27.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-7Y5N34HX.js.map → chunk-IINCZYM3.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-GLS6VMWI.js.map → chunk-INOWVPUD.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-PDXJXEZJ.js.map → chunk-J6AD3GWC.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-52NS7JDP.js.map → chunk-JH5XDDYS.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-GPIDUMMN.js.map → chunk-JYVPLGOW.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-EIUBK2LT.js.map → chunk-K52C6YPA.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-IDIBF4E2.js.map → chunk-KAJNWMBE.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-2LEJGRQ7.js.map → chunk-KFL3XHMA.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-XS2TMNXR.js.map → chunk-LD2NBQ5T.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-II7R6KD4.js.map → chunk-LG4N6YOK.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-M62RO3XK.js.map → chunk-LHDHS4Z6.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-YTD5GICJ.js.map → chunk-MBLHA6LR.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-F6MT7KKE.js.map → chunk-MCH6IKK7.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-Y7KYVCZM.js.map → chunk-NGBWEYNY.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-RB3KLPAH.js.map → chunk-NRMDT4OV.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-GH73UOSJ.js.map → chunk-NTOOEVJ4.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-EMXPI36L.js.map → chunk-PAWPLIWW.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-AGAVEDIE.js.map → chunk-PCBZ2VJD.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-3X542TEY.js.map → chunk-Q3CFSOQZ.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-4BKDAEDF.js.map → chunk-QJZM5WO5.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-HHEWQXPD.js.map → chunk-QLEH6FTQ.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-D2DCTFTL.js.map → chunk-QYZMZD4L.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-6UQCNWFV.js.map → chunk-RFHLRMLQ.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-Q64AYQYW.js.map → chunk-RL24NAUX.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-QDABF2RB.js.map → chunk-S7J3GEHL.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-5FIQ4EX3.js.map → chunk-SCJPFQQT.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-42LXP4VO.js.map → chunk-SIQGG335.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{chunk-43SIHQND.js.map → chunk-TKWTJGD6.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-EOUVR7JN.js.map → chunk-U72GF3I2.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-FN6SB4HU.js.map → chunk-UEATYUZW.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-V5ZWKJNY.js.map → chunk-UFNFHCAC.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-XBX5CBRQ.js.map → chunk-UH6VFRV6.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-GTM5HQL4.js.map → chunk-UIHDZS6X.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-TGUK6XN6.js.map → chunk-UURYLDDC.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-S5BNGFN5.js.map → chunk-VCGHRLJU.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-3G6UMXT3.js.map → chunk-W2VFNVSJ.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-ZNEG2UDO.js.map → chunk-WDNPNW22.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-DG6BSXZ7.js.map → chunk-WVEMZZCR.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{chunk-TNC6MZUD.js.map → chunk-XXN2B2MJ.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{chunk-YH5NBDFA.js.map → chunk-Y2736PT5.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{chunk-XXIYUTLK.js.map → chunk-YPE5MFPJ.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{chunk-XPMXPR7K.js.map → chunk-YSRXFGNV.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{chunk-N6ZHDLUY.js.map → chunk-YUMNZS3X.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{chunk-TEKZOS7M.js.map → chunk-Z2JQH2MG.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{chunk-E3LWJUGF.js.map → chunk-Z6RLSNUX.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{close-Z3Q4U7TS.js.map → close-5WY6QO5F.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{close-3YYQ5OG2.js.map → close-TKTFRL7N.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{close-many-D366FTIG.js.map → close-many-HEPL66EG.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{close-many-3L2RXH3M.js.map → close-many-U2KLQ3NL.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{comments-54XDJNFE.js.map → comments-PLFK5ZKK.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{comments-HGHC2PN6.js.map → comments-ZNOD5PTV.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{copy-UGMUGHZA.js.map → copy-F7BUFY4J.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{copy-44RT5GDW.js.map → copy-VH3L4MN2.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{create-AZXCUYKP.js.map → create-KCQM6UYM.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{create-4GWJWPXG.js.map → create-LD4SEUD6.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{delete-Y6SXIQ4X.js.map → delete-6KQHZYIP.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{delete-YQ2VPXNF.js.map → delete-ZNXUNCZR.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{deps-FMANWFRP.js.map → deps-CVDY7FFK.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{deps-BU5EBJDU.js.map → deps-SZXQHV73.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{docs-OQBSJNIA.js.map → docs-DR74ITCD.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{docs-VNPBZXEL.js.map → docs-WCVYY6I7.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{files-72HZEBOE.js.map → files-H5YCA74Z.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{files-HTSB2KJG.js.map → files-QEFQ2M3H.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{focus-FOG4ALC2.js.map → focus-55TRYSNA.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{focus-SUTMKXGX.js.map → focus-N2QGNS5D.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{history-compact-NEXRPP2O.js.map → history-compact-GWQ4UOEI.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{history-compact-M6IFAMBP.js.map → history-compact-JJZ4EFL3.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{history-redact-WQJBZ3PX.js.map → history-redact-4GJOLXCM.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{history-redact-NQX3OGZP.js.map → history-redact-TPPUT3A5.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{history-repair-CBHMHAJO.js.map → history-repair-HVCVCGUF.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{history-repair-NHOJG7WO.js.map → history-repair-J7PIZ6ZP.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{learnings-T63JGKKN.js.map → learnings-KB6BT4NR.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{learnings-M64NTSOR.js.map → learnings-YYY3U2Y7.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{notes-73WE2UV2.js.map → notes-BGG7VL72.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{notes-U7L6HQQ2.js.map → notes-ZTHXVOKM.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{plan-OSCNYFGC.js.map → plan-B42KBMX7.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{plan-TN537L24.js.map → plan-LUR7C24X.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{profile-TIGLAKJ7.js.map → profile-5F75MO5O.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{profile-MHAMXMHQ.js.map → profile-JRDMDGT5.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{register-mutation-XX4H56PE.js.map → register-mutation-5UDT3WL3.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{register-mutation-P3G4XP6Q.js.map → register-mutation-7DMOYDPC.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{restore-HC3YSWF7.js.map → restore-BTBEZ5CK.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{restore-LFAMMRYZ.js.map → restore-EX4UUZL6.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{schema-DAGSYO6E.js.map → schema-DGSTYYQB.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{schema-UBXJCQAC.js.map → schema-HAIBEE24.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{update-CJGG5WMV.js.map → update-76CRUMC7.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{update-LKD64AFP.js.map → update-ZMYVXM77.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{update-many-G4SM7BHC.js.map → update-many-QYQRGNPU.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{update-many-VLIV3D7R.js.map → update-many-U4CEQWI4.js.map} +0 -0
@@ -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-P3MJJW7P.js";
5
+ } from "./chunk-C3YU3TXX.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-GH73UOSJ.js";
16
+ } from "./chunk-NTOOEVJ4.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-UO7XAZK6.js";
24
+ } from "./chunk-MFLLULHU.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-6LCJRGPD.js.map
441
+ //# sourceMappingURL=chunk-63PZJCKO.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"}
@@ -11,7 +11,7 @@ import {
11
11
  createStdinTokenResolver,
12
12
  looksLikeGenericKeyValueEntry,
13
13
  parseCsvKv
14
- } from "./chunk-DR2V5OIV.js";
14
+ } from "./chunk-3SHDAKMF.js";
15
15
  import {
16
16
  splitCommaList
17
17
  } from "./chunk-P4SESZGT.js";
@@ -23,7 +23,7 @@ import {
23
23
  mutateItem,
24
24
  readLocatedItem,
25
25
  readSettings
26
- } from "./chunk-GH73UOSJ.js";
26
+ } from "./chunk-NTOOEVJ4.js";
27
27
  import {
28
28
  EXIT_CODE,
29
29
  SCOPE_VALUES,
@@ -31,7 +31,7 @@ import {
31
31
  pathExists,
32
32
  resolveItemTypeRegistry,
33
33
  resolvePmRoot
34
- } from "./chunk-UO7XAZK6.js";
34
+ } from "./chunk-MFLLULHU.js";
35
35
 
36
36
  // dist/cli/commands/linked-artifacts.js
37
37
  import fs from "node:fs/promises";
@@ -391,6 +391,6 @@ export {
391
391
  runLinkedArtifacts,
392
392
  renameArtifactsResultKey
393
393
  };
394
- //# sourceMappingURL=chunk-MCEUKJKW.js.map
394
+ //# sourceMappingURL=chunk-6FU5BVRB.js.map
395
395
 
396
396
  //# debugId=e455daa2-7c3a-5a87-ad9a-570e05956efd
@@ -2,11 +2,11 @@
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]="0ee33f6a-b2be-592b-b3f1-0bbaa84323d1")}catch(e){}}();
3
3
  import {
4
4
  PmCliError
5
- } from "./chunk-GH73UOSJ.js";
5
+ } from "./chunk-NTOOEVJ4.js";
6
6
  import {
7
7
  EXIT_CODE,
8
8
  resolveTypeName
9
- } from "./chunk-UO7XAZK6.js";
9
+ } from "./chunk-MFLLULHU.js";
10
10
 
11
11
  // dist/cli/shared-parsers.js
12
12
  function parseLimit(raw, label = "--limit") {
@@ -52,6 +52,6 @@ export {
52
52
  parsePriority,
53
53
  parseType
54
54
  };
55
- //# sourceMappingURL=chunk-AJUON7E6.js.map
55
+ //# sourceMappingURL=chunk-6RR4XM5H.js.map
56
56
 
57
57
  //# debugId=0ee33f6a-b2be-592b-b3f1-0bbaa84323d1
@@ -2,14 +2,14 @@
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]="32a6140e-ee85-503d-8fa8-24a81dba5aa7")}catch(e){}}();
3
3
  import {
4
4
  verifyHistoryChain
5
- } from "./chunk-7Y5N34HX.js";
5
+ } from "./chunk-IINCZYM3.js";
6
6
  import {
7
7
  hashDocument
8
- } from "./chunk-GH73UOSJ.js";
8
+ } from "./chunk-NTOOEVJ4.js";
9
9
  import {
10
10
  getHistoryPath,
11
11
  writeFileAtomic
12
- } from "./chunk-UO7XAZK6.js";
12
+ } from "./chunk-MFLLULHU.js";
13
13
 
14
14
  // dist/core/history/drift-scan.js
15
15
  import fs from "node:fs/promises";
@@ -202,6 +202,6 @@ async function scanHistoryDrift(pmRoot, items, options = {}) {
202
202
  export {
203
203
  scanHistoryDrift
204
204
  };
205
- //# sourceMappingURL=chunk-TEISGNSH.js.map
205
+ //# sourceMappingURL=chunk-6TD5QGIB.js.map
206
206
 
207
207
  //# debugId=32a6140e-ee85-503d-8fa8-24a81dba5aa7
@@ -5,10 +5,10 @@ import {
5
5
  normalizeReplayPatchOps,
6
6
  tryApplyReplayPatch,
7
7
  verifyHistoryChain
8
- } from "./chunk-7Y5N34HX.js";
8
+ } from "./chunk-IINCZYM3.js";
9
9
  import {
10
10
  parseLimit
11
- } from "./chunk-AJUON7E6.js";
11
+ } from "./chunk-6RR4XM5H.js";
12
12
  import {
13
13
  PmCliError,
14
14
  enforceHistoryStreamPolicyForItem,
@@ -21,7 +21,7 @@ import {
21
21
  readLocatedItem,
22
22
  readSettings,
23
23
  runActiveOnReadHooks
24
- } from "./chunk-GH73UOSJ.js";
24
+ } from "./chunk-NTOOEVJ4.js";
25
25
  import {
26
26
  EXIT_CODE,
27
27
  getHistoryPath,
@@ -30,7 +30,7 @@ import {
30
30
  readFileIfExists,
31
31
  resolveItemTypeRegistry,
32
32
  resolvePmRoot
33
- } from "./chunk-UO7XAZK6.js";
33
+ } from "./chunk-MFLLULHU.js";
34
34
 
35
35
  // dist/core/history/history-diff.js
36
36
  function decodeJsonPointerSegment(segment) {
@@ -258,6 +258,6 @@ export {
258
258
  readHistoryEntries,
259
259
  runHistory
260
260
  };
261
- //# sourceMappingURL=chunk-565WYS5W.js.map
261
+ //# sourceMappingURL=chunk-6WCXSC5V.js.map
262
262
 
263
263
  //# debugId=f014e953-a40b-5dbe-9ce5-75463eb41eb7
@@ -8,13 +8,13 @@ import {
8
8
  deleteItem,
9
9
  readSettings,
10
10
  toItemRecord
11
- } from "./chunk-GH73UOSJ.js";
11
+ } from "./chunk-NTOOEVJ4.js";
12
12
  import {
13
13
  EXIT_CODE,
14
14
  getSettingsPath,
15
15
  pathExists,
16
16
  resolvePmRoot
17
- } from "./chunk-UO7XAZK6.js";
17
+ } from "./chunk-MFLLULHU.js";
18
18
 
19
19
  // dist/cli/commands/delete.js
20
20
  import path from "node:path";
@@ -47,6 +47,6 @@ async function runDelete(id, options, global) {
47
47
  export {
48
48
  runDelete
49
49
  };
50
- //# sourceMappingURL=chunk-NWWL22C7.js.map
50
+ //# sourceMappingURL=chunk-6ZKDMEVT.js.map
51
51
 
52
52
  //# debugId=89f470ce-8607-5fa5-8d82-74fd0d3bf325
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  BUILTIN_ITEM_TYPE_VALUES,
5
5
  toDefaultFolder
6
- } from "./chunk-UO7XAZK6.js";
6
+ } from "./chunk-MFLLULHU.js";
7
7
 
8
8
  // dist/core/schema/item-types-file.js
9
9
  var BUILTIN_NAME_LOOKUP = new Map(BUILTIN_ITEM_TYPE_VALUES.map((name) => [name.toLowerCase(), name]));
@@ -255,6 +255,6 @@ export {
255
255
  buildInvalidTypeHint,
256
256
  buildInvalidTypeError
257
257
  };
258
- //# sourceMappingURL=chunk-VLEA2UTQ.js.map
258
+ //# sourceMappingURL=chunk-7QKSLAHB.js.map
259
259
 
260
260
  //# debugId=1b7c28c0-5af8-526d-a895-fe83ffb2841e
@@ -2,7 +2,7 @@ import {
2
2
  clearFocusedItem,
3
3
  getFocusedItem,
4
4
  setFocusedItem
5
- } from "./chunk-WCWVEXGA.js";
5
+ } from "./chunk-3V5C7PUH.js";
6
6
  import {
7
7
  PmCliError,
8
8
  buildItemNotFoundError,
@@ -11,14 +11,14 @@ import {
11
11
  normalizeItemId,
12
12
  readLocatedItem,
13
13
  readSettings
14
- } from "./chunk-YNCFP5AR.js";
14
+ } from "./chunk-BPJ5NYSJ.js";
15
15
  import {
16
16
  EXIT_CODE,
17
17
  getSettingsPath,
18
18
  pathExists,
19
19
  resolveItemTypeRegistry,
20
20
  resolvePmRoot
21
- } from "./chunk-LCFJ7XAM.js";
21
+ } from "./chunk-2BVD4ZD2.js";
22
22
 
23
23
  // dist/cli/commands/focus.js
24
24
  !(function() {
@@ -101,4 +101,4 @@ function nonEmptyTitleOrNull(title) {
101
101
  export {
102
102
  runFocus
103
103
  };
104
- //# sourceMappingURL=chunk-S6VC2A2K.js.map
104
+ //# sourceMappingURL=chunk-7TBUV7XS.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BUILTIN_ITEM_TYPE_VALUES,
3
3
  toDefaultFolder
4
- } from "./chunk-LCFJ7XAM.js";
4
+ } from "./chunk-2BVD4ZD2.js";
5
5
 
6
6
  // dist/core/schema/item-types-file.js
7
7
  !(function() {
@@ -260,4 +260,4 @@ export {
260
260
  buildInvalidTypeHint,
261
261
  buildInvalidTypeError
262
262
  };
263
- //# sourceMappingURL=chunk-YPMZMKN7.js.map
263
+ //# sourceMappingURL=chunk-7UCBLJDF.js.map
@@ -4,7 +4,7 @@ import {
4
4
  parseItemDocument,
5
5
  runActiveOnWriteHooks,
6
6
  serializeItemDocument
7
- } from "./chunk-GH73UOSJ.js";
7
+ } from "./chunk-NTOOEVJ4.js";
8
8
  import {
9
9
  TYPE_TO_FOLDER,
10
10
  getItemFormatFromPath,
@@ -12,7 +12,7 @@ import {
12
12
  readFileIfExists,
13
13
  removeFileIfExists,
14
14
  writeFileAtomic
15
- } from "./chunk-UO7XAZK6.js";
15
+ } from "./chunk-MFLLULHU.js";
16
16
 
17
17
  // dist/core/store/item-format-migration.js
18
18
  import fs from "node:fs/promises";
@@ -114,6 +114,6 @@ async function migrateItemFilesToFormat(pmRoot, targetFormat, op = "item_format:
114
114
  export {
115
115
  migrateItemFilesToFormat
116
116
  };
117
- //# sourceMappingURL=chunk-4MZOKTI2.js.map
117
+ //# sourceMappingURL=chunk-AEOFBBWO.js.map
118
118
 
119
119
  //# debugId=cc3f7b67-0ee9-5ac6-b79b-74b3d34cb9e2
@@ -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-EDO7VXSO.js";
5
+ } from "./chunk-EP2CKDS7.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-DR2V5OIV.js";
14
+ } from "./chunk-3SHDAKMF.js";
15
15
  import {
16
16
  assertParentReferenceIsNotSelf,
17
17
  isPlaceholderReferenceToken,
18
18
  normalizeParentReferenceValue,
19
19
  validateMissingParentReference,
20
20
  validateSprintOrReleaseValue
21
- } from "./chunk-6UQCNWFV.js";
21
+ } from "./chunk-RFHLRMLQ.js";
22
22
  import {
23
23
  buildInvalidTypeError
24
- } from "./chunk-VLEA2UTQ.js";
24
+ } from "./chunk-7QKSLAHB.js";
25
25
  import {
26
26
  splitCommaList
27
27
  } from "./chunk-P4SESZGT.js";
28
28
  import {
29
29
  printError
30
- } from "./chunk-EOUVR7JN.js";
30
+ } from "./chunk-U72GF3I2.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-GH73UOSJ.js";
55
+ } from "./chunk-NTOOEVJ4.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-UO7XAZK6.js";
86
+ } from "./chunk-MFLLULHU.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-QFBSP3NI.js.map
2615
+ //# sourceMappingURL=chunk-ASSVI7FP.js.map
2614
2616
 
2615
- //# debugId=59bf43ec-201a-5ebc-b1f7-9e467826b815
2617
+ //# debugId=f57d2940-529b-5291-a4b6-d86b5fcf41c5