@unbrained/pm-cli 2026.5.31 → 2026.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/CHANGELOG.md +167 -0
  2. package/CONTRIBUTING.md +1 -0
  3. package/README.md +12 -4
  4. package/dist/cli/argv-utils.js +7 -3
  5. package/dist/cli/argv-utils.js.map +1 -1
  6. package/dist/cli/bootstrap-args.d.ts +1 -0
  7. package/dist/cli/bootstrap-args.js +23 -3
  8. package/dist/cli/bootstrap-args.js.map +1 -1
  9. package/dist/cli/commands/calendar.js +17 -3
  10. package/dist/cli/commands/calendar.js.map +1 -1
  11. package/dist/cli/commands/close-many.d.ts +63 -0
  12. package/dist/cli/commands/close-many.js +302 -0
  13. package/dist/cli/commands/close-many.js.map +1 -0
  14. package/dist/cli/commands/completion.d.ts +1 -0
  15. package/dist/cli/commands/completion.js +260 -32
  16. package/dist/cli/commands/completion.js.map +1 -1
  17. package/dist/cli/commands/config.d.ts +4 -4
  18. package/dist/cli/commands/config.js +115 -3
  19. package/dist/cli/commands/config.js.map +1 -1
  20. package/dist/cli/commands/contracts.js +193 -162
  21. package/dist/cli/commands/contracts.js.map +1 -1
  22. package/dist/cli/commands/create.d.ts +1 -0
  23. package/dist/cli/commands/create.js +77 -114
  24. package/dist/cli/commands/create.js.map +1 -1
  25. package/dist/cli/commands/extension/doctor.d.ts +12 -0
  26. package/dist/cli/commands/extension/doctor.js +97 -2
  27. package/dist/cli/commands/extension/doctor.js.map +1 -1
  28. package/dist/cli/commands/extension/scaffold.js +49 -48
  29. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  30. package/dist/cli/commands/extension.js +51 -23
  31. package/dist/cli/commands/extension.js.map +1 -1
  32. package/dist/cli/commands/gc.d.ts +8 -1
  33. package/dist/cli/commands/gc.js +26 -3
  34. package/dist/cli/commands/gc.js.map +1 -1
  35. package/dist/cli/commands/get.js +7 -7
  36. package/dist/cli/commands/get.js.map +1 -1
  37. package/dist/cli/commands/health.js +51 -3
  38. package/dist/cli/commands/health.js.map +1 -1
  39. package/dist/cli/commands/history.d.ts +4 -1
  40. package/dist/cli/commands/history.js +12 -24
  41. package/dist/cli/commands/history.js.map +1 -1
  42. package/dist/cli/commands/index.d.ts +3 -1
  43. package/dist/cli/commands/index.js +5 -3
  44. package/dist/cli/commands/index.js.map +1 -1
  45. package/dist/cli/commands/init.d.ts +10 -0
  46. package/dist/cli/commands/init.js +107 -4
  47. package/dist/cli/commands/init.js.map +1 -1
  48. package/dist/cli/commands/list.d.ts +5 -0
  49. package/dist/cli/commands/list.js +58 -26
  50. package/dist/cli/commands/list.js.map +1 -1
  51. package/dist/cli/commands/reindex.js +163 -47
  52. package/dist/cli/commands/reindex.js.map +1 -1
  53. package/dist/cli/commands/repeatable-metadata-parsers.d.ts +15 -0
  54. package/dist/cli/commands/repeatable-metadata-parsers.js +120 -0
  55. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -0
  56. package/dist/cli/commands/restore.js +25 -4
  57. package/dist/cli/commands/restore.js.map +1 -1
  58. package/dist/cli/commands/schema.d.ts +122 -1
  59. package/dist/cli/commands/schema.js +536 -6
  60. package/dist/cli/commands/schema.js.map +1 -1
  61. package/dist/cli/commands/search.d.ts +1 -0
  62. package/dist/cli/commands/search.js +18 -4
  63. package/dist/cli/commands/search.js.map +1 -1
  64. package/dist/cli/commands/stats.d.ts +8 -1
  65. package/dist/cli/commands/stats.js +18 -17
  66. package/dist/cli/commands/stats.js.map +1 -1
  67. package/dist/cli/commands/telemetry.d.ts +8 -0
  68. package/dist/cli/commands/telemetry.js +253 -0
  69. package/dist/cli/commands/telemetry.js.map +1 -0
  70. package/dist/cli/commands/test.js +4 -3
  71. package/dist/cli/commands/test.js.map +1 -1
  72. package/dist/cli/commands/update-many.js +69 -140
  73. package/dist/cli/commands/update-many.js.map +1 -1
  74. package/dist/cli/commands/update.d.ts +2 -0
  75. package/dist/cli/commands/update.js +138 -119
  76. package/dist/cli/commands/update.js.map +1 -1
  77. package/dist/cli/commands/validate.d.ts +1 -0
  78. package/dist/cli/commands/validate.js +63 -33
  79. package/dist/cli/commands/validate.js.map +1 -1
  80. package/dist/cli/error-guidance.js +26 -3
  81. package/dist/cli/error-guidance.js.map +1 -1
  82. package/dist/cli/help-content.js +91 -3
  83. package/dist/cli/help-content.js.map +1 -1
  84. package/dist/cli/main.js +377 -23
  85. package/dist/cli/main.js.map +1 -1
  86. package/dist/cli/register-list-query.js +14 -5
  87. package/dist/cli/register-list-query.js.map +1 -1
  88. package/dist/cli/register-mutation.js +200 -28
  89. package/dist/cli/register-mutation.js.map +1 -1
  90. package/dist/cli/register-operations.js +31 -6
  91. package/dist/cli/register-operations.js.map +1 -1
  92. package/dist/cli/register-setup.js +4 -2
  93. package/dist/cli/register-setup.js.map +1 -1
  94. package/dist/cli/registration-helpers.js +31 -4
  95. package/dist/cli/registration-helpers.js.map +1 -1
  96. package/dist/cli-bundle/chunks/activity-CVXTCHYY.js +16 -0
  97. package/dist/cli-bundle/chunks/activity-JM6DTDND.js +20 -0
  98. package/dist/cli-bundle/chunks/activity-JM6DTDND.js.map +1 -0
  99. package/dist/cli-bundle/chunks/aggregate-GI7WSZPH.js +206 -0
  100. package/dist/cli-bundle/chunks/aggregate-GI7WSZPH.js.map +1 -0
  101. package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js → aggregate-VNAHUNNF.js} +11 -11
  102. package/dist/cli-bundle/chunks/{append-JD2DETU7.js → append-7H5N64R2.js} +8 -9
  103. package/dist/cli-bundle/chunks/{append-JD2DETU7.js.map → append-7H5N64R2.js.map} +1 -1
  104. package/dist/cli-bundle/chunks/append-WMKRXKCE.js +69 -0
  105. package/dist/cli-bundle/chunks/append-WMKRXKCE.js.map +1 -0
  106. package/dist/cli-bundle/chunks/{chunk-3M73P3G6.js → chunk-23YFZ3IG.js} +210 -132
  107. package/dist/cli-bundle/chunks/chunk-23YFZ3IG.js.map +7 -0
  108. package/dist/cli-bundle/chunks/chunk-2HVRUSQA.js +128 -0
  109. package/dist/cli-bundle/chunks/chunk-2HVRUSQA.js.map +1 -0
  110. package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js +266 -0
  111. package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js.map +1 -0
  112. package/dist/cli-bundle/chunks/chunk-2VBQ6ZXS.js +631 -0
  113. package/dist/cli-bundle/chunks/chunk-2VBQ6ZXS.js.map +1 -0
  114. package/dist/cli-bundle/chunks/chunk-2VVCGBNV.js +380 -0
  115. package/dist/cli-bundle/chunks/chunk-2VVCGBNV.js.map +1 -0
  116. package/dist/cli-bundle/chunks/chunk-3BWOVLTH.js +1664 -0
  117. package/dist/cli-bundle/chunks/chunk-3BWOVLTH.js.map +1 -0
  118. package/dist/cli-bundle/chunks/{chunk-6HT2F4TK.js → chunk-3FI4SEFT.js} +175 -54
  119. package/dist/cli-bundle/chunks/chunk-3FI4SEFT.js.map +7 -0
  120. package/dist/cli-bundle/chunks/{chunk-JULRTHJQ.js → chunk-3LB74A67.js} +119 -6
  121. package/dist/cli-bundle/chunks/chunk-3LB74A67.js.map +7 -0
  122. package/dist/cli-bundle/chunks/chunk-3VAM3NNM.js +57 -0
  123. package/dist/cli-bundle/chunks/chunk-3VAM3NNM.js.map +1 -0
  124. package/dist/cli-bundle/chunks/chunk-4LL6TK5B.js +1832 -0
  125. package/dist/cli-bundle/chunks/chunk-4LL6TK5B.js.map +1 -0
  126. package/dist/cli-bundle/chunks/chunk-52MAOQ6J.js +422 -0
  127. package/dist/cli-bundle/chunks/chunk-52MAOQ6J.js.map +7 -0
  128. package/dist/cli-bundle/chunks/chunk-5FDATVEZ.js +412 -0
  129. package/dist/cli-bundle/chunks/chunk-5FDATVEZ.js.map +1 -0
  130. package/dist/cli-bundle/chunks/chunk-5SFCOO6B.js +5622 -0
  131. package/dist/cli-bundle/chunks/chunk-5SFCOO6B.js.map +1 -0
  132. package/dist/cli-bundle/chunks/{chunk-U7FMKRXH.js → chunk-6ER6DXH5.js} +37 -16
  133. package/dist/cli-bundle/chunks/chunk-6ER6DXH5.js.map +7 -0
  134. package/dist/cli-bundle/chunks/chunk-6P6GGMOG.js +218 -0
  135. package/dist/cli-bundle/chunks/chunk-6P6GGMOG.js.map +1 -0
  136. package/dist/cli-bundle/chunks/chunk-77GFDHGF.js +80 -0
  137. package/dist/cli-bundle/chunks/chunk-77GFDHGF.js.map +1 -0
  138. package/dist/cli-bundle/chunks/{chunk-MD7K4JYF.js → chunk-AO442XLN.js} +26 -15
  139. package/dist/cli-bundle/chunks/chunk-AO442XLN.js.map +7 -0
  140. package/dist/cli-bundle/chunks/chunk-AY43SBIN.js +751 -0
  141. package/dist/cli-bundle/chunks/chunk-AY43SBIN.js.map +1 -0
  142. package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js → chunk-BQHUILZS.js} +5 -5
  143. package/dist/cli-bundle/chunks/chunk-E5FJNAZA.js +242 -0
  144. package/dist/cli-bundle/chunks/chunk-E5FJNAZA.js.map +1 -0
  145. package/dist/cli-bundle/chunks/{chunk-OGZEG5TT.js → chunk-ECCMVXGM.js} +164 -53
  146. package/dist/cli-bundle/chunks/chunk-ECCMVXGM.js.map +7 -0
  147. package/dist/cli-bundle/chunks/chunk-FRAUKRU2.js +182 -0
  148. package/dist/cli-bundle/chunks/chunk-FRAUKRU2.js.map +1 -0
  149. package/dist/cli-bundle/chunks/chunk-GCOQW437.js +130 -0
  150. package/dist/cli-bundle/chunks/chunk-GCOQW437.js.map +1 -0
  151. package/dist/cli-bundle/chunks/chunk-GGYWB3Y2.js +1340 -0
  152. package/dist/cli-bundle/chunks/chunk-GGYWB3Y2.js.map +1 -0
  153. package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js → chunk-GU2ZJ2VV.js} +5 -5
  154. package/dist/cli-bundle/chunks/chunk-GXSUPCBV.js +231 -0
  155. package/dist/cli-bundle/chunks/chunk-GXSUPCBV.js.map +1 -0
  156. package/dist/cli-bundle/chunks/chunk-HZGUAH22.js +76 -0
  157. package/dist/cli-bundle/chunks/chunk-HZGUAH22.js.map +1 -0
  158. package/dist/cli-bundle/chunks/chunk-I2HSTRJF.js +346 -0
  159. package/dist/cli-bundle/chunks/chunk-I2HSTRJF.js.map +1 -0
  160. package/dist/cli-bundle/chunks/chunk-I6BNFU5X.js +140 -0
  161. package/dist/cli-bundle/chunks/chunk-I6BNFU5X.js.map +7 -0
  162. package/dist/cli-bundle/chunks/{chunk-JTWRXG4B.js → chunk-IJGCZSIQ.js} +251 -251
  163. package/dist/cli-bundle/chunks/chunk-IJGCZSIQ.js.map +7 -0
  164. package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js +1491 -0
  165. package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js.map +1 -0
  166. package/dist/cli-bundle/chunks/chunk-IUV734HF.js +17 -0
  167. package/dist/cli-bundle/chunks/chunk-IUV734HF.js.map +1 -0
  168. package/dist/cli-bundle/chunks/chunk-J27KIHTG.js +15 -0
  169. package/dist/cli-bundle/chunks/chunk-J27KIHTG.js.map +1 -0
  170. package/dist/cli-bundle/chunks/{chunk-AKOOMO3T.js → chunk-KAG77BY3.js} +2 -2
  171. package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js → chunk-KJ33AOCY.js} +3 -3
  172. package/dist/cli-bundle/chunks/{chunk-WDPXDQFG.js → chunk-KJE2FOS4.js} +6 -4
  173. package/dist/cli-bundle/chunks/chunk-KJE2FOS4.js.map +7 -0
  174. package/dist/cli-bundle/chunks/chunk-KWU6HG75.js +3883 -0
  175. package/dist/cli-bundle/chunks/chunk-KWU6HG75.js.map +1 -0
  176. package/dist/cli-bundle/chunks/chunk-LB3RUL2N.js +1325 -0
  177. package/dist/cli-bundle/chunks/chunk-LB3RUL2N.js.map +1 -0
  178. package/dist/cli-bundle/chunks/{chunk-5HSEP75M.js → chunk-LCM63IXU.js} +18 -6
  179. package/dist/cli-bundle/chunks/chunk-LCM63IXU.js.map +7 -0
  180. package/dist/cli-bundle/chunks/chunk-LXYVKYMQ.js +24 -0
  181. package/dist/cli-bundle/chunks/chunk-LXYVKYMQ.js.map +1 -0
  182. package/dist/cli-bundle/chunks/chunk-ME2YH6FN.js +182 -0
  183. package/dist/cli-bundle/chunks/chunk-ME2YH6FN.js.map +1 -0
  184. package/dist/cli-bundle/chunks/chunk-MITFDD35.js +1809 -0
  185. package/dist/cli-bundle/chunks/chunk-MITFDD35.js.map +1 -0
  186. package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js → chunk-N7ACFE26.js} +3 -3
  187. package/dist/cli-bundle/chunks/chunk-NUZ5HKR4.js +332 -0
  188. package/dist/cli-bundle/chunks/chunk-NUZ5HKR4.js.map +1 -0
  189. package/dist/cli-bundle/chunks/{chunk-7Y53ZJIQ.js → chunk-OVQCEJPG.js} +22 -3
  190. package/dist/cli-bundle/chunks/chunk-OVQCEJPG.js.map +7 -0
  191. package/dist/cli-bundle/chunks/{chunk-PXUAZUUY.js → chunk-OZ7NSQHL.js} +12 -11
  192. package/dist/cli-bundle/chunks/chunk-OZ7NSQHL.js.map +7 -0
  193. package/dist/cli-bundle/chunks/{chunk-P53TN6IA.js → chunk-PDDFYW4X.js} +35 -8
  194. package/dist/cli-bundle/chunks/chunk-PDDFYW4X.js.map +7 -0
  195. package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js → chunk-PIU6RSL3.js} +10 -12
  196. package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js.map → chunk-PIU6RSL3.js.map} +1 -1
  197. package/dist/cli-bundle/chunks/chunk-PO3GSVFV.js +338 -0
  198. package/dist/cli-bundle/chunks/chunk-PO3GSVFV.js.map +1 -0
  199. package/dist/cli-bundle/chunks/{chunk-LRBOHPUE.js → chunk-PRJCELV4.js} +108 -21
  200. package/dist/cli-bundle/chunks/chunk-PRJCELV4.js.map +7 -0
  201. package/dist/cli-bundle/chunks/{chunk-GN7IJPCD.js → chunk-PROOHX4K.js} +332 -32
  202. package/dist/cli-bundle/chunks/chunk-PROOHX4K.js.map +7 -0
  203. package/dist/cli-bundle/chunks/{chunk-FQE6XZDB.js → chunk-Q7SPNHLW.js} +54 -32
  204. package/dist/cli-bundle/chunks/chunk-Q7SPNHLW.js.map +7 -0
  205. package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js → chunk-QO7EBBOM.js} +2 -2
  206. package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js → chunk-R6UFP2GE.js} +7 -7
  207. package/dist/cli-bundle/chunks/chunk-RWPSOIEE.js +154 -0
  208. package/dist/cli-bundle/chunks/chunk-RWPSOIEE.js.map +1 -0
  209. package/dist/cli-bundle/chunks/chunk-RZN6VURO.js +119 -0
  210. package/dist/cli-bundle/chunks/chunk-RZN6VURO.js.map +1 -0
  211. package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js +1501 -0
  212. package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js.map +7 -0
  213. package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js → chunk-T3LC5LKB.js} +2 -2
  214. package/dist/cli-bundle/chunks/chunk-TCD3R2PF.js +173 -0
  215. package/dist/cli-bundle/chunks/chunk-TCD3R2PF.js.map +1 -0
  216. package/dist/cli-bundle/chunks/chunk-TPH5XEVD.js +2988 -0
  217. package/dist/cli-bundle/chunks/chunk-TPH5XEVD.js.map +1 -0
  218. package/dist/cli-bundle/chunks/{chunk-LSXGH6NE.js → chunk-U5SXYXSY.js} +821 -200
  219. package/dist/cli-bundle/chunks/chunk-U5SXYXSY.js.map +7 -0
  220. package/dist/cli-bundle/chunks/chunk-UBOPJT3S.js +540 -0
  221. package/dist/cli-bundle/chunks/chunk-UBOPJT3S.js.map +1 -0
  222. package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js → chunk-UM2GBHS4.js} +5 -4
  223. package/dist/cli-bundle/chunks/chunk-W7XABV4H.js +454 -0
  224. package/dist/cli-bundle/chunks/chunk-W7XABV4H.js.map +1 -0
  225. package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js → chunk-WKY2IBOQ.js} +3 -3
  226. package/dist/cli-bundle/chunks/chunk-WOPXVEZP.js +698 -0
  227. package/dist/cli-bundle/chunks/chunk-WOPXVEZP.js.map +1 -0
  228. package/dist/cli-bundle/chunks/chunk-WSMOSYRD.js +1704 -0
  229. package/dist/cli-bundle/chunks/chunk-WSMOSYRD.js.map +1 -0
  230. package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js → chunk-XLTD2HN3.js} +2 -2
  231. package/dist/cli-bundle/chunks/chunk-XSJCLN2R.js +131 -0
  232. package/dist/cli-bundle/chunks/chunk-XSJCLN2R.js.map +7 -0
  233. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +53 -0
  234. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +1 -0
  235. package/dist/cli-bundle/chunks/{chunk-BUPWJ3IJ.js → chunk-XTGLRY2Y.js} +484 -49
  236. package/dist/cli-bundle/chunks/chunk-XTGLRY2Y.js.map +7 -0
  237. package/dist/cli-bundle/chunks/{chunk-L2FXEKDB.js → chunk-YL2DJGYS.js} +7 -7
  238. package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js → claim-4DBF6RVG.js} +10 -11
  239. package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js.map → claim-4DBF6RVG.js.map} +1 -1
  240. package/dist/cli-bundle/chunks/claim-X2P4IB7J.js +129 -0
  241. package/dist/cli-bundle/chunks/claim-X2P4IB7J.js.map +1 -0
  242. package/dist/cli-bundle/chunks/close-3HDWDA3L.js +13 -0
  243. package/dist/cli-bundle/chunks/close-PTYFA45H.js +17 -0
  244. package/dist/cli-bundle/chunks/close-PTYFA45H.js.map +1 -0
  245. package/dist/cli-bundle/chunks/close-many-7CGIDPTJ.js +314 -0
  246. package/dist/cli-bundle/chunks/close-many-7CGIDPTJ.js.map +7 -0
  247. package/dist/cli-bundle/chunks/close-many-ERFO6LHR.js +311 -0
  248. package/dist/cli-bundle/chunks/close-many-ERFO6LHR.js.map +1 -0
  249. package/dist/cli-bundle/chunks/comments-OONGABK5.js +100 -0
  250. package/dist/cli-bundle/chunks/comments-OONGABK5.js.map +1 -0
  251. package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js → comments-QKBYCWKD.js} +10 -11
  252. package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js.map → comments-QKBYCWKD.js.map} +1 -1
  253. package/dist/cli-bundle/chunks/config-6FXCQKIF.js +1671 -0
  254. package/dist/cli-bundle/chunks/config-6FXCQKIF.js.map +1 -0
  255. package/dist/cli-bundle/chunks/{config-V3FZOKLI.js → config-U4RZ4CQB.js} +121 -10
  256. package/dist/cli-bundle/chunks/config-U4RZ4CQB.js.map +7 -0
  257. package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js → context-FYYJGFWS.js} +32 -19
  258. package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js.map → context-FYYJGFWS.js.map} +2 -2
  259. package/dist/cli-bundle/chunks/context-YMJ3Z2HQ.js +1461 -0
  260. package/dist/cli-bundle/chunks/context-YMJ3Z2HQ.js.map +1 -0
  261. package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js +1278 -0
  262. package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{contracts-YLMH33VU.js → contracts-RFSPGVVJ.js} +198 -162
  264. package/dist/cli-bundle/chunks/contracts-RFSPGVVJ.js.map +7 -0
  265. package/dist/cli-bundle/chunks/create-I5L4EYYZ.js +31 -0
  266. package/dist/cli-bundle/chunks/create-I5L4EYYZ.js.map +1 -0
  267. package/dist/cli-bundle/chunks/create-JTZNCTQC.js +27 -0
  268. package/dist/cli-bundle/chunks/delete-7HPGI4GZ.js +55 -0
  269. package/dist/cli-bundle/chunks/delete-7HPGI4GZ.js.map +1 -0
  270. package/dist/cli-bundle/chunks/{delete-RHCTEORS.js → delete-VXUPH5RS.js} +7 -8
  271. package/dist/cli-bundle/chunks/{delete-RHCTEORS.js.map → delete-VXUPH5RS.js.map} +1 -1
  272. package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js → deps-JSRRWC3Z.js} +7 -8
  273. package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js.map → deps-JSRRWC3Z.js.map} +1 -1
  274. package/dist/cli-bundle/chunks/deps-SCZIFK2Z.js +225 -0
  275. package/dist/cli-bundle/chunks/deps-SCZIFK2Z.js.map +1 -0
  276. package/dist/cli-bundle/chunks/docs-GJK6K4VP.js +31 -0
  277. package/dist/cli-bundle/chunks/docs-GJK6K4VP.js.map +1 -0
  278. package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js → docs-WW4N3MBM.js} +9 -10
  279. package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js.map → docs-WW4N3MBM.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js → extension-J7IBMFTD.js} +4 -5
  281. package/dist/cli-bundle/chunks/extension-VDY2U33M.js +28 -0
  282. package/dist/cli-bundle/chunks/extension-VDY2U33M.js.map +1 -0
  283. package/dist/cli-bundle/chunks/files-ISZJGILQ.js +282 -0
  284. package/dist/cli-bundle/chunks/files-ISZJGILQ.js.map +1 -0
  285. package/dist/cli-bundle/chunks/{files-WVOX67PE.js → files-WKOD326U.js} +9 -10
  286. package/dist/cli-bundle/chunks/{files-WVOX67PE.js.map → files-WKOD326U.js.map} +1 -1
  287. package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js +362 -0
  288. package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js.map +1 -0
  289. package/dist/cli-bundle/chunks/gc-ULPVWMTN.js +372 -0
  290. package/dist/cli-bundle/chunks/gc-ULPVWMTN.js.map +7 -0
  291. package/dist/cli-bundle/chunks/get-RV37HT3G.js +194 -0
  292. package/dist/cli-bundle/chunks/get-RV37HT3G.js.map +1 -0
  293. package/dist/cli-bundle/chunks/{get-LTK3HOCQ.js → get-WXU6WI5P.js} +16 -17
  294. package/dist/cli-bundle/chunks/get-WXU6WI5P.js.map +7 -0
  295. package/dist/cli-bundle/chunks/{health-TCWL55KM.js → health-6L6EH4WR.js} +57 -16
  296. package/dist/cli-bundle/chunks/health-6L6EH4WR.js.map +7 -0
  297. package/dist/cli-bundle/chunks/health-LOI2HHKB.js +1271 -0
  298. package/dist/cli-bundle/chunks/health-LOI2HHKB.js.map +1 -0
  299. package/dist/cli-bundle/chunks/history-2BA3T5AE.js +20 -0
  300. package/dist/cli-bundle/chunks/history-PKN67D5O.js +24 -0
  301. package/dist/cli-bundle/chunks/history-PKN67D5O.js.map +1 -0
  302. package/dist/cli-bundle/chunks/history-redact-JBZNXHGR.js +19 -0
  303. package/dist/cli-bundle/chunks/history-redact-V4FOJGS7.js +23 -0
  304. package/dist/cli-bundle/chunks/history-redact-V4FOJGS7.js.map +1 -0
  305. package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js → history-repair-HIBCBIKK.js} +12 -14
  306. package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js.map → history-repair-HIBCBIKK.js.map} +1 -1
  307. package/dist/cli-bundle/chunks/history-repair-SDMHR7JT.js +193 -0
  308. package/dist/cli-bundle/chunks/history-repair-SDMHR7JT.js.map +1 -0
  309. package/dist/cli-bundle/chunks/init-HIVSNX3O.js +16 -0
  310. package/dist/cli-bundle/chunks/init-P56QYWJF.js +20 -0
  311. package/dist/cli-bundle/chunks/init-P56QYWJF.js.map +1 -0
  312. package/dist/cli-bundle/chunks/learnings-GDFRG5J7.js +44 -0
  313. package/dist/cli-bundle/chunks/learnings-GDFRG5J7.js.map +1 -0
  314. package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js → learnings-MIXSESLK.js} +10 -11
  315. package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js.map → learnings-MIXSESLK.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/list-FGOWQMSM.js +24 -0
  317. package/dist/cli-bundle/chunks/list-FGOWQMSM.js.map +1 -0
  318. package/dist/cli-bundle/chunks/list-MUSQNMTD.js +20 -0
  319. package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js → notes-4XVSH2AZ.js} +10 -11
  320. package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js.map → notes-4XVSH2AZ.js.map} +1 -1
  321. package/dist/cli-bundle/chunks/notes-5UK3GEH2.js +44 -0
  322. package/dist/cli-bundle/chunks/notes-5UK3GEH2.js.map +1 -0
  323. package/dist/cli-bundle/chunks/plan-DUMBV3QB.js +1171 -0
  324. package/dist/cli-bundle/chunks/plan-DUMBV3QB.js.map +1 -0
  325. package/dist/cli-bundle/chunks/{plan-67AB2PLM.js → plan-SLMODHWX.js} +13 -14
  326. package/dist/cli-bundle/chunks/{plan-67AB2PLM.js.map → plan-SLMODHWX.js.map} +1 -1
  327. package/dist/cli-bundle/chunks/register-list-query-POCFZ5JW.js +229 -0
  328. package/dist/cli-bundle/chunks/register-list-query-POCFZ5JW.js.map +1 -0
  329. package/dist/cli-bundle/chunks/{register-list-query-UP3VRUFS.js → register-list-query-WST76HSQ.js} +26 -26
  330. package/dist/cli-bundle/chunks/register-list-query-WST76HSQ.js.map +7 -0
  331. package/dist/cli-bundle/chunks/register-mutation-N5GSUZJV.js +813 -0
  332. package/dist/cli-bundle/chunks/register-mutation-N5GSUZJV.js.map +1 -0
  333. package/dist/cli-bundle/chunks/{register-mutation-YWSBF545.js → register-mutation-OA675SOU.js} +154 -43
  334. package/dist/cli-bundle/chunks/register-mutation-OA675SOU.js.map +7 -0
  335. package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js +383 -0
  336. package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js.map +1 -0
  337. package/dist/cli-bundle/chunks/{register-operations-3BDTGSDH.js → register-operations-N3PMHXH5.js} +49 -37
  338. package/dist/cli-bundle/chunks/register-operations-N3PMHXH5.js.map +7 -0
  339. package/dist/cli-bundle/chunks/register-setup-JIMPKJKV.js +242 -0
  340. package/dist/cli-bundle/chunks/register-setup-JIMPKJKV.js.map +1 -0
  341. package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js → register-setup-ZHJI2DI3.js} +18 -19
  342. package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js.map → register-setup-ZHJI2DI3.js.map} +2 -2
  343. package/dist/cli-bundle/chunks/restore-D4RGNX33.js +17 -0
  344. package/dist/cli-bundle/chunks/restore-PBL6T5TW.js +21 -0
  345. package/dist/cli-bundle/chunks/restore-PBL6T5TW.js.map +1 -0
  346. package/dist/cli-bundle/chunks/schema-2NOO6NGB.js +780 -0
  347. package/dist/cli-bundle/chunks/schema-2NOO6NGB.js.map +7 -0
  348. package/dist/cli-bundle/chunks/schema-EBI4NLUO.js +770 -0
  349. package/dist/cli-bundle/chunks/schema-EBI4NLUO.js.map +1 -0
  350. package/dist/cli-bundle/chunks/search-JPUQTVCY.js +1127 -0
  351. package/dist/cli-bundle/chunks/search-JPUQTVCY.js.map +1 -0
  352. package/dist/cli-bundle/chunks/{search-HENBL456.js → search-OA6JX27A.js} +25 -16
  353. package/dist/cli-bundle/chunks/search-OA6JX27A.js.map +7 -0
  354. package/dist/cli-bundle/chunks/stats-CV54BAWY.js +202 -0
  355. package/dist/cli-bundle/chunks/stats-CV54BAWY.js.map +1 -0
  356. package/dist/cli-bundle/chunks/stats-XYB6KTFG.js +212 -0
  357. package/dist/cli-bundle/chunks/stats-XYB6KTFG.js.map +7 -0
  358. package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js +251 -0
  359. package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js.map +7 -0
  360. package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js +248 -0
  361. package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js.map +1 -0
  362. package/dist/cli-bundle/chunks/test-MXX3E5JL.js +31 -0
  363. package/dist/cli-bundle/chunks/test-WBROAJIE.js +35 -0
  364. package/dist/cli-bundle/chunks/test-WBROAJIE.js.map +1 -0
  365. package/dist/cli-bundle/chunks/test-all-N6NSRDTV.js +328 -0
  366. package/dist/cli-bundle/chunks/test-all-N6NSRDTV.js.map +1 -0
  367. package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js → test-all-NTOZ7C3M.js} +13 -14
  368. package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js.map → test-all-NTOZ7C3M.js.map} +1 -1
  369. package/dist/cli-bundle/chunks/test-runs-V6A7LPWZ.js +929 -0
  370. package/dist/cli-bundle/chunks/test-runs-V6A7LPWZ.js.map +1 -0
  371. package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js → test-runs-WMVTQU3Y.js} +5 -5
  372. package/dist/cli-bundle/chunks/update-OSV3NAQB.js +25 -0
  373. package/dist/cli-bundle/chunks/update-OSV3NAQB.js.map +1 -0
  374. package/dist/cli-bundle/chunks/update-YRXSUGYQ.js +21 -0
  375. package/dist/cli-bundle/chunks/update-many-EM6OXYGO.js +605 -0
  376. package/dist/cli-bundle/chunks/update-many-EM6OXYGO.js.map +1 -0
  377. package/dist/cli-bundle/chunks/{update-many-46HRSP2Q.js → update-many-KGGEYABR.js} +78 -146
  378. package/dist/cli-bundle/chunks/update-many-KGGEYABR.js.map +7 -0
  379. package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js → upgrade-BLI7XBAJ.js} +5 -7
  380. package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js.map → upgrade-BLI7XBAJ.js.map} +1 -1
  381. package/dist/cli-bundle/chunks/upgrade-LXPOQKFV.js +266 -0
  382. package/dist/cli-bundle/chunks/upgrade-LXPOQKFV.js.map +1 -0
  383. package/dist/cli-bundle/chunks/{validate-TMCVKIGZ.js → validate-AGOAUOVW.js} +61 -48
  384. package/dist/cli-bundle/chunks/validate-AGOAUOVW.js.map +7 -0
  385. package/dist/cli-bundle/chunks/validate-L5J6A7YO.js +1120 -0
  386. package/dist/cli-bundle/chunks/validate-L5J6A7YO.js.map +1 -0
  387. package/dist/cli-bundle/main.js +534 -1505
  388. package/dist/cli-bundle/main.js.map +4 -4
  389. package/dist/core/checkpoint/mutation-checkpoint.d.ts +44 -0
  390. package/dist/core/checkpoint/mutation-checkpoint.js +119 -0
  391. package/dist/core/checkpoint/mutation-checkpoint.js.map +1 -0
  392. package/dist/core/config/positional-value.js +4 -2
  393. package/dist/core/config/positional-value.js.map +1 -1
  394. package/dist/core/diagnostics/remediation.d.ts +73 -0
  395. package/dist/core/diagnostics/remediation.js +328 -0
  396. package/dist/core/diagnostics/remediation.js.map +1 -0
  397. package/dist/core/extensions/extension-hook-runtime.js +9 -2
  398. package/dist/core/extensions/extension-hook-runtime.js.map +1 -1
  399. package/dist/core/extensions/extension-types.d.ts +60 -4
  400. package/dist/core/extensions/extension-types.js +2 -2
  401. package/dist/core/extensions/extension-types.js.map +1 -1
  402. package/dist/core/extensions/index.d.ts +5 -1
  403. package/dist/core/extensions/index.js +61 -2
  404. package/dist/core/extensions/index.js.map +1 -1
  405. package/dist/core/extensions/item-fields.d.ts +5 -1
  406. package/dist/core/extensions/item-fields.js +126 -4
  407. package/dist/core/extensions/item-fields.js.map +1 -1
  408. package/dist/core/extensions/loader.js +283 -8
  409. package/dist/core/extensions/loader.js.map +1 -1
  410. package/dist/core/history/history-diff.d.ts +47 -0
  411. package/dist/core/history/history-diff.js +152 -0
  412. package/dist/core/history/history-diff.js.map +1 -0
  413. package/dist/core/history/history-storage-stats.d.ts +31 -0
  414. package/dist/core/history/history-storage-stats.js +101 -0
  415. package/dist/core/history/history-storage-stats.js.map +1 -0
  416. package/dist/core/item/item-format.d.ts +3 -2
  417. package/dist/core/item/item-format.js +15 -10
  418. package/dist/core/item/item-format.js.map +1 -1
  419. package/dist/core/item/status-filter.d.ts +29 -0
  420. package/dist/core/item/status-filter.js +97 -0
  421. package/dist/core/item/status-filter.js.map +1 -0
  422. package/dist/core/item/type-registry.js +4 -2
  423. package/dist/core/item/type-registry.js.map +1 -1
  424. package/dist/core/lock/lock-gc.d.ts +46 -0
  425. package/dist/core/lock/lock-gc.js +194 -0
  426. package/dist/core/lock/lock-gc.js.map +1 -0
  427. package/dist/core/output/output.js +17 -5
  428. package/dist/core/output/output.js.map +1 -1
  429. package/dist/core/schema/item-types-file.d.ts +15 -0
  430. package/dist/core/schema/item-types-file.js +27 -2
  431. package/dist/core/schema/item-types-file.js.map +1 -1
  432. package/dist/core/schema/runtime-field-filters.js +4 -3
  433. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  434. package/dist/core/schema/runtime-field-values.d.ts +1 -1
  435. package/dist/core/schema/runtime-field-values.js +10 -4
  436. package/dist/core/schema/runtime-field-values.js.map +1 -1
  437. package/dist/core/schema/runtime-schema.js +75 -2
  438. package/dist/core/schema/runtime-schema.js.map +1 -1
  439. package/dist/core/schema/status-defs-file.d.ts +113 -0
  440. package/dist/core/schema/status-defs-file.js +260 -0
  441. package/dist/core/schema/status-defs-file.js.map +1 -0
  442. package/dist/core/schema/type-workflows.d.ts +64 -0
  443. package/dist/core/schema/type-workflows.js +98 -0
  444. package/dist/core/schema/type-workflows.js.map +1 -0
  445. package/dist/core/search/cache.d.ts +3 -1
  446. package/dist/core/search/cache.js +104 -28
  447. package/dist/core/search/cache.js.map +1 -1
  448. package/dist/core/search/http-client.d.ts +2 -2
  449. package/dist/core/search/http-client.js +2 -2
  450. package/dist/core/search/http-client.js.map +1 -1
  451. package/dist/core/search/vector-stores.d.ts +1 -0
  452. package/dist/core/search/vector-stores.js +64 -14
  453. package/dist/core/search/vector-stores.js.map +1 -1
  454. package/dist/core/search/vectorization-metadata.d.ts +13 -0
  455. package/dist/core/search/vectorization-metadata.js +65 -0
  456. package/dist/core/search/vectorization-metadata.js.map +1 -0
  457. package/dist/core/shared/serial-queue.d.ts +12 -0
  458. package/dist/core/shared/serial-queue.js +43 -0
  459. package/dist/core/shared/serial-queue.js.map +1 -0
  460. package/dist/core/shared/serialization.d.ts +1 -0
  461. package/dist/core/shared/serialization.js +86 -2
  462. package/dist/core/shared/serialization.js.map +1 -1
  463. package/dist/core/store/front-matter-cache.js +14 -5
  464. package/dist/core/store/front-matter-cache.js.map +1 -1
  465. package/dist/core/store/item-store.d.ts +2 -0
  466. package/dist/core/store/item-store.js +61 -6
  467. package/dist/core/store/item-store.js.map +1 -1
  468. package/dist/core/store/settings-validator.js +18 -2
  469. package/dist/core/store/settings-validator.js.map +1 -1
  470. package/dist/core/store/settings.d.ts +19 -1
  471. package/dist/core/store/settings.js +130 -10
  472. package/dist/core/store/settings.js.map +1 -1
  473. package/dist/core/telemetry/consent.js +3 -3
  474. package/dist/core/telemetry/consent.js.map +1 -1
  475. package/dist/core/telemetry/observability.js +5 -4
  476. package/dist/core/telemetry/observability.js.map +1 -1
  477. package/dist/core/telemetry/runtime.js +16 -4
  478. package/dist/core/telemetry/runtime.js.map +1 -1
  479. package/dist/mcp/server.d.ts +1 -0
  480. package/dist/mcp/server.js +372 -45
  481. package/dist/mcp/server.js.map +1 -1
  482. package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -2
  483. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  484. package/dist/sdk/cli-contracts/commander-types.js +7 -2
  485. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  486. package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
  487. package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
  488. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  489. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -0
  490. package/dist/sdk/cli-contracts/tool-option-contracts.js +53 -3
  491. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  492. package/dist/sdk/cli-contracts/tool-parameter-tables.js +42 -10
  493. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  494. package/dist/sdk/cli-contracts.d.ts +42 -1
  495. package/dist/sdk/cli-contracts.js +225 -19
  496. package/dist/sdk/cli-contracts.js.map +1 -1
  497. package/dist/sdk/errors.d.ts +22 -0
  498. package/dist/sdk/errors.js +46 -0
  499. package/dist/sdk/errors.js.map +1 -0
  500. package/dist/sdk/index.d.ts +2 -1
  501. package/dist/sdk/index.js +3 -2
  502. package/dist/sdk/index.js.map +1 -1
  503. package/dist/sdk/package-import-adapters.js +14 -3
  504. package/dist/sdk/package-import-adapters.js.map +1 -1
  505. package/dist/sdk/runtime.d.ts +1 -0
  506. package/dist/sdk/runtime.js +3 -2
  507. package/dist/sdk/runtime.js.map +1 -1
  508. package/dist/sdk/testing.d.ts +77 -0
  509. package/dist/sdk/testing.js +239 -0
  510. package/dist/sdk/testing.js.map +1 -0
  511. package/dist/types.d.ts +19 -0
  512. package/dist/types.js +3 -2
  513. package/dist/types.js.map +1 -1
  514. package/docs/AGENT_GUIDE.md +22 -3
  515. package/docs/ARCHITECTURE.md +11 -1
  516. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  517. package/docs/COMMANDS.md +118 -7
  518. package/docs/CONFIGURATION.md +57 -2
  519. package/docs/EXTENSIONS.md +125 -6
  520. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +73 -0
  521. package/docs/ONBOARDING.md +165 -0
  522. package/docs/QUICKSTART.md +3 -1
  523. package/docs/README.md +12 -4
  524. package/docs/RELEASING.md +38 -3
  525. package/docs/SDK.md +273 -1
  526. package/docs/TESTING.md +36 -1
  527. package/docs/examples/policy-restricted-extension/manifest.json +1 -0
  528. package/docs/examples/starter-extension/index.js +9 -1
  529. package/docs/examples/starter-extension/manifest.json +1 -0
  530. package/package.json +16 -7
  531. package/packages/pm-beads/extensions/beads/index.js +2 -4
  532. package/packages/pm-beads/extensions/beads/index.ts +43 -33
  533. package/packages/pm-beads/extensions/beads/manifest.json +12 -1
  534. package/packages/pm-calendar/README.md +6 -0
  535. package/packages/pm-calendar/extensions/calendar/index.js +6 -1
  536. package/packages/pm-calendar/extensions/calendar/index.ts +6 -1
  537. package/packages/pm-calendar/extensions/calendar/manifest.json +6 -1
  538. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +6 -1
  539. package/packages/pm-guide-shell/README.md +4 -0
  540. package/packages/pm-guide-shell/extensions/guide-shell/index.js +22 -0
  541. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +22 -0
  542. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +6 -1
  543. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +74 -3
  544. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +84 -4
  545. package/packages/pm-lifecycle-hooks/README.md +29 -0
  546. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +18 -0
  547. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +20 -0
  548. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +9 -0
  549. package/packages/pm-lifecycle-hooks/package.json +52 -0
  550. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +13 -1
  551. package/packages/pm-search-advanced/extensions/search-advanced/index.js +69 -1
  552. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +91 -2
  553. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +13 -1
  554. package/packages/pm-templates/extensions/templates/manifest.json +6 -1
  555. package/packages/pm-todos/extensions/todos/index.js +3 -7
  556. package/packages/pm-todos/extensions/todos/index.ts +55 -42
  557. package/packages/pm-todos/extensions/todos/manifest.json +13 -1
  558. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  559. package/plugins/pm-claude/README.md +7 -4
  560. package/plugins/pm-claude/agents/pm-coordinator.md +1 -1
  561. package/plugins/pm-claude/commands/pm-init.md +1 -1
  562. package/scripts/bundle-cli.mjs +121 -17
  563. package/dist/cli-bundle/chunks/activity-OWYSUZOY.js +0 -17
  564. package/dist/cli-bundle/chunks/chunk-3M73P3G6.js.map +0 -7
  565. package/dist/cli-bundle/chunks/chunk-4AEZR5EJ.js +0 -189
  566. package/dist/cli-bundle/chunks/chunk-4AEZR5EJ.js.map +0 -7
  567. package/dist/cli-bundle/chunks/chunk-5HSEP75M.js.map +0 -7
  568. package/dist/cli-bundle/chunks/chunk-6HT2F4TK.js.map +0 -7
  569. package/dist/cli-bundle/chunks/chunk-7Y53ZJIQ.js.map +0 -7
  570. package/dist/cli-bundle/chunks/chunk-BUPWJ3IJ.js.map +0 -7
  571. package/dist/cli-bundle/chunks/chunk-EGUGFSNX.js +0 -47
  572. package/dist/cli-bundle/chunks/chunk-EGUGFSNX.js.map +0 -7
  573. package/dist/cli-bundle/chunks/chunk-FM26RGSU.js +0 -56
  574. package/dist/cli-bundle/chunks/chunk-FM26RGSU.js.map +0 -7
  575. package/dist/cli-bundle/chunks/chunk-FQE6XZDB.js.map +0 -7
  576. package/dist/cli-bundle/chunks/chunk-GN7IJPCD.js.map +0 -7
  577. package/dist/cli-bundle/chunks/chunk-JTWRXG4B.js.map +0 -7
  578. package/dist/cli-bundle/chunks/chunk-JULRTHJQ.js.map +0 -7
  579. package/dist/cli-bundle/chunks/chunk-LRBOHPUE.js.map +0 -7
  580. package/dist/cli-bundle/chunks/chunk-LSXGH6NE.js.map +0 -7
  581. package/dist/cli-bundle/chunks/chunk-MD7K4JYF.js.map +0 -7
  582. package/dist/cli-bundle/chunks/chunk-OGZEG5TT.js.map +0 -7
  583. package/dist/cli-bundle/chunks/chunk-P53TN6IA.js.map +0 -7
  584. package/dist/cli-bundle/chunks/chunk-PXUAZUUY.js.map +0 -7
  585. package/dist/cli-bundle/chunks/chunk-U7FMKRXH.js.map +0 -7
  586. package/dist/cli-bundle/chunks/chunk-VGICHR7D.js +0 -141
  587. package/dist/cli-bundle/chunks/chunk-VGICHR7D.js.map +0 -7
  588. package/dist/cli-bundle/chunks/chunk-WDPXDQFG.js.map +0 -7
  589. package/dist/cli-bundle/chunks/close-XY4CSAYF.js +0 -14
  590. package/dist/cli-bundle/chunks/config-V3FZOKLI.js.map +0 -7
  591. package/dist/cli-bundle/chunks/contracts-YLMH33VU.js.map +0 -7
  592. package/dist/cli-bundle/chunks/create-PZVHRIZQ.js +0 -28
  593. package/dist/cli-bundle/chunks/gc-JWNF66EC.js +0 -181
  594. package/dist/cli-bundle/chunks/gc-JWNF66EC.js.map +0 -7
  595. package/dist/cli-bundle/chunks/get-LTK3HOCQ.js.map +0 -7
  596. package/dist/cli-bundle/chunks/health-TCWL55KM.js.map +0 -7
  597. package/dist/cli-bundle/chunks/history-A2JUDXUE.js +0 -21
  598. package/dist/cli-bundle/chunks/history-redact-ED6RFCPL.js +0 -20
  599. package/dist/cli-bundle/chunks/init-M2WUB4YH.js +0 -16
  600. package/dist/cli-bundle/chunks/list-OGWQPC26.js +0 -20
  601. package/dist/cli-bundle/chunks/register-list-query-UP3VRUFS.js.map +0 -7
  602. package/dist/cli-bundle/chunks/register-mutation-YWSBF545.js.map +0 -7
  603. package/dist/cli-bundle/chunks/register-operations-3BDTGSDH.js.map +0 -7
  604. package/dist/cli-bundle/chunks/restore-MB2ISME7.js +0 -18
  605. package/dist/cli-bundle/chunks/schema-Q622KC46.js +0 -119
  606. package/dist/cli-bundle/chunks/schema-Q622KC46.js.map +0 -7
  607. package/dist/cli-bundle/chunks/search-HENBL456.js.map +0 -7
  608. package/dist/cli-bundle/chunks/stats-N6H3YP2F.js +0 -124
  609. package/dist/cli-bundle/chunks/stats-N6H3YP2F.js.map +0 -7
  610. package/dist/cli-bundle/chunks/test-VNBDRJ4Z.js +0 -32
  611. package/dist/cli-bundle/chunks/update-H6SCWNMA.js +0 -22
  612. package/dist/cli-bundle/chunks/update-many-46HRSP2Q.js.map +0 -7
  613. package/dist/cli-bundle/chunks/validate-TMCVKIGZ.js.map +0 -7
  614. /package/dist/cli-bundle/chunks/{activity-OWYSUZOY.js.map → activity-CVXTCHYY.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js.map → aggregate-VNAHUNNF.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js.map → chunk-BQHUILZS.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js.map → chunk-GU2ZJ2VV.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{chunk-AKOOMO3T.js.map → chunk-KAG77BY3.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js.map → chunk-KJ33AOCY.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js.map → chunk-N7ACFE26.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js.map → chunk-QO7EBBOM.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js.map → chunk-R6UFP2GE.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js.map → chunk-T3LC5LKB.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js.map → chunk-UM2GBHS4.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js.map → chunk-WKY2IBOQ.js.map} +0 -0
  626. /package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js.map → chunk-XLTD2HN3.js.map} +0 -0
  627. /package/dist/cli-bundle/chunks/{chunk-L2FXEKDB.js.map → chunk-YL2DJGYS.js.map} +0 -0
  628. /package/dist/cli-bundle/chunks/{close-XY4CSAYF.js.map → close-3HDWDA3L.js.map} +0 -0
  629. /package/dist/cli-bundle/chunks/{create-PZVHRIZQ.js.map → create-JTZNCTQC.js.map} +0 -0
  630. /package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js.map → extension-J7IBMFTD.js.map} +0 -0
  631. /package/dist/cli-bundle/chunks/{history-A2JUDXUE.js.map → history-2BA3T5AE.js.map} +0 -0
  632. /package/dist/cli-bundle/chunks/{history-redact-ED6RFCPL.js.map → history-redact-JBZNXHGR.js.map} +0 -0
  633. /package/dist/cli-bundle/chunks/{init-M2WUB4YH.js.map → init-HIVSNX3O.js.map} +0 -0
  634. /package/dist/cli-bundle/chunks/{list-OGWQPC26.js.map → list-MUSQNMTD.js.map} +0 -0
  635. /package/dist/cli-bundle/chunks/{restore-MB2ISME7.js.map → restore-D4RGNX33.js.map} +0 -0
  636. /package/dist/cli-bundle/chunks/{test-VNBDRJ4Z.js.map → test-MXX3E5JL.js.map} +0 -0
  637. /package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js.map → test-runs-WMVTQU3Y.js.map} +0 -0
  638. /package/dist/cli-bundle/chunks/{update-H6SCWNMA.js.map → update-YRXSUGYQ.js.map} +0 -0
@@ -1,5 +1,4 @@
1
1
  import {
2
- applyRegisteredItemFieldDefaultsAndValidation,
3
2
  assertNoLegacyNoneToken,
4
3
  assertNoLegacyNoneTokens,
5
4
  ensureEnumValue,
@@ -8,18 +7,15 @@ import {
8
7
  normalizeSeverityInput,
9
8
  parseConfidenceInput,
10
9
  parseDocs,
11
- parseEventBoolean,
10
+ parseEventEntries,
12
11
  parseFiles,
13
12
  parseLogSeed,
14
- parseRecurrenceRule,
15
13
  parseRegressionInput,
14
+ parseReminderEntries,
16
15
  parseTests,
17
- resolveEventEndAt,
16
+ parseTypeOptionEntries,
18
17
  resolvePriority
19
- } from "./chunk-JTWRXG4B.js";
20
- import {
21
- buildInvalidTypeError
22
- } from "./chunk-7Y53ZJIQ.js";
18
+ } from "./chunk-IJGCZSIQ.js";
23
19
  import {
24
20
  applyTagRemovals,
25
21
  createStdinTokenResolver,
@@ -27,29 +23,35 @@ import {
27
23
  parseCsvKv,
28
24
  parseOptionalNumber,
29
25
  parseTags
30
- } from "./chunk-NGN7UV5K.js";
26
+ } from "./chunk-XLTD2HN3.js";
31
27
  import {
32
28
  runClose
33
- } from "./chunk-G57E5D7T.js";
29
+ } from "./chunk-GU2ZJ2VV.js";
34
30
  import {
35
31
  normalizeParentReferenceValue,
36
32
  validateMissingParentReference,
37
33
  validateSprintOrReleaseValue
38
- } from "./chunk-AKOOMO3T.js";
34
+ } from "./chunk-KAG77BY3.js";
35
+ import {
36
+ buildInvalidTypeError
37
+ } from "./chunk-OVQCEJPG.js";
39
38
  import {
39
+ applyRegisteredItemFieldDefaultsAndValidation,
40
40
  buildItemNotFoundError,
41
+ collectRegisteredItemFieldNames,
41
42
  locateItem,
42
43
  mutateItem,
44
+ parseRegisteredItemFieldAssignments,
43
45
  readLocatedItem,
44
46
  toItemRecord
45
- } from "./chunk-BUPWJ3IJ.js";
47
+ } from "./chunk-XTGLRY2Y.js";
46
48
  import {
47
49
  normalizeItemId
48
- } from "./chunk-CEFIVZPG.js";
50
+ } from "./chunk-T3LC5LKB.js";
49
51
  import {
50
52
  collectRuntimeUpdateFieldValues,
51
53
  normalizeStatusInput
52
- } from "./chunk-MD7K4JYF.js";
54
+ } from "./chunk-AO442XLN.js";
53
55
  import {
54
56
  canonicalizeCommandOptionKey,
55
57
  commandOptionFlagLabel,
@@ -58,10 +60,10 @@ import {
58
60
  resolveTypeDefinition,
59
61
  resolveTypeName,
60
62
  validateTypeOptions
61
- } from "./chunk-WDPXDQFG.js";
63
+ } from "./chunk-KJE2FOS4.js";
62
64
  import {
63
65
  resolveIsoOrRelative
64
- } from "./chunk-PVNQLCIS.js";
66
+ } from "./chunk-QO7EBBOM.js";
65
67
  import {
66
68
  DEPENDENCY_KIND_VALUES,
67
69
  EXIT_CODE,
@@ -74,14 +76,95 @@ import {
74
76
  readSettings,
75
77
  resolvePmRoot,
76
78
  resolveRuntimeFieldRegistry,
77
- resolveRuntimeStatusRegistry
78
- } from "./chunk-LSXGH6NE.js";
79
+ resolveRuntimeStatusRegistry,
80
+ stableValueEquals
81
+ } from "./chunk-U5SXYXSY.js";
82
+
83
+ // dist/core/schema/type-workflows.js
84
+ !(function() {
85
+ try {
86
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
87
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "70ab7197-566b-52de-8a82-e432b324ad8d");
88
+ } catch (e2) {
89
+ }
90
+ })();
91
+ function normalizeStatusToken(value) {
92
+ return typeof value === "string" ? value.trim().toLowerCase().replaceAll(/[\s-]+/g, "_") : "";
93
+ }
94
+ function normalizeTypeName(value) {
95
+ return typeof value === "string" ? value.trim().toLowerCase() : "";
96
+ }
97
+ function resolveStatusId(value, statusRegistry) {
98
+ const token = normalizeStatusToken(value);
99
+ if (token.length === 0) {
100
+ return "";
101
+ }
102
+ return statusRegistry?.alias_to_id?.get(token) ?? token;
103
+ }
104
+ function resolveTypeWorkflows(schema) {
105
+ const rawWorkflows = Array.isArray(schema?.type_workflows) ? schema.type_workflows : [];
106
+ const byType = /* @__PURE__ */ new Map();
107
+ for (const entry of rawWorkflows) {
108
+ const type = normalizeTypeName(entry?.type);
109
+ if (type.length === 0) {
110
+ continue;
111
+ }
112
+ if (!Array.isArray(entry?.allowed_transitions)) {
113
+ continue;
114
+ }
115
+ const pairs = entry.allowed_transitions;
116
+ const record = byType.get(type) ?? { pairs: [], denyAll: false };
117
+ if (pairs.length === 0) {
118
+ record.denyAll = true;
119
+ }
120
+ for (const pair of pairs) {
121
+ if (!Array.isArray(pair) || pair.length !== 2) {
122
+ continue;
123
+ }
124
+ const from = normalizeStatusToken(pair[0]);
125
+ const to = normalizeStatusToken(pair[1]);
126
+ if (from.length === 0 || to.length === 0) {
127
+ continue;
128
+ }
129
+ if (record.pairs.some((candidate) => candidate[0] === from && candidate[1] === to)) {
130
+ continue;
131
+ }
132
+ record.pairs.push([from, to]);
133
+ }
134
+ byType.set(type, record);
135
+ }
136
+ return [...byType.entries()].filter(([, record]) => record.pairs.length > 0 || record.denyAll).map(([type, record]) => ({ type, allowed_transitions: record.pairs })).sort((left, right) => left.type.localeCompare(right.type));
137
+ }
138
+ function evaluateTransition(input) {
139
+ const typeName = normalizeTypeName(input.typeName);
140
+ const matched = input.typeWorkflows.find((workflow) => workflow.type === typeName);
141
+ if (!matched) {
142
+ return { allowed: true, hasRule: false, allowedTransitions: [] };
143
+ }
144
+ const from = resolveStatusId(input.fromStatus, input.statusRegistry);
145
+ const to = resolveStatusId(input.toStatus, input.statusRegistry);
146
+ if (from.length > 0 && from === to) {
147
+ return { allowed: true, hasRule: true, allowedTransitions: matched.allowed_transitions };
148
+ }
149
+ const allowed = matched.allowed_transitions.some((pair) => {
150
+ const ruleFrom = resolveStatusId(pair[0], input.statusRegistry);
151
+ const ruleTo = resolveStatusId(pair[1], input.statusRegistry);
152
+ return ruleFrom === from && ruleTo === to;
153
+ });
154
+ return { allowed, hasRule: true, allowedTransitions: matched.allowed_transitions };
155
+ }
156
+ function describeAllowedTransitions(allowedTransitions) {
157
+ if (allowedTransitions.length === 0) {
158
+ return "(no transitions allowed)";
159
+ }
160
+ return allowedTransitions.map((pair) => `${pair[0]} -> ${pair[1]}`).join(", ");
161
+ }
79
162
 
80
163
  // dist/cli/commands/update.js
81
164
  !(function() {
82
165
  try {
83
166
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
84
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "3722af32-cd81-5b1e-bc17-bdb1f3335754");
167
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "74fefeac-195a-595c-aa23-d38e5b855b84");
85
168
  } catch (e2) {
86
169
  }
87
170
  })();
@@ -309,7 +392,7 @@ function resolveRuntimeUnsetDefinition(token, runtimeFieldRegistry) {
309
392
  }
310
393
  return void 0;
311
394
  }
312
- function parseUpdateUnsetTargets(raw, runtimeFieldRegistry) {
395
+ function parseUpdateUnsetTargets(raw, runtimeFieldRegistry, extensionFieldNames = []) {
313
396
  const frontMatterKeys = /* @__PURE__ */ new Set();
314
397
  const optionKeys = /* @__PURE__ */ new Set();
315
398
  if (!raw || raw.length === 0) {
@@ -323,7 +406,11 @@ function parseUpdateUnsetTargets(raw, runtimeFieldRegistry) {
323
406
  if (isLegacyNoneToken(trimmed)) {
324
407
  throw new PmCliError('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline', EXIT_CODE.USAGE);
325
408
  }
326
- const definition = UPDATE_UNSET_ALIAS_MAP.get(trimmed) ?? resolveRuntimeUnsetDefinition(trimmed, runtimeFieldRegistry);
409
+ const extensionFieldName = extensionFieldNames.find((fieldName) => {
410
+ const normalizedFieldName = fieldName.toLowerCase();
411
+ return normalizedFieldName === trimmed || normalizedFieldName.replaceAll("_", "-") === trimmed || normalizedFieldName.replaceAll("-", "_") === trimmed;
412
+ });
413
+ const definition = UPDATE_UNSET_ALIAS_MAP.get(trimmed) ?? resolveRuntimeUnsetDefinition(trimmed, runtimeFieldRegistry) ?? (extensionFieldName ? { optionKey: "field", frontMatterKey: extensionFieldName } : void 0);
327
414
  if (!definition) {
328
415
  throw new PmCliError(`Unsupported --unset field "${entry}". Supported fields: ${UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS}`, EXIT_CODE.USAGE);
329
416
  }
@@ -522,98 +609,27 @@ function parseStatus(value, statusRegistry) {
522
609
  }
523
610
  return normalized;
524
611
  }
525
- function parseReminderEntries(raw, nowValue) {
526
- return raw.map((entry) => {
527
- const kv = parseCsvKv(entry, "--reminder");
528
- const atRaw = (kv.at ?? kv.date)?.trim();
529
- const textRaw = (kv.text ?? kv.title)?.trim();
530
- if (!atRaw || !textRaw) {
531
- throw new PmCliError("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>", EXIT_CODE.USAGE);
532
- }
533
- return {
534
- at: resolveIsoOrRelative(atRaw, nowValue, "reminder.at"),
535
- text: textRaw
536
- };
537
- });
538
- }
539
- function parseEventEntries(raw, nowValue) {
540
- return raw.map((entry) => {
541
- const kv = parseCsvKv(entry, "--event");
542
- const startRaw = (kv.start ?? kv.date)?.trim();
543
- if (!startRaw) {
544
- throw new PmCliError("--event requires start=<iso|relative> or date=<iso|relative>", EXIT_CODE.USAGE);
545
- }
546
- const startAt = resolveIsoOrRelative(startRaw, nowValue, "event.start");
547
- const endRaw = kv.end?.trim();
548
- const durationRaw = kv.duration?.trim();
549
- const endAt = resolveEventEndAt(startAt, endRaw, durationRaw, nowValue);
550
- const titleRaw = kv.title;
551
- const descriptionRaw = kv.description;
552
- const locationRaw = kv.location;
553
- const timezoneRaw = kv.timezone;
554
- const title = titleRaw?.trim();
555
- const description = descriptionRaw?.trim();
556
- const location = locationRaw?.trim();
557
- const timezone = timezoneRaw?.trim();
558
- if (titleRaw !== void 0 && !title) {
559
- throw new PmCliError("--event title must not be empty", EXIT_CODE.USAGE);
560
- }
561
- if (descriptionRaw !== void 0 && !description) {
562
- throw new PmCliError("--event description must not be empty", EXIT_CODE.USAGE);
563
- }
564
- if (locationRaw !== void 0 && !location) {
565
- throw new PmCliError("--event location must not be empty", EXIT_CODE.USAGE);
566
- }
567
- if (timezoneRaw !== void 0 && !timezone) {
568
- throw new PmCliError("--event timezone must not be empty", EXIT_CODE.USAGE);
569
- }
570
- const allDayRaw = kv.all_day?.trim();
571
- const recurrence = parseRecurrenceRule(kv, startAt, nowValue, "truthy");
572
- return {
573
- start_at: startAt,
574
- end_at: endAt,
575
- title,
576
- description,
577
- location,
578
- all_day: allDayRaw ? parseEventBoolean(allDayRaw, "--event all_day") : void 0,
579
- timezone,
580
- recurrence
581
- };
612
+ function enforceTypeWorkflowTransition(params) {
613
+ if (params.enforcement === "off" || params.typeWorkflows.length === 0) {
614
+ return void 0;
615
+ }
616
+ const result = evaluateTransition({
617
+ typeName: params.typeName,
618
+ fromStatus: params.fromStatus,
619
+ toStatus: params.toStatus,
620
+ typeWorkflows: params.typeWorkflows,
621
+ statusRegistry: params.statusRegistry
582
622
  });
583
- }
584
- function parseTypeOptionEntries(raw) {
585
- const values = {};
586
- for (const entry of raw) {
587
- const trimmedEntry = entry.trim();
588
- if (trimmedEntry.length === 0) {
589
- throw new PmCliError("--type-option values must not be empty", EXIT_CODE.USAGE);
590
- }
591
- let key;
592
- let value;
593
- const prefersStructuredKv = trimmedEntry.includes(",") || trimmedEntry.includes("\n") || trimmedEntry.startsWith("```") || /^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(trimmedEntry);
594
- if (prefersStructuredKv) {
595
- const kv = parseCsvKv(trimmedEntry, "--type-option");
596
- key = kv.key?.trim();
597
- value = kv.value?.trim();
598
- } else {
599
- const equalsIndex = trimmedEntry.indexOf("=");
600
- const colonIndex = trimmedEntry.indexOf(":");
601
- let separatorIndex = equalsIndex;
602
- if (equalsIndex <= 0 && colonIndex > 0) {
603
- separatorIndex = colonIndex;
604
- }
605
- if (separatorIndex <= 0 || separatorIndex === trimmedEntry.length - 1) {
606
- throw new PmCliError("--type-option requires key=value or key=<name>,value=<value> entries", EXIT_CODE.USAGE);
607
- }
608
- key = trimmedEntry.slice(0, separatorIndex).trim();
609
- value = trimmedEntry.slice(separatorIndex + 1).trim();
610
- }
611
- if (!key || !value) {
612
- throw new PmCliError("--type-option requires key and value", EXIT_CODE.USAGE);
613
- }
614
- values[key] = value;
623
+ if (!result.hasRule || result.allowed) {
624
+ return void 0;
625
+ }
626
+ const normalizedFrom = normalizeStatusInput(params.fromStatus, params.statusRegistry) ?? params.fromStatus;
627
+ const normalizedTo = normalizeStatusInput(params.toStatus, params.statusRegistry) ?? params.toStatus;
628
+ const message = `Disallowed transition for type "${params.typeName}": ${normalizedFrom} -> ${normalizedTo}. Allowed transitions: ${describeAllowedTransitions(result.allowedTransitions)}.`;
629
+ if (params.enforcement === "strict") {
630
+ throw new PmCliError(message, EXIT_CODE.USAGE);
615
631
  }
616
- return Object.fromEntries(Object.entries(values).sort((left, right) => left[0].localeCompare(right[0])));
632
+ return `workflow_transition_not_allowed: ${message}`;
617
633
  }
618
634
  function parseDependencyCreatedAt(value, currentIso) {
619
635
  if (!value || value.trim() === "" || value.trim().toLowerCase() === "now") {
@@ -635,9 +651,10 @@ function looksLikeStructuredDependencyEntry(raw) {
635
651
  if (raw.startsWith("```") || raw.includes("\n")) {
636
652
  return true;
637
653
  }
638
- return /^(?:[-*+]\s+)?(?:id|kind|author|created_at|source_kind)\s*[:=]/i.test(raw);
654
+ return /^(?:[-*+]\s+)?(?:id|kind|type|author|created_at|source_kind)\s*[:=]/i.test(raw);
639
655
  }
640
656
  var DEPENDENCY_KIND_INPUT_ALIASES = {
657
+ "blocked-by": "blocked_by",
641
658
  depends_on: "blocked_by",
642
659
  "depends-on": "blocked_by"
643
660
  };
@@ -658,7 +675,7 @@ function parseDependencyAdditions(raw, prefix, nowIso) {
658
675
  const trimmedEntry = entry.trim();
659
676
  const kv = looksLikeStructuredDependencyEntry(trimmedEntry) ? parseCsvKv(entry, "--dep") : { id: trimmedEntry, kind: "related" };
660
677
  const id = kv.id?.trim();
661
- const kind = normalizeDependencyKindInput(kv.kind?.trim());
678
+ const kind = normalizeDependencyKindInput((kv.kind ?? kv.type)?.trim());
662
679
  if (!id || !kind) {
663
680
  throw new PmCliError("--dep requires id and kind, or a bare item id to add a related dependency", EXIT_CODE.USAGE);
664
681
  }
@@ -686,7 +703,7 @@ function parseDependencyRemovals(raw, prefix) {
686
703
  if (!trimmed) {
687
704
  throw new PmCliError("--dep-remove requires id or key/value selectors", EXIT_CODE.USAGE);
688
705
  }
689
- if (trimmed.includes("=") || /^(?:[-*+]\s+)?(?:id|kind|source_kind)\s*[:=]/i.test(trimmed) || trimmed.startsWith("```")) {
706
+ if (trimmed.includes("=") || /^(?:[-*+]\s+)?(?:id|kind|type|source_kind)\s*[:=]/i.test(trimmed) || trimmed.startsWith("```")) {
690
707
  const kv = parseCsvKv(trimmed, "--dep-remove");
691
708
  const idRaw = kv.id?.trim();
692
709
  if (!idRaw) {
@@ -695,7 +712,7 @@ function parseDependencyRemovals(raw, prefix) {
695
712
  if (idRaw.toLowerCase() === "undefined") {
696
713
  throw new PmCliError(`--dep-remove id must not use placeholder token "${idRaw}"`, EXIT_CODE.USAGE);
697
714
  }
698
- const kindRaw = normalizeDependencyKindInput(parseOptionalDependencyString(kv.kind));
715
+ const kindRaw = normalizeDependencyKindInput(parseOptionalDependencyString(kv.kind ?? kv.type));
699
716
  const sourceKind = parseOptionalDependencyString(kv.source_kind);
700
717
  return {
701
718
  id: normalizeItemId(idRaw, prefix),
@@ -787,7 +804,7 @@ function normalizeUpdatePolicyOptionKey(raw, typeName) {
787
804
  }
788
805
  return canonical;
789
806
  }
790
- function collectProvidedUpdatePolicyOptions(options) {
807
+ function collectProvidedUpdatePolicyOptions(options, extensionFieldNames) {
791
808
  const provided = /* @__PURE__ */ new Set();
792
809
  const mark = (optionKey, isProvided) => {
793
810
  if (isProvided) {
@@ -850,6 +867,7 @@ function collectProvidedUpdatePolicyOptions(options) {
850
867
  mark("reminder", options.reminder !== void 0);
851
868
  mark("event", options.event !== void 0);
852
869
  mark("typeOption", options.typeOption !== void 0);
870
+ mark("field", options.field !== void 0);
853
871
  mark("force", options.force === true);
854
872
  mark("allowAuditUpdate", options.allowAuditUpdate === true);
855
873
  mark("dep", options.clearDeps === true);
@@ -863,14 +881,14 @@ function collectProvidedUpdatePolicyOptions(options) {
863
881
  mark("event", options.clearEvents === true);
864
882
  mark("typeOption", options.clearTypeOptions === true);
865
883
  if (options.unset && options.unset.length > 0) {
866
- const unsetTargets = parseUpdateUnsetTargets(options.unset);
884
+ const unsetTargets = parseUpdateUnsetTargets(options.unset, void 0, extensionFieldNames);
867
885
  for (const optionKey of unsetTargets.optionKeys) {
868
886
  mark(optionKey, true);
869
887
  }
870
888
  }
871
889
  return provided;
872
890
  }
873
- function enforceUpdateOptionsByType(typeName, options, typeRegistry) {
891
+ function enforceUpdateOptionsByType(typeName, options, typeRegistry, extensionFieldNames) {
874
892
  const typeDefinition = resolveTypeDefinition(typeName, typeRegistry);
875
893
  if (!typeDefinition) {
876
894
  throw new PmCliError(`Invalid type value "${typeName}"`, EXIT_CODE.USAGE);
@@ -879,7 +897,7 @@ function enforceUpdateOptionsByType(typeName, options, typeRegistry) {
879
897
  if (policyState.errors.length > 0) {
880
898
  throw new PmCliError(policyState.errors.join("; "), EXIT_CODE.CONFLICT);
881
899
  }
882
- const provided = collectProvidedUpdatePolicyOptions(options);
900
+ const provided = collectProvidedUpdatePolicyOptions(options, extensionFieldNames);
883
901
  for (const disabled of policyState.disabled) {
884
902
  if (provided.has(normalizeUpdatePolicyOptionKey(disabled, typeName))) {
885
903
  throw new PmCliError(`Option ${commandOptionFlagLabel("update", disabled)} is disabled for type "${typeName}" by command_option_policies`, EXIT_CODE.USAGE);
@@ -906,7 +924,8 @@ async function runUpdate(id, options, global2) {
906
924
  doc: await stdinResolver.resolveList(options.doc, "--doc"),
907
925
  reminder: await stdinResolver.resolveList(options.reminder, "--reminder"),
908
926
  event: await stdinResolver.resolveList(options.event, "--event"),
909
- typeOption: await stdinResolver.resolveList(options.typeOption, "--type-option")
927
+ typeOption: await stdinResolver.resolveList(options.typeOption, "--type-option"),
928
+ field: await stdinResolver.resolveList(options.field, "--field")
910
929
  });
911
930
  const pmRoot = resolvePmRoot(process.cwd(), global2.path);
912
931
  if (!await pathExists(getSettingsPath(pmRoot))) {
@@ -915,10 +934,14 @@ async function runUpdate(id, options, global2) {
915
934
  const settings = await readSettings(pmRoot);
916
935
  const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
917
936
  const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);
918
- const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
937
+ const extensionRegistrations = getActiveExtensionRegistrations();
938
+ const extensionFieldNames = collectRegisteredItemFieldNames(extensionRegistrations);
939
+ const typeRegistry = resolveItemTypeRegistry(settings, extensionRegistrations);
940
+ const workflowEnforcement = settings.governance.workflow_enforcement ?? "off";
941
+ const typeWorkflows = workflowEnforcement === "off" ? [] : resolveTypeWorkflows(settings.schema);
919
942
  const parentReferencePolicy = settings.validation.parent_reference;
920
943
  const sprintReleasePolicy = settings.validation.sprint_release_format;
921
- const unsetTargets = parseUpdateUnsetTargets(options.unset, runtimeFieldRegistry);
944
+ const unsetTargets = parseUpdateUnsetTargets(options.unset, runtimeFieldRegistry, extensionFieldNames);
922
945
  const clearOptionKeys = new Set(unsetTargets.optionKeys);
923
946
  const clearFrontMatterKeys = new Set(unsetTargets.frontMatterKeys);
924
947
  const clearCollectionDefinitions = [
@@ -1132,6 +1155,7 @@ async function runUpdate(id, options, global2) {
1132
1155
  const testUpdates = parseTests(options.test);
1133
1156
  const docUpdates = parseDocs(options.doc);
1134
1157
  const parentReferenceWarnings = [];
1158
+ const workflowTransitionWarnings = [];
1135
1159
  let resolvedParentValue;
1136
1160
  if (options.parent !== void 0 && !unsetTargets.frontMatterKeys.has("parent")) {
1137
1161
  resolvedParentValue = normalizeParentReferenceValue(options.parent);
@@ -1146,6 +1170,7 @@ async function runUpdate(id, options, global2) {
1146
1170
  if (blockedByResolution.unresolved !== void 0) {
1147
1171
  parentReferenceWarnings.push(`blocked_by_unresolved:${blockedByResolution.unresolved}`);
1148
1172
  }
1173
+ const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(options, runtimeFieldRegistry, options.runtimeFieldCommands);
1149
1174
  const fieldFlags = {
1150
1175
  title: options.title !== void 0,
1151
1176
  description: options.description !== void 0,
@@ -1204,6 +1229,7 @@ async function runUpdate(id, options, global2) {
1204
1229
  reminder: options.reminder !== void 0,
1205
1230
  event: options.event !== void 0,
1206
1231
  typeOption: options.typeOption !== void 0,
1232
+ field: options.field !== void 0,
1207
1233
  unset: options.unset !== void 0 && options.unset.length > 0,
1208
1234
  clearDeps: options.clearDeps === true,
1209
1235
  clearComments: options.clearComments === true,
@@ -1214,7 +1240,8 @@ async function runUpdate(id, options, global2) {
1214
1240
  clearDocs: options.clearDocs === true,
1215
1241
  clearReminders: options.clearReminders === true,
1216
1242
  clearEvents: options.clearEvents === true,
1217
- clearTypeOptions: options.clearTypeOptions === true
1243
+ clearTypeOptions: options.clearTypeOptions === true,
1244
+ runtimeFields: Object.keys(runtimeFieldUpdates).length > 0
1218
1245
  };
1219
1246
  const changedFlags = Object.values(fieldFlags).some(Boolean);
1220
1247
  if (!changedFlags) {
@@ -1229,6 +1256,25 @@ async function runUpdate(id, options, global2) {
1229
1256
  warnings: ["noop_no_update_fields"]
1230
1257
  };
1231
1258
  }
1259
+ if (workflowEnforcement !== "off" && typeWorkflows.length > 0 && fieldFlags.status && options.status !== void 0) {
1260
+ const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);
1261
+ if (!located) {
1262
+ throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);
1263
+ }
1264
+ const { document } = await readLocatedItem(located, { schema: settings.schema });
1265
+ const effectiveType = options.type !== void 0 ? resolveTypeName(options.type, typeRegistry) ?? options.type : document.metadata?.type ?? "";
1266
+ const warning = enforceTypeWorkflowTransition({
1267
+ enforcement: workflowEnforcement,
1268
+ typeWorkflows,
1269
+ statusRegistry,
1270
+ typeName: effectiveType,
1271
+ fromStatus: document.metadata?.status ?? "",
1272
+ toStatus: options.status ?? ""
1273
+ });
1274
+ if (warning) {
1275
+ workflowTransitionWarnings.push(warning);
1276
+ }
1277
+ }
1232
1278
  if (fieldFlags.status) {
1233
1279
  const targetStatus = normalizeStatusInput(options.status, statusRegistry);
1234
1280
  if (targetStatus === statusRegistry.close_status) {
@@ -1249,7 +1295,12 @@ async function runUpdate(id, options, global2) {
1249
1295
  message: options.message,
1250
1296
  force: options.force
1251
1297
  }, global2);
1252
- const warnings = [...routeWarnings, ...closeResult.warnings, "auto_routed_from_update_to_close"];
1298
+ const warnings = [
1299
+ ...workflowTransitionWarnings,
1300
+ ...routeWarnings,
1301
+ ...closeResult.warnings,
1302
+ "auto_routed_from_update_to_close"
1303
+ ];
1253
1304
  if (reasonDefaulted) {
1254
1305
  warnings.push("close_reason_defaulted");
1255
1306
  }
@@ -1273,6 +1324,7 @@ async function runUpdate(id, options, global2) {
1273
1324
  message: options.message,
1274
1325
  force: options.force,
1275
1326
  bypassAssigneeConflict: options.allowAuditUpdate === true || options.allowAuditDepUpdate === true,
1327
+ extensionFieldNames,
1276
1328
  mutate(document) {
1277
1329
  const changedFields = [];
1278
1330
  const warnings = [];
@@ -1342,7 +1394,7 @@ async function runUpdate(id, options, global2) {
1342
1394
  activeTypeName = resolvedTypeName;
1343
1395
  changedFields.push("type");
1344
1396
  }
1345
- enforceUpdateOptionsByType(activeTypeName, options, typeRegistry);
1397
+ enforceUpdateOptionsByType(activeTypeName, options, typeRegistry, extensionFieldNames);
1346
1398
  if (options.typeOption !== void 0 || clearFrontMatterKeys.has("type_options")) {
1347
1399
  if (clearFrontMatterKeys.has("type_options")) {
1348
1400
  delete document.metadata.type_options;
@@ -1581,7 +1633,7 @@ async function runUpdate(id, options, global2) {
1581
1633
  if (clearFrontMatterKeys.has("reminders")) {
1582
1634
  delete document.metadata.reminders;
1583
1635
  } else {
1584
- document.metadata.reminders = parseReminderEntries(options.reminder, nowValue);
1636
+ document.metadata.reminders = parseReminderEntries(options.reminder, nowValue, { valueMode: "trimmed" });
1585
1637
  }
1586
1638
  changedFields.push("reminders");
1587
1639
  }
@@ -1589,7 +1641,10 @@ async function runUpdate(id, options, global2) {
1589
1641
  if (clearFrontMatterKeys.has("events")) {
1590
1642
  delete document.metadata.events;
1591
1643
  } else {
1592
- document.metadata.events = parseEventEntries(options.event, nowValue);
1644
+ document.metadata.events = parseEventEntries(options.event, nowValue, {
1645
+ allDayEmptyGuard: "truthy",
1646
+ recurrenceEmptyNumericGuard: "truthy"
1647
+ });
1593
1648
  }
1594
1649
  changedFields.push("events");
1595
1650
  }
@@ -1603,19 +1658,42 @@ async function runUpdate(id, options, global2) {
1603
1658
  delete metadataRecord[definition.metadata_key];
1604
1659
  changedFields.push(definition.metadata_key);
1605
1660
  }
1606
- const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(options, runtimeFieldRegistry);
1661
+ for (const fieldKey of extensionFieldNames) {
1662
+ if (!clearFrontMatterKeys.has(fieldKey)) {
1663
+ continue;
1664
+ }
1665
+ if (metadataRecord[fieldKey] === void 0) {
1666
+ continue;
1667
+ }
1668
+ delete metadataRecord[fieldKey];
1669
+ changedFields.push(fieldKey);
1670
+ }
1607
1671
  for (const [fieldKey, fieldValue] of Object.entries(runtimeFieldUpdates)) {
1608
1672
  if (clearFrontMatterKeys.has(fieldKey)) {
1609
1673
  continue;
1610
1674
  }
1611
- if (JSON.stringify(metadataRecord[fieldKey]) === JSON.stringify(fieldValue)) {
1675
+ if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {
1676
+ continue;
1677
+ }
1678
+ metadataRecord[fieldKey] = fieldValue;
1679
+ changedFields.push(fieldKey);
1680
+ }
1681
+ const registeredItemFieldUpdates = parseRegisteredItemFieldAssignments(options.field, extensionRegistrations);
1682
+ for (const fieldKey of Object.keys(registeredItemFieldUpdates)) {
1683
+ if (!clearFrontMatterKeys.has(fieldKey)) {
1684
+ continue;
1685
+ }
1686
+ throw new PmCliError(`Cannot combine --unset ${fieldKey.replaceAll("_", "-")} with --field ${fieldKey}=...`, EXIT_CODE.USAGE);
1687
+ }
1688
+ for (const [fieldKey, fieldValue] of Object.entries(registeredItemFieldUpdates)) {
1689
+ if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {
1612
1690
  continue;
1613
1691
  }
1614
1692
  metadataRecord[fieldKey] = fieldValue;
1615
1693
  changedFields.push(fieldKey);
1616
1694
  }
1617
1695
  try {
1618
- applyRegisteredItemFieldDefaultsAndValidation(metadataRecord, getActiveExtensionRegistrations());
1696
+ applyRegisteredItemFieldDefaultsAndValidation(metadataRecord, extensionRegistrations, { skipDefaultFields: clearFrontMatterKeys });
1619
1697
  } catch (error) {
1620
1698
  throw new PmCliError(error instanceof Error ? error.message : "Invalid extension item field values", EXIT_CODE.USAGE);
1621
1699
  }
@@ -1625,7 +1703,7 @@ async function runUpdate(id, options, global2) {
1625
1703
  return {
1626
1704
  item: toItemRecord(result.item),
1627
1705
  changed_fields: result.changedFields,
1628
- warnings: [...parentReferenceWarnings, ...result.warnings],
1706
+ warnings: [...workflowTransitionWarnings, ...parentReferenceWarnings, ...result.warnings],
1629
1707
  ...options.allowAuditUpdate === true || options.allowAuditDepUpdate === true ? { audit_update: true } : {}
1630
1708
  };
1631
1709
  }
@@ -1633,4 +1711,4 @@ async function runUpdate(id, options, global2) {
1633
1711
  export {
1634
1712
  runUpdate
1635
1713
  };
1636
- //# sourceMappingURL=chunk-3M73P3G6.js.map
1714
+ //# sourceMappingURL=chunk-23YFZ3IG.js.map