@unbrained/pm-cli 2026.6.9 → 2026.6.11

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 (529) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +59 -0
  3. package/README.md +1 -1
  4. package/dist/cli/bootstrap-args.d.ts +11 -0
  5. package/dist/cli/bootstrap-args.js +90 -4
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commands/aggregate.d.ts +7 -0
  8. package/dist/cli/commands/aggregate.js +53 -12
  9. package/dist/cli/commands/aggregate.js.map +1 -1
  10. package/dist/cli/commands/close.d.ts +1 -0
  11. package/dist/cli/commands/close.js +106 -3
  12. package/dist/cli/commands/close.js.map +1 -1
  13. package/dist/cli/commands/completion.js +20 -7
  14. package/dist/cli/commands/completion.js.map +1 -1
  15. package/dist/cli/commands/context.d.ts +9 -0
  16. package/dist/cli/commands/context.js +149 -20
  17. package/dist/cli/commands/context.js.map +1 -1
  18. package/dist/cli/commands/contracts.d.ts +2 -0
  19. package/dist/cli/commands/contracts.js +9 -2
  20. package/dist/cli/commands/contracts.js.map +1 -1
  21. package/dist/cli/commands/create.d.ts +1 -0
  22. package/dist/cli/commands/create.js +5 -3
  23. package/dist/cli/commands/create.js.map +1 -1
  24. package/dist/cli/commands/extension.js +4 -2
  25. package/dist/cli/commands/extension.js.map +1 -1
  26. package/dist/cli/commands/health.js +44 -6
  27. package/dist/cli/commands/health.js.map +1 -1
  28. package/dist/cli/commands/history.js +6 -5
  29. package/dist/cli/commands/history.js.map +1 -1
  30. package/dist/cli/commands/linked-test-parsers.d.ts +1 -0
  31. package/dist/cli/commands/linked-test-parsers.js +289 -2
  32. package/dist/cli/commands/linked-test-parsers.js.map +1 -1
  33. package/dist/cli/commands/reindex.d.ts +1 -0
  34. package/dist/cli/commands/reindex.js +33 -4
  35. package/dist/cli/commands/reindex.js.map +1 -1
  36. package/dist/cli/commands/test.d.ts +6 -0
  37. package/dist/cli/commands/test.js +46 -5
  38. package/dist/cli/commands/test.js.map +1 -1
  39. package/dist/cli/error-guidance.d.ts +8 -0
  40. package/dist/cli/error-guidance.js +102 -2
  41. package/dist/cli/error-guidance.js.map +1 -1
  42. package/dist/cli/extension-command-help.d.ts +1 -0
  43. package/dist/cli/extension-command-help.js +42 -2
  44. package/dist/cli/extension-command-help.js.map +1 -1
  45. package/dist/cli/extension-command-options.d.ts +2 -0
  46. package/dist/cli/extension-command-options.js +51 -2
  47. package/dist/cli/extension-command-options.js.map +1 -1
  48. package/dist/cli/main.js +26 -26
  49. package/dist/cli/main.js.map +1 -1
  50. package/dist/cli/register-list-query.js +3 -2
  51. package/dist/cli/register-list-query.js.map +1 -1
  52. package/dist/cli/register-mutation.js +4 -2
  53. package/dist/cli/register-mutation.js.map +1 -1
  54. package/dist/cli/register-operations.js +15 -6
  55. package/dist/cli/register-operations.js.map +1 -1
  56. package/dist/cli/registration-helpers.js +9 -2
  57. package/dist/cli/registration-helpers.js.map +1 -1
  58. package/dist/cli-bundle/chunks/{activity-RUJATACW.js → activity-XADJOG6G.js} +11 -11
  59. package/dist/cli-bundle/chunks/activity-XZIUPGZH.js +16 -0
  60. package/dist/cli-bundle/chunks/{aggregate-TT7OCHHT.js → aggregate-6OTS3AOO.js} +65 -24
  61. package/dist/cli-bundle/chunks/aggregate-6OTS3AOO.js.map +1 -0
  62. package/dist/cli-bundle/chunks/{aggregate-IQ27NFBI.js → aggregate-OD36DJU5.js} +64 -23
  63. package/dist/cli-bundle/chunks/aggregate-OD36DJU5.js.map +7 -0
  64. package/dist/cli-bundle/chunks/{append-E7AJ5RTR.js → append-JYWO4P7W.js} +8 -8
  65. package/dist/cli-bundle/chunks/{append-CWQZBUWV.js → append-KG55G7S3.js} +8 -8
  66. package/dist/cli-bundle/chunks/{chunk-LF2VNLEZ.js → chunk-3KLPFWZ4.js} +8 -8
  67. package/dist/cli-bundle/chunks/{chunk-LF2VNLEZ.js.map → chunk-3KLPFWZ4.js.map} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-ENCVPOID.js → chunk-3SLOMKCJ.js} +12 -12
  69. package/dist/cli-bundle/chunks/chunk-4HFU4UO2.js +518 -0
  70. package/dist/cli-bundle/chunks/chunk-4HFU4UO2.js.map +1 -0
  71. package/dist/cli-bundle/chunks/{chunk-F2REA7VW.js → chunk-4JCSYR6F.js} +3 -3
  72. package/dist/cli-bundle/chunks/{chunk-CAXUGAAF.js → chunk-4YFAGDRH.js} +8 -8
  73. package/dist/cli-bundle/chunks/{chunk-U3Z4OCZC.js → chunk-5SCT2JCT.js} +2 -2
  74. package/dist/cli-bundle/chunks/{chunk-NHRZSYAA.js → chunk-73ZPG2I3.js} +3 -3
  75. package/dist/cli-bundle/chunks/{chunk-D5D7VKIC.js → chunk-7IYFN5R7.js} +6 -5
  76. package/dist/cli-bundle/chunks/chunk-7IYFN5R7.js.map +1 -0
  77. package/dist/cli-bundle/chunks/{chunk-A5342JVL.js → chunk-7RIT3OCD.js} +12 -12
  78. package/dist/cli-bundle/chunks/{chunk-LU54Z4QI.js → chunk-7UGSRQCL.js} +76 -74
  79. package/dist/cli-bundle/chunks/{chunk-LU54Z4QI.js.map → chunk-7UGSRQCL.js.map} +3 -3
  80. package/dist/cli-bundle/chunks/{chunk-5JF76OJF.js → chunk-A6LXQFO7.js} +290 -25
  81. package/dist/cli-bundle/chunks/chunk-A6LXQFO7.js.map +1 -0
  82. package/dist/cli-bundle/chunks/{chunk-7CR4GAYN.js → chunk-ATEES5SX.js} +2 -2
  83. package/dist/cli-bundle/chunks/{chunk-FHUI7AXS.js → chunk-AVGHVVF7.js} +3 -3
  84. package/dist/cli-bundle/chunks/{chunk-T7B5VAKD.js → chunk-B65UUCGQ.js} +13 -6
  85. package/dist/cli-bundle/chunks/chunk-B65UUCGQ.js.map +7 -0
  86. package/dist/cli-bundle/chunks/{chunk-42IULX44.js → chunk-CCX4RSYZ.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-EFRHTZO4.js → chunk-CW6E4NAT.js} +8 -8
  88. package/dist/cli-bundle/chunks/{chunk-JN3BT7UY.js → chunk-DY6C42S6.js} +9 -9
  89. package/dist/cli-bundle/chunks/{chunk-PUSOAQCR.js → chunk-E5DUIJA4.js} +5 -5
  90. package/dist/cli-bundle/chunks/{chunk-E7LOIIFP.js → chunk-ESANVZF4.js} +3 -3
  91. package/dist/cli-bundle/chunks/{chunk-WQZCEEQN.js → chunk-EWFY7SLA.js} +157 -12
  92. package/dist/cli-bundle/chunks/chunk-EWFY7SLA.js.map +1 -0
  93. package/dist/cli-bundle/chunks/{chunk-YI6W2DBN.js → chunk-F75JSIOZ.js} +6 -6
  94. package/dist/cli-bundle/chunks/{chunk-6IGTNFE3.js → chunk-FDH2X65L.js} +2 -2
  95. package/dist/cli-bundle/chunks/{chunk-GPOSGWCN.js → chunk-FXRU333M.js} +68 -7
  96. package/dist/cli-bundle/chunks/chunk-FXRU333M.js.map +1 -0
  97. package/dist/cli-bundle/chunks/{chunk-C72IQIBT.js → chunk-FY4SPXSC.js} +302 -30
  98. package/dist/cli-bundle/chunks/chunk-FY4SPXSC.js.map +7 -0
  99. package/dist/cli-bundle/chunks/{chunk-TLD3UYGY.js → chunk-GKIZW7SM.js} +5 -4
  100. package/dist/cli-bundle/chunks/chunk-GKIZW7SM.js.map +7 -0
  101. package/dist/cli-bundle/chunks/{chunk-YSANBZAE.js → chunk-GWZSYR6X.js} +12 -5
  102. package/dist/cli-bundle/chunks/chunk-GWZSYR6X.js.map +7 -0
  103. package/dist/cli-bundle/chunks/{chunk-FJNJEWU4.js → chunk-HGLC63AU.js} +14 -12
  104. package/dist/cli-bundle/chunks/chunk-HGLC63AU.js.map +1 -0
  105. package/dist/cli-bundle/chunks/{chunk-RLVI7KDW.js → chunk-HHHJ2GI3.js} +163 -11
  106. package/dist/cli-bundle/chunks/chunk-HHHJ2GI3.js.map +7 -0
  107. package/dist/cli-bundle/chunks/{chunk-AVGOVJGV.js → chunk-HI7STVF2.js} +9 -9
  108. package/dist/cli-bundle/chunks/{chunk-AVGOVJGV.js.map → chunk-HI7STVF2.js.map} +1 -1
  109. package/dist/cli-bundle/chunks/{chunk-ANKG2JKL.js → chunk-I2IJY2NL.js} +12 -5
  110. package/dist/cli-bundle/chunks/chunk-I2IJY2NL.js.map +1 -0
  111. package/dist/cli-bundle/chunks/{chunk-ZPXDD6RQ.js → chunk-I53JBTJW.js} +6 -6
  112. package/dist/cli-bundle/chunks/{chunk-23WNCJBA.js → chunk-I7NYDZDV.js} +2 -2
  113. package/dist/cli-bundle/chunks/{chunk-EQ6N6IDR.js → chunk-IGVJRZ6H.js} +13 -11
  114. package/dist/cli-bundle/chunks/chunk-IGVJRZ6H.js.map +7 -0
  115. package/dist/cli-bundle/chunks/{chunk-JVMAOD54.js → chunk-IH4MBKK7.js} +14 -7
  116. package/dist/cli-bundle/chunks/chunk-IH4MBKK7.js.map +1 -0
  117. package/dist/cli-bundle/chunks/{chunk-BIRVSIM2.js → chunk-IKOH24GZ.js} +14 -14
  118. package/dist/cli-bundle/chunks/chunk-IKOH24GZ.js.map +7 -0
  119. package/dist/cli-bundle/chunks/{chunk-SAUXUI6U.js → chunk-IUKD4W6Z.js} +2 -2
  120. package/dist/cli-bundle/chunks/{chunk-3RHE76G6.js → chunk-J3GD64J2.js} +15 -15
  121. package/dist/cli-bundle/chunks/chunk-J3GD64J2.js.map +1 -0
  122. package/dist/cli-bundle/chunks/{chunk-OT6XAMO5.js → chunk-KWAXVAXX.js} +7 -5
  123. package/dist/cli-bundle/chunks/{chunk-OT6XAMO5.js.map → chunk-KWAXVAXX.js.map} +2 -2
  124. package/dist/cli-bundle/chunks/{chunk-SD6H3RLA.js → chunk-LCSCXBGT.js} +15 -5
  125. package/dist/cli-bundle/chunks/{chunk-SD6H3RLA.js.map → chunk-LCSCXBGT.js.map} +2 -2
  126. package/dist/cli-bundle/chunks/{chunk-RKCJ2JMA.js → chunk-OASDW5UI.js} +7 -7
  127. package/dist/cli-bundle/chunks/{chunk-JEGFLKSI.js → chunk-OLKBSY4N.js} +2 -2
  128. package/dist/cli-bundle/chunks/{chunk-4LRVXVJK.js → chunk-P2PSODAQ.js} +70 -9
  129. package/dist/cli-bundle/chunks/chunk-P2PSODAQ.js.map +7 -0
  130. package/dist/cli-bundle/chunks/{chunk-XEOO6K5J.js → chunk-P5BJOMBB.js} +9 -9
  131. package/dist/cli-bundle/chunks/{chunk-P2NVFE4L.js → chunk-P5U5EOMA.js} +3 -3
  132. package/dist/cli-bundle/chunks/{chunk-AM2AXVFS.js → chunk-PSD7F7DX.js} +5 -5
  133. package/dist/cli-bundle/chunks/{chunk-VDVVOLR6.js → chunk-QJMGRZO2.js} +3 -3
  134. package/dist/cli-bundle/chunks/{chunk-7YTWXGE3.js → chunk-QKW5D45B.js} +112 -7
  135. package/dist/cli-bundle/chunks/chunk-QKW5D45B.js.map +1 -0
  136. package/dist/cli-bundle/chunks/{chunk-T7NWFVOA.js → chunk-QNJSITCX.js} +7 -7
  137. package/dist/cli-bundle/chunks/{chunk-MNXJ6YDO.js → chunk-RXAP6JL5.js} +9 -9
  138. package/dist/cli-bundle/chunks/{chunk-5MMLINZB.js → chunk-S26FESD4.js} +3 -3
  139. package/dist/cli-bundle/chunks/{chunk-I26E6XA7.js → chunk-S2ZLDYGS.js} +8 -6
  140. package/dist/cli-bundle/chunks/chunk-S2ZLDYGS.js.map +1 -0
  141. package/dist/cli-bundle/chunks/chunk-SXKNJPQ7.js +528 -0
  142. package/dist/cli-bundle/chunks/chunk-SXKNJPQ7.js.map +7 -0
  143. package/dist/cli-bundle/chunks/{chunk-OPYA2HIU.js → chunk-TK5VZFHY.js} +7 -7
  144. package/dist/cli-bundle/chunks/{chunk-4TJWRPIH.js → chunk-TNAP7EJX.js} +2 -2
  145. package/dist/cli-bundle/chunks/{chunk-I4FGL3K2.js → chunk-UOO6BYIA.js} +16 -6
  146. package/dist/cli-bundle/chunks/chunk-UOO6BYIA.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-5ATRWEZO.js → chunk-UUWGCWBU.js} +3 -3
  148. package/dist/cli-bundle/chunks/{chunk-YX5LAKFJ.js → chunk-VAOUX6TK.js} +2 -2
  149. package/dist/cli-bundle/chunks/{chunk-RMTI5R76.js → chunk-VFUZV5EB.js} +111 -6
  150. package/dist/cli-bundle/chunks/chunk-VFUZV5EB.js.map +7 -0
  151. package/dist/cli-bundle/chunks/{chunk-WCWIDJII.js → chunk-VPEAS7PS.js} +2 -2
  152. package/dist/cli-bundle/chunks/{chunk-RE2JQJZJ.js → chunk-VSRZRLG3.js} +3 -3
  153. package/dist/cli-bundle/chunks/{chunk-PW7C262O.js → chunk-WUNFKP7M.js} +2 -2
  154. package/dist/cli-bundle/chunks/{chunk-BACSNVWE.js → chunk-XJDGS74Y.js} +71 -69
  155. package/dist/cli-bundle/chunks/{chunk-BACSNVWE.js.map → chunk-XJDGS74Y.js.map} +1 -1
  156. package/dist/cli-bundle/chunks/{chunk-H37YPWLM.js → chunk-XMBI6TNW.js} +13 -7
  157. package/dist/cli-bundle/chunks/chunk-XMBI6TNW.js.map +7 -0
  158. package/dist/cli-bundle/chunks/{chunk-NUGAWYEN.js → chunk-XTKJSVWH.js} +2 -2
  159. package/dist/cli-bundle/chunks/{chunk-KDX6VC3P.js → chunk-XUC4C4PT.js} +3 -3
  160. package/dist/cli-bundle/chunks/{chunk-44JP4PYY.js → chunk-Y3YKK7CY.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-KTVXLI54.js → chunk-YW6Q3RYZ.js} +7 -7
  162. package/dist/cli-bundle/chunks/{chunk-I3UILOUU.js → chunk-ZLMIWZUG.js} +2 -2
  163. package/dist/cli-bundle/chunks/{chunk-FKH7K6YP.js → chunk-ZMW77VWV.js} +9 -9
  164. package/dist/cli-bundle/chunks/{chunk-NJRZIJ4N.js → chunk-ZYNJNPYD.js} +14 -8
  165. package/dist/cli-bundle/chunks/chunk-ZYNJNPYD.js.map +1 -0
  166. package/dist/cli-bundle/chunks/{claim-UXFGCF3P.js → claim-2RDYMCTP.js} +10 -10
  167. package/dist/cli-bundle/chunks/{claim-RV6WYUF7.js → claim-MJ7DZFC3.js} +10 -10
  168. package/dist/cli-bundle/chunks/close-4FMAPEMY.js +13 -0
  169. package/dist/cli-bundle/chunks/{close-O4JK2JKD.js → close-XLEKIQSW.js} +8 -8
  170. package/dist/cli-bundle/chunks/{close-many-EQO4TPIE.js → close-many-AOD4HSAZ.js} +15 -15
  171. package/dist/cli-bundle/chunks/{close-many-SRDBV3SI.js → close-many-XKAQY5CQ.js} +15 -15
  172. package/dist/cli-bundle/chunks/{comments-TTZUIB2O.js → comments-B4RWWDJT.js} +10 -10
  173. package/dist/cli-bundle/chunks/{comments-OMB7YE27.js → comments-RN5TG4ZN.js} +10 -10
  174. package/dist/cli-bundle/chunks/{config-5VPR42A6.js → config-3JXJ3XZ7.js} +8 -8
  175. package/dist/cli-bundle/chunks/{config-NNLXVGVC.js → config-FZ4UDC4B.js} +8 -8
  176. package/dist/cli-bundle/chunks/{context-4QK6GRXO.js → context-L36PIN35.js} +146 -33
  177. package/dist/cli-bundle/chunks/{context-4QK6GRXO.js.map → context-L36PIN35.js.map} +2 -2
  178. package/dist/cli-bundle/chunks/{context-4N7GYTVQ.js → context-QBPO3BFM.js} +147 -34
  179. package/dist/cli-bundle/chunks/context-QBPO3BFM.js.map +1 -0
  180. package/dist/cli-bundle/chunks/{contracts-DXCWXOSP.js → contracts-3NKWYKKU.js} +309 -6
  181. package/dist/cli-bundle/chunks/contracts-3NKWYKKU.js.map +1 -0
  182. package/dist/cli-bundle/chunks/{contracts-AOBNEBVT.js → contracts-MIXBWJIB.js} +315 -5
  183. package/dist/cli-bundle/chunks/contracts-MIXBWJIB.js.map +7 -0
  184. package/dist/cli-bundle/chunks/{copy-5NM3SVJA.js → copy-ALU5WMHA.js} +7 -7
  185. package/dist/cli-bundle/chunks/{copy-XSYEQTLA.js → copy-FWIVTLBO.js} +7 -7
  186. package/dist/cli-bundle/chunks/{create-FCCAATQV.js → create-IFA26O2I.js} +13 -13
  187. package/dist/cli-bundle/chunks/create-JVXYHYH4.js +27 -0
  188. package/dist/cli-bundle/chunks/{delete-5JFP6OG7.js → delete-IYTIYAJS.js} +7 -7
  189. package/dist/cli-bundle/chunks/{delete-PQXJQXQ7.js → delete-Y2SGJBGY.js} +7 -7
  190. package/dist/cli-bundle/chunks/{deps-S5322EOQ.js → deps-6TSPOSGU.js} +7 -7
  191. package/dist/cli-bundle/chunks/{deps-XXKBOQUA.js → deps-CZ4PTVXU.js} +7 -7
  192. package/dist/cli-bundle/chunks/{docs-C7CCVWAJ.js → docs-5WMBVQT2.js} +9 -9
  193. package/dist/cli-bundle/chunks/{docs-DZRPAW5S.js → docs-MB53UJAJ.js} +9 -9
  194. package/dist/cli-bundle/chunks/{extension-CSHP6FZX.js → extension-Q34OEWO5.js} +5 -5
  195. package/dist/cli-bundle/chunks/{extension-XNNVUVAY.js → extension-WH2FOIOZ.js} +5 -5
  196. package/dist/cli-bundle/chunks/{files-UPCNKEIZ.js → files-DLB5LJEP.js} +9 -9
  197. package/dist/cli-bundle/chunks/{files-OBWYYPKM.js → files-GVMNVLCB.js} +9 -9
  198. package/dist/cli-bundle/chunks/{gc-FA2ONELT.js → gc-2WEPW6D6.js} +3 -3
  199. package/dist/cli-bundle/chunks/{gc-KXK6KBRN.js → gc-4Z3IKHAZ.js} +3 -3
  200. package/dist/cli-bundle/chunks/{get-PNTSONGB.js → get-PCHS7RA6.js} +11 -11
  201. package/dist/cli-bundle/chunks/{get-FLHYTOBA.js → get-QARTE6BL.js} +11 -11
  202. package/dist/cli-bundle/chunks/{health-CS5RNTJX.js → health-4ZYB3IYQ.js} +47 -19
  203. package/dist/cli-bundle/chunks/health-4ZYB3IYQ.js.map +1 -0
  204. package/dist/cli-bundle/chunks/{health-KCRVYIYY.js → health-YO5LRWN4.js} +46 -18
  205. package/dist/cli-bundle/chunks/health-YO5LRWN4.js.map +7 -0
  206. package/dist/cli-bundle/chunks/{history-COQTPBEU.js → history-7WUAEWHW.js} +10 -10
  207. package/dist/cli-bundle/chunks/history-L2FQFRTU.js +20 -0
  208. package/dist/cli-bundle/chunks/{history-compact-PVS2A3FS.js → history-compact-3EJ3L2O7.js} +11 -11
  209. package/dist/cli-bundle/chunks/{history-compact-66PSRYL3.js → history-compact-LW27IPFK.js} +11 -11
  210. package/dist/cli-bundle/chunks/{history-redact-DCXAWGTF.js → history-redact-G72A4EJ4.js} +11 -11
  211. package/dist/cli-bundle/chunks/history-redact-QWQCX5DZ.js +19 -0
  212. package/dist/cli-bundle/chunks/{history-repair-SEQDFTGW.js → history-repair-KVPFJKOS.js} +11 -11
  213. package/dist/cli-bundle/chunks/{history-repair-TA3NRIFO.js → history-repair-RUGKD3YR.js} +11 -11
  214. package/dist/cli-bundle/chunks/init-4BKRHGWW.js +17 -0
  215. package/dist/cli-bundle/chunks/{init-IQJE3EKJ.js → init-S5WEGUJY.js} +9 -9
  216. package/dist/cli-bundle/chunks/{learnings-XC6EMW5E.js → learnings-HQXSSKZ5.js} +10 -10
  217. package/dist/cli-bundle/chunks/{learnings-RJPGH2ME.js → learnings-XK3P4ZDR.js} +10 -10
  218. package/dist/cli-bundle/chunks/{list-NJV6WBT4.js → list-6CL3XFT6.js} +10 -10
  219. package/dist/cli-bundle/chunks/list-BYNN4ZEO.js +19 -0
  220. package/dist/cli-bundle/chunks/{notes-2KWHADK3.js → notes-5T6P7C5V.js} +10 -10
  221. package/dist/cli-bundle/chunks/{notes-FNCDMZW2.js → notes-U5FZCSBT.js} +10 -10
  222. package/dist/cli-bundle/chunks/{plan-CYK2P5PD.js → plan-FQLMJRLZ.js} +13 -13
  223. package/dist/cli-bundle/chunks/{plan-MQO5JTSV.js → plan-VNUG3WZZ.js} +13 -13
  224. package/dist/cli-bundle/chunks/{register-list-query-6RA24SIZ.js → register-list-query-NPE3ECJQ.js} +21 -21
  225. package/dist/cli-bundle/chunks/register-list-query-NPE3ECJQ.js.map +1 -0
  226. package/dist/cli-bundle/chunks/{register-list-query-IO3RR5K6.js → register-list-query-VHDXWEPP.js} +20 -20
  227. package/dist/cli-bundle/chunks/register-list-query-VHDXWEPP.js.map +7 -0
  228. package/dist/cli-bundle/chunks/{register-mutation-VV2SC2KL.js → register-mutation-DG53FCBV.js} +36 -35
  229. package/dist/cli-bundle/chunks/register-mutation-DG53FCBV.js.map +1 -0
  230. package/dist/cli-bundle/chunks/{register-mutation-KVFUXCAZ.js → register-mutation-EAYNLGOS.js} +35 -34
  231. package/dist/cli-bundle/chunks/register-mutation-EAYNLGOS.js.map +7 -0
  232. package/dist/cli-bundle/chunks/{register-operations-DFNVRSJ5.js → register-operations-AM6KTWB6.js} +42 -37
  233. package/dist/cli-bundle/chunks/register-operations-AM6KTWB6.js.map +1 -0
  234. package/dist/cli-bundle/chunks/{register-operations-TAUUTRJ4.js → register-operations-FWFE64JG.js} +41 -36
  235. package/dist/cli-bundle/chunks/register-operations-FWFE64JG.js.map +7 -0
  236. package/dist/cli-bundle/chunks/{register-setup-X2R5CFDV.js → register-setup-G4QYI3RX.js} +15 -15
  237. package/dist/cli-bundle/chunks/{register-setup-GAQZZRUA.js → register-setup-IKX5524L.js} +15 -15
  238. package/dist/cli-bundle/chunks/restore-CHIOQAQL.js +17 -0
  239. package/dist/cli-bundle/chunks/{restore-E3GZKRRK.js → restore-M6AFHMV4.js} +11 -11
  240. package/dist/cli-bundle/chunks/{schema-3CPFLDAY.js → schema-76HDZJCC.js} +8 -8
  241. package/dist/cli-bundle/chunks/{schema-7EHBPNXM.js → schema-AINZ2IMM.js} +8 -8
  242. package/dist/cli-bundle/chunks/{search-OBZVYJJ2.js → search-JMLFQEPJ.js} +10 -10
  243. package/dist/cli-bundle/chunks/{search-2T3NCCUR.js → search-NL3TSCYB.js} +10 -10
  244. package/dist/cli-bundle/chunks/{stats-6LVK4JER.js → stats-BKXCBIGT.js} +7 -7
  245. package/dist/cli-bundle/chunks/{stats-ULGQACF7.js → stats-UBD56TGK.js} +7 -7
  246. package/dist/cli-bundle/chunks/{telemetry-HHKRTMZA.js → telemetry-N454RHG5.js} +4 -4
  247. package/dist/cli-bundle/chunks/{telemetry-6G27FLCP.js → telemetry-ZJXK3H7X.js} +4 -4
  248. package/dist/cli-bundle/chunks/{test-2PP4YBV6.js → test-BQAKIXAT.js} +14 -14
  249. package/dist/cli-bundle/chunks/test-O74JFUH5.js +32 -0
  250. package/dist/cli-bundle/chunks/{test-all-6Z272JRI.js → test-all-7LV3I6S5.js} +14 -14
  251. package/dist/cli-bundle/chunks/{test-all-NETGVNM6.js → test-all-TDYCCBA4.js} +14 -14
  252. package/dist/cli-bundle/chunks/{test-runs-M24WA6TI.js → test-runs-E64M6XS3.js} +5 -5
  253. package/dist/cli-bundle/chunks/{test-runs-CRPQVMMG.js → test-runs-LXZLULCI.js} +5 -5
  254. package/dist/cli-bundle/chunks/update-2EVXOC7V.js +21 -0
  255. package/dist/cli-bundle/chunks/update-5A2B6QYB.js +25 -0
  256. package/dist/cli-bundle/chunks/{update-many-JSRF5EH5.js → update-many-TUGU5YXQ.js} +22 -22
  257. package/dist/cli-bundle/chunks/{update-many-Y3HOL7WA.js → update-many-V4LA3C4H.js} +22 -22
  258. package/dist/cli-bundle/chunks/{upgrade-5RTQVKKE.js → upgrade-37F7JKES.js} +5 -5
  259. package/dist/cli-bundle/chunks/{upgrade-ECB6GH3M.js → upgrade-L32JA4TZ.js} +5 -5
  260. package/dist/cli-bundle/chunks/{validate-MCNMAXVA.js → validate-EQTT6WVX.js} +16 -16
  261. package/dist/cli-bundle/chunks/{validate-J6Q444SD.js → validate-XN4I4DPL.js} +16 -16
  262. package/dist/cli-bundle/main.js +276 -47
  263. package/dist/cli-bundle/main.js.map +2 -2
  264. package/dist/core/diagnostics/remediation.js +12 -2
  265. package/dist/core/diagnostics/remediation.js.map +1 -1
  266. package/dist/core/extensions/extension-policy.d.ts +14 -1
  267. package/dist/core/extensions/extension-policy.js +38 -3
  268. package/dist/core/extensions/extension-policy.js.map +1 -1
  269. package/dist/core/extensions/extension-types.d.ts +40 -1
  270. package/dist/core/extensions/extension-types.js +28 -2
  271. package/dist/core/extensions/extension-types.js.map +1 -1
  272. package/dist/core/extensions/loader.d.ts +6 -4
  273. package/dist/core/extensions/loader.js +67 -14
  274. package/dist/core/extensions/loader.js.map +1 -1
  275. package/dist/core/history/replay.d.ts +1 -1
  276. package/dist/core/history/replay.js +13 -4
  277. package/dist/core/history/replay.js.map +1 -1
  278. package/dist/core/output/mutation-projection.d.ts +2 -0
  279. package/dist/core/output/mutation-projection.js +9 -2
  280. package/dist/core/output/mutation-projection.js.map +1 -1
  281. package/dist/core/output/output.d.ts +2 -0
  282. package/dist/core/output/output.js +7 -3
  283. package/dist/core/output/output.js.map +1 -1
  284. package/dist/core/output/query-summary.d.ts +31 -0
  285. package/dist/core/output/query-summary.js +62 -0
  286. package/dist/core/output/query-summary.js.map +1 -0
  287. package/dist/core/shared/command-types.d.ts +1 -0
  288. package/dist/core/shared/command-types.js +2 -2
  289. package/dist/core/shared/command-types.js.map +1 -1
  290. package/dist/core/shared/constants.js +8 -4
  291. package/dist/core/shared/constants.js.map +1 -1
  292. package/dist/core/store/item-store.d.ts +1 -1
  293. package/dist/core/store/item-store.js +3 -3
  294. package/dist/core/store/item-store.js.map +1 -1
  295. package/dist/core/store/settings-read-cache.d.ts +15 -0
  296. package/dist/core/store/settings-read-cache.js +72 -0
  297. package/dist/core/store/settings-read-cache.js.map +1 -0
  298. package/dist/core/store/settings-validator.d.ts +4 -1
  299. package/dist/core/store/settings-validator.js +14 -2
  300. package/dist/core/store/settings-validator.js.map +1 -1
  301. package/dist/core/store/settings.js +166 -16
  302. package/dist/core/store/settings.js.map +1 -1
  303. package/dist/core/telemetry/runtime.d.ts +1 -0
  304. package/dist/core/telemetry/runtime.js +3 -3
  305. package/dist/core/telemetry/runtime.js.map +1 -1
  306. package/dist/core/test/run-selectors.d.ts +27 -0
  307. package/dist/core/test/run-selectors.js +110 -0
  308. package/dist/core/test/run-selectors.js.map +1 -0
  309. package/dist/mcp/server.js +76 -262
  310. package/dist/mcp/server.js.map +1 -1
  311. package/dist/mcp/tool-definitions.d.ts +27 -0
  312. package/dist/mcp/tool-definitions.js +330 -0
  313. package/dist/mcp/tool-definitions.js.map +1 -0
  314. package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -2
  315. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  316. package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
  317. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  318. package/dist/sdk/cli-contracts/tool-parameter-tables.js +29 -2
  319. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  320. package/dist/sdk/cli-contracts.js +37 -5
  321. package/dist/sdk/cli-contracts.js.map +1 -1
  322. package/dist/sdk/index.d.ts +1 -1
  323. package/dist/sdk/index.js +2 -2
  324. package/dist/sdk/index.js.map +1 -1
  325. package/dist/sdk/runtime.d.ts +6 -0
  326. package/dist/sdk/runtime.js +51 -3
  327. package/dist/sdk/runtime.js.map +1 -1
  328. package/dist/types.d.ts +4 -1
  329. package/dist/types.js +4 -2
  330. package/dist/types.js.map +1 -1
  331. package/docs/AGENT_GUIDE.md +7 -1
  332. package/docs/ARCHITECTURE.md +7 -0
  333. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  334. package/docs/COMMANDS.md +38 -3
  335. package/docs/CONFIGURATION.md +1 -1
  336. package/docs/EXTENSIONS.md +55 -53
  337. package/docs/SDK.md +8 -2
  338. package/docs/TESTING.md +60 -0
  339. package/docs/schemas/extension-manifest.schema.json +120 -0
  340. package/marketplace.json +1 -1
  341. package/package.json +2 -2
  342. package/packages/pm-beads/extensions/beads/manifest.json +10 -0
  343. package/packages/pm-calendar/extensions/calendar/manifest.json +10 -0
  344. package/packages/pm-command-kit/README.md +72 -0
  345. package/packages/pm-command-kit/extensions/command-kit/index.js +181 -0
  346. package/packages/pm-command-kit/extensions/command-kit/index.ts +176 -0
  347. package/packages/pm-command-kit/extensions/command-kit/manifest.json +22 -0
  348. package/packages/pm-command-kit/package.json +53 -0
  349. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +10 -0
  350. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +10 -0
  351. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +10 -0
  352. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +10 -0
  353. package/packages/pm-search-advanced/extensions/search-advanced/index.js +6 -0
  354. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +6 -0
  355. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +10 -0
  356. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +1 -0
  357. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -0
  358. package/packages/pm-templates/extensions/templates/manifest.json +10 -0
  359. package/packages/pm-todos/extensions/todos/manifest.json +10 -0
  360. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  361. package/plugins/pm-claude/README.md +7 -3
  362. package/plugins/pm-claude/commands/pm-init.md +1 -1
  363. package/plugins/pm-codex/README.md +2 -2
  364. package/dist/cli-bundle/chunks/activity-HF3VJYKH.js +0 -16
  365. package/dist/cli-bundle/chunks/aggregate-IQ27NFBI.js.map +0 -7
  366. package/dist/cli-bundle/chunks/aggregate-TT7OCHHT.js.map +0 -1
  367. package/dist/cli-bundle/chunks/chunk-3RHE76G6.js.map +0 -1
  368. package/dist/cli-bundle/chunks/chunk-4LRVXVJK.js.map +0 -7
  369. package/dist/cli-bundle/chunks/chunk-5JF76OJF.js.map +0 -1
  370. package/dist/cli-bundle/chunks/chunk-7YTWXGE3.js.map +0 -1
  371. package/dist/cli-bundle/chunks/chunk-ANKG2JKL.js.map +0 -1
  372. package/dist/cli-bundle/chunks/chunk-BIRVSIM2.js.map +0 -7
  373. package/dist/cli-bundle/chunks/chunk-C72IQIBT.js.map +0 -7
  374. package/dist/cli-bundle/chunks/chunk-D5D7VKIC.js.map +0 -1
  375. package/dist/cli-bundle/chunks/chunk-EQ6N6IDR.js.map +0 -7
  376. package/dist/cli-bundle/chunks/chunk-FJNJEWU4.js.map +0 -1
  377. package/dist/cli-bundle/chunks/chunk-GPOSGWCN.js.map +0 -1
  378. package/dist/cli-bundle/chunks/chunk-H37YPWLM.js.map +0 -7
  379. package/dist/cli-bundle/chunks/chunk-I26E6XA7.js.map +0 -1
  380. package/dist/cli-bundle/chunks/chunk-I4FGL3K2.js.map +0 -1
  381. package/dist/cli-bundle/chunks/chunk-JVMAOD54.js.map +0 -1
  382. package/dist/cli-bundle/chunks/chunk-LU2HE272.js +0 -242
  383. package/dist/cli-bundle/chunks/chunk-LU2HE272.js.map +0 -1
  384. package/dist/cli-bundle/chunks/chunk-NJRZIJ4N.js.map +0 -1
  385. package/dist/cli-bundle/chunks/chunk-O4L7Z6LB.js +0 -252
  386. package/dist/cli-bundle/chunks/chunk-O4L7Z6LB.js.map +0 -7
  387. package/dist/cli-bundle/chunks/chunk-RLVI7KDW.js.map +0 -7
  388. package/dist/cli-bundle/chunks/chunk-RMTI5R76.js.map +0 -7
  389. package/dist/cli-bundle/chunks/chunk-T7B5VAKD.js.map +0 -7
  390. package/dist/cli-bundle/chunks/chunk-TLD3UYGY.js.map +0 -7
  391. package/dist/cli-bundle/chunks/chunk-WQZCEEQN.js.map +0 -1
  392. package/dist/cli-bundle/chunks/chunk-YSANBZAE.js.map +0 -7
  393. package/dist/cli-bundle/chunks/close-JTTGW7TS.js +0 -13
  394. package/dist/cli-bundle/chunks/context-4N7GYTVQ.js.map +0 -1
  395. package/dist/cli-bundle/chunks/contracts-AOBNEBVT.js.map +0 -7
  396. package/dist/cli-bundle/chunks/contracts-DXCWXOSP.js.map +0 -1
  397. package/dist/cli-bundle/chunks/create-JAPLFDGJ.js +0 -27
  398. package/dist/cli-bundle/chunks/health-CS5RNTJX.js.map +0 -1
  399. package/dist/cli-bundle/chunks/health-KCRVYIYY.js.map +0 -7
  400. package/dist/cli-bundle/chunks/history-6624XISO.js +0 -20
  401. package/dist/cli-bundle/chunks/history-redact-ZRQTI7NB.js +0 -19
  402. package/dist/cli-bundle/chunks/init-ZVE2HMKK.js +0 -17
  403. package/dist/cli-bundle/chunks/list-OO5P472O.js +0 -19
  404. package/dist/cli-bundle/chunks/register-list-query-6RA24SIZ.js.map +0 -1
  405. package/dist/cli-bundle/chunks/register-list-query-IO3RR5K6.js.map +0 -7
  406. package/dist/cli-bundle/chunks/register-mutation-KVFUXCAZ.js.map +0 -7
  407. package/dist/cli-bundle/chunks/register-mutation-VV2SC2KL.js.map +0 -1
  408. package/dist/cli-bundle/chunks/register-operations-DFNVRSJ5.js.map +0 -1
  409. package/dist/cli-bundle/chunks/register-operations-TAUUTRJ4.js.map +0 -7
  410. package/dist/cli-bundle/chunks/restore-F4ALFV4D.js +0 -17
  411. package/dist/cli-bundle/chunks/test-PPOLRIBA.js +0 -32
  412. package/dist/cli-bundle/chunks/update-MCPCPMHV.js +0 -25
  413. package/dist/cli-bundle/chunks/update-O7TBOUVQ.js +0 -21
  414. /package/dist/cli-bundle/chunks/{activity-RUJATACW.js.map → activity-XADJOG6G.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{activity-HF3VJYKH.js.map → activity-XZIUPGZH.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{append-E7AJ5RTR.js.map → append-JYWO4P7W.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{append-CWQZBUWV.js.map → append-KG55G7S3.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{chunk-ENCVPOID.js.map → chunk-3SLOMKCJ.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{chunk-F2REA7VW.js.map → chunk-4JCSYR6F.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{chunk-CAXUGAAF.js.map → chunk-4YFAGDRH.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{chunk-U3Z4OCZC.js.map → chunk-5SCT2JCT.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{chunk-NHRZSYAA.js.map → chunk-73ZPG2I3.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{chunk-A5342JVL.js.map → chunk-7RIT3OCD.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{chunk-7CR4GAYN.js.map → chunk-ATEES5SX.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{chunk-FHUI7AXS.js.map → chunk-AVGHVVF7.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{chunk-42IULX44.js.map → chunk-CCX4RSYZ.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{chunk-EFRHTZO4.js.map → chunk-CW6E4NAT.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{chunk-JN3BT7UY.js.map → chunk-DY6C42S6.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-PUSOAQCR.js.map → chunk-E5DUIJA4.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-E7LOIIFP.js.map → chunk-ESANVZF4.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-YI6W2DBN.js.map → chunk-F75JSIOZ.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-6IGTNFE3.js.map → chunk-FDH2X65L.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-ZPXDD6RQ.js.map → chunk-I53JBTJW.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-23WNCJBA.js.map → chunk-I7NYDZDV.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{chunk-SAUXUI6U.js.map → chunk-IUKD4W6Z.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{chunk-RKCJ2JMA.js.map → chunk-OASDW5UI.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{chunk-JEGFLKSI.js.map → chunk-OLKBSY4N.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{chunk-XEOO6K5J.js.map → chunk-P5BJOMBB.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{chunk-P2NVFE4L.js.map → chunk-P5U5EOMA.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{chunk-AM2AXVFS.js.map → chunk-PSD7F7DX.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{chunk-VDVVOLR6.js.map → chunk-QJMGRZO2.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{chunk-T7NWFVOA.js.map → chunk-QNJSITCX.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{chunk-MNXJ6YDO.js.map → chunk-RXAP6JL5.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{chunk-5MMLINZB.js.map → chunk-S26FESD4.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{chunk-OPYA2HIU.js.map → chunk-TK5VZFHY.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{chunk-4TJWRPIH.js.map → chunk-TNAP7EJX.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{chunk-5ATRWEZO.js.map → chunk-UUWGCWBU.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{chunk-YX5LAKFJ.js.map → chunk-VAOUX6TK.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{chunk-WCWIDJII.js.map → chunk-VPEAS7PS.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{chunk-RE2JQJZJ.js.map → chunk-VSRZRLG3.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{chunk-PW7C262O.js.map → chunk-WUNFKP7M.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{chunk-NUGAWYEN.js.map → chunk-XTKJSVWH.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{chunk-KDX6VC3P.js.map → chunk-XUC4C4PT.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{chunk-44JP4PYY.js.map → chunk-Y3YKK7CY.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{chunk-KTVXLI54.js.map → chunk-YW6Q3RYZ.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{chunk-I3UILOUU.js.map → chunk-ZLMIWZUG.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{chunk-FKH7K6YP.js.map → chunk-ZMW77VWV.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{claim-UXFGCF3P.js.map → claim-2RDYMCTP.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{claim-RV6WYUF7.js.map → claim-MJ7DZFC3.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{close-JTTGW7TS.js.map → close-4FMAPEMY.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{close-O4JK2JKD.js.map → close-XLEKIQSW.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{close-many-EQO4TPIE.js.map → close-many-AOD4HSAZ.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{close-many-SRDBV3SI.js.map → close-many-XKAQY5CQ.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{comments-TTZUIB2O.js.map → comments-B4RWWDJT.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{comments-OMB7YE27.js.map → comments-RN5TG4ZN.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{config-5VPR42A6.js.map → config-3JXJ3XZ7.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{config-NNLXVGVC.js.map → config-FZ4UDC4B.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{copy-5NM3SVJA.js.map → copy-ALU5WMHA.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{copy-XSYEQTLA.js.map → copy-FWIVTLBO.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{create-FCCAATQV.js.map → create-IFA26O2I.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{create-JAPLFDGJ.js.map → create-JVXYHYH4.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{delete-5JFP6OG7.js.map → delete-IYTIYAJS.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{delete-PQXJQXQ7.js.map → delete-Y2SGJBGY.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{deps-S5322EOQ.js.map → deps-6TSPOSGU.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{deps-XXKBOQUA.js.map → deps-CZ4PTVXU.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{docs-C7CCVWAJ.js.map → docs-5WMBVQT2.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{docs-DZRPAW5S.js.map → docs-MB53UJAJ.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{extension-CSHP6FZX.js.map → extension-Q34OEWO5.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{extension-XNNVUVAY.js.map → extension-WH2FOIOZ.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{files-UPCNKEIZ.js.map → files-DLB5LJEP.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{files-OBWYYPKM.js.map → files-GVMNVLCB.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{gc-FA2ONELT.js.map → gc-2WEPW6D6.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{gc-KXK6KBRN.js.map → gc-4Z3IKHAZ.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{get-PNTSONGB.js.map → get-PCHS7RA6.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{get-FLHYTOBA.js.map → get-QARTE6BL.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{history-COQTPBEU.js.map → history-7WUAEWHW.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{history-6624XISO.js.map → history-L2FQFRTU.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{history-compact-PVS2A3FS.js.map → history-compact-3EJ3L2O7.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{history-compact-66PSRYL3.js.map → history-compact-LW27IPFK.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{history-redact-DCXAWGTF.js.map → history-redact-G72A4EJ4.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{history-redact-ZRQTI7NB.js.map → history-redact-QWQCX5DZ.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{history-repair-SEQDFTGW.js.map → history-repair-KVPFJKOS.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{history-repair-TA3NRIFO.js.map → history-repair-RUGKD3YR.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{init-ZVE2HMKK.js.map → init-4BKRHGWW.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{init-IQJE3EKJ.js.map → init-S5WEGUJY.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{learnings-XC6EMW5E.js.map → learnings-HQXSSKZ5.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{learnings-RJPGH2ME.js.map → learnings-XK3P4ZDR.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{list-NJV6WBT4.js.map → list-6CL3XFT6.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{list-OO5P472O.js.map → list-BYNN4ZEO.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{notes-2KWHADK3.js.map → notes-5T6P7C5V.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{notes-FNCDMZW2.js.map → notes-U5FZCSBT.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{plan-CYK2P5PD.js.map → plan-FQLMJRLZ.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{plan-MQO5JTSV.js.map → plan-VNUG3WZZ.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{register-setup-X2R5CFDV.js.map → register-setup-G4QYI3RX.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{register-setup-GAQZZRUA.js.map → register-setup-IKX5524L.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{restore-F4ALFV4D.js.map → restore-CHIOQAQL.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{restore-E3GZKRRK.js.map → restore-M6AFHMV4.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{schema-3CPFLDAY.js.map → schema-76HDZJCC.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{schema-7EHBPNXM.js.map → schema-AINZ2IMM.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{search-OBZVYJJ2.js.map → search-JMLFQEPJ.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{search-2T3NCCUR.js.map → search-NL3TSCYB.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{stats-6LVK4JER.js.map → stats-BKXCBIGT.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{stats-ULGQACF7.js.map → stats-UBD56TGK.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{telemetry-HHKRTMZA.js.map → telemetry-N454RHG5.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{telemetry-6G27FLCP.js.map → telemetry-ZJXK3H7X.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{test-2PP4YBV6.js.map → test-BQAKIXAT.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{test-PPOLRIBA.js.map → test-O74JFUH5.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{test-all-6Z272JRI.js.map → test-all-7LV3I6S5.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{test-all-NETGVNM6.js.map → test-all-TDYCCBA4.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{test-runs-M24WA6TI.js.map → test-runs-E64M6XS3.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{test-runs-CRPQVMMG.js.map → test-runs-LXZLULCI.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{update-O7TBOUVQ.js.map → update-2EVXOC7V.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{update-MCPCPMHV.js.map → update-5A2B6QYB.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{update-many-JSRF5EH5.js.map → update-many-TUGU5YXQ.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{update-many-Y3HOL7WA.js.map → update-many-V4LA3C4H.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{upgrade-5RTQVKKE.js.map → upgrade-37F7JKES.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{upgrade-ECB6GH3M.js.map → upgrade-L32JA4TZ.js.map} +0 -0
  528. /package/dist/cli-bundle/chunks/{validate-MCNMAXVA.js.map → validate-EQTT6WVX.js.map} +0 -0
  529. /package/dist/cli-bundle/chunks/{validate-J6Q444SD.js.map → validate-XN4I4DPL.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  // dist/core/fs/fs-utils.js
2
2
 
3
- !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]="fb874b51-e242-55eb-aa06-2173035fe85d")}catch(e){}}();
3
+ !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]="3d81dd28-0239-582e-84cb-25d9dea99250")}catch(e){}}();
4
4
  import * as fs from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  import crypto from "node:crypto";
@@ -158,6 +158,7 @@ var EXTENSION_CAPABILITY_CONTRACT = Object.freeze({
158
158
  var KNOWN_EXTENSION_POLICY_MODES = ["off", "warn", "enforce"];
159
159
  var KNOWN_EXTENSION_TRUST_MODES = ["off", "warn", "enforce"];
160
160
  var KNOWN_EXTENSION_SANDBOX_PROFILES = ["none", "restricted", "strict"];
161
+ var KNOWN_PM_MAX_VERSION_EXCEEDED_MODES = ["block", "warn"];
161
162
  var KNOWN_EXTENSION_POLICY_SURFACES = [
162
163
  "commands.override",
163
164
  "commands.handler",
@@ -211,6 +212,23 @@ function createDefaultExtensionGovernancePolicy() {
211
212
  extension_overrides: []
212
213
  };
213
214
  }
215
+ var KNOWN_EXTENSION_MANIFEST_FIELDS = Object.freeze([
216
+ "$schema",
217
+ "name",
218
+ "version",
219
+ "entry",
220
+ "priority",
221
+ "manifest_version",
222
+ "pm_min_version",
223
+ "pm_max_version",
224
+ "engines",
225
+ "trusted",
226
+ "provenance",
227
+ "sandbox_profile",
228
+ "permissions",
229
+ "capabilities",
230
+ "activation"
231
+ ]);
214
232
 
215
233
  // dist/core/shared/constants.js
216
234
  var DEFAULT_STATUS_DEFINITIONS = Object.freeze([
@@ -347,6 +365,7 @@ var FRONT_MATTER_KEY_ORDER = [
347
365
  "test_runs",
348
366
  "docs",
349
367
  "close_reason",
368
+ "duplicate_of",
350
369
  "plan_mode",
351
370
  "plan_scope",
352
371
  "plan_harness",
@@ -362,7 +381,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
362
381
  create_mode_default: "progressive",
363
382
  close_validation_default: "off",
364
383
  require_close_reason: true,
365
- parent_reference: "warn",
384
+ parent_reference: "strict_error",
366
385
  metadata_profile: "core",
367
386
  force_required_for_stale_lock: false
368
387
  },
@@ -371,7 +390,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
371
390
  create_mode_default: "progressive",
372
391
  close_validation_default: "warn",
373
392
  require_close_reason: true,
374
- parent_reference: "warn",
393
+ parent_reference: "strict_error",
375
394
  metadata_profile: "core",
376
395
  force_required_for_stale_lock: true
377
396
  },
@@ -516,6 +535,8 @@ var SETTINGS_DEFAULTS = {
516
535
  hierarchy: true,
517
536
  activity: true,
518
537
  progress: true,
538
+ recently_created: true,
539
+ unparented: true,
519
540
  blockers: true,
520
541
  files: true,
521
542
  workload: true,
@@ -553,6 +574,7 @@ var TELEMETRY_ERROR_CATEGORY_BY_CODE = Object.freeze({
553
574
  missing_required_option: "usage",
554
575
  missing_required_argument: "usage",
555
576
  invalid_command_usage: "usage",
577
+ linked_test_value_not_quoted: "usage",
556
578
  invalid_argument_value: "validation",
557
579
  health_findings: "validation",
558
580
  validation_findings: "validation",
@@ -1574,6 +1596,29 @@ function normalizePolicySandboxProfile(value) {
1574
1596
  }
1575
1597
  return "none";
1576
1598
  }
1599
+ function normalizePmMaxVersionExceededModeValue(value) {
1600
+ if (typeof value !== "string") {
1601
+ return void 0;
1602
+ }
1603
+ const normalized = value.trim().toLowerCase();
1604
+ return KNOWN_PM_MAX_VERSION_EXCEEDED_MODES.includes(normalized) ? normalized : void 0;
1605
+ }
1606
+ function normalizePmMaxVersionExceededMode(value) {
1607
+ if (typeof value === "string") {
1608
+ const mode = normalizePmMaxVersionExceededModeValue(value) ?? "block";
1609
+ return { global: mode, project: mode };
1610
+ }
1611
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
1612
+ return {
1613
+ global: normalizePmMaxVersionExceededModeValue(value.global) ?? "block",
1614
+ project: normalizePmMaxVersionExceededModeValue(value.project) ?? "block"
1615
+ };
1616
+ }
1617
+ return { global: "block", project: "block" };
1618
+ }
1619
+ function serializePmMaxVersionExceededMode(mode) {
1620
+ return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };
1621
+ }
1577
1622
  function toSortedList(values) {
1578
1623
  return [...new Set(values)].sort((left, right) => left.localeCompare(right));
1579
1624
  }
@@ -1617,6 +1662,7 @@ function normalizeExtensionPolicy(settings) {
1617
1662
  const policy = settings.extensions.policy;
1618
1663
  const mode = normalizePolicyMode(policy?.mode);
1619
1664
  const trustMode = normalizePolicyTrustMode(policy?.trust_mode);
1665
+ const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededMode(policy?.pm_max_version_exceeded_mode);
1620
1666
  const requireProvenance = policy?.require_provenance === true;
1621
1667
  const trustedExtensions = normalizePolicyStringSet(policy?.trusted_extensions);
1622
1668
  const defaultSandboxProfile = normalizePolicySandboxProfile(policy?.default_sandbox_profile);
@@ -1662,6 +1708,7 @@ function normalizeExtensionPolicy(settings) {
1662
1708
  return {
1663
1709
  mode,
1664
1710
  trustMode,
1711
+ pmMaxVersionExceededMode: pmMaxVersionExceededMode2,
1665
1712
  requireProvenance,
1666
1713
  trustedExtensions,
1667
1714
  defaultSandboxProfile,
@@ -1702,6 +1749,7 @@ function serializeExtensionPolicy(policy) {
1702
1749
  return {
1703
1750
  mode: policy.mode,
1704
1751
  trust_mode: policy.trustMode,
1752
+ pm_max_version_exceeded_mode: serializePmMaxVersionExceededMode(policy.pmMaxVersionExceededMode),
1705
1753
  require_provenance: policy.requireProvenance,
1706
1754
  trusted_extensions: toSortedList(policy.trustedExtensions),
1707
1755
  default_sandbox_profile: policy.defaultSandboxProfile,
@@ -1725,6 +1773,7 @@ function hydrateExtensionPolicy(policy) {
1725
1773
  return {
1726
1774
  mode: normalizePolicyMode(policy.mode),
1727
1775
  trustMode: normalizePolicyTrustMode(policy.trust_mode),
1776
+ pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),
1728
1777
  requireProvenance: policy.require_provenance === true,
1729
1778
  trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),
1730
1779
  defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),
@@ -2298,14 +2347,14 @@ function buildEffectiveExtensions(globalCandidates, projectCandidates) {
2298
2347
  }
2299
2348
  return effective;
2300
2349
  }
2301
- async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
2350
+ async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled, pmMaxVersionExceededMode2) {
2302
2351
  const diagnostics = [];
2303
2352
  const warnings = [];
2304
2353
  const candidates = [];
2305
2354
  const directories = await listExtensionDirectories(extensionsRoot);
2306
2355
  const managedSourcePackages = await readManagedExtensionSourcePackages(extensionsRoot);
2307
2356
  for (const directory of directories) {
2308
- const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages);
2357
+ const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2);
2309
2358
  diagnostics.push(scanned.diagnostic);
2310
2359
  warnings.push(...scanned.warnings);
2311
2360
  if (scanned.candidate) {
@@ -2314,7 +2363,7 @@ async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
2314
2363
  }
2315
2364
  return { diagnostics, warnings, candidates };
2316
2365
  }
2317
- async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages) {
2366
+ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2) {
2318
2367
  const extensionDir = path5.join(extensionsRoot, directory);
2319
2368
  const manifestPath = path5.join(extensionDir, "manifest.json");
2320
2369
  if (!await pathExists(manifestPath)) {
@@ -2381,7 +2430,7 @@ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled,
2381
2430
  if (pmVersionCompatibility.warning) {
2382
2431
  extensionWarnings.push(pmVersionCompatibility.warning);
2383
2432
  }
2384
- const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest);
2433
+ const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest, pmMaxVersionExceededMode2);
2385
2434
  if (pmMaxVersionCompatibility.warning) {
2386
2435
  extensionWarnings.push(pmMaxVersionCompatibility.warning);
2387
2436
  }
@@ -2431,8 +2480,8 @@ async function discoverExtensions(options) {
2431
2480
  }
2432
2481
  const enabled = new Set(configured_enabled);
2433
2482
  const disabled = new Set(configured_disabled);
2434
- const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled);
2435
- const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled);
2483
+ const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled, policy.pmMaxVersionExceededMode.global);
2484
+ const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled, policy.pmMaxVersionExceededMode.project);
2436
2485
  const policyWarnings = [...policy.warnings];
2437
2486
  const effectiveCandidates = buildEffectiveExtensions(globalScan.candidates, projectScan.candidates);
2438
2487
  const effective = [];
@@ -2557,7 +2606,7 @@ async function evaluatePmMinVersionCompatibility(layer, manifest) {
2557
2606
  }
2558
2607
  return { allowed: true };
2559
2608
  }
2560
- async function evaluatePmMaxVersionCompatibility(layer, manifest) {
2609
+ async function evaluatePmMaxVersionCompatibility(layer, manifest, exceededMode) {
2561
2610
  if (typeof manifest.pm_max_version !== "string" || manifest.pm_max_version.trim().length === 0) {
2562
2611
  return { allowed: true };
2563
2612
  }
@@ -2588,6 +2637,12 @@ async function evaluatePmMaxVersionCompatibility(layer, manifest) {
2588
2637
  };
2589
2638
  }
2590
2639
  if (comparison > 0) {
2640
+ if (exceededMode === "warn") {
2641
+ return {
2642
+ allowed: true,
2643
+ warning: `extension_pm_max_version_exceeded_warn:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
2644
+ };
2645
+ }
2591
2646
  return {
2592
2647
  allowed: false,
2593
2648
  warning: `extension_pm_max_version_exceeded:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
@@ -4075,6 +4130,8 @@ var CONTEXT_SECTION_VALUES = [
4075
4130
  "hierarchy",
4076
4131
  "activity",
4077
4132
  "progress",
4133
+ "recently_created",
4134
+ "unparented",
4078
4135
  "blockers",
4079
4136
  "files",
4080
4137
  "workload",
@@ -4982,9 +5039,15 @@ var extensionPolicyOverride = vObject({
4982
5039
  allowed_services: vOptional(vArray(vString)),
4983
5040
  blocked_services: vOptional(vArray(vString))
4984
5041
  });
5042
+ var pmMaxVersionExceededModeLiteral = vLiteral("block", "warn");
5043
+ var pmMaxVersionExceededMode = (input) => typeof input === "string" ? pmMaxVersionExceededModeLiteral(input) : vObject({
5044
+ global: vOptional(pmMaxVersionExceededModeLiteral),
5045
+ project: vOptional(pmMaxVersionExceededModeLiteral)
5046
+ })(input);
4985
5047
  var extensionPolicy = vOptional(vObject({
4986
5048
  mode: vOptional(vLiteral("off", "warn", "enforce")),
4987
5049
  trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
5050
+ pm_max_version_exceeded_mode: vOptional(pmMaxVersionExceededMode),
4988
5051
  require_provenance: vOptional(vBoolean),
4989
5052
  trusted_extensions: vOptional(vArray(vString)),
4990
5053
  default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
@@ -5048,6 +5111,8 @@ var settingsCheck = vObject({
5048
5111
  hierarchy: vOptional(vBoolean),
5049
5112
  activity: vOptional(vBoolean),
5050
5113
  progress: vOptional(vBoolean),
5114
+ recently_created: vOptional(vBoolean),
5115
+ unparented: vOptional(vBoolean),
5051
5116
  blockers: vOptional(vBoolean),
5052
5117
  files: vOptional(vBoolean),
5053
5118
  workload: vOptional(vBoolean),
@@ -5181,6 +5246,71 @@ function normalizeItemTypeDefinition(definition, options = {}) {
5181
5246
  };
5182
5247
  }
5183
5248
 
5249
+ // dist/core/store/settings-read-cache.js
5250
+ import { stat } from "node:fs/promises";
5251
+ var settingsReadCacheByRoot = /* @__PURE__ */ new Map();
5252
+ function normalizeTrackedPaths(paths) {
5253
+ return [...new Set(paths.map((pathValue) => pathValue.trim()).filter((pathValue) => pathValue.length > 0))].sort((left, right) => left.localeCompare(right));
5254
+ }
5255
+ async function readPathSignature(targetPath) {
5256
+ try {
5257
+ const targetStats = await stat(targetPath);
5258
+ return {
5259
+ path: targetPath,
5260
+ mtime_ms: targetStats.mtimeMs,
5261
+ size: targetStats.size
5262
+ };
5263
+ } catch {
5264
+ return {
5265
+ path: targetPath,
5266
+ mtime_ms: null,
5267
+ size: null
5268
+ };
5269
+ }
5270
+ }
5271
+ async function collectSettingsReadCacheSignatures(paths) {
5272
+ const normalizedPaths = normalizeTrackedPaths(paths);
5273
+ const signatures = await Promise.all(normalizedPaths.map((targetPath) => readPathSignature(targetPath)));
5274
+ signatures.sort((left, right) => left.path.localeCompare(right.path));
5275
+ return signatures;
5276
+ }
5277
+ function settingsReadCacheSignaturesEqual(left, right) {
5278
+ if (left.length !== right.length) {
5279
+ return false;
5280
+ }
5281
+ for (let index = 0; index < left.length; index += 1) {
5282
+ const leftEntry = left[index];
5283
+ const rightEntry = right[index];
5284
+ if (leftEntry.path !== rightEntry.path || leftEntry.mtime_ms !== rightEntry.mtime_ms || leftEntry.size !== rightEntry.size) {
5285
+ return false;
5286
+ }
5287
+ }
5288
+ return true;
5289
+ }
5290
+ function getSettingsReadCacheEntry(pmRoot) {
5291
+ return settingsReadCacheByRoot.get(pmRoot);
5292
+ }
5293
+ function setSettingsReadCacheEntry(pmRoot, entry) {
5294
+ const normalizedTrackedPaths = normalizeTrackedPaths(entry.tracked_paths);
5295
+ const normalizedSignatures = [...entry.signatures].map((signature) => ({
5296
+ path: signature.path,
5297
+ mtime_ms: signature.mtime_ms,
5298
+ size: signature.size
5299
+ })).sort((left, right) => left.path.localeCompare(right.path));
5300
+ settingsReadCacheByRoot.set(pmRoot, {
5301
+ tracked_paths: normalizedTrackedPaths,
5302
+ signatures: normalizedSignatures,
5303
+ value: entry.value
5304
+ });
5305
+ }
5306
+ function clearSettingsReadCache(pmRoot) {
5307
+ if (pmRoot) {
5308
+ settingsReadCacheByRoot.delete(pmRoot);
5309
+ return;
5310
+ }
5311
+ settingsReadCacheByRoot.clear();
5312
+ }
5313
+
5184
5314
  // dist/core/store/settings.js
5185
5315
  var SETTINGS_WRITE_OP = "settings:write";
5186
5316
  var SETTINGS_PERSIST_SOURCE_SYMBOL = /* @__PURE__ */ Symbol("pm.settings.persist_source");
@@ -5347,6 +5477,74 @@ function getSettingsPersistSourceSnapshot(settings) {
5347
5477
  }
5348
5478
  return candidate;
5349
5479
  }
5480
+ function cloneSettingsReadResult(result) {
5481
+ const clonedSettings = structuredClone(result.settings);
5482
+ const persistSource = getSettingsPersistSourceSnapshot(result.settings);
5483
+ if (persistSource) {
5484
+ attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));
5485
+ }
5486
+ return {
5487
+ settings: clonedSettings,
5488
+ metadata: {
5489
+ has_explicit_item_format: result.metadata.has_explicit_item_format
5490
+ },
5491
+ warnings: [...result.warnings]
5492
+ };
5493
+ }
5494
+ function resolveSettingsReadTrackedPaths(pmRoot, schema, settingsPath) {
5495
+ const normalizedSchema = normalizeRuntimeSchemaSettings(schema);
5496
+ return [
5497
+ settingsPath,
5498
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),
5499
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),
5500
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),
5501
+ filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows)
5502
+ ];
5503
+ }
5504
+ async function cacheSettingsReadResult(pmRoot, trackedPaths, result) {
5505
+ const signatures = await collectSettingsReadCacheSignatures(trackedPaths);
5506
+ setSettingsReadCacheEntry(pmRoot, {
5507
+ tracked_paths: trackedPaths,
5508
+ signatures,
5509
+ value: cloneSettingsReadResult(result)
5510
+ });
5511
+ }
5512
+ async function cacheSettingsReadResultSafe(pmRoot, trackedPaths, result) {
5513
+ try {
5514
+ await cacheSettingsReadResult(pmRoot, trackedPaths, result);
5515
+ } catch {
5516
+ clearSettingsReadCache(pmRoot);
5517
+ }
5518
+ }
5519
+ function findSettingsReadCacheSignature(signatures, targetPath) {
5520
+ return signatures.find((signature) => signature.path === targetPath);
5521
+ }
5522
+ function selectedSettingsReadCacheSignaturesEqual(before, after, targetPaths) {
5523
+ for (const targetPath of targetPaths) {
5524
+ const beforeSignature = findSettingsReadCacheSignature(before, targetPath);
5525
+ const afterSignature = findSettingsReadCacheSignature(after, targetPath);
5526
+ if (!beforeSignature || !afterSignature || !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])) {
5527
+ return false;
5528
+ }
5529
+ }
5530
+ return true;
5531
+ }
5532
+ async function cacheSettingsReadResultIfStable(pmRoot, trackedPaths, result, stableSignatures, stablePaths) {
5533
+ try {
5534
+ const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);
5535
+ if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {
5536
+ clearSettingsReadCache(pmRoot);
5537
+ return;
5538
+ }
5539
+ setSettingsReadCacheEntry(pmRoot, {
5540
+ tracked_paths: trackedPaths,
5541
+ signatures: currentSignatures,
5542
+ value: cloneSettingsReadResult(result)
5543
+ });
5544
+ } catch {
5545
+ clearSettingsReadCache(pmRoot);
5546
+ }
5547
+ }
5350
5548
  function resolvePersistedFileBackedSchemaSections(settings, source) {
5351
5549
  const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);
5352
5550
  const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);
@@ -5494,11 +5692,33 @@ function normalizeExtensionPolicyOverrides(overrides) {
5494
5692
  }
5495
5693
  return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
5496
5694
  }
5695
+ function normalizePmMaxVersionExceededModeValue2(value) {
5696
+ return value === "block" || value === "warn" ? value : void 0;
5697
+ }
5698
+ function normalizePmMaxVersionExceededModeSetting(value) {
5699
+ if (typeof value === "string") {
5700
+ return normalizePmMaxVersionExceededModeValue2(value);
5701
+ }
5702
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
5703
+ const global = normalizePmMaxVersionExceededModeValue2(value.global);
5704
+ const project = normalizePmMaxVersionExceededModeValue2(value.project);
5705
+ if (global === void 0 && project === void 0) {
5706
+ return void 0;
5707
+ }
5708
+ return {
5709
+ ...global !== void 0 ? { global } : {},
5710
+ ...project !== void 0 ? { project } : {}
5711
+ };
5712
+ }
5713
+ return void 0;
5714
+ }
5497
5715
  function normalizeExtensionPolicySettings(policy) {
5498
5716
  const defaults = SETTINGS_DEFAULTS.extensions.policy;
5717
+ const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
5499
5718
  return {
5500
5719
  mode: normalizeExtensionPolicyMode(policy?.mode),
5501
5720
  trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
5721
+ ...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
5502
5722
  require_provenance: policy?.require_provenance === true,
5503
5723
  trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),
5504
5724
  default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
@@ -5787,6 +6007,7 @@ function serializeSettings(settings, options = {}) {
5787
6007
  ordered.extensions.policy = orderObject(ordered.extensions.policy ?? {}, [
5788
6008
  "mode",
5789
6009
  "trust_mode",
6010
+ "pm_max_version_exceeded_mode",
5790
6011
  "require_provenance",
5791
6012
  "trusted_extensions",
5792
6013
  "default_sandbox_profile",
@@ -5853,28 +6074,52 @@ function serializeSettings(settings, options = {}) {
5853
6074
  }
5854
6075
  async function readSettingsWithMetadata(pmRoot) {
5855
6076
  const settingsPath = getSettingsPath(pmRoot);
5856
- const raw = await readFileIfExists(settingsPath);
5857
- if (raw === null) {
5858
- return buildFallbackSettingsReadResult();
5859
- }
6077
+ let trackedPathsForFailure = [settingsPath];
5860
6078
  await runActiveOnReadHooks({
5861
6079
  path: settingsPath,
5862
6080
  scope: "project"
5863
6081
  });
6082
+ const cachedResult = getSettingsReadCacheEntry(pmRoot);
6083
+ if (cachedResult) {
6084
+ const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);
6085
+ if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {
6086
+ return cloneSettingsReadResult(cachedResult.value);
6087
+ }
6088
+ }
6089
+ const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);
6090
+ const raw = await readFileIfExists(settingsPath);
6091
+ if (raw === null) {
6092
+ const fallback = buildFallbackSettingsReadResult();
6093
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);
6094
+ return fallback;
6095
+ }
6096
+ const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);
6097
+ if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {
6098
+ clearSettingsReadCache(pmRoot);
6099
+ return readSettingsWithMetadata(pmRoot);
6100
+ }
5864
6101
  let parsed;
5865
6102
  try {
5866
6103
  parsed = JSON.parse(raw);
5867
6104
  } catch {
5868
- return buildFallbackSettingsReadResult("settings_read_invalid_json");
6105
+ const fallback = buildFallbackSettingsReadResult("settings_read_invalid_json");
6106
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
6107
+ return fallback;
5869
6108
  }
5870
6109
  const validated = validateSettings(parsed);
5871
6110
  if (!validated.success) {
5872
- return buildFallbackSettingsReadResult("settings_read_invalid_schema");
6111
+ const fallback = buildFallbackSettingsReadResult("settings_read_invalid_schema");
6112
+ await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
6113
+ return fallback;
5873
6114
  }
5874
6115
  try {
5875
6116
  const mergedSettings = mergeSettings(validated.data);
6117
+ const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);
6118
+ trackedPathsForFailure = trackedPaths;
6119
+ const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
5876
6120
  const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);
5877
6121
  const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);
6122
+ const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
5878
6123
  const settings = {
5879
6124
  ...mergedSettings,
5880
6125
  item_types: {
@@ -5886,7 +6131,7 @@ async function readSettingsWithMetadata(pmRoot) {
5886
6131
  schema: loadedSchemaSections.schema
5887
6132
  };
5888
6133
  attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));
5889
- return {
6134
+ const result = {
5890
6135
  settings,
5891
6136
  metadata: {
5892
6137
  has_explicit_item_format: hasExplicitItemFormat(parsed)
@@ -5897,8 +6142,24 @@ async function readSettingsWithMetadata(pmRoot) {
5897
6142
  ...loadedSchemaSections.warnings
5898
6143
  ]
5899
6144
  };
6145
+ if (schemaScaffold.created_paths.length === 0) {
6146
+ if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {
6147
+ clearSettingsReadCache(pmRoot);
6148
+ } else {
6149
+ setSettingsReadCacheEntry(pmRoot, {
6150
+ tracked_paths: trackedPaths,
6151
+ signatures: signaturesAfterSchemaLoad,
6152
+ value: cloneSettingsReadResult(result)
6153
+ });
6154
+ }
6155
+ } else {
6156
+ clearSettingsReadCache(pmRoot);
6157
+ }
6158
+ return result;
5900
6159
  } catch {
5901
- return buildFallbackSettingsReadResult("settings_read_merge_failed");
6160
+ const fallback = buildFallbackSettingsReadResult("settings_read_merge_failed");
6161
+ await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);
6162
+ return fallback;
5902
6163
  }
5903
6164
  }
5904
6165
  async function readSettings(pmRoot) {
@@ -5909,11 +6170,15 @@ async function writeSettings(pmRoot, settings, op = SETTINGS_WRITE_OP) {
5909
6170
  await writeFileAtomic(settingsPath, serializeSettings(settings, {
5910
6171
  persist_source: getSettingsPersistSourceSnapshot(settings)
5911
6172
  }));
5912
- await runActiveOnWriteHooks({
5913
- path: settingsPath,
5914
- scope: "project",
5915
- op
5916
- });
6173
+ try {
6174
+ await runActiveOnWriteHooks({
6175
+ path: settingsPath,
6176
+ scope: "project",
6177
+ op
6178
+ });
6179
+ } finally {
6180
+ clearSettingsReadCache(pmRoot);
6181
+ }
5917
6182
  }
5918
6183
 
5919
6184
  export {
@@ -6052,6 +6317,6 @@ export {
6052
6317
  readSettings,
6053
6318
  writeSettings
6054
6319
  };
6055
- //# sourceMappingURL=chunk-5JF76OJF.js.map
6320
+ //# sourceMappingURL=chunk-A6LXQFO7.js.map
6056
6321
 
6057
- //# debugId=fb874b51-e242-55eb-aa06-2173035fe85d
6322
+ //# debugId=3d81dd28-0239-582e-84cb-25d9dea99250