@unbrained/pm-cli 2026.7.3 → 2026.7.4

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 (461) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/CONTRIBUTING.md +36 -7
  3. package/README.md +0 -4
  4. package/dist/cli/commands/calendar.js +3 -3
  5. package/dist/cli/commands/calendar.js.map +1 -1
  6. package/dist/cli/commands/completion.js +231 -345
  7. package/dist/cli/commands/completion.js.map +1 -1
  8. package/dist/cli/commands/create.d.ts +2 -59
  9. package/dist/cli/commands/create.js +8 -24
  10. package/dist/cli/commands/create.js.map +1 -1
  11. package/dist/cli/commands/extension/scaffold.js +54 -133
  12. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  13. package/dist/cli/commands/files.js +3 -3
  14. package/dist/cli/commands/files.js.map +1 -1
  15. package/dist/cli/commands/history-compact.js +9 -18
  16. package/dist/cli/commands/history-compact.js.map +1 -1
  17. package/dist/cli/commands/history-repair.js +9 -19
  18. package/dist/cli/commands/history-repair.js.map +1 -1
  19. package/dist/cli/commands/init-agent-guidance.js +133 -97
  20. package/dist/cli/commands/init-agent-guidance.js.map +1 -1
  21. package/dist/cli/commands/init.js +3 -3
  22. package/dist/cli/commands/init.js.map +1 -1
  23. package/dist/cli/commands/item-filter-options.d.ts +2 -0
  24. package/dist/cli/commands/item-filter-options.js +2 -2
  25. package/dist/cli/commands/item-filter-options.js.map +1 -1
  26. package/dist/cli/commands/mutation-command-options.d.ts +78 -0
  27. package/dist/cli/commands/mutation-command-options.js +10 -0
  28. package/dist/cli/commands/mutation-command-options.js.map +1 -0
  29. package/dist/cli/commands/reindex.js +3 -3
  30. package/dist/cli/commands/reindex.js.map +1 -1
  31. package/dist/cli/commands/shared-unset-fields.d.ts +19 -0
  32. package/dist/cli/commands/shared-unset-fields.js +31 -2
  33. package/dist/cli/commands/shared-unset-fields.js.map +1 -1
  34. package/dist/cli/commands/update.d.ts +2 -59
  35. package/dist/cli/commands/update.js +26 -97
  36. package/dist/cli/commands/update.js.map +1 -1
  37. package/dist/cli/commands/validate.js +4 -4
  38. package/dist/cli/commands/validate.js.map +1 -1
  39. package/dist/cli/register-list-query.js +4 -2
  40. package/dist/cli/register-list-query.js.map +1 -1
  41. package/dist/cli/registration-helpers.js +12 -6
  42. package/dist/cli/registration-helpers.js.map +1 -1
  43. package/dist/cli-bundle/chunks/activity-IDS5GSYG.js +16 -0
  44. package/dist/cli-bundle/chunks/{activity-5YWLSPGE.js → activity-OENQCYZD.js} +9 -9
  45. package/dist/cli-bundle/chunks/{aggregate-2V2M3JZU.js → aggregate-EC4LWS3U.js} +8 -8
  46. package/dist/cli-bundle/chunks/{aggregate-EK7DXML7.js → aggregate-RCB3QJJE.js} +8 -8
  47. package/dist/cli-bundle/chunks/{append-JFG4WQMG.js → append-ADBOI3A6.js} +6 -6
  48. package/dist/cli-bundle/chunks/{append-EZESUVJT.js → append-XLEKVVWB.js} +6 -6
  49. package/dist/cli-bundle/chunks/{chunk-NOIEVOK5.js → chunk-2LRMWMZ6.js} +7 -7
  50. package/dist/cli-bundle/chunks/{chunk-LBE5QFMZ.js → chunk-2ONH3WG6.js} +32 -13
  51. package/dist/cli-bundle/chunks/{chunk-LBE5QFMZ.js.map → chunk-2ONH3WG6.js.map} +1 -1
  52. package/dist/cli-bundle/chunks/{chunk-4EXFFP7T.js → chunk-2VK677OA.js} +42 -34
  53. package/dist/cli-bundle/chunks/chunk-2VK677OA.js.map +7 -0
  54. package/dist/cli-bundle/chunks/{chunk-JBZ2NTKX.js → chunk-3C5T3ZEO.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-4PFVUUYV.js → chunk-3MLQZI3H.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-5JIWFWOZ.js → chunk-4EVY7CQN.js} +2 -2
  57. package/dist/cli-bundle/chunks/{chunk-AIKU3IIL.js → chunk-4IW7STMB.js} +7 -7
  58. package/dist/cli-bundle/chunks/{chunk-MHRS5FUX.js → chunk-4KPQQ42D.js} +143 -100
  59. package/dist/cli-bundle/chunks/chunk-4KPQQ42D.js.map +1 -0
  60. package/dist/cli-bundle/chunks/{chunk-T6AXEBOP.js → chunk-4OXNQHKQ.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-F6WNBITZ.js → chunk-4PJYRA3V.js} +31 -12
  62. package/dist/cli-bundle/chunks/{chunk-F6WNBITZ.js.map → chunk-4PJYRA3V.js.map} +3 -3
  63. package/dist/cli-bundle/chunks/{chunk-QCDTQCMW.js → chunk-4SHME4VR.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-WYOIIFSE.js → chunk-5FYY76HR.js} +28 -99
  65. package/dist/cli-bundle/chunks/chunk-5FYY76HR.js.map +7 -0
  66. package/dist/cli-bundle/chunks/{chunk-QNNQAAZ5.js → chunk-6QY2NA2M.js} +3 -3
  67. package/dist/cli-bundle/chunks/{chunk-T3P7PMZP.js → chunk-6YB7HG2J.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-YVKZ3ANP.js → chunk-724VLYDJ.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-SYE6WMV6.js → chunk-75VMARGO.js} +11 -11
  70. package/dist/cli-bundle/chunks/chunk-75VMARGO.js.map +1 -0
  71. package/dist/cli-bundle/chunks/{chunk-RAHINBVP.js → chunk-7745CXNI.js} +62 -97
  72. package/dist/cli-bundle/chunks/chunk-7745CXNI.js.map +7 -0
  73. package/dist/cli-bundle/chunks/{chunk-LCWQP6NM.js → chunk-7G5SUU6F.js} +6 -6
  74. package/dist/cli-bundle/chunks/{chunk-MDHWWBNZ.js → chunk-7ITQSEBL.js} +3 -3
  75. package/dist/cli-bundle/chunks/{chunk-ZFTKYWIF.js → chunk-A222YWOQ.js} +7 -7
  76. package/dist/cli-bundle/chunks/{chunk-6NYJGMTY.js → chunk-A2W3XKAD.js} +2 -2
  77. package/dist/cli-bundle/chunks/{chunk-YSDFIY7N.js → chunk-AOP2EMK3.js} +3 -3
  78. package/dist/cli-bundle/chunks/{chunk-U3S2B7TA.js → chunk-AZMPKLIA.js} +42 -34
  79. package/dist/cli-bundle/chunks/chunk-AZMPKLIA.js.map +1 -0
  80. package/dist/cli-bundle/chunks/{chunk-KHVGM5CS.js → chunk-BDDYM4LH.js} +151 -171
  81. package/dist/cli-bundle/chunks/chunk-BDDYM4LH.js.map +7 -0
  82. package/dist/cli-bundle/chunks/{chunk-6KRFL33E.js → chunk-CN4OAA2G.js} +4 -4
  83. package/dist/cli-bundle/chunks/{chunk-3W2HJKJX.js → chunk-CQFZRLXQ.js} +3 -3
  84. package/dist/cli-bundle/chunks/{chunk-K5DT2YKM.js → chunk-CQISNF3Z.js} +7 -7
  85. package/dist/cli-bundle/chunks/{chunk-5IZUBZBR.js → chunk-D2LDM35X.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-NZ7QIUP5.js → chunk-DEIDJQZK.js} +57 -136
  87. package/dist/cli-bundle/chunks/chunk-DEIDJQZK.js.map +7 -0
  88. package/dist/cli-bundle/chunks/{chunk-YPWUSH72.js → chunk-DJ5S2LDY.js} +7 -7
  89. package/dist/cli-bundle/chunks/{chunk-Z5F6XZXE.js → chunk-EB4BBEZD.js} +6 -6
  90. package/dist/cli-bundle/chunks/{chunk-ERG65A2L.js → chunk-EH23N5FX.js} +2 -2
  91. package/dist/cli-bundle/chunks/{chunk-SU2E4AWU.js → chunk-FDNJMYZB.js} +6 -6
  92. package/dist/cli-bundle/chunks/{chunk-CXR3CMBQ.js → chunk-FMWQRMHS.js} +2 -2
  93. package/dist/cli-bundle/chunks/{chunk-T4XBKJ3F.js → chunk-HL742IBM.js} +4 -4
  94. package/dist/cli-bundle/chunks/{chunk-YF746GTH.js → chunk-J4KNRDI3.js} +6 -6
  95. package/dist/cli-bundle/chunks/{chunk-KS6ATO47.js → chunk-JYLFF7GJ.js} +143 -100
  96. package/dist/cli-bundle/chunks/chunk-JYLFF7GJ.js.map +7 -0
  97. package/dist/cli-bundle/chunks/{chunk-BI4R7HI2.js → chunk-JZJJEJBR.js} +6 -6
  98. package/dist/cli-bundle/chunks/{chunk-XRYSCRZR.js → chunk-KKHIQOTN.js} +4 -4
  99. package/dist/cli-bundle/chunks/{chunk-572FKBRL.js → chunk-LLQLLAKU.js} +61 -96
  100. package/dist/cli-bundle/chunks/chunk-LLQLLAKU.js.map +1 -0
  101. package/dist/cli-bundle/chunks/{chunk-6CDCWKSX.js → chunk-M34MVAOP.js} +58 -137
  102. package/dist/cli-bundle/chunks/chunk-M34MVAOP.js.map +1 -0
  103. package/dist/cli-bundle/chunks/{chunk-WJA3PXW7.js → chunk-M6PR5BC6.js} +4 -4
  104. package/dist/cli-bundle/chunks/{chunk-HQAF23Q2.js → chunk-MTB4PRA3.js} +10 -10
  105. package/dist/cli-bundle/chunks/chunk-MTB4PRA3.js.map +7 -0
  106. package/dist/cli-bundle/chunks/{chunk-5E7N4T2Z.js → chunk-MZ4NH46V.js} +2 -2
  107. package/dist/cli-bundle/chunks/{chunk-AJHYQCBJ.js → chunk-MZG6I2Q2.js} +2 -2
  108. package/dist/cli-bundle/chunks/{chunk-P5L7Z2O6.js → chunk-N2LOJUBB.js} +2 -2
  109. package/dist/cli-bundle/chunks/{chunk-WRYERRZX.js → chunk-NGDK3KEZ.js} +5 -5
  110. package/dist/cli-bundle/chunks/{chunk-HB4FAT3O.js → chunk-NHDR3UCW.js} +12 -8
  111. package/dist/cli-bundle/chunks/{chunk-HB4FAT3O.js.map → chunk-NHDR3UCW.js.map} +2 -2
  112. package/dist/cli-bundle/chunks/{chunk-YSGTMDWC.js → chunk-NHKXOMZ5.js} +2 -2
  113. package/dist/cli-bundle/chunks/{chunk-FZJM2TXF.js → chunk-OTSP6UEX.js} +7 -7
  114. package/dist/cli-bundle/chunks/{chunk-LOWVNZBZ.js → chunk-PUVPC5DL.js} +4 -4
  115. package/dist/cli-bundle/chunks/{chunk-Z7RPDF2Y.js → chunk-PV5JS7MP.js} +3 -3
  116. package/dist/cli-bundle/chunks/{chunk-KEZOIPCR.js → chunk-Q2266G4S.js} +3 -3
  117. package/dist/cli-bundle/chunks/{chunk-67LARBDL.js → chunk-Q3XVLRCJ.js} +9 -9
  118. package/dist/cli-bundle/chunks/{chunk-RJH5VQHW.js → chunk-QFXFKYNQ.js} +13 -9
  119. package/dist/cli-bundle/chunks/chunk-QFXFKYNQ.js.map +1 -0
  120. package/dist/cli-bundle/chunks/{chunk-PULUSQAV.js → chunk-R7EMP4JG.js} +9 -9
  121. package/dist/cli-bundle/chunks/{chunk-JPATY4SE.js → chunk-SBNT6SLO.js} +5 -5
  122. package/dist/cli-bundle/chunks/{chunk-L4SLHV6G.js → chunk-SL2ANJSV.js} +151 -171
  123. package/dist/cli-bundle/chunks/chunk-SL2ANJSV.js.map +1 -0
  124. package/dist/cli-bundle/chunks/{chunk-FH2H3CBD.js → chunk-T5RTYLZJ.js} +3 -3
  125. package/dist/cli-bundle/chunks/{chunk-U5TR4N7J.js → chunk-TGYDJEJH.js} +4 -4
  126. package/dist/cli-bundle/chunks/{chunk-ER4ME5U2.js → chunk-TO4KCIOT.js} +3 -3
  127. package/dist/cli-bundle/chunks/{chunk-FUFFPIYA.js → chunk-TUV7SIWZ.js} +2 -2
  128. package/dist/cli-bundle/chunks/{chunk-TQ6AX5SQ.js → chunk-UGDONITK.js} +6 -6
  129. package/dist/cli-bundle/chunks/{chunk-4WB6S4YX.js → chunk-UYLA5ROU.js} +4 -4
  130. package/dist/cli-bundle/chunks/{chunk-A3OQ7TFW.js → chunk-V655JQ5J.js} +6 -6
  131. package/dist/cli-bundle/chunks/{chunk-SU3TB4NS.js → chunk-W5X3AHJN.js} +2 -2
  132. package/dist/cli-bundle/chunks/{chunk-32IUNTG4.js → chunk-WBWRQS32.js} +5 -5
  133. package/dist/cli-bundle/chunks/{chunk-UMNQZS4H.js → chunk-WOOB7PV7.js} +3 -3
  134. package/dist/cli-bundle/chunks/{chunk-EQURFOMH.js → chunk-WSDIALO4.js} +2 -2
  135. package/dist/cli-bundle/chunks/{chunk-MEZZZBYX.js → chunk-WTXDLBSZ.js} +2 -2
  136. package/dist/cli-bundle/chunks/{chunk-7LYO6S5A.js → chunk-XBIYI23P.js} +6 -6
  137. package/dist/cli-bundle/chunks/{chunk-ECU6MMTQ.js → chunk-XFO2NJY6.js} +29 -100
  138. package/dist/cli-bundle/chunks/chunk-XFO2NJY6.js.map +1 -0
  139. package/dist/cli-bundle/chunks/{chunk-OGLGI22K.js → chunk-XQCWTSLO.js} +4 -4
  140. package/dist/cli-bundle/chunks/{chunk-7CLLC75T.js → chunk-Y2VSCQ77.js} +4 -4
  141. package/dist/cli-bundle/chunks/{chunk-GVJE5T7Q.js → chunk-YZR7UMZ6.js} +2 -2
  142. package/dist/cli-bundle/chunks/{chunk-EJ2OCBHF.js → chunk-YZWXMDNH.js} +5 -5
  143. package/dist/cli-bundle/chunks/{chunk-GUYNUXQT.js → chunk-ZIEGTQCY.js} +3 -3
  144. package/dist/cli-bundle/chunks/{chunk-BE2SR6QL.js → chunk-ZZWMJVW2.js} +4 -4
  145. package/dist/cli-bundle/chunks/{claim-5GU7OE67.js → claim-D6L33A5Y.js} +8 -8
  146. package/dist/cli-bundle/chunks/{claim-2BGBGSVI.js → claim-YAFUTPVK.js} +8 -8
  147. package/dist/cli-bundle/chunks/close-KLDLHAOP.js +14 -0
  148. package/dist/cli-bundle/chunks/{close-AFVKPR57.js → close-TGYXG7TV.js} +7 -7
  149. package/dist/cli-bundle/chunks/{close-many-7KLOSYLP.js → close-many-4QSWKCRU.js} +14 -14
  150. package/dist/cli-bundle/chunks/{close-many-JKUJMHLG.js → close-many-SNA6LNZH.js} +14 -14
  151. package/dist/cli-bundle/chunks/{comments-DNWHEBOS.js → comments-QC6ARR5X.js} +8 -8
  152. package/dist/cli-bundle/chunks/{comments-RW23R3VE.js → comments-ZHVYGUVC.js} +8 -8
  153. package/dist/cli-bundle/chunks/{config-AUM5WBYA.js → config-O6W2EU2G.js} +7 -7
  154. package/dist/cli-bundle/chunks/{config-OZWSA2NP.js → config-XQRFJXJP.js} +7 -7
  155. package/dist/cli-bundle/chunks/{context-PKCEHQY3.js → context-IHE3IXN5.js} +12 -12
  156. package/dist/cli-bundle/chunks/{context-OYXRGY7S.js → context-WSYWBEUL.js} +12 -12
  157. package/dist/cli-bundle/chunks/{contracts-X74F2GSM.js → contracts-CVBINC7C.js} +3 -3
  158. package/dist/cli-bundle/chunks/{contracts-L6ODXNUM.js → contracts-NLCDIZAT.js} +3 -3
  159. package/dist/cli-bundle/chunks/{copy-I4NCLBR4.js → copy-7MUQC44A.js} +5 -5
  160. package/dist/cli-bundle/chunks/{copy-6XOR3HKN.js → copy-ANWXDJVC.js} +5 -5
  161. package/dist/cli-bundle/chunks/create-AJ6HUR5W.js +28 -0
  162. package/dist/cli-bundle/chunks/{create-PM45M6PE.js → create-JIA2IFCO.js} +12 -12
  163. package/dist/cli-bundle/chunks/{delete-7YXHYG67.js → delete-5OLYWQIC.js} +5 -5
  164. package/dist/cli-bundle/chunks/{delete-LPISP43T.js → delete-INHKCIRN.js} +5 -5
  165. package/dist/cli-bundle/chunks/{deps-N2T26FME.js → deps-CCSWGZW7.js} +5 -5
  166. package/dist/cli-bundle/chunks/{deps-WATKQDE3.js → deps-IYEID3QX.js} +5 -5
  167. package/dist/cli-bundle/chunks/{docs-Z3X6JZLT.js → docs-3XZK22WF.js} +7 -7
  168. package/dist/cli-bundle/chunks/{docs-6LQ3GLM7.js → docs-PKO7OEIM.js} +7 -7
  169. package/dist/cli-bundle/chunks/{eval-6DCLG52D.js → eval-5XYP6NMY.js} +10 -10
  170. package/dist/cli-bundle/chunks/{eval-Y3ZCUTHK.js → eval-O4WGQYDI.js} +10 -10
  171. package/dist/cli-bundle/chunks/{extension-QWE4YYK5.js → extension-PVGRRZZG.js} +11 -11
  172. package/dist/cli-bundle/chunks/{extension-BNINIMT7.js → extension-T7JNTAAA.js} +11 -11
  173. package/dist/cli-bundle/chunks/{files-6SGKHS6O.js → files-7IU56S6R.js} +10 -10
  174. package/dist/cli-bundle/chunks/files-7IU56S6R.js.map +1 -0
  175. package/dist/cli-bundle/chunks/{files-FUYPSOFJ.js → files-W7HH5EOD.js} +9 -9
  176. package/dist/cli-bundle/chunks/{files-FUYPSOFJ.js.map → files-W7HH5EOD.js.map} +1 -1
  177. package/dist/cli-bundle/chunks/{focus-2Q3K76G2.js → focus-6FA5KYRY.js} +6 -6
  178. package/dist/cli-bundle/chunks/{focus-ATLBWXXD.js → focus-CQ63JFDG.js} +6 -6
  179. package/dist/cli-bundle/chunks/{gc-RUYEMNRF.js → gc-3BG67KTO.js} +3 -3
  180. package/dist/cli-bundle/chunks/{gc-TDWSDR66.js → gc-PEZYGNVB.js} +3 -3
  181. package/dist/cli-bundle/chunks/{get-LY6M2JIM.js → get-J6CSJ4SX.js} +10 -10
  182. package/dist/cli-bundle/chunks/{get-2WGLX74N.js → get-KJTKGNEQ.js} +10 -10
  183. package/dist/cli-bundle/chunks/{health-4RKHYS3T.js → health-32UQICEL.js} +15 -15
  184. package/dist/cli-bundle/chunks/{health-TMFVNYRA.js → health-ZUZG5ULV.js} +15 -15
  185. package/dist/cli-bundle/chunks/history-IOH6FKG7.js +18 -0
  186. package/dist/cli-bundle/chunks/{history-SGRRS72R.js → history-W6QVR6FA.js} +8 -8
  187. package/dist/cli-bundle/chunks/{history-compact-V5DNAQHH.js → history-compact-F355EGL4.js} +20 -27
  188. package/dist/cli-bundle/chunks/history-compact-F355EGL4.js.map +1 -0
  189. package/dist/cli-bundle/chunks/{history-compact-LOED43R3.js → history-compact-JQ6ZGYSJ.js} +19 -26
  190. package/dist/cli-bundle/chunks/history-compact-JQ6ZGYSJ.js.map +7 -0
  191. package/dist/cli-bundle/chunks/{history-redact-IRL7WJ3E.js → history-redact-TUWOUYX5.js} +9 -9
  192. package/dist/cli-bundle/chunks/history-redact-VVDOARNO.js +19 -0
  193. package/dist/cli-bundle/chunks/{history-repair-4WVBVHFR.js → history-repair-MPCAIKYE.js} +20 -28
  194. package/dist/cli-bundle/chunks/history-repair-MPCAIKYE.js.map +1 -0
  195. package/dist/cli-bundle/chunks/{history-repair-PGYQJMGD.js → history-repair-ZKS3LKPV.js} +19 -27
  196. package/dist/cli-bundle/chunks/history-repair-ZKS3LKPV.js.map +7 -0
  197. package/dist/cli-bundle/chunks/init-CZLEEE6Q.js +22 -0
  198. package/dist/cli-bundle/chunks/{init-4GESW7RM.js → init-MAA6UMNQ.js} +12 -12
  199. package/dist/cli-bundle/chunks/{learnings-4FJY7WIW.js → learnings-EYC3OKS2.js} +8 -8
  200. package/dist/cli-bundle/chunks/{learnings-4BHWFFUV.js → learnings-HKJJUVTA.js} +8 -8
  201. package/dist/cli-bundle/chunks/{list-D7BF5CL2.js → list-HFD5737R.js} +8 -8
  202. package/dist/cli-bundle/chunks/{list-472TIOVK.js → list-KN3TL5Y5.js} +8 -8
  203. package/dist/cli-bundle/chunks/{next-SFQZVX2B.js → next-DQUMFAHG.js} +13 -13
  204. package/dist/cli-bundle/chunks/{next-D5STGWI2.js → next-JUEYC5HE.js} +13 -13
  205. package/dist/cli-bundle/chunks/{notes-W4UEICGF.js → notes-XATYT43P.js} +8 -8
  206. package/dist/cli-bundle/chunks/{notes-6KNOSLIT.js → notes-ZG6RLZXB.js} +8 -8
  207. package/dist/cli-bundle/chunks/{plan-JO6V7BXO.js → plan-5NWQL2DH.js} +12 -12
  208. package/dist/cli-bundle/chunks/{plan-MJQW5XK3.js → plan-DVVLX7LK.js} +12 -12
  209. package/dist/cli-bundle/chunks/{profile-WIQY2KCV.js → profile-54DZ4CLB.js} +8 -8
  210. package/dist/cli-bundle/chunks/{profile-3TOTMUR4.js → profile-PLIQVEOY.js} +8 -8
  211. package/dist/cli-bundle/chunks/{register-list-query-GAPQ6DM3.js → register-list-query-PNRAHNIQ.js} +21 -21
  212. package/dist/cli-bundle/chunks/{register-list-query-ELBHCCFI.js.map → register-list-query-PNRAHNIQ.js.map} +1 -7
  213. package/dist/cli-bundle/chunks/{register-list-query-ELBHCCFI.js → register-list-query-WRS6ACUW.js} +20 -20
  214. package/dist/cli-bundle/chunks/register-list-query-WRS6ACUW.js.map +7 -0
  215. package/dist/cli-bundle/chunks/{register-mutation-ROFE2YPC.js → register-mutation-ET6E4VLE.js} +32 -32
  216. package/dist/cli-bundle/chunks/{register-mutation-SJWMVIJ2.js → register-mutation-K2MNRWGI.js} +32 -32
  217. package/dist/cli-bundle/chunks/{register-operations-MEKU3AKC.js → register-operations-6DQRUTIX.js} +30 -30
  218. package/dist/cli-bundle/chunks/{register-operations-IADFVH53.js → register-operations-73UDWMVB.js} +30 -30
  219. package/dist/cli-bundle/chunks/{register-setup-3QJY43CY.js → register-setup-FXZJ2CEJ.js} +15 -15
  220. package/dist/cli-bundle/chunks/{register-setup-AJWUSSQX.js → register-setup-LYYCMQFV.js} +15 -15
  221. package/dist/cli-bundle/chunks/restore-L27TMMCF.js +17 -0
  222. package/dist/cli-bundle/chunks/{restore-44IHMMZZ.js → restore-R6YJHQK3.js} +9 -9
  223. package/dist/cli-bundle/chunks/{scheduling-shortcuts-OLHNLAZY.js → scheduling-shortcuts-LE4S7OI7.js} +12 -12
  224. package/dist/cli-bundle/chunks/{scheduling-shortcuts-TSBK4AY5.js → scheduling-shortcuts-OGODPUBL.js} +12 -12
  225. package/dist/cli-bundle/chunks/{schema-VBCELP5G.js → schema-ICCD3HOP.js} +7 -7
  226. package/dist/cli-bundle/chunks/{schema-IB2NZZWD.js → schema-RHH23PQX.js} +7 -7
  227. package/dist/cli-bundle/chunks/{search-R227JOL6.js → search-HDDKOPFE.js} +10 -10
  228. package/dist/cli-bundle/chunks/{search-7UBETML4.js → search-Z2VGP2Q5.js} +10 -10
  229. package/dist/cli-bundle/chunks/{stats-MCK7PLYS.js → stats-DHMRXHOB.js} +6 -6
  230. package/dist/cli-bundle/chunks/{stats-FAG7COEH.js → stats-ETFP37MB.js} +6 -6
  231. package/dist/cli-bundle/chunks/{telemetry-GVVUQSJQ.js → telemetry-NUZNKDCP.js} +4 -4
  232. package/dist/cli-bundle/chunks/{telemetry-DRPDZMAO.js → telemetry-ZRBM22QD.js} +4 -4
  233. package/dist/cli-bundle/chunks/{test-SY76DZTO.js → test-H36PM746.js} +15 -15
  234. package/dist/cli-bundle/chunks/{test-QY44WAMR.js → test-XNKTIP4Y.js} +15 -15
  235. package/dist/cli-bundle/chunks/{test-all-USPJHXFR.js → test-all-APCBSXQI.js} +15 -15
  236. package/dist/cli-bundle/chunks/{test-all-QD6QAEG7.js → test-all-KIK3OYBY.js} +15 -15
  237. package/dist/cli-bundle/chunks/{test-runs-QIR5MJPL.js → test-runs-5SLLV3XU.js} +4 -4
  238. package/dist/cli-bundle/chunks/{test-runs-MG5VIGSK.js → test-runs-L3WKLO67.js} +4 -4
  239. package/dist/cli-bundle/chunks/update-RQKI3AMW.js +24 -0
  240. package/dist/cli-bundle/chunks/{update-IKJZWLQC.js → update-ZM7NJWHY.js} +15 -15
  241. package/dist/cli-bundle/chunks/{update-many-BEMTDA2X.js → update-many-GFCQG6ZQ.js} +22 -22
  242. package/dist/cli-bundle/chunks/{update-many-RATAARHU.js → update-many-XGTJ7QIU.js} +22 -22
  243. package/dist/cli-bundle/chunks/{upgrade-VU46BLJZ.js → upgrade-KJ3JGELR.js} +11 -11
  244. package/dist/cli-bundle/chunks/{upgrade-NWMR3VQL.js → upgrade-RBRQ7PQU.js} +11 -11
  245. package/dist/cli-bundle/chunks/{validate-NRY6MFXN.js → validate-EW6TGC7R.js} +21 -21
  246. package/dist/cli-bundle/chunks/validate-EW6TGC7R.js.map +7 -0
  247. package/dist/cli-bundle/chunks/{validate-GAJ6FUSI.js → validate-T6PR5WAL.js} +22 -22
  248. package/dist/cli-bundle/chunks/validate-T6PR5WAL.js.map +1 -0
  249. package/dist/cli-bundle/main.js +15 -15
  250. package/dist/core/extensions/extension-types.d.ts +1 -2
  251. package/dist/core/extensions/extension-types.js +2 -2
  252. package/dist/core/extensions/extension-types.js.map +1 -1
  253. package/dist/core/history/history-rewrite.d.ts +10 -0
  254. package/dist/core/history/history-rewrite.js +27 -3
  255. package/dist/core/history/history-rewrite.js.map +1 -1
  256. package/dist/core/item/type-registry.d.ts +1 -0
  257. package/dist/core/item/type-registry.js +153 -177
  258. package/dist/core/item/type-registry.js.map +1 -1
  259. package/dist/sdk/cli-contracts/flag-contracts.js +4 -2
  260. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  261. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  262. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  263. package/dist/sdk/cli-contracts/tool-schema.js +55 -94
  264. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  265. package/dist/sdk/package-import-adapters.d.ts +90 -2
  266. package/dist/sdk/package-import-adapters.js +274 -2
  267. package/dist/sdk/package-import-adapters.js.map +1 -1
  268. package/dist/sdk/runtime.d.ts +1 -1
  269. package/dist/sdk/runtime.js +3 -3
  270. package/dist/sdk/runtime.js.map +1 -1
  271. package/package.json +4 -3
  272. package/packages/pm-beads/extensions/beads/runtime-loader.ts +27 -40
  273. package/packages/pm-beads/extensions/beads/runtime.ts +106 -223
  274. package/packages/pm-calendar/extensions/calendar/runtime.ts +21 -18
  275. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +9 -11
  276. package/packages/pm-todos/extensions/todos/runtime-loader.ts +48 -76
  277. package/packages/pm-todos/extensions/todos/runtime.ts +61 -257
  278. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +73 -31
  279. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +80 -34
  280. package/scripts/install.ps1 +7 -7
  281. package/dist/cli-bundle/chunks/activity-BIML7K2D.js +0 -16
  282. package/dist/cli-bundle/chunks/chunk-4EXFFP7T.js.map +0 -7
  283. package/dist/cli-bundle/chunks/chunk-572FKBRL.js.map +0 -1
  284. package/dist/cli-bundle/chunks/chunk-6CDCWKSX.js.map +0 -1
  285. package/dist/cli-bundle/chunks/chunk-ECU6MMTQ.js.map +0 -1
  286. package/dist/cli-bundle/chunks/chunk-HQAF23Q2.js.map +0 -7
  287. package/dist/cli-bundle/chunks/chunk-KHVGM5CS.js.map +0 -7
  288. package/dist/cli-bundle/chunks/chunk-KS6ATO47.js.map +0 -7
  289. package/dist/cli-bundle/chunks/chunk-L4SLHV6G.js.map +0 -1
  290. package/dist/cli-bundle/chunks/chunk-MHRS5FUX.js.map +0 -1
  291. package/dist/cli-bundle/chunks/chunk-NZ7QIUP5.js.map +0 -7
  292. package/dist/cli-bundle/chunks/chunk-RAHINBVP.js.map +0 -7
  293. package/dist/cli-bundle/chunks/chunk-RJH5VQHW.js.map +0 -1
  294. package/dist/cli-bundle/chunks/chunk-SYE6WMV6.js.map +0 -1
  295. package/dist/cli-bundle/chunks/chunk-U3S2B7TA.js.map +0 -1
  296. package/dist/cli-bundle/chunks/chunk-WYOIIFSE.js.map +0 -7
  297. package/dist/cli-bundle/chunks/close-6YODBUIV.js +0 -14
  298. package/dist/cli-bundle/chunks/create-Z7YCH3BE.js +0 -28
  299. package/dist/cli-bundle/chunks/files-6SGKHS6O.js.map +0 -1
  300. package/dist/cli-bundle/chunks/history-CGNQJXFE.js +0 -18
  301. package/dist/cli-bundle/chunks/history-compact-LOED43R3.js.map +0 -7
  302. package/dist/cli-bundle/chunks/history-compact-V5DNAQHH.js.map +0 -1
  303. package/dist/cli-bundle/chunks/history-redact-N3JK7VBW.js +0 -19
  304. package/dist/cli-bundle/chunks/history-repair-4WVBVHFR.js.map +0 -1
  305. package/dist/cli-bundle/chunks/history-repair-PGYQJMGD.js.map +0 -7
  306. package/dist/cli-bundle/chunks/init-XIDPABA4.js +0 -22
  307. package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js.map +0 -1
  308. package/dist/cli-bundle/chunks/restore-EXHU34EU.js +0 -17
  309. package/dist/cli-bundle/chunks/update-A7EICML6.js +0 -24
  310. package/dist/cli-bundle/chunks/validate-GAJ6FUSI.js.map +0 -1
  311. package/dist/cli-bundle/chunks/validate-NRY6MFXN.js.map +0 -7
  312. /package/dist/cli-bundle/chunks/{activity-BIML7K2D.js.map → activity-IDS5GSYG.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{activity-5YWLSPGE.js.map → activity-OENQCYZD.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{aggregate-2V2M3JZU.js.map → aggregate-EC4LWS3U.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{aggregate-EK7DXML7.js.map → aggregate-RCB3QJJE.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{append-JFG4WQMG.js.map → append-ADBOI3A6.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{append-EZESUVJT.js.map → append-XLEKVVWB.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-NOIEVOK5.js.map → chunk-2LRMWMZ6.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-JBZ2NTKX.js.map → chunk-3C5T3ZEO.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-4PFVUUYV.js.map → chunk-3MLQZI3H.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-5JIWFWOZ.js.map → chunk-4EVY7CQN.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-AIKU3IIL.js.map → chunk-4IW7STMB.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-T6AXEBOP.js.map → chunk-4OXNQHKQ.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-QCDTQCMW.js.map → chunk-4SHME4VR.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-QNNQAAZ5.js.map → chunk-6QY2NA2M.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-T3P7PMZP.js.map → chunk-6YB7HG2J.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-YVKZ3ANP.js.map → chunk-724VLYDJ.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-LCWQP6NM.js.map → chunk-7G5SUU6F.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-MDHWWBNZ.js.map → chunk-7ITQSEBL.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-ZFTKYWIF.js.map → chunk-A222YWOQ.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-6NYJGMTY.js.map → chunk-A2W3XKAD.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-YSDFIY7N.js.map → chunk-AOP2EMK3.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-6KRFL33E.js.map → chunk-CN4OAA2G.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-3W2HJKJX.js.map → chunk-CQFZRLXQ.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-K5DT2YKM.js.map → chunk-CQISNF3Z.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-5IZUBZBR.js.map → chunk-D2LDM35X.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-YPWUSH72.js.map → chunk-DJ5S2LDY.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-Z5F6XZXE.js.map → chunk-EB4BBEZD.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-ERG65A2L.js.map → chunk-EH23N5FX.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-SU2E4AWU.js.map → chunk-FDNJMYZB.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-CXR3CMBQ.js.map → chunk-FMWQRMHS.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-T4XBKJ3F.js.map → chunk-HL742IBM.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-YF746GTH.js.map → chunk-J4KNRDI3.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-BI4R7HI2.js.map → chunk-JZJJEJBR.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-XRYSCRZR.js.map → chunk-KKHIQOTN.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-WJA3PXW7.js.map → chunk-M6PR5BC6.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-5E7N4T2Z.js.map → chunk-MZ4NH46V.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-AJHYQCBJ.js.map → chunk-MZG6I2Q2.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-P5L7Z2O6.js.map → chunk-N2LOJUBB.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-WRYERRZX.js.map → chunk-NGDK3KEZ.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-YSGTMDWC.js.map → chunk-NHKXOMZ5.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-FZJM2TXF.js.map → chunk-OTSP6UEX.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-LOWVNZBZ.js.map → chunk-PUVPC5DL.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-Z7RPDF2Y.js.map → chunk-PV5JS7MP.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-KEZOIPCR.js.map → chunk-Q2266G4S.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-67LARBDL.js.map → chunk-Q3XVLRCJ.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-PULUSQAV.js.map → chunk-R7EMP4JG.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-JPATY4SE.js.map → chunk-SBNT6SLO.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-FH2H3CBD.js.map → chunk-T5RTYLZJ.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-U5TR4N7J.js.map → chunk-TGYDJEJH.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-ER4ME5U2.js.map → chunk-TO4KCIOT.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-FUFFPIYA.js.map → chunk-TUV7SIWZ.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-TQ6AX5SQ.js.map → chunk-UGDONITK.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-4WB6S4YX.js.map → chunk-UYLA5ROU.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-A3OQ7TFW.js.map → chunk-V655JQ5J.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-SU3TB4NS.js.map → chunk-W5X3AHJN.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{chunk-32IUNTG4.js.map → chunk-WBWRQS32.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-UMNQZS4H.js.map → chunk-WOOB7PV7.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-EQURFOMH.js.map → chunk-WSDIALO4.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-MEZZZBYX.js.map → chunk-WTXDLBSZ.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-7LYO6S5A.js.map → chunk-XBIYI23P.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-OGLGI22K.js.map → chunk-XQCWTSLO.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-7CLLC75T.js.map → chunk-Y2VSCQ77.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-GVJE5T7Q.js.map → chunk-YZR7UMZ6.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-EJ2OCBHF.js.map → chunk-YZWXMDNH.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-GUYNUXQT.js.map → chunk-ZIEGTQCY.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-BE2SR6QL.js.map → chunk-ZZWMJVW2.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{claim-5GU7OE67.js.map → claim-D6L33A5Y.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{claim-2BGBGSVI.js.map → claim-YAFUTPVK.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{close-6YODBUIV.js.map → close-KLDLHAOP.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{close-AFVKPR57.js.map → close-TGYXG7TV.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{close-many-7KLOSYLP.js.map → close-many-4QSWKCRU.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{close-many-JKUJMHLG.js.map → close-many-SNA6LNZH.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{comments-DNWHEBOS.js.map → comments-QC6ARR5X.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{comments-RW23R3VE.js.map → comments-ZHVYGUVC.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{config-AUM5WBYA.js.map → config-O6W2EU2G.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{config-OZWSA2NP.js.map → config-XQRFJXJP.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{context-PKCEHQY3.js.map → context-IHE3IXN5.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{context-OYXRGY7S.js.map → context-WSYWBEUL.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{contracts-X74F2GSM.js.map → contracts-CVBINC7C.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{contracts-L6ODXNUM.js.map → contracts-NLCDIZAT.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{copy-I4NCLBR4.js.map → copy-7MUQC44A.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{copy-6XOR3HKN.js.map → copy-ANWXDJVC.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{create-Z7YCH3BE.js.map → create-AJ6HUR5W.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{create-PM45M6PE.js.map → create-JIA2IFCO.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{delete-7YXHYG67.js.map → delete-5OLYWQIC.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{delete-LPISP43T.js.map → delete-INHKCIRN.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{deps-N2T26FME.js.map → deps-CCSWGZW7.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{deps-WATKQDE3.js.map → deps-IYEID3QX.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{docs-Z3X6JZLT.js.map → docs-3XZK22WF.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{docs-6LQ3GLM7.js.map → docs-PKO7OEIM.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{eval-6DCLG52D.js.map → eval-5XYP6NMY.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{eval-Y3ZCUTHK.js.map → eval-O4WGQYDI.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{extension-QWE4YYK5.js.map → extension-PVGRRZZG.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{extension-BNINIMT7.js.map → extension-T7JNTAAA.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{focus-2Q3K76G2.js.map → focus-6FA5KYRY.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{focus-ATLBWXXD.js.map → focus-CQ63JFDG.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{gc-RUYEMNRF.js.map → gc-3BG67KTO.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{gc-TDWSDR66.js.map → gc-PEZYGNVB.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{get-LY6M2JIM.js.map → get-J6CSJ4SX.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{get-2WGLX74N.js.map → get-KJTKGNEQ.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{health-4RKHYS3T.js.map → health-32UQICEL.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{health-TMFVNYRA.js.map → health-ZUZG5ULV.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{history-CGNQJXFE.js.map → history-IOH6FKG7.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{history-SGRRS72R.js.map → history-W6QVR6FA.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{history-redact-IRL7WJ3E.js.map → history-redact-TUWOUYX5.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{history-redact-N3JK7VBW.js.map → history-redact-VVDOARNO.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{init-XIDPABA4.js.map → init-CZLEEE6Q.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{init-4GESW7RM.js.map → init-MAA6UMNQ.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{learnings-4FJY7WIW.js.map → learnings-EYC3OKS2.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{learnings-4BHWFFUV.js.map → learnings-HKJJUVTA.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{list-D7BF5CL2.js.map → list-HFD5737R.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{list-472TIOVK.js.map → list-KN3TL5Y5.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{next-SFQZVX2B.js.map → next-DQUMFAHG.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{next-D5STGWI2.js.map → next-JUEYC5HE.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{notes-W4UEICGF.js.map → notes-XATYT43P.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{notes-6KNOSLIT.js.map → notes-ZG6RLZXB.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{plan-JO6V7BXO.js.map → plan-5NWQL2DH.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{plan-MJQW5XK3.js.map → plan-DVVLX7LK.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{profile-WIQY2KCV.js.map → profile-54DZ4CLB.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{profile-3TOTMUR4.js.map → profile-PLIQVEOY.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{register-mutation-ROFE2YPC.js.map → register-mutation-ET6E4VLE.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{register-mutation-SJWMVIJ2.js.map → register-mutation-K2MNRWGI.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{register-operations-MEKU3AKC.js.map → register-operations-6DQRUTIX.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{register-operations-IADFVH53.js.map → register-operations-73UDWMVB.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{register-setup-3QJY43CY.js.map → register-setup-FXZJ2CEJ.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{register-setup-AJWUSSQX.js.map → register-setup-LYYCMQFV.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{restore-EXHU34EU.js.map → restore-L27TMMCF.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{restore-44IHMMZZ.js.map → restore-R6YJHQK3.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-OLHNLAZY.js.map → scheduling-shortcuts-LE4S7OI7.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-TSBK4AY5.js.map → scheduling-shortcuts-OGODPUBL.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{schema-VBCELP5G.js.map → schema-ICCD3HOP.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{schema-IB2NZZWD.js.map → schema-RHH23PQX.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{search-R227JOL6.js.map → search-HDDKOPFE.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{search-7UBETML4.js.map → search-Z2VGP2Q5.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{stats-MCK7PLYS.js.map → stats-DHMRXHOB.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{stats-FAG7COEH.js.map → stats-ETFP37MB.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{telemetry-GVVUQSJQ.js.map → telemetry-NUZNKDCP.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{telemetry-DRPDZMAO.js.map → telemetry-ZRBM22QD.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{test-SY76DZTO.js.map → test-H36PM746.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{test-QY44WAMR.js.map → test-XNKTIP4Y.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{test-all-USPJHXFR.js.map → test-all-APCBSXQI.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{test-all-QD6QAEG7.js.map → test-all-KIK3OYBY.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{test-runs-QIR5MJPL.js.map → test-runs-5SLLV3XU.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{test-runs-MG5VIGSK.js.map → test-runs-L3WKLO67.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{update-A7EICML6.js.map → update-RQKI3AMW.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{update-IKJZWLQC.js.map → update-ZM7NJWHY.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{update-many-BEMTDA2X.js.map → update-many-GFCQG6ZQ.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{update-many-RATAARHU.js.map → update-many-XGTJ7QIU.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{upgrade-VU46BLJZ.js.map → upgrade-KJ3JGELR.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{upgrade-NWMR3VQL.js.map → upgrade-RBRQ7PQU.js.map} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Defines item parsing, formatting, and lifecycle helpers for Type Registry.
5
5
  */
6
6
 
7
- !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]="e9e27e2d-967c-5e17-8266-d661f65b78ac")}catch(e){}}();
7
+ !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]="563d02b1-6a96-539c-9e2c-dc118aa5dd72")}catch(e){}}();
8
8
  import { TYPE_TO_FOLDER } from "../shared/constants.js";
9
9
  import { ITEM_TYPE_VALUES } from "../../types/index.js";
10
10
  import { normalizeItemTypeDefinition as normalizeSharedItemTypeDefinition, normalizeItemTypeStringList, strictPolicyCommand, } from "./item-type-definition.js";
@@ -25,7 +25,7 @@ export const DEFAULT_REQUIRED_CREATE_FIELDS = [
25
25
  export const DEFAULT_REQUIRED_CREATE_REPEATABLES = ["dep", "comment", "note", "learning", "file", "test", "doc"];
26
26
  // Keep aligned with cli/commands/shared-unset-fields.ts. This core registry
27
27
  // cannot import CLI unset metadata without creating a core -> CLI dependency.
28
- const COMMON_MUTATION_COMMAND_OPTION_KEYS = [
28
+ export const COMMON_MUTATION_COMMAND_OPTION_KEYS = [
29
29
  "deadline",
30
30
  "estimatedMinutes",
31
31
  "acceptanceCriteria",
@@ -152,116 +152,85 @@ const UPDATE_COMMAND_OPTION_ALIASES = {
152
152
  "allow-audit-update": "allowAuditUpdate",
153
153
  allow_audit_update: "allowAuditUpdate",
154
154
  };
155
- const CREATE_COMMAND_OPTION_FLAG_LABELS = {
156
- title: "--title",
157
- description: "--description",
158
- type: "--type",
159
- status: "--status",
160
- priority: "--priority",
161
- tags: "--tags",
162
- body: "--body",
163
- deadline: "--deadline",
164
- estimatedMinutes: "--estimate/--estimated-minutes",
165
- acceptanceCriteria: "--acceptance-criteria/--ac",
166
- definitionOfReady: "--definition-of-ready",
167
- order: "--order/--rank",
168
- goal: "--goal",
169
- objective: "--objective",
170
- value: "--value",
171
- impact: "--impact",
172
- outcome: "--outcome",
173
- whyNow: "--why-now",
174
- author: "--author",
175
- message: "--message",
176
- assignee: "--assignee",
177
- parent: "--parent",
178
- reviewer: "--reviewer",
179
- risk: "--risk",
180
- confidence: "--confidence",
181
- sprint: "--sprint",
182
- release: "--release",
183
- blockedBy: "--blocked-by",
184
- blockedReason: "--blocked-reason",
185
- unblockNote: "--unblock-note",
186
- reporter: "--reporter",
187
- severity: "--severity",
188
- environment: "--environment",
189
- reproSteps: "--repro-steps",
190
- resolution: "--resolution",
191
- expectedResult: "--expected-result",
192
- actualResult: "--actual-result",
193
- affectedVersion: "--affected-version",
194
- fixedVersion: "--fixed-version",
195
- component: "--component",
196
- regression: "--regression",
197
- customerImpact: "--customer-impact",
198
- dep: "--dep",
199
- comment: "--comment",
200
- note: "--note",
201
- learning: "--learning",
202
- file: "--file",
203
- test: "--test",
204
- doc: "--doc",
205
- reminder: "--reminder",
206
- event: "--event",
207
- typeOption: "--type-option",
208
- };
209
- const UPDATE_COMMAND_OPTION_FLAG_LABELS = {
210
- title: "--title",
211
- description: "--description",
212
- body: "--body",
213
- status: "--status",
214
- closeReason: "--close-reason",
215
- priority: "--priority",
216
- type: "--type",
217
- tags: "--tags",
218
- deadline: "--deadline",
219
- estimatedMinutes: "--estimate/--estimated-minutes",
220
- acceptanceCriteria: "--acceptance-criteria/--ac",
221
- definitionOfReady: "--definition-of-ready",
222
- order: "--order/--rank",
223
- goal: "--goal",
224
- objective: "--objective",
225
- value: "--value",
226
- impact: "--impact",
227
- outcome: "--outcome",
228
- whyNow: "--why-now",
229
- assignee: "--assignee",
230
- parent: "--parent",
231
- reviewer: "--reviewer",
232
- risk: "--risk",
233
- confidence: "--confidence",
234
- sprint: "--sprint",
235
- release: "--release",
236
- blockedBy: "--blocked-by",
237
- blockedReason: "--blocked-reason",
238
- unblockNote: "--unblock-note",
239
- reporter: "--reporter",
240
- severity: "--severity",
241
- environment: "--environment",
242
- reproSteps: "--repro-steps",
243
- resolution: "--resolution",
244
- expectedResult: "--expected-result",
245
- actualResult: "--actual-result",
246
- affectedVersion: "--affected-version",
247
- fixedVersion: "--fixed-version",
248
- component: "--component",
249
- regression: "--regression",
250
- customerImpact: "--customer-impact",
251
- comment: "--comment",
252
- note: "--note",
253
- learning: "--learning",
254
- file: "--file",
255
- test: "--test",
256
- doc: "--doc",
257
- reminder: "--reminder",
258
- event: "--event",
259
- typeOption: "--type-option",
260
- allowAuditUpdate: "--allow-audit-update",
261
- author: "--author",
262
- message: "--message",
263
- force: "--force",
264
- };
155
+ const COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [
156
+ ["deadline", "--deadline"],
157
+ ["estimatedMinutes", "--estimate/--estimated-minutes"],
158
+ ["acceptanceCriteria", "--acceptance-criteria/--ac"],
159
+ ["definitionOfReady", "--definition-of-ready"],
160
+ ["order", "--order/--rank"],
161
+ ["goal", "--goal"],
162
+ ["objective", "--objective"],
163
+ ["value", "--value"],
164
+ ["impact", "--impact"],
165
+ ["outcome", "--outcome"],
166
+ ["whyNow", "--why-now"],
167
+ ["assignee", "--assignee"],
168
+ ["parent", "--parent"],
169
+ ["reviewer", "--reviewer"],
170
+ ["risk", "--risk"],
171
+ ["confidence", "--confidence"],
172
+ ["sprint", "--sprint"],
173
+ ["release", "--release"],
174
+ ["blockedBy", "--blocked-by"],
175
+ ["blockedReason", "--blocked-reason"],
176
+ ["unblockNote", "--unblock-note"],
177
+ ["reporter", "--reporter"],
178
+ ["severity", "--severity"],
179
+ ["environment", "--environment"],
180
+ ["reproSteps", "--repro-steps"],
181
+ ["resolution", "--resolution"],
182
+ ["expectedResult", "--expected-result"],
183
+ ["actualResult", "--actual-result"],
184
+ ["affectedVersion", "--affected-version"],
185
+ ["fixedVersion", "--fixed-version"],
186
+ ["component", "--component"],
187
+ ["regression", "--regression"],
188
+ ["customerImpact", "--customer-impact"],
189
+ ];
190
+ const LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [
191
+ ["comment", "--comment"],
192
+ ["note", "--note"],
193
+ ["learning", "--learning"],
194
+ ["file", "--file"],
195
+ ["test", "--test"],
196
+ ["doc", "--doc"],
197
+ ["reminder", "--reminder"],
198
+ ["event", "--event"],
199
+ ["typeOption", "--type-option"],
200
+ ];
201
+ function commandOptionLabelMap(entries) {
202
+ return Object.fromEntries(entries);
203
+ }
204
+ const CREATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([
205
+ ["title", "--title"],
206
+ ["description", "--description"],
207
+ ["type", "--type"],
208
+ ["status", "--status"],
209
+ ["priority", "--priority"],
210
+ ["tags", "--tags"],
211
+ ["body", "--body"],
212
+ ...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
213
+ ["author", "--author"],
214
+ ["message", "--message"],
215
+ ["dep", "--dep"],
216
+ ...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
217
+ ]);
218
+ const UPDATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([
219
+ ["title", "--title"],
220
+ ["description", "--description"],
221
+ ["body", "--body"],
222
+ ["status", "--status"],
223
+ ["closeReason", "--close-reason"],
224
+ ["priority", "--priority"],
225
+ ["type", "--type"],
226
+ ["tags", "--tags"],
227
+ ...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
228
+ ...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
229
+ ["allowAuditUpdate", "--allow-audit-update"],
230
+ ["author", "--author"],
231
+ ["message", "--message"],
232
+ ["force", "--force"],
233
+ ]);
265
234
  function normalizeCommandOptionToken(value) {
266
235
  return value.trim().replace(/^--+/, "").toLowerCase();
267
236
  }
@@ -430,6 +399,27 @@ function resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing)
430
399
  ? [...existing.command_option_policies]
431
400
  : [];
432
401
  }
402
+ function buildResolvedTypeDefinition(normalizedDefinition, existing) {
403
+ const keepName = existing?.name ?? normalizedDefinition.name;
404
+ const description = normalizedDefinition.description ?? existing?.description;
405
+ const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
406
+ const resolvedDefinition = {
407
+ name: keepName,
408
+ folder: normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName),
409
+ aliases: normalizeItemTypeStringList([...(existing?.aliases ?? []), ...(normalizedDefinition.aliases ?? [])]),
410
+ required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),
411
+ required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),
412
+ options: resolveDefinitionOptions(normalizedDefinition, existing),
413
+ command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing),
414
+ };
415
+ if (description) {
416
+ resolvedDefinition.description = description;
417
+ }
418
+ if (defaultStatus) {
419
+ resolvedDefinition.default_status = defaultStatus;
420
+ }
421
+ return resolvedDefinition;
422
+ }
433
423
  function applyTypeDefinitions(source, target) {
434
424
  for (const rawDefinition of source) {
435
425
  const normalizedDefinition = normalizeTypeDefinition(rawDefinition);
@@ -438,25 +428,7 @@ function applyTypeDefinitions(source, target) {
438
428
  }
439
429
  const lowerName = normalizedDefinition.name.toLowerCase();
440
430
  const existing = target.get(lowerName);
441
- const keepName = existing?.name ?? normalizedDefinition.name;
442
- const folder = normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName);
443
- const aliases = normalizeItemTypeStringList([
444
- ...(existing?.aliases ?? []),
445
- ...(normalizedDefinition.aliases ?? []),
446
- ]);
447
- const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
448
- const description = normalizedDefinition.description ?? existing?.description;
449
- target.set(lowerName, {
450
- name: keepName,
451
- ...(description ? { description } : {}),
452
- ...(defaultStatus ? { default_status: defaultStatus } : {}),
453
- folder,
454
- aliases,
455
- required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),
456
- required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),
457
- options: resolveDefinitionOptions(normalizedDefinition, existing),
458
- command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing),
459
- });
431
+ target.set(lowerName, buildResolvedTypeDefinition(normalizedDefinition, existing));
460
432
  }
461
433
  }
462
434
  function collectExtensionTypeDefinitions(registrations) {
@@ -536,61 +508,65 @@ export function resolveTypeDefinition(typeName, registry) {
536
508
  }
537
509
  return registry.by_type[resolvedName];
538
510
  }
539
- /**
540
- * Implements resolve command option policy state for the public runtime surface of this module.
541
- */
542
- export function resolveCommandOptionPolicyState(typeDefinition, command, baseRequiredOptions) {
543
- const errors = [];
544
- const required = new Set();
545
- const hidden = new Set();
546
- const disabled = new Set();
511
+ function applyBaseRequiredCommandOptions(state, typeDefinition, command, baseRequiredOptions) {
547
512
  for (const rawBase of baseRequiredOptions) {
548
513
  const canonical = canonicalizeCommandOptionKey(command, rawBase);
549
- if (!canonical) {
550
- errors.push(`Unsupported base required option "${rawBase}" for command "${command}" on type "${typeDefinition.name}"`);
514
+ if (canonical) {
515
+ state.required.add(canonical);
551
516
  continue;
552
517
  }
553
- required.add(canonical);
518
+ state.errors.push(`Unsupported base required option "${rawBase}" for command "${command}" on type "${typeDefinition.name}"`);
519
+ }
520
+ }
521
+ function applyBooleanPolicySet(target, option, enabled) {
522
+ if (enabled) {
523
+ target.add(option);
524
+ return;
525
+ }
526
+ target.delete(option);
527
+ }
528
+ function applyCommandOptionPolicy(state, typeDefinition, command, policy) {
529
+ const canonical = canonicalizeCommandOptionKey(command, policy.option);
530
+ if (!canonical) {
531
+ state.errors.push(`Unsupported command_option_policies option "${policy.option}" for command "${command}" on type "${typeDefinition.name}"`);
532
+ return;
533
+ }
534
+ if (policy.required !== undefined) {
535
+ applyBooleanPolicySet(state.required, canonical, policy.required);
536
+ }
537
+ if (policy.visible !== undefined) {
538
+ applyBooleanPolicySet(state.hidden, canonical, !policy.visible);
554
539
  }
540
+ if (policy.enabled !== undefined) {
541
+ applyBooleanPolicySet(state.disabled, canonical, !policy.enabled);
542
+ }
543
+ }
544
+ function applyCommandOptionPolicies(state, typeDefinition, command) {
555
545
  for (const policy of typeDefinition.command_option_policies) {
556
- if (policy.command !== command) {
557
- continue;
558
- }
559
- const canonical = canonicalizeCommandOptionKey(command, policy.option);
560
- if (!canonical) {
561
- errors.push(`Unsupported command_option_policies option "${policy.option}" for command "${command}" on type "${typeDefinition.name}"`);
562
- continue;
563
- }
564
- if (policy.required !== undefined) {
565
- if (policy.required) {
566
- required.add(canonical);
567
- }
568
- else {
569
- required.delete(canonical);
570
- }
571
- }
572
- if (policy.visible !== undefined) {
573
- if (policy.visible) {
574
- hidden.delete(canonical);
575
- }
576
- else {
577
- hidden.add(canonical);
578
- }
579
- }
580
- if (policy.enabled !== undefined) {
581
- if (policy.enabled) {
582
- disabled.delete(canonical);
583
- }
584
- else {
585
- disabled.add(canonical);
586
- }
546
+ if (policy.command === command) {
547
+ applyCommandOptionPolicy(state, typeDefinition, command, policy);
587
548
  }
588
549
  }
589
- for (const option of required) {
590
- if (disabled.has(option)) {
591
- errors.push(`Option "${option}" cannot be both required and disabled for command "${command}" on type "${typeDefinition.name}"`);
550
+ }
551
+ function appendRequiredDisabledPolicyErrors(state, typeDefinition, command) {
552
+ for (const option of state.required) {
553
+ if (state.disabled.has(option)) {
554
+ state.errors.push(`Option "${option}" cannot be both required and disabled for command "${command}" on type "${typeDefinition.name}"`);
592
555
  }
593
556
  }
557
+ }
558
+ /**
559
+ * Implements resolve command option policy state for the public runtime surface of this module.
560
+ */
561
+ export function resolveCommandOptionPolicyState(typeDefinition, command, baseRequiredOptions) {
562
+ const errors = [];
563
+ const required = new Set();
564
+ const hidden = new Set();
565
+ const disabled = new Set();
566
+ const state = { required, hidden, disabled, errors };
567
+ applyBaseRequiredCommandOptions(state, typeDefinition, command, baseRequiredOptions);
568
+ applyCommandOptionPolicies(state, typeDefinition, command);
569
+ appendRequiredDisabledPolicyErrors(state, typeDefinition, command);
594
570
  return {
595
571
  required: [...required],
596
572
  hidden: [...hidden].sort((left, right) => left.localeCompare(right)),
@@ -678,4 +654,4 @@ export function validateTypeOptions(typeName, rawTypeOptions, registry) {
678
654
  };
679
655
  }
680
656
  //# sourceMappingURL=type-registry.js.map
681
- //# debugId=e9e27e2d-967c-5e17-8266-d661f65b78ac
657
+ //# debugId=563d02b1-6a96-539c-9e2c-dc118aa5dd72
@@ -1 +1 @@
1
- {"version":3,"file":"type-registry.js","sources":["core/item/type-registry.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/item/type-registry\n *\n * Defines item parsing, formatting, and lifecycle helpers for Type Registry.\n */\nimport { TYPE_TO_FOLDER } from \"../shared/constants.js\";\nimport type { ExtensionRegistrationRegistry } from \"../extensions/loader.js\";\nimport type {\n ItemTypeCommandOptionPolicy,\n ItemTypeDefinition,\n ItemTypeOptionDefinition,\n PmSettings,\n} from \"../../types/index.js\";\nimport { ITEM_TYPE_VALUES } from \"../../types/index.js\";\nimport {\n normalizeItemTypeDefinition as normalizeSharedItemTypeDefinition,\n normalizeItemTypeStringList,\n strictPolicyCommand,\n} from \"./item-type-definition.js\";\n\nexport const DEFAULT_REQUIRED_CREATE_FIELDS = [\n \"title\",\n \"description\",\n \"status\",\n \"priority\",\n \"tags\",\n \"body\",\n \"deadline\",\n \"estimatedMinutes\",\n \"acceptanceCriteria\",\n \"author\",\n \"message\",\n \"assignee\",\n] as const;\n\nexport const DEFAULT_REQUIRED_CREATE_REPEATABLES = [\"dep\", \"comment\", \"note\", \"learning\", \"file\", \"test\", \"doc\"] as const;\n\n/**\n * Restricts command option policy command values accepted by command, SDK, and storage contracts.\n */\nexport type CommandOptionPolicyCommand = \"create\" | \"update\";\n\n// Keep aligned with cli/commands/shared-unset-fields.ts. This core registry\n// cannot import CLI unset metadata without creating a core -> CLI dependency.\nconst COMMON_MUTATION_COMMAND_OPTION_KEYS = [\n \"deadline\",\n \"estimatedMinutes\",\n \"acceptanceCriteria\",\n \"definitionOfReady\",\n \"order\",\n \"goal\",\n \"objective\",\n \"value\",\n \"impact\",\n \"outcome\",\n \"whyNow\",\n \"assignee\",\n \"parent\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n \"blockedBy\",\n \"blockedReason\",\n \"unblockNote\",\n \"reporter\",\n \"severity\",\n \"environment\",\n \"reproSteps\",\n \"resolution\",\n \"expectedResult\",\n \"actualResult\",\n \"affectedVersion\",\n \"fixedVersion\",\n \"component\",\n \"regression\",\n \"customerImpact\",\n] as const;\n\nconst CREATE_COMMAND_OPTION_KEYS = [\n \"title\",\n \"description\",\n \"type\",\n \"status\",\n \"priority\",\n \"tags\",\n \"body\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"author\",\n \"message\",\n \"dep\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n] as const;\n\nconst UPDATE_COMMAND_OPTION_KEYS = [\n \"title\",\n \"description\",\n \"body\",\n \"status\",\n \"closeReason\",\n \"priority\",\n \"type\",\n \"tags\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"author\",\n \"message\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n \"allowAuditUpdate\",\n \"force\",\n] as const;\n\nconst SHARED_COMMAND_OPTION_ALIASES: Record<string, string> = {\n \"close-reason\": \"closeReason\",\n close_reason: \"closeReason\",\n \"estimated-minutes\": \"estimatedMinutes\",\n estimated_minutes: \"estimatedMinutes\",\n estimate: \"estimatedMinutes\",\n \"acceptance-criteria\": \"acceptanceCriteria\",\n acceptance_criteria: \"acceptanceCriteria\",\n ac: \"acceptanceCriteria\",\n \"definition-of-ready\": \"definitionOfReady\",\n definition_of_ready: \"definitionOfReady\",\n rank: \"order\",\n \"why-now\": \"whyNow\",\n why_now: \"whyNow\",\n \"blocked-by\": \"blockedBy\",\n blocked_by: \"blockedBy\",\n \"blocked-reason\": \"blockedReason\",\n blocked_reason: \"blockedReason\",\n \"unblock-note\": \"unblockNote\",\n unblock_note: \"unblockNote\",\n \"repro-steps\": \"reproSteps\",\n repro_steps: \"reproSteps\",\n \"expected-result\": \"expectedResult\",\n expected_result: \"expectedResult\",\n \"actual-result\": \"actualResult\",\n actual_result: \"actualResult\",\n \"affected-version\": \"affectedVersion\",\n affected_version: \"affectedVersion\",\n \"fixed-version\": \"fixedVersion\",\n fixed_version: \"fixedVersion\",\n \"customer-impact\": \"customerImpact\",\n customer_impact: \"customerImpact\",\n \"type-option\": \"typeOption\",\n type_option: \"typeOption\",\n type_options: \"typeOption\",\n};\n\nconst CREATE_COMMAND_OPTION_ALIASES: Record<string, string> = {\n ...SHARED_COMMAND_OPTION_ALIASES,\n};\n\nconst UPDATE_COMMAND_OPTION_ALIASES: Record<string, string> = {\n ...SHARED_COMMAND_OPTION_ALIASES,\n \"allow-audit-update\": \"allowAuditUpdate\",\n allow_audit_update: \"allowAuditUpdate\",\n};\n\nconst CREATE_COMMAND_OPTION_FLAG_LABELS: Record<string, string> = {\n title: \"--title\",\n description: \"--description\",\n type: \"--type\",\n status: \"--status\",\n priority: \"--priority\",\n tags: \"--tags\",\n body: \"--body\",\n deadline: \"--deadline\",\n estimatedMinutes: \"--estimate/--estimated-minutes\",\n acceptanceCriteria: \"--acceptance-criteria/--ac\",\n definitionOfReady: \"--definition-of-ready\",\n order: \"--order/--rank\",\n goal: \"--goal\",\n objective: \"--objective\",\n value: \"--value\",\n impact: \"--impact\",\n outcome: \"--outcome\",\n whyNow: \"--why-now\",\n author: \"--author\",\n message: \"--message\",\n assignee: \"--assignee\",\n parent: \"--parent\",\n reviewer: \"--reviewer\",\n risk: \"--risk\",\n confidence: \"--confidence\",\n sprint: \"--sprint\",\n release: \"--release\",\n blockedBy: \"--blocked-by\",\n blockedReason: \"--blocked-reason\",\n unblockNote: \"--unblock-note\",\n reporter: \"--reporter\",\n severity: \"--severity\",\n environment: \"--environment\",\n reproSteps: \"--repro-steps\",\n resolution: \"--resolution\",\n expectedResult: \"--expected-result\",\n actualResult: \"--actual-result\",\n affectedVersion: \"--affected-version\",\n fixedVersion: \"--fixed-version\",\n component: \"--component\",\n regression: \"--regression\",\n customerImpact: \"--customer-impact\",\n dep: \"--dep\",\n comment: \"--comment\",\n note: \"--note\",\n learning: \"--learning\",\n file: \"--file\",\n test: \"--test\",\n doc: \"--doc\",\n reminder: \"--reminder\",\n event: \"--event\",\n typeOption: \"--type-option\",\n};\n\nconst UPDATE_COMMAND_OPTION_FLAG_LABELS: Record<string, string> = {\n title: \"--title\",\n description: \"--description\",\n body: \"--body\",\n status: \"--status\",\n closeReason: \"--close-reason\",\n priority: \"--priority\",\n type: \"--type\",\n tags: \"--tags\",\n deadline: \"--deadline\",\n estimatedMinutes: \"--estimate/--estimated-minutes\",\n acceptanceCriteria: \"--acceptance-criteria/--ac\",\n definitionOfReady: \"--definition-of-ready\",\n order: \"--order/--rank\",\n goal: \"--goal\",\n objective: \"--objective\",\n value: \"--value\",\n impact: \"--impact\",\n outcome: \"--outcome\",\n whyNow: \"--why-now\",\n assignee: \"--assignee\",\n parent: \"--parent\",\n reviewer: \"--reviewer\",\n risk: \"--risk\",\n confidence: \"--confidence\",\n sprint: \"--sprint\",\n release: \"--release\",\n blockedBy: \"--blocked-by\",\n blockedReason: \"--blocked-reason\",\n unblockNote: \"--unblock-note\",\n reporter: \"--reporter\",\n severity: \"--severity\",\n environment: \"--environment\",\n reproSteps: \"--repro-steps\",\n resolution: \"--resolution\",\n expectedResult: \"--expected-result\",\n actualResult: \"--actual-result\",\n affectedVersion: \"--affected-version\",\n fixedVersion: \"--fixed-version\",\n component: \"--component\",\n regression: \"--regression\",\n customerImpact: \"--customer-impact\",\n comment: \"--comment\",\n note: \"--note\",\n learning: \"--learning\",\n file: \"--file\",\n test: \"--test\",\n doc: \"--doc\",\n reminder: \"--reminder\",\n event: \"--event\",\n typeOption: \"--type-option\",\n allowAuditUpdate: \"--allow-audit-update\",\n author: \"--author\",\n message: \"--message\",\n force: \"--force\",\n};\n\n/**\n * Documents the command option policy state payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOptionPolicyState {\n required: string[];\n hidden: string[];\n disabled: string[];\n errors: string[];\n}\n\n/**\n * Documents the resolved item type definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface ResolvedItemTypeDefinition {\n name: string;\n /** Optional human description carried from the type definition. */\n description?: string;\n folder: string;\n aliases: string[];\n /** Optional per-type status applied at create time when `--status` is omitted. */\n default_status?: string;\n required_create_fields: string[];\n required_create_repeatables: string[];\n options: ItemTypeOptionDefinition[];\n command_option_policies: ItemTypeCommandOptionPolicy[];\n}\n\n/**\n * Documents the item type registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ItemTypeRegistry {\n types: string[];\n folders: string[];\n type_to_folder: Record<string, string>;\n by_type: Record<string, ResolvedItemTypeDefinition>;\n alias_to_type: Record<string, string>;\n}\n\nfunction normalizeCommandOptionToken(value: string): string {\n return value.trim().replace(/^--+/, \"\").toLowerCase();\n}\n\nfunction commandOptionKeys(command: CommandOptionPolicyCommand): readonly string[] {\n return command === \"create\" ? CREATE_COMMAND_OPTION_KEYS : UPDATE_COMMAND_OPTION_KEYS;\n}\n\nfunction commandOptionAliases(command: CommandOptionPolicyCommand): Record<string, string> {\n return command === \"create\" ? CREATE_COMMAND_OPTION_ALIASES : UPDATE_COMMAND_OPTION_ALIASES;\n}\n\n/**\n * Implements canonicalize command option key for the public runtime surface of this module.\n */\nexport function canonicalizeCommandOptionKey(\n command: CommandOptionPolicyCommand,\n rawOption: string,\n): string | undefined {\n const normalizedToken = normalizeCommandOptionToken(rawOption);\n if (normalizedToken.length === 0) {\n return undefined;\n }\n const aliased = commandOptionAliases(command)[normalizedToken];\n if (aliased) {\n return aliased;\n }\n return commandOptionKeys(command).find((candidate) => candidate.toLowerCase() === normalizedToken);\n}\n\n/**\n * Implements command option flag label for the public runtime surface of this module.\n */\nexport function commandOptionFlagLabel(command: CommandOptionPolicyCommand, optionKey: string): string {\n const labels = command === \"create\" ? CREATE_COMMAND_OPTION_FLAG_LABELS : UPDATE_COMMAND_OPTION_FLAG_LABELS;\n return labels[optionKey] ?? `--${optionKey.replace(/([A-Z])/g, \"-$1\").toLowerCase()}`;\n}\n\n/**\n * Implements to default folder for the public runtime surface of this module.\n */\nexport function toDefaultFolder(name: string): string {\n const normalized = toSlugToken(name);\n if (normalized.length === 0) {\n return \"items\";\n }\n return normalized.endsWith(\"s\") ? normalized : `${normalized}s`;\n}\n\nfunction toSlugToken(value: string): string {\n const trimmed = value.trim().toLowerCase();\n let slug = \"\";\n let pendingDash = false;\n for (const character of trimmed) {\n const code = character.charCodeAt(0);\n const isAlpha = code >= 97 && code <= 122;\n const isDigit = code >= 48 && code <= 57;\n if (isAlpha || isDigit) {\n if (pendingDash && slug.length > 0) {\n slug += \"-\";\n }\n slug += character;\n pendingDash = false;\n continue;\n }\n if (slug.length > 0) {\n pendingDash = true;\n }\n }\n return slug;\n}\n\n// Runtime registry consumes untrusted extension/file definitions, so it uses the\n// strict policy-command resolver (trim + lowercase, reject non-create/update). All\n// other normalization is single-sourced from ./item-type-definition.ts (pm-v798).\nfunction normalizeTypeDefinition(definition: ItemTypeDefinition): ItemTypeDefinition | null {\n return normalizeSharedItemTypeDefinition(definition, { resolvePolicyCommand: strictPolicyCommand });\n}\n\nfunction readStringArray(record: Record<string, unknown>, key: string): string[] | undefined {\n const value = record[key];\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === \"string\") : undefined;\n}\n\nfunction coerceOptionDefinitionFromUnknown(raw: unknown): ItemTypeOptionDefinition | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const optionRecord = raw as Record<string, unknown>;\n if (typeof optionRecord.key !== \"string\") {\n return null;\n }\n return {\n key: optionRecord.key,\n values: readStringArray(optionRecord, \"values\") ?? [],\n required: optionRecord.required === undefined ? undefined : Boolean(optionRecord.required),\n aliases: readStringArray(optionRecord, \"aliases\"),\n description: typeof optionRecord.description === \"string\" ? optionRecord.description : undefined,\n };\n}\n\nfunction coerceCommandOptionPolicyFromUnknown(raw: unknown): ItemTypeCommandOptionPolicy | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const policyRecord = raw as Record<string, unknown>;\n if (typeof policyRecord.command !== \"string\" || typeof policyRecord.option !== \"string\") {\n return null;\n }\n const normalizedCommand = policyRecord.command.trim().toLowerCase();\n if (normalizedCommand !== \"create\" && normalizedCommand !== \"update\") {\n return null;\n }\n return {\n command: normalizedCommand,\n option: policyRecord.option,\n required: policyRecord.required === undefined ? undefined : Boolean(policyRecord.required),\n visible: policyRecord.visible === undefined ? undefined : Boolean(policyRecord.visible),\n enabled: policyRecord.enabled === undefined ? undefined : Boolean(policyRecord.enabled),\n };\n}\n\nfunction coerceOptionDefinitionsFromRecord(record: Record<string, unknown>): ItemTypeOptionDefinition[] | undefined {\n if (!Array.isArray(record.options)) {\n return undefined;\n }\n return record.options\n .map((entry) => coerceOptionDefinitionFromUnknown(entry))\n .filter((entry): entry is ItemTypeOptionDefinition => entry !== null);\n}\n\nfunction coerceCommandOptionPoliciesFromRecord(record: Record<string, unknown>): ItemTypeCommandOptionPolicy[] | undefined {\n if (!Array.isArray(record.command_option_policies)) {\n return undefined;\n }\n return record.command_option_policies\n .map((entry) => coerceCommandOptionPolicyFromUnknown(entry))\n .filter((entry): entry is ItemTypeCommandOptionPolicy => entry !== null);\n}\n\nfunction coerceTypeDefinitionFromUnknown(raw: unknown): ItemTypeDefinition | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const record = raw as Record<string, unknown>;\n const name = typeof record.name === \"string\" ? record.name : \"\";\n if (name.trim().length === 0) {\n return null;\n }\n const folder = typeof record.folder === \"string\" ? record.folder : undefined;\n const description = typeof record.description === \"string\" ? record.description : undefined;\n const defaultStatus = typeof record.default_status === \"string\" ? record.default_status : undefined;\n return {\n name,\n description,\n default_status: defaultStatus,\n folder,\n aliases: readStringArray(record, \"aliases\"),\n required_create_fields: readStringArray(record, \"required_create_fields\"),\n required_create_repeatables: readStringArray(record, \"required_create_repeatables\"),\n options: coerceOptionDefinitionsFromRecord(record),\n command_option_policies: coerceCommandOptionPoliciesFromRecord(record),\n };\n}\n\nfunction resolveDefinitionRequiredCreateFields(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): string[] {\n return normalizedDefinition.required_create_fields\n ? normalizeItemTypeStringList(normalizedDefinition.required_create_fields)\n : existing?.required_create_fields ?? [];\n}\n\nfunction resolveDefinitionRequiredCreateRepeatables(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): string[] {\n return normalizedDefinition.required_create_repeatables\n ? normalizeItemTypeStringList(normalizedDefinition.required_create_repeatables)\n : existing?.required_create_repeatables ?? [];\n}\n\nfunction resolveDefinitionOptions(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): ItemTypeOptionDefinition[] {\n return normalizedDefinition.options ? normalizedDefinition.options : existing?.options ? [...existing.options] : [];\n}\n\nfunction resolveDefinitionCommandOptionPolicies(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): ItemTypeCommandOptionPolicy[] {\n return normalizedDefinition.command_option_policies\n ? normalizedDefinition.command_option_policies\n : existing?.command_option_policies\n ? [...existing.command_option_policies]\n : [];\n}\n\nfunction applyTypeDefinitions(\n source: ItemTypeDefinition[],\n target: Map<string, ResolvedItemTypeDefinition>,\n): void {\n for (const rawDefinition of source) {\n const normalizedDefinition = normalizeTypeDefinition(rawDefinition);\n if (!normalizedDefinition) {\n continue;\n }\n const lowerName = normalizedDefinition.name.toLowerCase();\n const existing = target.get(lowerName);\n const keepName = existing?.name ?? normalizedDefinition.name;\n const folder = normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName);\n const aliases = normalizeItemTypeStringList([\n ...(existing?.aliases ?? []),\n ...(normalizedDefinition.aliases ?? []),\n ]);\n const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;\n const description = normalizedDefinition.description ?? existing?.description;\n target.set(lowerName, {\n name: keepName,\n ...(description ? { description } : {}),\n ...(defaultStatus ? { default_status: defaultStatus } : {}),\n folder,\n aliases,\n required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),\n required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),\n options: resolveDefinitionOptions(normalizedDefinition, existing),\n command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing),\n });\n }\n}\n\nfunction collectExtensionTypeDefinitions(registrations: ExtensionRegistrationRegistry | null | undefined): ItemTypeDefinition[] {\n if (!registrations) {\n return [];\n }\n const definitions: ItemTypeDefinition[] = [];\n for (const registration of registrations.item_types ?? []) {\n const typeDefinitionsRaw = (registration as { types?: unknown[] }).types;\n if (!Array.isArray(typeDefinitionsRaw)) {\n continue;\n }\n for (const rawDefinition of typeDefinitionsRaw) {\n const normalized = coerceTypeDefinitionFromUnknown(rawDefinition);\n if (normalized) {\n definitions.push(normalized);\n }\n }\n }\n return definitions;\n}\n\n/**\n * Implements resolve item type registry for the public runtime surface of this module.\n */\nexport function resolveItemTypeRegistry(\n settings: PmSettings,\n extensionRegistrations: ExtensionRegistrationRegistry | null | undefined = null,\n): ItemTypeRegistry {\n const byLowerName = new Map<string, ResolvedItemTypeDefinition>();\n for (const builtin of ITEM_TYPE_VALUES) {\n byLowerName.set(builtin.toLowerCase(), {\n name: builtin,\n folder: TYPE_TO_FOLDER[builtin],\n aliases: [],\n required_create_fields: [...DEFAULT_REQUIRED_CREATE_FIELDS],\n required_create_repeatables: [...DEFAULT_REQUIRED_CREATE_REPEATABLES],\n options: [],\n command_option_policies: [],\n });\n }\n\n applyTypeDefinitions(settings.item_types?.definitions ?? [], byLowerName);\n applyTypeDefinitions(collectExtensionTypeDefinitions(extensionRegistrations), byLowerName);\n\n const definitions = [...byLowerName.values()].sort((left, right) => left.name.localeCompare(right.name));\n const byType: Record<string, ResolvedItemTypeDefinition> = {};\n const aliasToType: Record<string, string> = {};\n const typeToFolder: Record<string, string> = {};\n for (const definition of definitions) {\n byType[definition.name] = definition;\n typeToFolder[definition.name] = definition.folder;\n aliasToType[definition.name.toLowerCase()] = definition.name;\n for (const alias of definition.aliases) {\n aliasToType[alias.toLowerCase()] = definition.name;\n }\n }\n const folders = [...new Set(definitions.map((definition) => definition.folder))].sort((left, right) => left.localeCompare(right));\n return {\n types: definitions.map((definition) => definition.name),\n folders,\n type_to_folder: typeToFolder,\n by_type: byType,\n alias_to_type: aliasToType,\n };\n}\n\n/**\n * Implements resolve type name for the public runtime surface of this module.\n */\nexport function resolveTypeName(rawType: string | undefined, registry: ItemTypeRegistry): string | undefined {\n if (rawType === undefined) {\n return undefined;\n }\n return registry.alias_to_type[rawType.trim().toLowerCase()];\n}\n\n/**\n * Implements resolve type definition for the public runtime surface of this module.\n */\nexport function resolveTypeDefinition(\n typeName: string | undefined,\n registry: ItemTypeRegistry,\n): ResolvedItemTypeDefinition | undefined {\n const resolvedName = resolveTypeName(typeName, registry);\n if (!resolvedName) {\n return undefined;\n }\n return registry.by_type[resolvedName];\n}\n\n/**\n * Implements resolve command option policy state for the public runtime surface of this module.\n */\nexport function resolveCommandOptionPolicyState(\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n baseRequiredOptions: Iterable<string>,\n): CommandOptionPolicyState {\n const errors: string[] = [];\n const required = new Set<string>();\n const hidden = new Set<string>();\n const disabled = new Set<string>();\n\n for (const rawBase of baseRequiredOptions) {\n const canonical = canonicalizeCommandOptionKey(command, rawBase);\n if (!canonical) {\n errors.push(\n `Unsupported base required option \"${rawBase}\" for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n continue;\n }\n required.add(canonical);\n }\n\n for (const policy of typeDefinition.command_option_policies) {\n if (policy.command !== command) {\n continue;\n }\n const canonical = canonicalizeCommandOptionKey(command, policy.option);\n if (!canonical) {\n errors.push(\n `Unsupported command_option_policies option \"${policy.option}\" for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n continue;\n }\n if (policy.required !== undefined) {\n if (policy.required) {\n required.add(canonical);\n } else {\n required.delete(canonical);\n }\n }\n if (policy.visible !== undefined) {\n if (policy.visible) {\n hidden.delete(canonical);\n } else {\n hidden.add(canonical);\n }\n }\n if (policy.enabled !== undefined) {\n if (policy.enabled) {\n disabled.delete(canonical);\n } else {\n disabled.add(canonical);\n }\n }\n }\n\n for (const option of required) {\n if (disabled.has(option)) {\n errors.push(\n `Option \"${option}\" cannot be both required and disabled for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n }\n }\n\n return {\n required: [...required],\n hidden: [...hidden].sort((left, right) => left.localeCompare(right)),\n disabled: [...disabled].sort((left, right) => left.localeCompare(right)),\n errors,\n };\n}\n\nfunction buildTypeOptionAliasMap(typeDefinition: ResolvedItemTypeDefinition): Map<string, ItemTypeOptionDefinition> {\n const optionByAlias = new Map<string, ItemTypeOptionDefinition>();\n for (const option of typeDefinition.options) {\n optionByAlias.set(option.key.toLowerCase(), option);\n for (const alias of option.aliases ?? []) {\n optionByAlias.set(alias.toLowerCase(), option);\n }\n }\n return optionByAlias;\n}\n\nfunction resolveTypeOptionValue(\n optionDefinition: ItemTypeOptionDefinition,\n trimmedValue: string,\n errors: string[],\n): string | undefined {\n const allowedValues = optionDefinition.values;\n if (allowedValues.length === 0) {\n return trimmedValue;\n }\n const valueLookup = new Map(allowedValues.map((value) => [value.toLowerCase(), value]));\n const canonical = valueLookup.get(trimmedValue.toLowerCase());\n if (!canonical) {\n errors.push(`Invalid value \"${trimmedValue}\" for type option \"${optionDefinition.key}\". Allowed: ${allowedValues.join(\", \")}`);\n return undefined;\n }\n return canonical;\n}\n\n/**\n * Implements validate type options for the public runtime surface of this module.\n */\nexport function validateTypeOptions(\n typeName: string,\n rawTypeOptions: Record<string, string> | undefined,\n registry: ItemTypeRegistry,\n): { normalized: Record<string, string> | undefined; errors: string[] } {\n const typeDefinition = resolveTypeDefinition(typeName, registry);\n if (!typeDefinition) {\n return {\n normalized: undefined,\n errors: [`Unknown type \"${typeName}\"`],\n };\n }\n const errors: string[] = [];\n const optionByAlias = buildTypeOptionAliasMap(typeDefinition);\n\n const normalized: Record<string, string> = {};\n for (const [rawKey, rawValue] of Object.entries(rawTypeOptions ?? {})) {\n const trimmedKey = rawKey.trim();\n const trimmedValue = rawValue.trim();\n if (trimmedKey.length === 0) {\n errors.push(\"type option keys must not be empty\");\n continue;\n }\n if (trimmedValue.length === 0) {\n errors.push(`type option \"${trimmedKey}\" must not be empty`);\n continue;\n }\n const optionDefinition = optionByAlias.get(trimmedKey.toLowerCase());\n if (!optionDefinition) {\n const allowed = typeDefinition.options.map((option) => option.key).join(\", \");\n errors.push(\n typeDefinition.options.length > 0\n ? `Unknown type option \"${trimmedKey}\" for type \"${typeDefinition.name}\". Allowed: ${allowed}`\n : `Type \"${typeDefinition.name}\" does not define any configurable type options`,\n );\n continue;\n }\n const resolvedValue = resolveTypeOptionValue(optionDefinition, trimmedValue, errors);\n if (resolvedValue === undefined) {\n continue;\n }\n normalized[optionDefinition.key] = resolvedValue;\n }\n\n for (const option of typeDefinition.options) {\n if (option.required && !(option.key in normalized)) {\n errors.push(`Missing required type option \"${option.key}\" for type \"${typeDefinition.name}\"`);\n }\n }\n\n const sortedKeys = Object.keys(normalized).sort((left, right) => left.localeCompare(right));\n if (sortedKeys.length === 0) {\n return {\n normalized: undefined,\n errors,\n };\n }\n return {\n normalized: Object.fromEntries(sortedKeys.map((key) => [key, normalized[key]])),\n errors,\n };\n}\n"],"names":[],"mappings":"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","debugId":"e9e27e2d-967c-5e17-8266-d661f65b78ac"}
1
+ {"version":3,"file":"type-registry.js","sources":["core/item/type-registry.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/item/type-registry\n *\n * Defines item parsing, formatting, and lifecycle helpers for Type Registry.\n */\nimport { TYPE_TO_FOLDER } from \"../shared/constants.js\";\nimport type { ExtensionRegistrationRegistry } from \"../extensions/loader.js\";\nimport type {\n ItemTypeCommandOptionPolicy,\n ItemTypeDefinition,\n ItemTypeOptionDefinition,\n PmSettings,\n} from \"../../types/index.js\";\nimport { ITEM_TYPE_VALUES } from \"../../types/index.js\";\nimport {\n normalizeItemTypeDefinition as normalizeSharedItemTypeDefinition,\n normalizeItemTypeStringList,\n strictPolicyCommand,\n} from \"./item-type-definition.js\";\n\nexport const DEFAULT_REQUIRED_CREATE_FIELDS = [\n \"title\",\n \"description\",\n \"status\",\n \"priority\",\n \"tags\",\n \"body\",\n \"deadline\",\n \"estimatedMinutes\",\n \"acceptanceCriteria\",\n \"author\",\n \"message\",\n \"assignee\",\n] as const;\n\nexport const DEFAULT_REQUIRED_CREATE_REPEATABLES = [\"dep\", \"comment\", \"note\", \"learning\", \"file\", \"test\", \"doc\"] as const;\n\n/**\n * Restricts command option policy command values accepted by command, SDK, and storage contracts.\n */\nexport type CommandOptionPolicyCommand = \"create\" | \"update\";\n\n// Keep aligned with cli/commands/shared-unset-fields.ts. This core registry\n// cannot import CLI unset metadata without creating a core -> CLI dependency.\nexport const COMMON_MUTATION_COMMAND_OPTION_KEYS = [\n \"deadline\",\n \"estimatedMinutes\",\n \"acceptanceCriteria\",\n \"definitionOfReady\",\n \"order\",\n \"goal\",\n \"objective\",\n \"value\",\n \"impact\",\n \"outcome\",\n \"whyNow\",\n \"assignee\",\n \"parent\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n \"blockedBy\",\n \"blockedReason\",\n \"unblockNote\",\n \"reporter\",\n \"severity\",\n \"environment\",\n \"reproSteps\",\n \"resolution\",\n \"expectedResult\",\n \"actualResult\",\n \"affectedVersion\",\n \"fixedVersion\",\n \"component\",\n \"regression\",\n \"customerImpact\",\n] as const;\n\nconst CREATE_COMMAND_OPTION_KEYS = [\n \"title\",\n \"description\",\n \"type\",\n \"status\",\n \"priority\",\n \"tags\",\n \"body\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"author\",\n \"message\",\n \"dep\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n] as const;\n\nconst UPDATE_COMMAND_OPTION_KEYS = [\n \"title\",\n \"description\",\n \"body\",\n \"status\",\n \"closeReason\",\n \"priority\",\n \"type\",\n \"tags\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"author\",\n \"message\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n \"allowAuditUpdate\",\n \"force\",\n] as const;\n\nconst SHARED_COMMAND_OPTION_ALIASES: Record<string, string> = {\n \"close-reason\": \"closeReason\",\n close_reason: \"closeReason\",\n \"estimated-minutes\": \"estimatedMinutes\",\n estimated_minutes: \"estimatedMinutes\",\n estimate: \"estimatedMinutes\",\n \"acceptance-criteria\": \"acceptanceCriteria\",\n acceptance_criteria: \"acceptanceCriteria\",\n ac: \"acceptanceCriteria\",\n \"definition-of-ready\": \"definitionOfReady\",\n definition_of_ready: \"definitionOfReady\",\n rank: \"order\",\n \"why-now\": \"whyNow\",\n why_now: \"whyNow\",\n \"blocked-by\": \"blockedBy\",\n blocked_by: \"blockedBy\",\n \"blocked-reason\": \"blockedReason\",\n blocked_reason: \"blockedReason\",\n \"unblock-note\": \"unblockNote\",\n unblock_note: \"unblockNote\",\n \"repro-steps\": \"reproSteps\",\n repro_steps: \"reproSteps\",\n \"expected-result\": \"expectedResult\",\n expected_result: \"expectedResult\",\n \"actual-result\": \"actualResult\",\n actual_result: \"actualResult\",\n \"affected-version\": \"affectedVersion\",\n affected_version: \"affectedVersion\",\n \"fixed-version\": \"fixedVersion\",\n fixed_version: \"fixedVersion\",\n \"customer-impact\": \"customerImpact\",\n customer_impact: \"customerImpact\",\n \"type-option\": \"typeOption\",\n type_option: \"typeOption\",\n type_options: \"typeOption\",\n};\n\nconst CREATE_COMMAND_OPTION_ALIASES: Record<string, string> = {\n ...SHARED_COMMAND_OPTION_ALIASES,\n};\n\nconst UPDATE_COMMAND_OPTION_ALIASES: Record<string, string> = {\n ...SHARED_COMMAND_OPTION_ALIASES,\n \"allow-audit-update\": \"allowAuditUpdate\",\n allow_audit_update: \"allowAuditUpdate\",\n};\n\nconst COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [\n [\"deadline\", \"--deadline\"],\n [\"estimatedMinutes\", \"--estimate/--estimated-minutes\"],\n [\"acceptanceCriteria\", \"--acceptance-criteria/--ac\"],\n [\"definitionOfReady\", \"--definition-of-ready\"],\n [\"order\", \"--order/--rank\"],\n [\"goal\", \"--goal\"],\n [\"objective\", \"--objective\"],\n [\"value\", \"--value\"],\n [\"impact\", \"--impact\"],\n [\"outcome\", \"--outcome\"],\n [\"whyNow\", \"--why-now\"],\n [\"assignee\", \"--assignee\"],\n [\"parent\", \"--parent\"],\n [\"reviewer\", \"--reviewer\"],\n [\"risk\", \"--risk\"],\n [\"confidence\", \"--confidence\"],\n [\"sprint\", \"--sprint\"],\n [\"release\", \"--release\"],\n [\"blockedBy\", \"--blocked-by\"],\n [\"blockedReason\", \"--blocked-reason\"],\n [\"unblockNote\", \"--unblock-note\"],\n [\"reporter\", \"--reporter\"],\n [\"severity\", \"--severity\"],\n [\"environment\", \"--environment\"],\n [\"reproSteps\", \"--repro-steps\"],\n [\"resolution\", \"--resolution\"],\n [\"expectedResult\", \"--expected-result\"],\n [\"actualResult\", \"--actual-result\"],\n [\"affectedVersion\", \"--affected-version\"],\n [\"fixedVersion\", \"--fixed-version\"],\n [\"component\", \"--component\"],\n [\"regression\", \"--regression\"],\n [\"customerImpact\", \"--customer-impact\"],\n] as const;\n\nconst LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [\n [\"comment\", \"--comment\"],\n [\"note\", \"--note\"],\n [\"learning\", \"--learning\"],\n [\"file\", \"--file\"],\n [\"test\", \"--test\"],\n [\"doc\", \"--doc\"],\n [\"reminder\", \"--reminder\"],\n [\"event\", \"--event\"],\n [\"typeOption\", \"--type-option\"],\n] as const;\n\nfunction commandOptionLabelMap(\n entries: ReadonlyArray<readonly [string, string]>,\n): Record<string, string> {\n return Object.fromEntries(entries);\n}\n\nconst CREATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([\n [\"title\", \"--title\"],\n [\"description\", \"--description\"],\n [\"type\", \"--type\"],\n [\"status\", \"--status\"],\n [\"priority\", \"--priority\"],\n [\"tags\", \"--tags\"],\n [\"body\", \"--body\"],\n ...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,\n [\"author\", \"--author\"],\n [\"message\", \"--message\"],\n [\"dep\", \"--dep\"],\n ...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES,\n]);\n\nconst UPDATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([\n [\"title\", \"--title\"],\n [\"description\", \"--description\"],\n [\"body\", \"--body\"],\n [\"status\", \"--status\"],\n [\"closeReason\", \"--close-reason\"],\n [\"priority\", \"--priority\"],\n [\"type\", \"--type\"],\n [\"tags\", \"--tags\"],\n ...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,\n ...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES,\n [\"allowAuditUpdate\", \"--allow-audit-update\"],\n [\"author\", \"--author\"],\n [\"message\", \"--message\"],\n [\"force\", \"--force\"],\n]);\n\n/**\n * Documents the command option policy state payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOptionPolicyState {\n required: string[];\n hidden: string[];\n disabled: string[];\n errors: string[];\n}\n\n/**\n * Documents the resolved item type definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface ResolvedItemTypeDefinition {\n name: string;\n /** Optional human description carried from the type definition. */\n description?: string;\n folder: string;\n aliases: string[];\n /** Optional per-type status applied at create time when `--status` is omitted. */\n default_status?: string;\n required_create_fields: string[];\n required_create_repeatables: string[];\n options: ItemTypeOptionDefinition[];\n command_option_policies: ItemTypeCommandOptionPolicy[];\n}\n\n/**\n * Documents the item type registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ItemTypeRegistry {\n types: string[];\n folders: string[];\n type_to_folder: Record<string, string>;\n by_type: Record<string, ResolvedItemTypeDefinition>;\n alias_to_type: Record<string, string>;\n}\n\nfunction normalizeCommandOptionToken(value: string): string {\n return value.trim().replace(/^--+/, \"\").toLowerCase();\n}\n\nfunction commandOptionKeys(command: CommandOptionPolicyCommand): readonly string[] {\n return command === \"create\" ? CREATE_COMMAND_OPTION_KEYS : UPDATE_COMMAND_OPTION_KEYS;\n}\n\nfunction commandOptionAliases(command: CommandOptionPolicyCommand): Record<string, string> {\n return command === \"create\" ? CREATE_COMMAND_OPTION_ALIASES : UPDATE_COMMAND_OPTION_ALIASES;\n}\n\n/**\n * Implements canonicalize command option key for the public runtime surface of this module.\n */\nexport function canonicalizeCommandOptionKey(\n command: CommandOptionPolicyCommand,\n rawOption: string,\n): string | undefined {\n const normalizedToken = normalizeCommandOptionToken(rawOption);\n if (normalizedToken.length === 0) {\n return undefined;\n }\n const aliased = commandOptionAliases(command)[normalizedToken];\n if (aliased) {\n return aliased;\n }\n return commandOptionKeys(command).find((candidate) => candidate.toLowerCase() === normalizedToken);\n}\n\n/**\n * Implements command option flag label for the public runtime surface of this module.\n */\nexport function commandOptionFlagLabel(command: CommandOptionPolicyCommand, optionKey: string): string {\n const labels = command === \"create\" ? CREATE_COMMAND_OPTION_FLAG_LABELS : UPDATE_COMMAND_OPTION_FLAG_LABELS;\n return labels[optionKey] ?? `--${optionKey.replace(/([A-Z])/g, \"-$1\").toLowerCase()}`;\n}\n\n/**\n * Implements to default folder for the public runtime surface of this module.\n */\nexport function toDefaultFolder(name: string): string {\n const normalized = toSlugToken(name);\n if (normalized.length === 0) {\n return \"items\";\n }\n return normalized.endsWith(\"s\") ? normalized : `${normalized}s`;\n}\n\nfunction toSlugToken(value: string): string {\n const trimmed = value.trim().toLowerCase();\n let slug = \"\";\n let pendingDash = false;\n for (const character of trimmed) {\n const code = character.charCodeAt(0);\n const isAlpha = code >= 97 && code <= 122;\n const isDigit = code >= 48 && code <= 57;\n if (isAlpha || isDigit) {\n if (pendingDash && slug.length > 0) {\n slug += \"-\";\n }\n slug += character;\n pendingDash = false;\n continue;\n }\n if (slug.length > 0) {\n pendingDash = true;\n }\n }\n return slug;\n}\n\n// Runtime registry consumes untrusted extension/file definitions, so it uses the\n// strict policy-command resolver (trim + lowercase, reject non-create/update). All\n// other normalization is single-sourced from ./item-type-definition.ts (pm-v798).\nfunction normalizeTypeDefinition(definition: ItemTypeDefinition): ItemTypeDefinition | null {\n return normalizeSharedItemTypeDefinition(definition, { resolvePolicyCommand: strictPolicyCommand });\n}\n\nfunction readStringArray(record: Record<string, unknown>, key: string): string[] | undefined {\n const value = record[key];\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === \"string\") : undefined;\n}\n\nfunction coerceOptionDefinitionFromUnknown(raw: unknown): ItemTypeOptionDefinition | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const optionRecord = raw as Record<string, unknown>;\n if (typeof optionRecord.key !== \"string\") {\n return null;\n }\n return {\n key: optionRecord.key,\n values: readStringArray(optionRecord, \"values\") ?? [],\n required: optionRecord.required === undefined ? undefined : Boolean(optionRecord.required),\n aliases: readStringArray(optionRecord, \"aliases\"),\n description: typeof optionRecord.description === \"string\" ? optionRecord.description : undefined,\n };\n}\n\nfunction coerceCommandOptionPolicyFromUnknown(raw: unknown): ItemTypeCommandOptionPolicy | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const policyRecord = raw as Record<string, unknown>;\n if (typeof policyRecord.command !== \"string\" || typeof policyRecord.option !== \"string\") {\n return null;\n }\n const normalizedCommand = policyRecord.command.trim().toLowerCase();\n if (normalizedCommand !== \"create\" && normalizedCommand !== \"update\") {\n return null;\n }\n return {\n command: normalizedCommand,\n option: policyRecord.option,\n required: policyRecord.required === undefined ? undefined : Boolean(policyRecord.required),\n visible: policyRecord.visible === undefined ? undefined : Boolean(policyRecord.visible),\n enabled: policyRecord.enabled === undefined ? undefined : Boolean(policyRecord.enabled),\n };\n}\n\nfunction coerceOptionDefinitionsFromRecord(record: Record<string, unknown>): ItemTypeOptionDefinition[] | undefined {\n if (!Array.isArray(record.options)) {\n return undefined;\n }\n return record.options\n .map((entry) => coerceOptionDefinitionFromUnknown(entry))\n .filter((entry): entry is ItemTypeOptionDefinition => entry !== null);\n}\n\nfunction coerceCommandOptionPoliciesFromRecord(record: Record<string, unknown>): ItemTypeCommandOptionPolicy[] | undefined {\n if (!Array.isArray(record.command_option_policies)) {\n return undefined;\n }\n return record.command_option_policies\n .map((entry) => coerceCommandOptionPolicyFromUnknown(entry))\n .filter((entry): entry is ItemTypeCommandOptionPolicy => entry !== null);\n}\n\nfunction coerceTypeDefinitionFromUnknown(raw: unknown): ItemTypeDefinition | null {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return null;\n }\n const record = raw as Record<string, unknown>;\n const name = typeof record.name === \"string\" ? record.name : \"\";\n if (name.trim().length === 0) {\n return null;\n }\n const folder = typeof record.folder === \"string\" ? record.folder : undefined;\n const description = typeof record.description === \"string\" ? record.description : undefined;\n const defaultStatus = typeof record.default_status === \"string\" ? record.default_status : undefined;\n return {\n name,\n description,\n default_status: defaultStatus,\n folder,\n aliases: readStringArray(record, \"aliases\"),\n required_create_fields: readStringArray(record, \"required_create_fields\"),\n required_create_repeatables: readStringArray(record, \"required_create_repeatables\"),\n options: coerceOptionDefinitionsFromRecord(record),\n command_option_policies: coerceCommandOptionPoliciesFromRecord(record),\n };\n}\n\nfunction resolveDefinitionRequiredCreateFields(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): string[] {\n return normalizedDefinition.required_create_fields\n ? normalizeItemTypeStringList(normalizedDefinition.required_create_fields)\n : existing?.required_create_fields ?? [];\n}\n\nfunction resolveDefinitionRequiredCreateRepeatables(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): string[] {\n return normalizedDefinition.required_create_repeatables\n ? normalizeItemTypeStringList(normalizedDefinition.required_create_repeatables)\n : existing?.required_create_repeatables ?? [];\n}\n\nfunction resolveDefinitionOptions(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): ItemTypeOptionDefinition[] {\n return normalizedDefinition.options ? normalizedDefinition.options : existing?.options ? [...existing.options] : [];\n}\n\nfunction resolveDefinitionCommandOptionPolicies(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): ItemTypeCommandOptionPolicy[] {\n return normalizedDefinition.command_option_policies\n ? normalizedDefinition.command_option_policies\n : existing?.command_option_policies\n ? [...existing.command_option_policies]\n : [];\n}\n\nfunction buildResolvedTypeDefinition(\n normalizedDefinition: ItemTypeDefinition,\n existing: ResolvedItemTypeDefinition | undefined,\n): ResolvedItemTypeDefinition {\n const keepName = existing?.name ?? normalizedDefinition.name;\n const description = normalizedDefinition.description ?? existing?.description;\n const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;\n const resolvedDefinition: ResolvedItemTypeDefinition = {\n name: keepName,\n folder: normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName),\n aliases: normalizeItemTypeStringList([...(existing?.aliases ?? []), ...(normalizedDefinition.aliases ?? [])]),\n required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),\n required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),\n options: resolveDefinitionOptions(normalizedDefinition, existing),\n command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing),\n };\n if (description) {\n resolvedDefinition.description = description;\n }\n if (defaultStatus) {\n resolvedDefinition.default_status = defaultStatus;\n }\n return resolvedDefinition;\n}\n\nfunction applyTypeDefinitions(\n source: ItemTypeDefinition[],\n target: Map<string, ResolvedItemTypeDefinition>,\n): void {\n for (const rawDefinition of source) {\n const normalizedDefinition = normalizeTypeDefinition(rawDefinition);\n if (!normalizedDefinition) {\n continue;\n }\n const lowerName = normalizedDefinition.name.toLowerCase();\n const existing = target.get(lowerName);\n target.set(lowerName, buildResolvedTypeDefinition(normalizedDefinition, existing));\n }\n}\n\nfunction collectExtensionTypeDefinitions(registrations: ExtensionRegistrationRegistry | null | undefined): ItemTypeDefinition[] {\n if (!registrations) {\n return [];\n }\n const definitions: ItemTypeDefinition[] = [];\n for (const registration of registrations.item_types ?? []) {\n const typeDefinitionsRaw = (registration as { types?: unknown[] }).types;\n if (!Array.isArray(typeDefinitionsRaw)) {\n continue;\n }\n for (const rawDefinition of typeDefinitionsRaw) {\n const normalized = coerceTypeDefinitionFromUnknown(rawDefinition);\n if (normalized) {\n definitions.push(normalized);\n }\n }\n }\n return definitions;\n}\n\n/**\n * Implements resolve item type registry for the public runtime surface of this module.\n */\nexport function resolveItemTypeRegistry(\n settings: PmSettings,\n extensionRegistrations: ExtensionRegistrationRegistry | null | undefined = null,\n): ItemTypeRegistry {\n const byLowerName = new Map<string, ResolvedItemTypeDefinition>();\n for (const builtin of ITEM_TYPE_VALUES) {\n byLowerName.set(builtin.toLowerCase(), {\n name: builtin,\n folder: TYPE_TO_FOLDER[builtin],\n aliases: [],\n required_create_fields: [...DEFAULT_REQUIRED_CREATE_FIELDS],\n required_create_repeatables: [...DEFAULT_REQUIRED_CREATE_REPEATABLES],\n options: [],\n command_option_policies: [],\n });\n }\n\n applyTypeDefinitions(settings.item_types?.definitions ?? [], byLowerName);\n applyTypeDefinitions(collectExtensionTypeDefinitions(extensionRegistrations), byLowerName);\n\n const definitions = [...byLowerName.values()].sort((left, right) => left.name.localeCompare(right.name));\n const byType: Record<string, ResolvedItemTypeDefinition> = {};\n const aliasToType: Record<string, string> = {};\n const typeToFolder: Record<string, string> = {};\n for (const definition of definitions) {\n byType[definition.name] = definition;\n typeToFolder[definition.name] = definition.folder;\n aliasToType[definition.name.toLowerCase()] = definition.name;\n for (const alias of definition.aliases) {\n aliasToType[alias.toLowerCase()] = definition.name;\n }\n }\n const folders = [...new Set(definitions.map((definition) => definition.folder))].sort((left, right) => left.localeCompare(right));\n return {\n types: definitions.map((definition) => definition.name),\n folders,\n type_to_folder: typeToFolder,\n by_type: byType,\n alias_to_type: aliasToType,\n };\n}\n\n/**\n * Implements resolve type name for the public runtime surface of this module.\n */\nexport function resolveTypeName(rawType: string | undefined, registry: ItemTypeRegistry): string | undefined {\n if (rawType === undefined) {\n return undefined;\n }\n return registry.alias_to_type[rawType.trim().toLowerCase()];\n}\n\n/**\n * Implements resolve type definition for the public runtime surface of this module.\n */\nexport function resolveTypeDefinition(\n typeName: string | undefined,\n registry: ItemTypeRegistry,\n): ResolvedItemTypeDefinition | undefined {\n const resolvedName = resolveTypeName(typeName, registry);\n if (!resolvedName) {\n return undefined;\n }\n return registry.by_type[resolvedName];\n}\n\nfunction applyBaseRequiredCommandOptions(\n state: Pick<CommandOptionPolicyState, \"errors\"> & { required: Set<string> },\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n baseRequiredOptions: Iterable<string>,\n): void {\n for (const rawBase of baseRequiredOptions) {\n const canonical = canonicalizeCommandOptionKey(command, rawBase);\n if (canonical) {\n state.required.add(canonical);\n continue;\n }\n state.errors.push(\n `Unsupported base required option \"${rawBase}\" for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n }\n}\n\nfunction applyBooleanPolicySet(target: Set<string>, option: string, enabled: boolean): void {\n if (enabled) {\n target.add(option);\n return;\n }\n target.delete(option);\n}\n\nfunction applyCommandOptionPolicy(\n state: Omit<CommandOptionPolicyState, \"required\" | \"hidden\" | \"disabled\"> & {\n required: Set<string>;\n hidden: Set<string>;\n disabled: Set<string>;\n },\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n policy: ItemTypeCommandOptionPolicy,\n): void {\n const canonical = canonicalizeCommandOptionKey(command, policy.option);\n if (!canonical) {\n state.errors.push(\n `Unsupported command_option_policies option \"${policy.option}\" for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n return;\n }\n if (policy.required !== undefined) {\n applyBooleanPolicySet(state.required, canonical, policy.required);\n }\n if (policy.visible !== undefined) {\n applyBooleanPolicySet(state.hidden, canonical, !policy.visible);\n }\n if (policy.enabled !== undefined) {\n applyBooleanPolicySet(state.disabled, canonical, !policy.enabled);\n }\n}\n\nfunction applyCommandOptionPolicies(\n state: Omit<CommandOptionPolicyState, \"required\" | \"hidden\" | \"disabled\"> & {\n required: Set<string>;\n hidden: Set<string>;\n disabled: Set<string>;\n },\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n): void {\n for (const policy of typeDefinition.command_option_policies) {\n if (policy.command === command) {\n applyCommandOptionPolicy(state, typeDefinition, command, policy);\n }\n }\n}\n\nfunction appendRequiredDisabledPolicyErrors(\n state: Pick<CommandOptionPolicyState, \"errors\"> & {\n required: Set<string>;\n disabled: Set<string>;\n },\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n): void {\n for (const option of state.required) {\n if (state.disabled.has(option)) {\n state.errors.push(\n `Option \"${option}\" cannot be both required and disabled for command \"${command}\" on type \"${typeDefinition.name}\"`,\n );\n }\n }\n}\n\n/**\n * Implements resolve command option policy state for the public runtime surface of this module.\n */\nexport function resolveCommandOptionPolicyState(\n typeDefinition: ResolvedItemTypeDefinition,\n command: CommandOptionPolicyCommand,\n baseRequiredOptions: Iterable<string>,\n): CommandOptionPolicyState {\n const errors: string[] = [];\n const required = new Set<string>();\n const hidden = new Set<string>();\n const disabled = new Set<string>();\n const state = { required, hidden, disabled, errors };\n\n applyBaseRequiredCommandOptions(state, typeDefinition, command, baseRequiredOptions);\n applyCommandOptionPolicies(state, typeDefinition, command);\n appendRequiredDisabledPolicyErrors(state, typeDefinition, command);\n\n return {\n required: [...required],\n hidden: [...hidden].sort((left, right) => left.localeCompare(right)),\n disabled: [...disabled].sort((left, right) => left.localeCompare(right)),\n errors,\n };\n}\n\nfunction buildTypeOptionAliasMap(typeDefinition: ResolvedItemTypeDefinition): Map<string, ItemTypeOptionDefinition> {\n const optionByAlias = new Map<string, ItemTypeOptionDefinition>();\n for (const option of typeDefinition.options) {\n optionByAlias.set(option.key.toLowerCase(), option);\n for (const alias of option.aliases ?? []) {\n optionByAlias.set(alias.toLowerCase(), option);\n }\n }\n return optionByAlias;\n}\n\nfunction resolveTypeOptionValue(\n optionDefinition: ItemTypeOptionDefinition,\n trimmedValue: string,\n errors: string[],\n): string | undefined {\n const allowedValues = optionDefinition.values;\n if (allowedValues.length === 0) {\n return trimmedValue;\n }\n const valueLookup = new Map(allowedValues.map((value) => [value.toLowerCase(), value]));\n const canonical = valueLookup.get(trimmedValue.toLowerCase());\n if (!canonical) {\n errors.push(`Invalid value \"${trimmedValue}\" for type option \"${optionDefinition.key}\". Allowed: ${allowedValues.join(\", \")}`);\n return undefined;\n }\n return canonical;\n}\n\n/**\n * Implements validate type options for the public runtime surface of this module.\n */\nexport function validateTypeOptions(\n typeName: string,\n rawTypeOptions: Record<string, string> | undefined,\n registry: ItemTypeRegistry,\n): { normalized: Record<string, string> | undefined; errors: string[] } {\n const typeDefinition = resolveTypeDefinition(typeName, registry);\n if (!typeDefinition) {\n return {\n normalized: undefined,\n errors: [`Unknown type \"${typeName}\"`],\n };\n }\n const errors: string[] = [];\n const optionByAlias = buildTypeOptionAliasMap(typeDefinition);\n\n const normalized: Record<string, string> = {};\n for (const [rawKey, rawValue] of Object.entries(rawTypeOptions ?? {})) {\n const trimmedKey = rawKey.trim();\n const trimmedValue = rawValue.trim();\n if (trimmedKey.length === 0) {\n errors.push(\"type option keys must not be empty\");\n continue;\n }\n if (trimmedValue.length === 0) {\n errors.push(`type option \"${trimmedKey}\" must not be empty`);\n continue;\n }\n const optionDefinition = optionByAlias.get(trimmedKey.toLowerCase());\n if (!optionDefinition) {\n const allowed = typeDefinition.options.map((option) => option.key).join(\", \");\n errors.push(\n typeDefinition.options.length > 0\n ? `Unknown type option \"${trimmedKey}\" for type \"${typeDefinition.name}\". Allowed: ${allowed}`\n : `Type \"${typeDefinition.name}\" does not define any configurable type options`,\n );\n continue;\n }\n const resolvedValue = resolveTypeOptionValue(optionDefinition, trimmedValue, errors);\n if (resolvedValue === undefined) {\n continue;\n }\n normalized[optionDefinition.key] = resolvedValue;\n }\n\n for (const option of typeDefinition.options) {\n if (option.required && !(option.key in normalized)) {\n errors.push(`Missing required type option \"${option.key}\" for type \"${typeDefinition.name}\"`);\n }\n }\n\n const sortedKeys = Object.keys(normalized).sort((left, right) => left.localeCompare(right));\n if (sortedKeys.length === 0) {\n return {\n normalized: undefined,\n errors,\n };\n }\n return {\n normalized: Object.fromEntries(sortedKeys.map((key) => [key, normalized[key]])),\n errors,\n };\n}\n"],"names":[],"mappings":"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","debugId":"563d02b1-6a96-539c-9e2c-dc118aa5dd72"}