@unbrained/pm-cli 2026.6.8 → 2026.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/CHANGELOG.md +74 -11
  2. package/dist/cli/bootstrap-args.js +4 -2
  3. package/dist/cli/bootstrap-args.js.map +1 -1
  4. package/dist/cli/commands/aggregate.d.ts +7 -0
  5. package/dist/cli/commands/aggregate.js +53 -12
  6. package/dist/cli/commands/aggregate.js.map +1 -1
  7. package/dist/cli/commands/close.d.ts +1 -0
  8. package/dist/cli/commands/close.js +106 -3
  9. package/dist/cli/commands/close.js.map +1 -1
  10. package/dist/cli/commands/completion.js +20 -7
  11. package/dist/cli/commands/completion.js.map +1 -1
  12. package/dist/cli/commands/context.d.ts +9 -0
  13. package/dist/cli/commands/context.js +149 -20
  14. package/dist/cli/commands/context.js.map +1 -1
  15. package/dist/cli/commands/create.d.ts +1 -0
  16. package/dist/cli/commands/create.js +5 -3
  17. package/dist/cli/commands/create.js.map +1 -1
  18. package/dist/cli/commands/extension.js +4 -2
  19. package/dist/cli/commands/extension.js.map +1 -1
  20. package/dist/cli/commands/health.js +44 -6
  21. package/dist/cli/commands/health.js.map +1 -1
  22. package/dist/cli/commands/history.js +6 -5
  23. package/dist/cli/commands/history.js.map +1 -1
  24. package/dist/cli/commands/linked-test-parsers.d.ts +1 -0
  25. package/dist/cli/commands/linked-test-parsers.js +289 -2
  26. package/dist/cli/commands/linked-test-parsers.js.map +1 -1
  27. package/dist/cli/commands/reindex.d.ts +1 -0
  28. package/dist/cli/commands/reindex.js +33 -4
  29. package/dist/cli/commands/reindex.js.map +1 -1
  30. package/dist/cli/commands/test.d.ts +6 -0
  31. package/dist/cli/commands/test.js +46 -5
  32. package/dist/cli/commands/test.js.map +1 -1
  33. package/dist/cli/extension-command-help.d.ts +1 -0
  34. package/dist/cli/extension-command-help.js +42 -2
  35. package/dist/cli/extension-command-help.js.map +1 -1
  36. package/dist/cli/extension-command-options.d.ts +2 -0
  37. package/dist/cli/extension-command-options.js +89 -17
  38. package/dist/cli/extension-command-options.js.map +1 -1
  39. package/dist/cli/main.js +26 -26
  40. package/dist/cli/main.js.map +1 -1
  41. package/dist/cli/register-list-query.js +3 -2
  42. package/dist/cli/register-list-query.js.map +1 -1
  43. package/dist/cli/register-mutation.js +4 -2
  44. package/dist/cli/register-mutation.js.map +1 -1
  45. package/dist/cli/register-operations.js +15 -6
  46. package/dist/cli/register-operations.js.map +1 -1
  47. package/dist/cli/registration-helpers.js +9 -2
  48. package/dist/cli/registration-helpers.js.map +1 -1
  49. package/dist/cli-bundle/chunks/activity-5QLX6DHN.js +16 -0
  50. package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js → activity-W6TS5F2L.js} +11 -11
  51. package/dist/cli-bundle/chunks/{aggregate-GBSHSXOB.js → aggregate-NNJLKGEK.js} +64 -24
  52. package/dist/cli-bundle/chunks/aggregate-NNJLKGEK.js.map +7 -0
  53. package/dist/cli-bundle/chunks/{aggregate-HKQJZUBG.js → aggregate-UK2WJ4Z3.js} +65 -25
  54. package/dist/cli-bundle/chunks/aggregate-UK2WJ4Z3.js.map +1 -0
  55. package/dist/cli-bundle/chunks/{append-3RFOU7P5.js → append-7BS36Z2L.js} +8 -8
  56. package/dist/cli-bundle/chunks/{append-OM74OJVT.js → append-DHGTLUZW.js} +8 -8
  57. package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js → chunk-2MKBPWMK.js} +6 -8
  58. package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js.map → chunk-2MKBPWMK.js.map} +1 -1
  59. package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js → chunk-344GDQTH.js} +2 -2
  60. package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js → chunk-3VTWCBXL.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js → chunk-4CYHWHZU.js} +2 -2
  62. package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js → chunk-4H2NDEGJ.js} +7 -7
  63. package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js → chunk-5HH6QRH5.js} +9 -9
  64. package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js → chunk-5OMABP7I.js} +7 -7
  65. package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js → chunk-6ADVKPVV.js} +7 -7
  66. package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js → chunk-6KQS23TX.js} +8 -8
  67. package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js → chunk-6N46IM44.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-EPWT7BEA.js → chunk-6OSG3EMX.js} +157 -12
  69. package/dist/cli-bundle/chunks/chunk-6OSG3EMX.js.map +1 -0
  70. package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js → chunk-73PSHEMT.js} +8 -8
  71. package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js → chunk-7DUVDW7C.js} +3 -3
  72. package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js → chunk-7GYMMDDW.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-QFVASU44.js → chunk-7TW64BS5.js} +2 -2
  74. package/dist/cli-bundle/chunks/{chunk-VXBUXLVD.js → chunk-A6XVYNQJ.js} +13 -6
  75. package/dist/cli-bundle/chunks/chunk-A6XVYNQJ.js.map +7 -0
  76. package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js → chunk-ANVZCNL5.js} +3 -3
  77. package/dist/cli-bundle/chunks/{chunk-HOA3GMB6.js → chunk-BE5G7HEL.js} +14 -8
  78. package/dist/cli-bundle/chunks/chunk-BE5G7HEL.js.map +1 -0
  79. package/dist/cli-bundle/chunks/{chunk-QWNUDGFQ.js → chunk-CMEHZD6G.js} +163 -11
  80. package/dist/cli-bundle/chunks/chunk-CMEHZD6G.js.map +7 -0
  81. package/dist/cli-bundle/chunks/{chunk-7NQIY7Z6.js → chunk-CTW7QAHM.js} +6 -5
  82. package/dist/cli-bundle/chunks/chunk-CTW7QAHM.js.map +1 -0
  83. package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js → chunk-D6JZBUZ6.js} +7 -7
  84. package/dist/cli-bundle/chunks/{chunk-F33AQIB4.js → chunk-DEYNERFX.js} +19 -7
  85. package/dist/cli-bundle/chunks/chunk-DEYNERFX.js.map +1 -0
  86. package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js → chunk-DMDEC4QP.js} +6 -6
  87. package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js → chunk-DTRIVUTN.js} +5 -5
  88. package/dist/cli-bundle/chunks/{chunk-KS2U7BZ3.js → chunk-EAQLLID6.js} +16 -6
  89. package/dist/cli-bundle/chunks/chunk-EAQLLID6.js.map +1 -0
  90. package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js → chunk-EIS32UA4.js} +2 -2
  91. package/dist/cli-bundle/chunks/chunk-F2PVV7IX.js +528 -0
  92. package/dist/cli-bundle/chunks/chunk-F2PVV7IX.js.map +7 -0
  93. package/dist/cli-bundle/chunks/{chunk-DV27WDA7.js → chunk-GF5XIBUH.js} +70 -9
  94. package/dist/cli-bundle/chunks/chunk-GF5XIBUH.js.map +7 -0
  95. package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js → chunk-GP6SHEAI.js} +5 -5
  96. package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js → chunk-GRHPU6EM.js} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js → chunk-I2FM2SMO.js} +2 -2
  98. package/dist/cli-bundle/chunks/{chunk-F33VC5EX.js → chunk-IEQ3N7WP.js} +12 -5
  99. package/dist/cli-bundle/chunks/chunk-IEQ3N7WP.js.map +1 -0
  100. package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js → chunk-K45NAJV2.js} +9 -9
  101. package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js → chunk-K7SXBA75.js} +2 -2
  102. package/dist/cli-bundle/chunks/{chunk-OVSSE2JP.js → chunk-KHBRV5JU.js} +14 -12
  103. package/dist/cli-bundle/chunks/chunk-KHBRV5JU.js.map +1 -0
  104. package/dist/cli-bundle/chunks/{chunk-D7WK2PKB.js → chunk-KMMUDSSB.js} +112 -7
  105. package/dist/cli-bundle/chunks/chunk-KMMUDSSB.js.map +1 -0
  106. package/dist/cli-bundle/chunks/{chunk-ALSRBNYB.js → chunk-KRZQGRVL.js} +14 -7
  107. package/dist/cli-bundle/chunks/chunk-KRZQGRVL.js.map +1 -0
  108. package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js → chunk-LUJQJR7G.js} +71 -69
  109. package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js.map → chunk-LUJQJR7G.js.map} +1 -1
  110. package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js → chunk-LYL32FT6.js} +3 -3
  111. package/dist/cli-bundle/chunks/{chunk-ODN53S6H.js → chunk-MF6KSSMF.js} +11 -14
  112. package/dist/cli-bundle/chunks/chunk-MF6KSSMF.js.map +1 -0
  113. package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js → chunk-O64EYNHF.js} +6 -6
  114. package/dist/cli-bundle/chunks/{chunk-3TXWDGPU.js → chunk-OQGJSCZZ.js} +522 -37
  115. package/dist/cli-bundle/chunks/chunk-OQGJSCZZ.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js → chunk-OROMGSBP.js} +2 -2
  117. package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js → chunk-OSGWBWLK.js} +76 -74
  118. package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js.map → chunk-OSGWBWLK.js.map} +3 -3
  119. package/dist/cli-bundle/chunks/{chunk-7WXGR44E.js → chunk-OVNSQHDG.js} +19 -7
  120. package/dist/cli-bundle/chunks/chunk-OVNSQHDG.js.map +7 -0
  121. package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js → chunk-PYULT32I.js} +2 -2
  122. package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js → chunk-Q6PSD5DZ.js} +3 -3
  123. package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js → chunk-QGIWURY3.js} +12 -12
  124. package/dist/cli-bundle/chunks/{chunk-KCGMABHM.js → chunk-QJ2OIEOC.js} +68 -7
  125. package/dist/cli-bundle/chunks/chunk-QJ2OIEOC.js.map +1 -0
  126. package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js → chunk-SNASEDXB.js} +3 -3
  127. package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js → chunk-T6QLB34N.js} +3 -3
  128. package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js → chunk-TALBUVWF.js} +2 -2
  129. package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js → chunk-TV6FZGVK.js} +3 -3
  130. package/dist/cli-bundle/chunks/{chunk-MSH23UWO.js → chunk-TXWMLDMG.js} +13 -7
  131. package/dist/cli-bundle/chunks/chunk-TXWMLDMG.js.map +7 -0
  132. package/dist/cli-bundle/chunks/{chunk-TXKENAQP.js → chunk-TZLGCTA5.js} +5 -4
  133. package/dist/cli-bundle/chunks/chunk-TZLGCTA5.js.map +7 -0
  134. package/dist/cli-bundle/chunks/{chunk-4TI3532H.js → chunk-UDWUDUJI.js} +2 -2
  135. package/dist/cli-bundle/chunks/{chunk-N4SQZ7L3.js → chunk-UMWF6ZAS.js} +12 -5
  136. package/dist/cli-bundle/chunks/chunk-UMWF6ZAS.js.map +7 -0
  137. package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js → chunk-UNH3KSHG.js} +4 -6
  138. package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js.map → chunk-UNH3KSHG.js.map} +1 -1
  139. package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js → chunk-UY26RIBR.js} +2 -2
  140. package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js → chunk-VSS3CSTF.js} +9 -9
  141. package/dist/cli-bundle/chunks/{chunk-2YPVCD7T.js → chunk-WBU257Z4.js} +13 -11
  142. package/dist/cli-bundle/chunks/chunk-WBU257Z4.js.map +7 -0
  143. package/dist/cli-bundle/chunks/{chunk-YJAKN2N2.js → chunk-WNMRICXH.js} +489 -32
  144. package/dist/cli-bundle/chunks/chunk-WNMRICXH.js.map +1 -0
  145. package/dist/cli-bundle/chunks/chunk-WSWOQP3Z.js +518 -0
  146. package/dist/cli-bundle/chunks/chunk-WSWOQP3Z.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js → chunk-WWEFBBVF.js} +12 -12
  148. package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js → chunk-X3IPJU2O.js} +9 -9
  149. package/dist/cli-bundle/chunks/{chunk-KBKJVXUS.js → chunk-X5YC5DZM.js} +111 -6
  150. package/dist/cli-bundle/chunks/chunk-X5YC5DZM.js.map +7 -0
  151. package/dist/cli-bundle/chunks/{chunk-KVXIQDJG.js → chunk-XH6RA5A5.js} +15 -15
  152. package/dist/cli-bundle/chunks/chunk-XH6RA5A5.js.map +1 -0
  153. package/dist/cli-bundle/chunks/{chunk-2HMD3JM2.js → chunk-XRE4CTNP.js} +11 -14
  154. package/dist/cli-bundle/chunks/chunk-XRE4CTNP.js.map +7 -0
  155. package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js → chunk-XSCGU4WT.js} +15 -5
  156. package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js.map → chunk-XSCGU4WT.js.map} +2 -2
  157. package/dist/cli-bundle/chunks/{chunk-L3LYL3ID.js → chunk-ZH7C7ZVX.js} +14 -14
  158. package/dist/cli-bundle/chunks/chunk-ZH7C7ZVX.js.map +7 -0
  159. package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js → claim-3TY5LE54.js} +10 -10
  160. package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js → claim-LM4YY6QQ.js} +10 -10
  161. package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js → close-CSD4LEMT.js} +8 -8
  162. package/dist/cli-bundle/chunks/close-SIQCDOBR.js +13 -0
  163. package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js → close-many-B5SHDX6W.js} +17 -18
  164. package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js.map → close-many-B5SHDX6W.js.map} +1 -1
  165. package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js → close-many-WRXB5KVY.js} +15 -16
  166. package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js.map → close-many-WRXB5KVY.js.map} +1 -1
  167. package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js → comments-A5ALOYTG.js} +10 -10
  168. package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js → comments-BDDEK3VW.js} +10 -10
  169. package/dist/cli-bundle/chunks/{config-72253M2O.js → config-W2NHDNQT.js} +8 -8
  170. package/dist/cli-bundle/chunks/{config-VFYA6BMI.js → config-YUYBMJOW.js} +8 -8
  171. package/dist/cli-bundle/chunks/{context-AVLO4IFH.js → context-LRJ74NSU.js} +147 -36
  172. package/dist/cli-bundle/chunks/context-LRJ74NSU.js.map +7 -0
  173. package/dist/cli-bundle/chunks/{context-WMSI2D65.js → context-R2QLOJCK.js} +148 -37
  174. package/dist/cli-bundle/chunks/context-R2QLOJCK.js.map +1 -0
  175. package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js → contracts-47X7RYUF.js} +4 -4
  176. package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js → contracts-HJHR4NCD.js} +4 -4
  177. package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js → copy-B7HFOWFB.js} +7 -7
  178. package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js → copy-P4UVYZ7M.js} +7 -7
  179. package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js → create-5ERJF64D.js} +13 -13
  180. package/dist/cli-bundle/chunks/create-TXNRPS4K.js +27 -0
  181. package/dist/cli-bundle/chunks/{delete-WBME6WG5.js → delete-LX3LGBCH.js} +7 -7
  182. package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js → delete-S3WVK6LP.js} +7 -7
  183. package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js → deps-GWSNH7OZ.js} +7 -7
  184. package/dist/cli-bundle/chunks/{deps-KWHQRO75.js → deps-YSM4LZQD.js} +7 -7
  185. package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js → docs-7RYFBHQD.js} +9 -9
  186. package/dist/cli-bundle/chunks/{docs-364GT3ZR.js → docs-TG6JMVMY.js} +9 -9
  187. package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js → extension-R3LUKMX7.js} +5 -5
  188. package/dist/cli-bundle/chunks/{extension-CRE7JM47.js → extension-VNMRKIHI.js} +5 -5
  189. package/dist/cli-bundle/chunks/{files-66EHM5ZR.js → files-KAKU57OT.js} +9 -9
  190. package/dist/cli-bundle/chunks/{files-3GESQAWL.js → files-QB3EYPMO.js} +9 -9
  191. package/dist/cli-bundle/chunks/{gc-MOQDND5J.js → gc-B747VM4M.js} +3 -3
  192. package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js → gc-KNUPLPSW.js} +3 -3
  193. package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js → get-GMGLIQ5I.js} +11 -11
  194. package/dist/cli-bundle/chunks/{get-WXSLXV3K.js → get-SBL6NHYQ.js} +11 -11
  195. package/dist/cli-bundle/chunks/{health-B6AEM7BV.js → health-IG43Z4KL.js} +47 -19
  196. package/dist/cli-bundle/chunks/health-IG43Z4KL.js.map +1 -0
  197. package/dist/cli-bundle/chunks/{health-YMZGOMVX.js → health-WWZJ5KJS.js} +46 -18
  198. package/dist/cli-bundle/chunks/health-WWZJ5KJS.js.map +7 -0
  199. package/dist/cli-bundle/chunks/history-6UKSZTRT.js +20 -0
  200. package/dist/cli-bundle/chunks/{history-TJTO5GCR.js → history-XCWRXBXC.js} +10 -10
  201. package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js → history-compact-IDH7E7VN.js} +11 -11
  202. package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js → history-compact-KICKUCR7.js} +11 -11
  203. package/dist/cli-bundle/chunks/history-redact-HKYBTK6X.js +19 -0
  204. package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js → history-redact-JJWH3QWK.js} +11 -11
  205. package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js → history-repair-7HWBZKXN.js} +11 -11
  206. package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js → history-repair-N5HXKJOI.js} +11 -11
  207. package/dist/cli-bundle/chunks/init-27JLDUO2.js +17 -0
  208. package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js → init-OQA3TWIS.js} +9 -9
  209. package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js → learnings-L7VQUSVI.js} +10 -10
  210. package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js → learnings-Z4GAIZQ5.js} +10 -10
  211. package/dist/cli-bundle/chunks/list-6U3CJVXS.js +19 -0
  212. package/dist/cli-bundle/chunks/{list-JGP7ODML.js → list-W5ROBC5U.js} +10 -11
  213. package/dist/cli-bundle/chunks/{notes-P25YVTEG.js → notes-JJDOEDFK.js} +10 -10
  214. package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js → notes-SDCK7BEN.js} +10 -10
  215. package/dist/cli-bundle/chunks/{plan-RACB5PI6.js → plan-H5HYHMBB.js} +13 -13
  216. package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js → plan-W2B5RYR3.js} +13 -13
  217. package/dist/cli-bundle/chunks/{register-list-query-GQAEIG4K.js → register-list-query-QGRFMDWA.js} +20 -20
  218. package/dist/cli-bundle/chunks/register-list-query-QGRFMDWA.js.map +7 -0
  219. package/dist/cli-bundle/chunks/{register-list-query-5IXDPUZ6.js → register-list-query-V4S23735.js} +21 -21
  220. package/dist/cli-bundle/chunks/register-list-query-V4S23735.js.map +1 -0
  221. package/dist/cli-bundle/chunks/{register-mutation-FAS4YG63.js → register-mutation-I57PLUHA.js} +36 -35
  222. package/dist/cli-bundle/chunks/register-mutation-I57PLUHA.js.map +1 -0
  223. package/dist/cli-bundle/chunks/{register-mutation-YZCUILGO.js → register-mutation-ZPZNJXSA.js} +35 -34
  224. package/dist/cli-bundle/chunks/register-mutation-ZPZNJXSA.js.map +7 -0
  225. package/dist/cli-bundle/chunks/{register-operations-S2BOLUPF.js → register-operations-KAMLXAF5.js} +42 -37
  226. package/dist/cli-bundle/chunks/register-operations-KAMLXAF5.js.map +1 -0
  227. package/dist/cli-bundle/chunks/{register-operations-IBYWNJN5.js → register-operations-YEN4YEZ2.js} +41 -36
  228. package/dist/cli-bundle/chunks/register-operations-YEN4YEZ2.js.map +7 -0
  229. package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js → register-setup-BZ3TNE3G.js} +15 -15
  230. package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js → register-setup-WLFL3OUF.js} +15 -15
  231. package/dist/cli-bundle/chunks/restore-GNI2W5CN.js +17 -0
  232. package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js → restore-RGFSPG4K.js} +11 -11
  233. package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js → schema-CCDU3RLC.js} +8 -8
  234. package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js → schema-KZASL323.js} +8 -8
  235. package/dist/cli-bundle/chunks/{search-632WJ7GO.js → search-7KSOLI2E.js} +10 -11
  236. package/dist/cli-bundle/chunks/{search-632WJ7GO.js.map → search-7KSOLI2E.js.map} +1 -1
  237. package/dist/cli-bundle/chunks/{search-EQDHSE4G.js → search-DTL7CO22.js} +12 -13
  238. package/dist/cli-bundle/chunks/{search-EQDHSE4G.js.map → search-DTL7CO22.js.map} +1 -1
  239. package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js → stats-IOXQMGI6.js} +7 -7
  240. package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js → stats-QNV7B2CE.js} +7 -7
  241. package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js → telemetry-IV5C6JOM.js} +4 -4
  242. package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js → telemetry-NHR5RFXT.js} +4 -4
  243. package/dist/cli-bundle/chunks/test-4Z37CXW4.js +32 -0
  244. package/dist/cli-bundle/chunks/{test-GXUBQNUC.js → test-PIL2CEEB.js} +14 -14
  245. package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js → test-all-GRLYHBNP.js} +14 -14
  246. package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js → test-all-MFN4MYCV.js} +14 -14
  247. package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js → test-runs-7LRFWWCA.js} +5 -5
  248. package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js → test-runs-7WCSC3TY.js} +5 -5
  249. package/dist/cli-bundle/chunks/update-I4G34LKJ.js +21 -0
  250. package/dist/cli-bundle/chunks/{update-U4B4OMHZ.js → update-VI5DBZ3G.js} +15 -15
  251. package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js → update-many-LOTAYUTN.js} +22 -23
  252. package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js.map → update-many-LOTAYUTN.js.map} +1 -1
  253. package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js → update-many-UYMTVF42.js} +24 -25
  254. package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js.map → update-many-UYMTVF42.js.map} +1 -1
  255. package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js → upgrade-LT2MLLPS.js} +5 -5
  256. package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js → upgrade-ZZSC7CLV.js} +5 -5
  257. package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js → validate-3XRORNMP.js} +16 -16
  258. package/dist/cli-bundle/chunks/{validate-CRWXZILW.js → validate-IQIQSKUX.js} +16 -16
  259. package/dist/cli-bundle/main.js +157 -62
  260. package/dist/cli-bundle/main.js.map +2 -2
  261. package/dist/core/diagnostics/remediation.js +12 -2
  262. package/dist/core/diagnostics/remediation.js.map +1 -1
  263. package/dist/core/extensions/extension-policy.d.ts +14 -1
  264. package/dist/core/extensions/extension-policy.js +38 -3
  265. package/dist/core/extensions/extension-policy.js.map +1 -1
  266. package/dist/core/extensions/extension-types.d.ts +99 -2
  267. package/dist/core/extensions/extension-types.js +28 -2
  268. package/dist/core/extensions/extension-types.js.map +1 -1
  269. package/dist/core/extensions/flag-value-types.d.ts +29 -0
  270. package/dist/core/extensions/flag-value-types.js +78 -0
  271. package/dist/core/extensions/flag-value-types.js.map +1 -0
  272. package/dist/core/extensions/item-field-types.d.ts +22 -0
  273. package/dist/core/extensions/item-field-types.js +43 -0
  274. package/dist/core/extensions/item-field-types.js.map +1 -0
  275. package/dist/core/extensions/item-fields.js +4 -11
  276. package/dist/core/extensions/item-fields.js.map +1 -1
  277. package/dist/core/extensions/loader.d.ts +16 -1
  278. package/dist/core/extensions/loader.js +202 -18
  279. package/dist/core/extensions/loader.js.map +1 -1
  280. package/dist/core/history/replay.d.ts +1 -1
  281. package/dist/core/history/replay.js +13 -4
  282. package/dist/core/history/replay.js.map +1 -1
  283. package/dist/core/output/mutation-projection.d.ts +2 -0
  284. package/dist/core/output/mutation-projection.js +9 -2
  285. package/dist/core/output/mutation-projection.js.map +1 -1
  286. package/dist/core/output/output.d.ts +2 -0
  287. package/dist/core/output/output.js +7 -3
  288. package/dist/core/output/output.js.map +1 -1
  289. package/dist/core/packages/manifest.d.ts +1 -1
  290. package/dist/core/packages/manifest.js +12 -2
  291. package/dist/core/packages/manifest.js.map +1 -1
  292. package/dist/core/shared/command-types.d.ts +1 -0
  293. package/dist/core/shared/command-types.js +2 -2
  294. package/dist/core/shared/command-types.js.map +1 -1
  295. package/dist/core/shared/constants.js +7 -4
  296. package/dist/core/shared/constants.js.map +1 -1
  297. package/dist/core/store/item-store.d.ts +1 -1
  298. package/dist/core/store/item-store.js +3 -3
  299. package/dist/core/store/item-store.js.map +1 -1
  300. package/dist/core/store/settings-read-cache.d.ts +15 -0
  301. package/dist/core/store/settings-read-cache.js +72 -0
  302. package/dist/core/store/settings-read-cache.js.map +1 -0
  303. package/dist/core/store/settings-validator.d.ts +4 -1
  304. package/dist/core/store/settings-validator.js +14 -2
  305. package/dist/core/store/settings-validator.js.map +1 -1
  306. package/dist/core/store/settings.js +166 -16
  307. package/dist/core/store/settings.js.map +1 -1
  308. package/dist/core/telemetry/runtime.d.ts +1 -0
  309. package/dist/core/telemetry/runtime.js +3 -3
  310. package/dist/core/telemetry/runtime.js.map +1 -1
  311. package/dist/core/test/run-selectors.d.ts +27 -0
  312. package/dist/core/test/run-selectors.js +110 -0
  313. package/dist/core/test/run-selectors.js.map +1 -0
  314. package/dist/mcp/server.js +105 -40
  315. package/dist/mcp/server.js.map +1 -1
  316. package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -2
  317. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  318. package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
  319. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  320. package/dist/sdk/cli-contracts/tool-parameter-tables.js +29 -2
  321. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  322. package/dist/sdk/cli-contracts.js +37 -5
  323. package/dist/sdk/cli-contracts.js.map +1 -1
  324. package/dist/sdk/index.d.ts +7 -2
  325. package/dist/sdk/index.js +3 -3
  326. package/dist/sdk/index.js.map +1 -1
  327. package/dist/sdk/runtime.d.ts +6 -0
  328. package/dist/sdk/runtime.js +51 -3
  329. package/dist/sdk/runtime.js.map +1 -1
  330. package/dist/sdk/testing.d.ts +55 -1
  331. package/dist/sdk/testing.js +92 -2
  332. package/dist/sdk/testing.js.map +1 -1
  333. package/dist/types.d.ts +4 -1
  334. package/dist/types.js +4 -2
  335. package/dist/types.js.map +1 -1
  336. package/docs/AGENT_GUIDE.md +7 -1
  337. package/docs/ARCHITECTURE.md +7 -0
  338. package/docs/COMMANDS.md +37 -3
  339. package/docs/CONFIGURATION.md +1 -1
  340. package/docs/EXTENSIONS.md +59 -53
  341. package/docs/SDK.md +104 -0
  342. package/docs/TESTING.md +60 -0
  343. package/docs/schemas/extension-manifest.schema.json +120 -0
  344. package/package.json +2 -2
  345. package/packages/pm-beads/extensions/beads/manifest.json +10 -0
  346. package/packages/pm-calendar/extensions/calendar/manifest.json +10 -0
  347. package/packages/pm-command-kit/README.md +72 -0
  348. package/packages/pm-command-kit/extensions/command-kit/index.js +181 -0
  349. package/packages/pm-command-kit/extensions/command-kit/index.ts +176 -0
  350. package/packages/pm-command-kit/extensions/command-kit/manifest.json +22 -0
  351. package/packages/pm-command-kit/package.json +53 -0
  352. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +10 -0
  353. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +10 -0
  354. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +10 -0
  355. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +10 -0
  356. package/packages/pm-search-advanced/extensions/search-advanced/index.js +6 -0
  357. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +6 -0
  358. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +10 -0
  359. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +1 -0
  360. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -0
  361. package/packages/pm-templates/extensions/templates/manifest.json +10 -0
  362. package/packages/pm-todos/extensions/todos/manifest.json +10 -0
  363. package/dist/cli-bundle/chunks/activity-A3QKFSSF.js +0 -16
  364. package/dist/cli-bundle/chunks/aggregate-GBSHSXOB.js.map +0 -7
  365. package/dist/cli-bundle/chunks/aggregate-HKQJZUBG.js.map +0 -1
  366. package/dist/cli-bundle/chunks/chunk-2HMD3JM2.js.map +0 -7
  367. package/dist/cli-bundle/chunks/chunk-2YPVCD7T.js.map +0 -7
  368. package/dist/cli-bundle/chunks/chunk-3TXWDGPU.js.map +0 -7
  369. package/dist/cli-bundle/chunks/chunk-7NQIY7Z6.js.map +0 -1
  370. package/dist/cli-bundle/chunks/chunk-7WXGR44E.js.map +0 -7
  371. package/dist/cli-bundle/chunks/chunk-ALSRBNYB.js.map +0 -1
  372. package/dist/cli-bundle/chunks/chunk-D7WK2PKB.js.map +0 -1
  373. package/dist/cli-bundle/chunks/chunk-DV27WDA7.js.map +0 -7
  374. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js +0 -56
  375. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js.map +0 -7
  376. package/dist/cli-bundle/chunks/chunk-EPWT7BEA.js.map +0 -1
  377. package/dist/cli-bundle/chunks/chunk-F33AQIB4.js.map +0 -1
  378. package/dist/cli-bundle/chunks/chunk-F33VC5EX.js.map +0 -1
  379. package/dist/cli-bundle/chunks/chunk-HOA3GMB6.js.map +0 -1
  380. package/dist/cli-bundle/chunks/chunk-KBKJVXUS.js.map +0 -7
  381. package/dist/cli-bundle/chunks/chunk-KCGMABHM.js.map +0 -1
  382. package/dist/cli-bundle/chunks/chunk-KS2U7BZ3.js.map +0 -1
  383. package/dist/cli-bundle/chunks/chunk-KVXIQDJG.js.map +0 -1
  384. package/dist/cli-bundle/chunks/chunk-L3LYL3ID.js.map +0 -7
  385. package/dist/cli-bundle/chunks/chunk-MSH23UWO.js.map +0 -7
  386. package/dist/cli-bundle/chunks/chunk-N4SQZ7L3.js.map +0 -7
  387. package/dist/cli-bundle/chunks/chunk-NUKHZZNM.js +0 -252
  388. package/dist/cli-bundle/chunks/chunk-NUKHZZNM.js.map +0 -7
  389. package/dist/cli-bundle/chunks/chunk-ODN53S6H.js.map +0 -1
  390. package/dist/cli-bundle/chunks/chunk-OVSSE2JP.js.map +0 -1
  391. package/dist/cli-bundle/chunks/chunk-QWNUDGFQ.js.map +0 -7
  392. package/dist/cli-bundle/chunks/chunk-TXKENAQP.js.map +0 -7
  393. package/dist/cli-bundle/chunks/chunk-VXBUXLVD.js.map +0 -7
  394. package/dist/cli-bundle/chunks/chunk-XNGMIVQY.js +0 -242
  395. package/dist/cli-bundle/chunks/chunk-XNGMIVQY.js.map +0 -1
  396. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +0 -53
  397. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +0 -1
  398. package/dist/cli-bundle/chunks/chunk-YJAKN2N2.js.map +0 -1
  399. package/dist/cli-bundle/chunks/close-UNTFXVM3.js +0 -13
  400. package/dist/cli-bundle/chunks/context-AVLO4IFH.js.map +0 -7
  401. package/dist/cli-bundle/chunks/context-WMSI2D65.js.map +0 -1
  402. package/dist/cli-bundle/chunks/create-EZWAMUKR.js +0 -27
  403. package/dist/cli-bundle/chunks/health-B6AEM7BV.js.map +0 -1
  404. package/dist/cli-bundle/chunks/health-YMZGOMVX.js.map +0 -7
  405. package/dist/cli-bundle/chunks/history-ZERISU2L.js +0 -20
  406. package/dist/cli-bundle/chunks/history-redact-GODBYT5A.js +0 -19
  407. package/dist/cli-bundle/chunks/init-CBZHXBR3.js +0 -17
  408. package/dist/cli-bundle/chunks/list-7MTPPZHC.js +0 -20
  409. package/dist/cli-bundle/chunks/register-list-query-5IXDPUZ6.js.map +0 -1
  410. package/dist/cli-bundle/chunks/register-list-query-GQAEIG4K.js.map +0 -7
  411. package/dist/cli-bundle/chunks/register-mutation-FAS4YG63.js.map +0 -1
  412. package/dist/cli-bundle/chunks/register-mutation-YZCUILGO.js.map +0 -7
  413. package/dist/cli-bundle/chunks/register-operations-IBYWNJN5.js.map +0 -7
  414. package/dist/cli-bundle/chunks/register-operations-S2BOLUPF.js.map +0 -1
  415. package/dist/cli-bundle/chunks/restore-3JRX27QW.js +0 -17
  416. package/dist/cli-bundle/chunks/test-XN7RJL5Z.js +0 -32
  417. package/dist/cli-bundle/chunks/update-LFBSEW3N.js +0 -21
  418. /package/dist/cli-bundle/chunks/{activity-A3QKFSSF.js.map → activity-5QLX6DHN.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js.map → activity-W6TS5F2L.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{append-3RFOU7P5.js.map → append-7BS36Z2L.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{append-OM74OJVT.js.map → append-DHGTLUZW.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js.map → chunk-344GDQTH.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js.map → chunk-3VTWCBXL.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js.map → chunk-4CYHWHZU.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js.map → chunk-4H2NDEGJ.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js.map → chunk-5HH6QRH5.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js.map → chunk-5OMABP7I.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js.map → chunk-6ADVKPVV.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js.map → chunk-6KQS23TX.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js.map → chunk-6N46IM44.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js.map → chunk-73PSHEMT.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js.map → chunk-7DUVDW7C.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js.map → chunk-7GYMMDDW.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-QFVASU44.js.map → chunk-7TW64BS5.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js.map → chunk-ANVZCNL5.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js.map → chunk-D6JZBUZ6.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js.map → chunk-DMDEC4QP.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js.map → chunk-DTRIVUTN.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js.map → chunk-EIS32UA4.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js.map → chunk-GP6SHEAI.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js.map → chunk-GRHPU6EM.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js.map → chunk-I2FM2SMO.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js.map → chunk-K45NAJV2.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js.map → chunk-K7SXBA75.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js.map → chunk-LYL32FT6.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js.map → chunk-O64EYNHF.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js.map → chunk-OROMGSBP.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js.map → chunk-PYULT32I.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js.map → chunk-Q6PSD5DZ.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js.map → chunk-QGIWURY3.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js.map → chunk-SNASEDXB.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js.map → chunk-T6QLB34N.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js.map → chunk-TALBUVWF.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js.map → chunk-TV6FZGVK.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{chunk-4TI3532H.js.map → chunk-UDWUDUJI.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js.map → chunk-UY26RIBR.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js.map → chunk-VSS3CSTF.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js.map → chunk-WWEFBBVF.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js.map → chunk-X3IPJU2O.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js.map → claim-3TY5LE54.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js.map → claim-LM4YY6QQ.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js.map → close-CSD4LEMT.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{close-UNTFXVM3.js.map → close-SIQCDOBR.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js.map → comments-A5ALOYTG.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js.map → comments-BDDEK3VW.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{config-72253M2O.js.map → config-W2NHDNQT.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{config-VFYA6BMI.js.map → config-YUYBMJOW.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js.map → contracts-47X7RYUF.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js.map → contracts-HJHR4NCD.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js.map → copy-B7HFOWFB.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js.map → copy-P4UVYZ7M.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js.map → create-5ERJF64D.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{create-EZWAMUKR.js.map → create-TXNRPS4K.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{delete-WBME6WG5.js.map → delete-LX3LGBCH.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js.map → delete-S3WVK6LP.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js.map → deps-GWSNH7OZ.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{deps-KWHQRO75.js.map → deps-YSM4LZQD.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js.map → docs-7RYFBHQD.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{docs-364GT3ZR.js.map → docs-TG6JMVMY.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js.map → extension-R3LUKMX7.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{extension-CRE7JM47.js.map → extension-VNMRKIHI.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{files-66EHM5ZR.js.map → files-KAKU57OT.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{files-3GESQAWL.js.map → files-QB3EYPMO.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{gc-MOQDND5J.js.map → gc-B747VM4M.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js.map → gc-KNUPLPSW.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js.map → get-GMGLIQ5I.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{get-WXSLXV3K.js.map → get-SBL6NHYQ.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{history-ZERISU2L.js.map → history-6UKSZTRT.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{history-TJTO5GCR.js.map → history-XCWRXBXC.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js.map → history-compact-IDH7E7VN.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js.map → history-compact-KICKUCR7.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{history-redact-GODBYT5A.js.map → history-redact-HKYBTK6X.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js.map → history-redact-JJWH3QWK.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js.map → history-repair-7HWBZKXN.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js.map → history-repair-N5HXKJOI.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{init-CBZHXBR3.js.map → init-27JLDUO2.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js.map → init-OQA3TWIS.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js.map → learnings-L7VQUSVI.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js.map → learnings-Z4GAIZQ5.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{list-7MTPPZHC.js.map → list-6U3CJVXS.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{list-JGP7ODML.js.map → list-W5ROBC5U.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{notes-P25YVTEG.js.map → notes-JJDOEDFK.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js.map → notes-SDCK7BEN.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{plan-RACB5PI6.js.map → plan-H5HYHMBB.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js.map → plan-W2B5RYR3.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js.map → register-setup-BZ3TNE3G.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js.map → register-setup-WLFL3OUF.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{restore-3JRX27QW.js.map → restore-GNI2W5CN.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js.map → restore-RGFSPG4K.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js.map → schema-CCDU3RLC.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js.map → schema-KZASL323.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js.map → stats-IOXQMGI6.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js.map → stats-QNV7B2CE.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js.map → telemetry-IV5C6JOM.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js.map → telemetry-NHR5RFXT.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{test-XN7RJL5Z.js.map → test-4Z37CXW4.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{test-GXUBQNUC.js.map → test-PIL2CEEB.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js.map → test-all-GRLYHBNP.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js.map → test-all-MFN4MYCV.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js.map → test-runs-7LRFWWCA.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js.map → test-runs-7WCSC3TY.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{update-LFBSEW3N.js.map → update-I4G34LKJ.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{update-U4B4OMHZ.js.map → update-VI5DBZ3G.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js.map → upgrade-LT2MLLPS.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js.map → upgrade-ZZSC7CLV.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js.map → validate-3XRORNMP.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{validate-CRWXZILW.js.map → validate-IQIQSKUX.js.map} +0 -0
@@ -156,7 +156,7 @@ function resolvePmCliVersion(metaUrl, fallbackRelativeSegments = []) {
156
156
  !(function() {
157
157
  try {
158
158
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
159
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "93175dd3-3dce-5323-91cf-446f2ea6e7d8");
159
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "96f92147-d769-57ff-a0e3-387c90152c9e");
160
160
  } catch (e2) {
161
161
  }
162
162
  })();
@@ -184,6 +184,7 @@ var EXTENSION_CAPABILITY_CONTRACT = Object.freeze({
184
184
  var KNOWN_EXTENSION_POLICY_MODES = ["off", "warn", "enforce"];
185
185
  var KNOWN_EXTENSION_TRUST_MODES = ["off", "warn", "enforce"];
186
186
  var KNOWN_EXTENSION_SANDBOX_PROFILES = ["none", "restricted", "strict"];
187
+ var KNOWN_PM_MAX_VERSION_EXCEEDED_MODES = ["block", "warn"];
187
188
  var KNOWN_EXTENSION_POLICY_SURFACES = [
188
189
  "commands.override",
189
190
  "commands.handler",
@@ -237,12 +238,29 @@ function createDefaultExtensionGovernancePolicy() {
237
238
  extension_overrides: []
238
239
  };
239
240
  }
241
+ var KNOWN_EXTENSION_MANIFEST_FIELDS = Object.freeze([
242
+ "$schema",
243
+ "name",
244
+ "version",
245
+ "entry",
246
+ "priority",
247
+ "manifest_version",
248
+ "pm_min_version",
249
+ "pm_max_version",
250
+ "engines",
251
+ "trusted",
252
+ "provenance",
253
+ "sandbox_profile",
254
+ "permissions",
255
+ "capabilities",
256
+ "activation"
257
+ ]);
240
258
 
241
259
  // dist/core/shared/constants.js
242
260
  !(function() {
243
261
  try {
244
262
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
245
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "359fb424-9ab2-53d9-8aec-7fd76c9a074b");
263
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "e3d8f708-ea81-58a5-920a-ee9f27c436ab");
246
264
  } catch (e2) {
247
265
  }
248
266
  })();
@@ -380,6 +398,7 @@ var FRONT_MATTER_KEY_ORDER = [
380
398
  "test_runs",
381
399
  "docs",
382
400
  "close_reason",
401
+ "duplicate_of",
383
402
  "plan_mode",
384
403
  "plan_scope",
385
404
  "plan_harness",
@@ -395,7 +414,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
395
414
  create_mode_default: "progressive",
396
415
  close_validation_default: "off",
397
416
  require_close_reason: true,
398
- parent_reference: "warn",
417
+ parent_reference: "strict_error",
399
418
  metadata_profile: "core",
400
419
  force_required_for_stale_lock: false
401
420
  },
@@ -404,7 +423,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
404
423
  create_mode_default: "progressive",
405
424
  close_validation_default: "warn",
406
425
  require_close_reason: true,
407
- parent_reference: "warn",
426
+ parent_reference: "strict_error",
408
427
  metadata_profile: "core",
409
428
  force_required_for_stale_lock: true
410
429
  },
@@ -549,6 +568,8 @@ var SETTINGS_DEFAULTS = {
549
568
  hierarchy: true,
550
569
  activity: true,
551
570
  progress: true,
571
+ recently_created: true,
572
+ unparented: true,
552
573
  blockers: true,
553
574
  files: true,
554
575
  workload: true,
@@ -1479,11 +1500,154 @@ import fs3 from "node:fs/promises";
1479
1500
  import path5 from "node:path";
1480
1501
  import { pathToFileURL } from "node:url";
1481
1502
 
1503
+ // dist/core/extensions/flag-value-types.js
1504
+ !(function() {
1505
+ try {
1506
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1507
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "63f541d2-f7f5-50d9-afbe-4ce8659063f8");
1508
+ } catch (e2) {
1509
+ }
1510
+ })();
1511
+ var FLAG_VALUE_KIND_BY_ALIAS = Object.freeze({
1512
+ string: "string",
1513
+ number: "number",
1514
+ int: "number",
1515
+ integer: "number",
1516
+ float: "number",
1517
+ boolean: "boolean",
1518
+ bool: "boolean"
1519
+ });
1520
+ function resolveFlagValueKind(raw) {
1521
+ if (typeof raw !== "string") {
1522
+ return null;
1523
+ }
1524
+ return FLAG_VALUE_KIND_BY_ALIAS[raw.trim().toLowerCase()] ?? null;
1525
+ }
1526
+ function flattenFlagListValue(value) {
1527
+ const entries = [];
1528
+ const collect = (input) => {
1529
+ if (Array.isArray(input)) {
1530
+ for (const item of input) {
1531
+ collect(item);
1532
+ }
1533
+ return;
1534
+ }
1535
+ if (typeof input === "string") {
1536
+ for (const part of input.split(",")) {
1537
+ const trimmed = part.trim();
1538
+ if (trimmed.length > 0) {
1539
+ entries.push(trimmed);
1540
+ }
1541
+ }
1542
+ return;
1543
+ }
1544
+ if (input !== void 0 && input !== null) {
1545
+ entries.push(input);
1546
+ }
1547
+ };
1548
+ collect(value);
1549
+ return entries;
1550
+ }
1551
+ function isFlagDefaultValueCoercible(value, kind) {
1552
+ if (kind === "string") {
1553
+ return true;
1554
+ }
1555
+ if (kind === "number") {
1556
+ if (typeof value === "number") {
1557
+ return Number.isFinite(value);
1558
+ }
1559
+ return typeof value === "string" && value.trim().length > 0 && Number.isFinite(Number(value));
1560
+ }
1561
+ if (typeof value === "boolean") {
1562
+ return true;
1563
+ }
1564
+ return typeof value === "string" && ["true", "false", "1", "0"].includes(value.trim().toLowerCase());
1565
+ }
1566
+
1567
+ // dist/core/shared/levenshtein.js
1568
+ !(function() {
1569
+ try {
1570
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1571
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "6f3e0977-8505-552c-b2ff-862f2a5d5a91");
1572
+ } catch (e2) {
1573
+ }
1574
+ })();
1575
+ function levenshteinDistanceWithinLimit(left, right, limit) {
1576
+ if (left === right) {
1577
+ return 0;
1578
+ }
1579
+ if (Math.abs(left.length - right.length) > limit) {
1580
+ return null;
1581
+ }
1582
+ const width = right.length + 1;
1583
+ const beforePrevious = new Array(width);
1584
+ const previous = new Array(width);
1585
+ const current = new Array(width);
1586
+ for (let column = 0; column < width; column += 1) {
1587
+ beforePrevious[column] = 0;
1588
+ previous[column] = column;
1589
+ }
1590
+ for (let row = 1; row <= left.length; row += 1) {
1591
+ current[0] = row;
1592
+ let rowMin = current[0];
1593
+ for (let column = 1; column <= right.length; column += 1) {
1594
+ const cost = left[row - 1] === right[column - 1] ? 0 : 1;
1595
+ const substitution = previous[column - 1] + cost;
1596
+ const insertion = current[column - 1] + 1;
1597
+ const deletion = previous[column] + 1;
1598
+ let candidate = Math.min(substitution, insertion, deletion);
1599
+ if (row > 1 && column > 1 && left[row - 1] === right[column - 2] && left[row - 2] === right[column - 1]) {
1600
+ candidate = Math.min(candidate, beforePrevious[column - 2] + 1);
1601
+ }
1602
+ current[column] = candidate;
1603
+ if (candidate < rowMin) {
1604
+ rowMin = candidate;
1605
+ }
1606
+ }
1607
+ if (rowMin > limit) {
1608
+ return null;
1609
+ }
1610
+ for (let column = 0; column < width; column += 1) {
1611
+ beforePrevious[column] = previous[column];
1612
+ previous[column] = current[column];
1613
+ }
1614
+ }
1615
+ const result = previous[right.length];
1616
+ return result <= limit ? result : null;
1617
+ }
1618
+
1619
+ // dist/core/extensions/item-field-types.js
1620
+ !(function() {
1621
+ try {
1622
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1623
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "557146c8-cf60-5bbf-a59a-606928c536de");
1624
+ } catch (e2) {
1625
+ }
1626
+ })();
1627
+ var KNOWN_ITEM_FIELD_TYPES = ["string", "number", "boolean", "array", "object"];
1628
+ function normalizeItemFieldType(value) {
1629
+ const normalized = value.trim().toLowerCase();
1630
+ return KNOWN_ITEM_FIELD_TYPES.includes(normalized) ? normalized : null;
1631
+ }
1632
+ function suggestKnownItemFieldType(value) {
1633
+ const normalized = value.trim().toLowerCase();
1634
+ if (normalized.length === 0) {
1635
+ return null;
1636
+ }
1637
+ const limit = Math.max(1, Math.floor(normalized.length * 0.34));
1638
+ for (const candidate of KNOWN_ITEM_FIELD_TYPES) {
1639
+ if (levenshteinDistanceWithinLimit(normalized, candidate, limit) !== null) {
1640
+ return candidate;
1641
+ }
1642
+ }
1643
+ return null;
1644
+ }
1645
+
1482
1646
  // dist/core/extensions/extension-policy.js
1483
1647
  !(function() {
1484
1648
  try {
1485
1649
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1486
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "3a8acf74-cc81-5417-8ee9-30d80fde2102");
1650
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "5f65a8a3-c45a-5178-918a-32153c97cce6");
1487
1651
  } catch (e2) {
1488
1652
  }
1489
1653
  })();
@@ -1534,6 +1698,29 @@ function normalizePolicySandboxProfile(value) {
1534
1698
  }
1535
1699
  return "none";
1536
1700
  }
1701
+ function normalizePmMaxVersionExceededModeValue(value) {
1702
+ if (typeof value !== "string") {
1703
+ return void 0;
1704
+ }
1705
+ const normalized = value.trim().toLowerCase();
1706
+ return KNOWN_PM_MAX_VERSION_EXCEEDED_MODES.includes(normalized) ? normalized : void 0;
1707
+ }
1708
+ function normalizePmMaxVersionExceededMode(value) {
1709
+ if (typeof value === "string") {
1710
+ const mode = normalizePmMaxVersionExceededModeValue(value) ?? "block";
1711
+ return { global: mode, project: mode };
1712
+ }
1713
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
1714
+ return {
1715
+ global: normalizePmMaxVersionExceededModeValue(value.global) ?? "block",
1716
+ project: normalizePmMaxVersionExceededModeValue(value.project) ?? "block"
1717
+ };
1718
+ }
1719
+ return { global: "block", project: "block" };
1720
+ }
1721
+ function serializePmMaxVersionExceededMode(mode) {
1722
+ return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };
1723
+ }
1537
1724
  function toSortedList(values) {
1538
1725
  return [...new Set(values)].sort((left, right) => left.localeCompare(right));
1539
1726
  }
@@ -1577,6 +1764,7 @@ function normalizeExtensionPolicy(settings) {
1577
1764
  const policy = settings.extensions.policy;
1578
1765
  const mode = normalizePolicyMode(policy?.mode);
1579
1766
  const trustMode = normalizePolicyTrustMode(policy?.trust_mode);
1767
+ const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededMode(policy?.pm_max_version_exceeded_mode);
1580
1768
  const requireProvenance = policy?.require_provenance === true;
1581
1769
  const trustedExtensions = normalizePolicyStringSet(policy?.trusted_extensions);
1582
1770
  const defaultSandboxProfile = normalizePolicySandboxProfile(policy?.default_sandbox_profile);
@@ -1622,6 +1810,7 @@ function normalizeExtensionPolicy(settings) {
1622
1810
  return {
1623
1811
  mode,
1624
1812
  trustMode,
1813
+ pmMaxVersionExceededMode: pmMaxVersionExceededMode2,
1625
1814
  requireProvenance,
1626
1815
  trustedExtensions,
1627
1816
  defaultSandboxProfile,
@@ -1662,6 +1851,7 @@ function serializeExtensionPolicy(policy) {
1662
1851
  return {
1663
1852
  mode: policy.mode,
1664
1853
  trust_mode: policy.trustMode,
1854
+ pm_max_version_exceeded_mode: serializePmMaxVersionExceededMode(policy.pmMaxVersionExceededMode),
1665
1855
  require_provenance: policy.requireProvenance,
1666
1856
  trusted_extensions: toSortedList(policy.trustedExtensions),
1667
1857
  default_sandbox_profile: policy.defaultSandboxProfile,
@@ -1685,6 +1875,7 @@ function hydrateExtensionPolicy(policy) {
1685
1875
  return {
1686
1876
  mode: normalizePolicyMode(policy.mode),
1687
1877
  trustMode: normalizePolicyTrustMode(policy.trust_mode),
1878
+ pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),
1688
1879
  requireProvenance: policy.require_provenance === true,
1689
1880
  trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),
1690
1881
  defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),
@@ -1952,7 +2143,7 @@ function evaluateExtensionPolicyForRegistration(policy, extension, surface, meth
1952
2143
  !(function() {
1953
2144
  try {
1954
2145
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1955
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "54365547-c7be-5bd4-be2e-ca02f27aa365");
2146
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "19026387-34f8-5e8e-b936-4fc13489f244");
1956
2147
  } catch (e2) {
1957
2148
  }
1958
2149
  })();
@@ -2265,14 +2456,14 @@ function buildEffectiveExtensions(globalCandidates, projectCandidates) {
2265
2456
  }
2266
2457
  return effective;
2267
2458
  }
2268
- async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
2459
+ async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled, pmMaxVersionExceededMode2) {
2269
2460
  const diagnostics = [];
2270
2461
  const warnings = [];
2271
2462
  const candidates = [];
2272
2463
  const directories = await listExtensionDirectories(extensionsRoot);
2273
2464
  const managedSourcePackages = await readManagedExtensionSourcePackages(extensionsRoot);
2274
2465
  for (const directory of directories) {
2275
- const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages);
2466
+ const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2);
2276
2467
  diagnostics.push(scanned.diagnostic);
2277
2468
  warnings.push(...scanned.warnings);
2278
2469
  if (scanned.candidate) {
@@ -2281,7 +2472,7 @@ async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
2281
2472
  }
2282
2473
  return { diagnostics, warnings, candidates };
2283
2474
  }
2284
- async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages) {
2475
+ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2) {
2285
2476
  const extensionDir = path5.join(extensionsRoot, directory);
2286
2477
  const manifestPath = path5.join(extensionDir, "manifest.json");
2287
2478
  if (!await pathExists(manifestPath)) {
@@ -2348,7 +2539,7 @@ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled,
2348
2539
  if (pmVersionCompatibility.warning) {
2349
2540
  extensionWarnings.push(pmVersionCompatibility.warning);
2350
2541
  }
2351
- const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest);
2542
+ const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest, pmMaxVersionExceededMode2);
2352
2543
  if (pmMaxVersionCompatibility.warning) {
2353
2544
  extensionWarnings.push(pmMaxVersionCompatibility.warning);
2354
2545
  }
@@ -2398,8 +2589,8 @@ async function discoverExtensions(options) {
2398
2589
  }
2399
2590
  const enabled = new Set(configured_enabled);
2400
2591
  const disabled = new Set(configured_disabled);
2401
- const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled);
2402
- const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled);
2592
+ const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled, policy.pmMaxVersionExceededMode.global);
2593
+ const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled, policy.pmMaxVersionExceededMode.project);
2403
2594
  const policyWarnings = [...policy.warnings];
2404
2595
  const effectiveCandidates = buildEffectiveExtensions(globalScan.candidates, projectScan.candidates);
2405
2596
  const effective = [];
@@ -2524,7 +2715,7 @@ async function evaluatePmMinVersionCompatibility(layer, manifest) {
2524
2715
  }
2525
2716
  return { allowed: true };
2526
2717
  }
2527
- async function evaluatePmMaxVersionCompatibility(layer, manifest) {
2718
+ async function evaluatePmMaxVersionCompatibility(layer, manifest, exceededMode) {
2528
2719
  if (typeof manifest.pm_max_version !== "string" || manifest.pm_max_version.trim().length === 0) {
2529
2720
  return { allowed: true };
2530
2721
  }
@@ -2555,6 +2746,12 @@ async function evaluatePmMaxVersionCompatibility(layer, manifest) {
2555
2746
  };
2556
2747
  }
2557
2748
  if (comparison > 0) {
2749
+ if (exceededMode === "warn") {
2750
+ return {
2751
+ allowed: true,
2752
+ warning: `extension_pm_max_version_exceeded_warn:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
2753
+ };
2754
+ }
2558
2755
  return {
2559
2756
  allowed: false,
2560
2757
  warning: `extension_pm_max_version_exceeded:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
@@ -2624,21 +2821,28 @@ async function loadExtensions(options) {
2624
2821
  failed
2625
2822
  };
2626
2823
  }
2824
+ function toActivatableExtension(source) {
2825
+ const activate = source.activate;
2826
+ const activatable = {
2827
+ activate: activate.bind(source)
2828
+ };
2829
+ if (typeof source.deactivate === "function") {
2830
+ const deactivate = source.deactivate;
2831
+ activatable.deactivate = deactivate.bind(source);
2832
+ }
2833
+ return activatable;
2834
+ }
2627
2835
  function resolveActivatableExtension(module) {
2628
2836
  const moduleRecord = asRecordLoose(module);
2629
2837
  if (!moduleRecord) {
2630
2838
  return null;
2631
2839
  }
2632
2840
  if (typeof moduleRecord.activate === "function") {
2633
- return {
2634
- activate: moduleRecord.activate
2635
- };
2841
+ return toActivatableExtension(moduleRecord);
2636
2842
  }
2637
2843
  const defaultExport = asRecordLoose(moduleRecord.default);
2638
2844
  if (defaultExport && typeof defaultExport.activate === "function") {
2639
- return {
2640
- activate: defaultExport.activate
2641
- };
2845
+ return toActivatableExtension(defaultExport);
2642
2846
  }
2643
2847
  return null;
2644
2848
  }
@@ -2765,6 +2969,25 @@ function assertOptionalStringField(name, value) {
2765
2969
  throw new TypeError(`${name} must be a non-empty string when provided`);
2766
2970
  }
2767
2971
  }
2972
+ function isFlagDefaultScalar(value) {
2973
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
2974
+ }
2975
+ function assertOptionalFlagDefaultField(name, value) {
2976
+ if (value === void 0) {
2977
+ return;
2978
+ }
2979
+ if (Array.isArray(value)) {
2980
+ for (const [index, item] of value.entries()) {
2981
+ if (!isFlagDefaultScalar(item)) {
2982
+ throw new TypeError(`${name}[${index}] must be a string, number, or boolean`);
2983
+ }
2984
+ }
2985
+ return;
2986
+ }
2987
+ if (!isFlagDefaultScalar(value)) {
2988
+ throw new TypeError(`${name} must be a string, number, or boolean, or an array of these when provided`);
2989
+ }
2990
+ }
2768
2991
  function assertOptionalStringArrayField(name, value) {
2769
2992
  if (value === void 0) {
2770
2993
  return;
@@ -2878,6 +3101,32 @@ function validateFlagDefinitions(flags) {
2878
3101
  assertOptionalBooleanField(`registerFlags flags[${index}].required`, record.required);
2879
3102
  assertOptionalBooleanField(`registerFlags flags[${index}].enabled`, record.enabled);
2880
3103
  assertOptionalBooleanField(`registerFlags flags[${index}].visible`, record.visible);
3104
+ assertOptionalBooleanField(`registerFlags flags[${index}].list`, record.list);
3105
+ assertOptionalFlagDefaultField(`registerFlags flags[${index}].default`, record.default);
3106
+ if (Array.isArray(record.default) && record.list !== true) {
3107
+ throw new TypeError(`registerFlags flags[${index}].default cannot be an array unless list is true.`);
3108
+ }
3109
+ assertFlagValueTypeAndDefault(`registerFlags flags[${index}]`, record);
3110
+ }
3111
+ }
3112
+ function assertFlagValueTypeAndDefault(label, record) {
3113
+ const declaredType = (typeof record.value_type === "string" ? record.value_type : void 0) ?? (typeof record.type === "string" ? record.type : void 0);
3114
+ if (declaredType === void 0) {
3115
+ return;
3116
+ }
3117
+ const kind = resolveFlagValueKind(declaredType);
3118
+ if (kind === null) {
3119
+ throw new TypeError(`${label} value_type "${declaredType}" is not a known flag value type (expected one of: string, number, boolean).`);
3120
+ }
3121
+ if (record.default === void 0) {
3122
+ return;
3123
+ }
3124
+ const defaults = record.list === true ? flattenFlagListValue(record.default) : [record.default];
3125
+ for (const [defaultIndex, defaultValue] of defaults.entries()) {
3126
+ if (!isFlagDefaultValueCoercible(defaultValue, kind)) {
3127
+ const suffix = defaults.length > 1 ? `default[${defaultIndex}]` : "default";
3128
+ throw new TypeError(`${label}.${suffix} (${JSON.stringify(defaultValue)}) is not coercible to ${kind}.`);
3129
+ }
2881
3130
  }
2882
3131
  }
2883
3132
  function validateItemFieldDefinitions(fields) {
@@ -2887,7 +3136,12 @@ function validateItemFieldDefinitions(fields) {
2887
3136
  for (const [index, raw] of fields.entries()) {
2888
3137
  const record = asRegistrationRecord(`registerItemFields fields[${index}]`, raw);
2889
3138
  assertNonEmptyString(`registerItemFields fields[${index}].name`, record.name);
2890
- assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
3139
+ const fieldType = assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
3140
+ if (normalizeItemFieldType(fieldType) === null) {
3141
+ const suggestion = suggestKnownItemFieldType(fieldType);
3142
+ const hint = suggestion ? ` Did you mean "${suggestion}"?` : "";
3143
+ throw new TypeError(`registerItemFields fields[${index}].type "${fieldType}" is not a known field type (expected one of: ${KNOWN_ITEM_FIELD_TYPES.join(", ")}).${hint}`);
3144
+ }
2891
3145
  assertOptionalBooleanField(`registerItemFields fields[${index}].optional`, record.optional);
2892
3146
  }
2893
3147
  }
@@ -2985,6 +3239,15 @@ function assertExtensionCapability(extension, capability, method) {
2985
3239
  }
2986
3240
  }
2987
3241
  function createExtensionApi(extension, hooks, commands, parsers, preflight, services, renderers, registrations, activationWarnings, policy) {
3242
+ const selfIdentity = Object.freeze({
3243
+ name: extension.name,
3244
+ layer: extension.layer,
3245
+ version: extension.version,
3246
+ capabilities: Object.freeze((extension.capabilities ?? []).filter((capability) => KNOWN_EXTENSION_CAPABILITIES.includes(capability))),
3247
+ pm_min_version: extension.pm_min_version,
3248
+ pm_max_version: extension.pm_max_version,
3249
+ source_package: extension.source_package
3250
+ });
2988
3251
  const extensionRef = {
2989
3252
  layer: extension.layer,
2990
3253
  name: extension.name,
@@ -3426,6 +3689,7 @@ function createExtensionApi(extension, hooks, commands, parsers, preflight, serv
3426
3689
  });
3427
3690
  };
3428
3691
  return {
3692
+ extension: selfIdentity,
3429
3693
  registerCommand,
3430
3694
  registerParser,
3431
3695
  registerPreflight,
@@ -3890,7 +4154,7 @@ function runActiveServiceOverrideSync(service, payload) {
3890
4154
  !(function() {
3891
4155
  try {
3892
4156
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
3893
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f62a6f2b-d501-5db4-97cd-8a97131d0db4");
4157
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a6694379-22e4-5b33-9691-cca9ad16865c");
3894
4158
  } catch (e2) {
3895
4159
  }
3896
4160
  })();
@@ -3989,6 +4253,8 @@ var CONTEXT_SECTION_VALUES = [
3989
4253
  "hierarchy",
3990
4254
  "activity",
3991
4255
  "progress",
4256
+ "recently_created",
4257
+ "unparented",
3992
4258
  "blockers",
3993
4259
  "files",
3994
4260
  "workload",
@@ -4758,7 +5024,7 @@ function orderObject(value, keyOrder) {
4758
5024
  !(function() {
4759
5025
  try {
4760
5026
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
4761
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "b8c23714-d252-5943-afc6-86b87a92a240");
5027
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "145fe5b4-69da-571d-9982-6ad77c6291b7");
4762
5028
  } catch (e2) {
4763
5029
  }
4764
5030
  })();
@@ -4933,9 +5199,15 @@ var extensionPolicyOverride = vObject({
4933
5199
  allowed_services: vOptional(vArray(vString)),
4934
5200
  blocked_services: vOptional(vArray(vString))
4935
5201
  });
5202
+ var pmMaxVersionExceededModeLiteral = vLiteral("block", "warn");
5203
+ var pmMaxVersionExceededMode = (input) => typeof input === "string" ? pmMaxVersionExceededModeLiteral(input) : vObject({
5204
+ global: vOptional(pmMaxVersionExceededModeLiteral),
5205
+ project: vOptional(pmMaxVersionExceededModeLiteral)
5206
+ })(input);
4936
5207
  var extensionPolicy = vOptional(vObject({
4937
5208
  mode: vOptional(vLiteral("off", "warn", "enforce")),
4938
5209
  trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
5210
+ pm_max_version_exceeded_mode: vOptional(pmMaxVersionExceededMode),
4939
5211
  require_provenance: vOptional(vBoolean),
4940
5212
  trusted_extensions: vOptional(vArray(vString)),
4941
5213
  default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
@@ -4999,6 +5271,8 @@ var settingsCheck = vObject({
4999
5271
  hierarchy: vOptional(vBoolean),
5000
5272
  activity: vOptional(vBoolean),
5001
5273
  progress: vOptional(vBoolean),
5274
+ recently_created: vOptional(vBoolean),
5275
+ unparented: vOptional(vBoolean),
5002
5276
  blockers: vOptional(vBoolean),
5003
5277
  files: vOptional(vBoolean),
5004
5278
  workload: vOptional(vBoolean),
@@ -5139,11 +5413,83 @@ function normalizeItemTypeDefinition(definition, options = {}) {
5139
5413
  };
5140
5414
  }
5141
5415
 
5416
+ // dist/core/store/settings-read-cache.js
5417
+ import { stat } from "node:fs/promises";
5418
+ !(function() {
5419
+ try {
5420
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5421
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f4f0977b-c8d8-52d8-9da0-7b3f6d49ecac");
5422
+ } catch (e2) {
5423
+ }
5424
+ })();
5425
+ var settingsReadCacheByRoot = /* @__PURE__ */ new Map();
5426
+ function normalizeTrackedPaths(paths) {
5427
+ return [...new Set(paths.map((pathValue) => pathValue.trim()).filter((pathValue) => pathValue.length > 0))].sort((left, right) => left.localeCompare(right));
5428
+ }
5429
+ async function readPathSignature(targetPath) {
5430
+ try {
5431
+ const targetStats = await stat(targetPath);
5432
+ return {
5433
+ path: targetPath,
5434
+ mtime_ms: targetStats.mtimeMs,
5435
+ size: targetStats.size
5436
+ };
5437
+ } catch {
5438
+ return {
5439
+ path: targetPath,
5440
+ mtime_ms: null,
5441
+ size: null
5442
+ };
5443
+ }
5444
+ }
5445
+ async function collectSettingsReadCacheSignatures(paths) {
5446
+ const normalizedPaths = normalizeTrackedPaths(paths);
5447
+ const signatures = await Promise.all(normalizedPaths.map((targetPath) => readPathSignature(targetPath)));
5448
+ signatures.sort((left, right) => left.path.localeCompare(right.path));
5449
+ return signatures;
5450
+ }
5451
+ function settingsReadCacheSignaturesEqual(left, right) {
5452
+ if (left.length !== right.length) {
5453
+ return false;
5454
+ }
5455
+ for (let index = 0; index < left.length; index += 1) {
5456
+ const leftEntry = left[index];
5457
+ const rightEntry = right[index];
5458
+ if (leftEntry.path !== rightEntry.path || leftEntry.mtime_ms !== rightEntry.mtime_ms || leftEntry.size !== rightEntry.size) {
5459
+ return false;
5460
+ }
5461
+ }
5462
+ return true;
5463
+ }
5464
+ function getSettingsReadCacheEntry(pmRoot) {
5465
+ return settingsReadCacheByRoot.get(pmRoot);
5466
+ }
5467
+ function setSettingsReadCacheEntry(pmRoot, entry) {
5468
+ const normalizedTrackedPaths = normalizeTrackedPaths(entry.tracked_paths);
5469
+ const normalizedSignatures = [...entry.signatures].map((signature) => ({
5470
+ path: signature.path,
5471
+ mtime_ms: signature.mtime_ms,
5472
+ size: signature.size
5473
+ })).sort((left, right) => left.path.localeCompare(right.path));
5474
+ settingsReadCacheByRoot.set(pmRoot, {
5475
+ tracked_paths: normalizedTrackedPaths,
5476
+ signatures: normalizedSignatures,
5477
+ value: entry.value
5478
+ });
5479
+ }
5480
+ function clearSettingsReadCache(pmRoot) {
5481
+ if (pmRoot) {
5482
+ settingsReadCacheByRoot.delete(pmRoot);
5483
+ return;
5484
+ }
5485
+ settingsReadCacheByRoot.clear();
5486
+ }
5487
+
5142
5488
  // dist/core/store/settings.js
5143
5489
  !(function() {
5144
5490
  try {
5145
5491
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5146
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "40eb6325-776d-5b33-887f-abbdee742b52");
5492
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "759b1285-3075-5bd2-a0d7-9eab54fc1093");
5147
5493
  } catch (e2) {
5148
5494
  }
5149
5495
  })();
@@ -5312,6 +5658,74 @@ function getSettingsPersistSourceSnapshot(settings) {
5312
5658
  }
5313
5659
  return candidate;
5314
5660
  }
5661
+ function cloneSettingsReadResult(result) {
5662
+ const clonedSettings = structuredClone(result.settings);
5663
+ const persistSource = getSettingsPersistSourceSnapshot(result.settings);
5664
+ if (persistSource) {
5665
+ attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));
5666
+ }
5667
+ return {
5668
+ settings: clonedSettings,
5669
+ metadata: {
5670
+ has_explicit_item_format: result.metadata.has_explicit_item_format
5671
+ },
5672
+ warnings: [...result.warnings]
5673
+ };
5674
+ }
5675
+ function resolveSettingsReadTrackedPaths(pmRoot, schema, settingsPath) {
5676
+ const normalizedSchema = normalizeRuntimeSchemaSettings(schema);
5677
+ return [
5678
+ settingsPath,
5679
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),
5680
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),
5681
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),
5682
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows)
5683
+ ];
5684
+ }
5685
+ async function cacheSettingsReadResult(pmRoot, trackedPaths, result) {
5686
+ const signatures = await collectSettingsReadCacheSignatures(trackedPaths);
5687
+ setSettingsReadCacheEntry(pmRoot, {
5688
+ tracked_paths: trackedPaths,
5689
+ signatures,
5690
+ value: cloneSettingsReadResult(result)
5691
+ });
5692
+ }
5693
+ async function cacheSettingsReadResultSafe(pmRoot, trackedPaths, result) {
5694
+ try {
5695
+ await cacheSettingsReadResult(pmRoot, trackedPaths, result);
5696
+ } catch {
5697
+ clearSettingsReadCache(pmRoot);
5698
+ }
5699
+ }
5700
+ function findSettingsReadCacheSignature(signatures, targetPath) {
5701
+ return signatures.find((signature) => signature.path === targetPath);
5702
+ }
5703
+ function selectedSettingsReadCacheSignaturesEqual(before, after, targetPaths) {
5704
+ for (const targetPath of targetPaths) {
5705
+ const beforeSignature = findSettingsReadCacheSignature(before, targetPath);
5706
+ const afterSignature = findSettingsReadCacheSignature(after, targetPath);
5707
+ if (!beforeSignature || !afterSignature || !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])) {
5708
+ return false;
5709
+ }
5710
+ }
5711
+ return true;
5712
+ }
5713
+ async function cacheSettingsReadResultIfStable(pmRoot, trackedPaths, result, stableSignatures, stablePaths) {
5714
+ try {
5715
+ const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);
5716
+ if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {
5717
+ clearSettingsReadCache(pmRoot);
5718
+ return;
5719
+ }
5720
+ setSettingsReadCacheEntry(pmRoot, {
5721
+ tracked_paths: trackedPaths,
5722
+ signatures: currentSignatures,
5723
+ value: cloneSettingsReadResult(result)
5724
+ });
5725
+ } catch {
5726
+ clearSettingsReadCache(pmRoot);
5727
+ }
5728
+ }
5315
5729
  function resolvePersistedFileBackedSchemaSections(settings, source) {
5316
5730
  const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);
5317
5731
  const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);
@@ -5459,11 +5873,33 @@ function normalizeExtensionPolicyOverrides(overrides) {
5459
5873
  }
5460
5874
  return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
5461
5875
  }
5876
+ function normalizePmMaxVersionExceededModeValue2(value) {
5877
+ return value === "block" || value === "warn" ? value : void 0;
5878
+ }
5879
+ function normalizePmMaxVersionExceededModeSetting(value) {
5880
+ if (typeof value === "string") {
5881
+ return normalizePmMaxVersionExceededModeValue2(value);
5882
+ }
5883
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
5884
+ const global2 = normalizePmMaxVersionExceededModeValue2(value.global);
5885
+ const project = normalizePmMaxVersionExceededModeValue2(value.project);
5886
+ if (global2 === void 0 && project === void 0) {
5887
+ return void 0;
5888
+ }
5889
+ return {
5890
+ ...global2 !== void 0 ? { global: global2 } : {},
5891
+ ...project !== void 0 ? { project } : {}
5892
+ };
5893
+ }
5894
+ return void 0;
5895
+ }
5462
5896
  function normalizeExtensionPolicySettings(policy) {
5463
5897
  const defaults = SETTINGS_DEFAULTS.extensions.policy;
5898
+ const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
5464
5899
  return {
5465
5900
  mode: normalizeExtensionPolicyMode(policy?.mode),
5466
5901
  trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
5902
+ ...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
5467
5903
  require_provenance: policy?.require_provenance === true,
5468
5904
  trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),
5469
5905
  default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
@@ -5752,6 +6188,7 @@ function serializeSettings(settings, options = {}) {
5752
6188
  ordered.extensions.policy = orderObject(ordered.extensions.policy ?? {}, [
5753
6189
  "mode",
5754
6190
  "trust_mode",
6191
+ "pm_max_version_exceeded_mode",
5755
6192
  "require_provenance",
5756
6193
  "trusted_extensions",
5757
6194
  "default_sandbox_profile",
@@ -5818,28 +6255,52 @@ function serializeSettings(settings, options = {}) {
5818
6255
  }
5819
6256
  async function readSettingsWithMetadata(pmRoot) {
5820
6257
  const settingsPath = getSettingsPath(pmRoot);
5821
- const raw = await readFileIfExists(settingsPath);
5822
- if (raw === null) {
5823
- return buildFallbackSettingsReadResult();
5824
- }
6258
+ let trackedPathsForFailure = [settingsPath];
5825
6259
  await runActiveOnReadHooks({
5826
6260
  path: settingsPath,
5827
6261
  scope: "project"
5828
6262
  });
6263
+ const cachedResult = getSettingsReadCacheEntry(pmRoot);
6264
+ if (cachedResult) {
6265
+ const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);
6266
+ if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {
6267
+ return cloneSettingsReadResult(cachedResult.value);
6268
+ }
6269
+ }
6270
+ const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);
6271
+ const raw = await readFileIfExists(settingsPath);
6272
+ if (raw === null) {
6273
+ const fallback = buildFallbackSettingsReadResult();
6274
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);
6275
+ return fallback;
6276
+ }
6277
+ const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);
6278
+ if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {
6279
+ clearSettingsReadCache(pmRoot);
6280
+ return readSettingsWithMetadata(pmRoot);
6281
+ }
5829
6282
  let parsed;
5830
6283
  try {
5831
6284
  parsed = JSON.parse(raw);
5832
6285
  } catch {
5833
- return buildFallbackSettingsReadResult("settings_read_invalid_json");
6286
+ const fallback = buildFallbackSettingsReadResult("settings_read_invalid_json");
6287
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
6288
+ return fallback;
5834
6289
  }
5835
6290
  const validated = validateSettings(parsed);
5836
6291
  if (!validated.success) {
5837
- return buildFallbackSettingsReadResult("settings_read_invalid_schema");
6292
+ const fallback = buildFallbackSettingsReadResult("settings_read_invalid_schema");
6293
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
6294
+ return fallback;
5838
6295
  }
5839
6296
  try {
5840
6297
  const mergedSettings = mergeSettings(validated.data);
6298
+ const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);
6299
+ trackedPathsForFailure = trackedPaths;
6300
+ const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
5841
6301
  const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);
5842
6302
  const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);
6303
+ const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
5843
6304
  const settings = {
5844
6305
  ...mergedSettings,
5845
6306
  item_types: {
@@ -5851,7 +6312,7 @@ async function readSettingsWithMetadata(pmRoot) {
5851
6312
  schema: loadedSchemaSections.schema
5852
6313
  };
5853
6314
  attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));
5854
- return {
6315
+ const result = {
5855
6316
  settings,
5856
6317
  metadata: {
5857
6318
  has_explicit_item_format: hasExplicitItemFormat(parsed)
@@ -5862,8 +6323,24 @@ async function readSettingsWithMetadata(pmRoot) {
5862
6323
  ...loadedSchemaSections.warnings
5863
6324
  ]
5864
6325
  };
6326
+ if (schemaScaffold.created_paths.length === 0) {
6327
+ if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {
6328
+ clearSettingsReadCache(pmRoot);
6329
+ } else {
6330
+ setSettingsReadCacheEntry(pmRoot, {
6331
+ tracked_paths: trackedPaths,
6332
+ signatures: signaturesAfterSchemaLoad,
6333
+ value: cloneSettingsReadResult(result)
6334
+ });
6335
+ }
6336
+ } else {
6337
+ clearSettingsReadCache(pmRoot);
6338
+ }
6339
+ return result;
5865
6340
  } catch {
5866
- return buildFallbackSettingsReadResult("settings_read_merge_failed");
6341
+ const fallback = buildFallbackSettingsReadResult("settings_read_merge_failed");
6342
+ await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);
6343
+ return fallback;
5867
6344
  }
5868
6345
  }
5869
6346
  async function readSettings(pmRoot) {
@@ -5874,11 +6351,15 @@ async function writeSettings(pmRoot, settings, op = SETTINGS_WRITE_OP) {
5874
6351
  await writeFileAtomic(settingsPath, serializeSettings(settings, {
5875
6352
  persist_source: getSettingsPersistSourceSnapshot(settings)
5876
6353
  }));
5877
- await runActiveOnWriteHooks({
5878
- path: settingsPath,
5879
- scope: "project",
5880
- op
5881
- });
6354
+ try {
6355
+ await runActiveOnWriteHooks({
6356
+ path: settingsPath,
6357
+ scope: "project",
6358
+ op
6359
+ });
6360
+ } finally {
6361
+ clearSettingsReadCache(pmRoot);
6362
+ }
5882
6363
  }
5883
6364
 
5884
6365
  export {
@@ -5936,6 +6417,10 @@ export {
5936
6417
  coercePositiveInteger,
5937
6418
  coerceNumberInRange,
5938
6419
  asRecordOrNull,
6420
+ resolveFlagValueKind,
6421
+ flattenFlagListValue,
6422
+ levenshteinDistanceWithinLimit,
6423
+ normalizeItemFieldType,
5939
6424
  parseUnknownExtensionCapabilityWarning,
5940
6425
  parseLegacyExtensionCapabilityAliasWarning,
5941
6426
  createEmptyExtensionRegistrationRegistry,
@@ -6013,4 +6498,4 @@ export {
6013
6498
  readSettings,
6014
6499
  writeSettings
6015
6500
  };
6016
- //# sourceMappingURL=chunk-3TXWDGPU.js.map
6501
+ //# sourceMappingURL=chunk-OQGJSCZZ.js.map