@unbrained/pm-cli 2026.6.24 → 2026.7.1

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 (744) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +113 -1
  3. package/CONTRIBUTING.md +30 -0
  4. package/README.md +16 -3
  5. package/dist/cli/bootstrap-args.js +89 -79
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commander-usage.js +3 -3
  8. package/dist/cli/commander-usage.js.map +1 -1
  9. package/dist/cli/commands/aggregate.js +8 -7
  10. package/dist/cli/commands/aggregate.js.map +1 -1
  11. package/dist/cli/commands/calendar.js +63 -62
  12. package/dist/cli/commands/calendar.js.map +1 -1
  13. package/dist/cli/commands/close.d.ts +2 -4
  14. package/dist/cli/commands/close.js +5 -17
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/completion.js +158 -9
  17. package/dist/cli/commands/completion.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +1 -1
  19. package/dist/cli/commands/config.js +2 -2
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/context.d.ts +31 -4
  22. package/dist/cli/commands/context.js +33 -10
  23. package/dist/cli/commands/context.js.map +1 -1
  24. package/dist/cli/commands/contracts.js +48 -8
  25. package/dist/cli/commands/contracts.js.map +1 -1
  26. package/dist/cli/commands/create.d.ts +1 -6
  27. package/dist/cli/commands/create.js +491 -587
  28. package/dist/cli/commands/create.js.map +1 -1
  29. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  30. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  31. package/dist/cli/commands/extension/describe.d.ts +15 -0
  32. package/dist/cli/commands/extension/describe.js +48 -2
  33. package/dist/cli/commands/extension/describe.js.map +1 -1
  34. package/dist/cli/commands/extension/doctor.js +129 -75
  35. package/dist/cli/commands/extension/doctor.js.map +1 -1
  36. package/dist/cli/commands/extension/install-sources.js +37 -7
  37. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  38. package/dist/cli/commands/extension/managed-state.js +101 -57
  39. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  40. package/dist/cli/commands/extension/scaffold.d.ts +38 -8
  41. package/dist/cli/commands/extension/scaffold.js +1956 -242
  42. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  43. package/dist/cli/commands/extension.d.ts +28 -3
  44. package/dist/cli/commands/extension.js +1181 -880
  45. package/dist/cli/commands/extension.js.map +1 -1
  46. package/dist/cli/commands/index.d.ts +3 -1
  47. package/dist/cli/commands/index.js +5 -3
  48. package/dist/cli/commands/index.js.map +1 -1
  49. package/dist/cli/commands/item-filter-options.d.ts +63 -0
  50. package/dist/cli/commands/item-filter-options.js +10 -0
  51. package/dist/cli/commands/item-filter-options.js.map +1 -0
  52. package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
  53. package/dist/cli/commands/legacy-none-tokens.js +31 -2
  54. package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
  55. package/dist/cli/commands/linked-artifacts.d.ts +7 -0
  56. package/dist/cli/commands/linked-artifacts.js +12 -2
  57. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  58. package/dist/cli/commands/list-filter-shared.js +55 -48
  59. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  60. package/dist/cli/commands/list.d.ts +16 -39
  61. package/dist/cli/commands/list.js +127 -118
  62. package/dist/cli/commands/list.js.map +1 -1
  63. package/dist/cli/commands/next.d.ts +98 -0
  64. package/dist/cli/commands/next.js +304 -0
  65. package/dist/cli/commands/next.js.map +1 -0
  66. package/dist/cli/commands/profile.d.ts +208 -0
  67. package/dist/cli/commands/profile.js +418 -0
  68. package/dist/cli/commands/profile.js.map +1 -0
  69. package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
  70. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
  71. package/dist/cli/commands/schema.d.ts +7 -0
  72. package/dist/cli/commands/schema.js +9 -3
  73. package/dist/cli/commands/schema.js.map +1 -1
  74. package/dist/cli/commands/search.d.ts +2 -39
  75. package/dist/cli/commands/search.js +196 -172
  76. package/dist/cli/commands/search.js.map +1 -1
  77. package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
  78. package/dist/cli/commands/shared-unset-fields.js +161 -0
  79. package/dist/cli/commands/shared-unset-fields.js.map +1 -0
  80. package/dist/cli/commands/stats.js +15 -3
  81. package/dist/cli/commands/stats.js.map +1 -1
  82. package/dist/cli/commands/test.js +115 -125
  83. package/dist/cli/commands/test.js.map +1 -1
  84. package/dist/cli/commands/update.d.ts +1 -6
  85. package/dist/cli/commands/update.js +37 -232
  86. package/dist/cli/commands/update.js.map +1 -1
  87. package/dist/cli/commands/validate.js +20 -5
  88. package/dist/cli/commands/validate.js.map +1 -1
  89. package/dist/cli/extension-command-options.js +48 -21
  90. package/dist/cli/extension-command-options.js.map +1 -1
  91. package/dist/cli/help-content.js +26 -2
  92. package/dist/cli/help-content.js.map +1 -1
  93. package/dist/cli/help-json-payload.js +3 -3
  94. package/dist/cli/help-json-payload.js.map +1 -1
  95. package/dist/cli/main.js +27 -12
  96. package/dist/cli/main.js.map +1 -1
  97. package/dist/cli/register-list-query.js +42 -3
  98. package/dist/cli/register-list-query.js.map +1 -1
  99. package/dist/cli/register-mutation.js +86 -2
  100. package/dist/cli/register-mutation.js.map +1 -1
  101. package/dist/cli/register-setup.js +67 -6
  102. package/dist/cli/register-setup.js.map +1 -1
  103. package/dist/cli/registration-helpers.d.ts +9 -1
  104. package/dist/cli/registration-helpers.js +149 -123
  105. package/dist/cli/registration-helpers.js.map +1 -1
  106. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +16 -0
  107. package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js → activity-DBLQVIP6.js} +9 -11
  108. package/dist/cli-bundle/chunks/{aggregate-63NWNIBR.js → aggregate-JTEF4BP7.js} +17 -18
  109. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +1 -0
  110. package/dist/cli-bundle/chunks/{aggregate-YHCYX2EV.js → aggregate-SDF7DUOD.js} +16 -17
  111. package/dist/cli-bundle/chunks/aggregate-SDF7DUOD.js.map +7 -0
  112. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js → append-LOVPGVPT.js} +8 -10
  113. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js.map → append-LOVPGVPT.js.map} +1 -1
  114. package/dist/cli-bundle/chunks/{append-PUKREFV5.js → append-QCFJSDFL.js} +10 -12
  115. package/dist/cli-bundle/chunks/{append-PUKREFV5.js.map → append-QCFJSDFL.js.map} +1 -1
  116. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js → chunk-22WKIL3H.js} +9 -11
  117. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js.map → chunk-22WKIL3H.js.map} +1 -1
  118. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js → chunk-2466X6E4.js} +9 -11
  119. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js.map → chunk-2466X6E4.js.map} +1 -1
  120. package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js → chunk-27BXPBAY.js} +3 -3
  121. package/dist/cli-bundle/chunks/{schema-QO5I4FBL.js → chunk-2D4HATP2.js} +136 -66
  122. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +1 -0
  123. package/dist/cli-bundle/chunks/{chunk-J7I4C5ZB.js → chunk-3J6JRJ3I.js} +153 -125
  124. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +7 -0
  125. package/dist/cli-bundle/chunks/{chunk-OHDQNKJB.js → chunk-3K2M5OYU.js} +106 -34
  126. package/dist/cli-bundle/chunks/chunk-3K2M5OYU.js.map +7 -0
  127. package/dist/cli-bundle/chunks/{chunk-XVYKWZNL.js → chunk-3S2KT7NG.js} +127 -127
  128. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +7 -0
  129. package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js → chunk-3VGN2UWE.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-N5B6WZC5.js → chunk-3XZCOZ5J.js} +115 -123
  131. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +1 -0
  132. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js +799 -0
  133. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js.map +1 -0
  134. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  135. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js → chunk-4DSGXSBL.js} +5 -7
  137. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js.map → chunk-4DSGXSBL.js.map} +1 -1
  138. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js → chunk-4DUVCVLZ.js} +4 -6
  139. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js.map → chunk-4DUVCVLZ.js.map} +1 -1
  140. package/dist/cli-bundle/chunks/{chunk-IAP5KYBQ.js → chunk-4XOIEKSD.js} +563 -506
  141. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +1 -0
  142. package/dist/cli-bundle/chunks/{context-5LB7UGKE.js → chunk-55SNVXRQ.js} +79 -82
  143. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +7 -0
  144. package/dist/cli-bundle/chunks/{chunk-BFFO3AIB.js → chunk-5CGRF3L5.js} +128 -128
  145. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +1 -0
  146. package/dist/cli-bundle/chunks/{chunk-JKL6HRMV.js → chunk-5QFDBI4F.js} +1260 -1046
  147. package/dist/cli-bundle/chunks/chunk-5QFDBI4F.js.map +7 -0
  148. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js → chunk-64HNBBFQ.js} +8 -12
  149. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js.map → chunk-64HNBBFQ.js.map} +1 -1
  150. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js +2444 -0
  151. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js.map +1 -0
  152. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
  153. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
  154. package/dist/cli-bundle/chunks/{chunk-VSAABFGQ.js → chunk-7R4QEMZZ.js} +1490 -734
  155. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +1 -0
  156. package/dist/cli-bundle/chunks/{chunk-M6TUBOGW.js → chunk-A7FPBAQS.js} +19 -12
  157. package/dist/cli-bundle/chunks/chunk-A7FPBAQS.js.map +1 -0
  158. package/dist/cli-bundle/chunks/{chunk-GQYJEEFX.js → chunk-AVEE5EHK.js} +53 -54
  159. package/dist/cli-bundle/chunks/chunk-AVEE5EHK.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js → chunk-AXIDKKAT.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js → chunk-BDTISOSD.js} +2 -2
  162. package/dist/cli-bundle/chunks/{chunk-C4C3EJCJ.js → chunk-BHO33VBQ.js} +509 -363
  163. package/dist/cli-bundle/chunks/chunk-BHO33VBQ.js.map +7 -0
  164. package/dist/cli-bundle/chunks/{chunk-6W3Y65PL.js → chunk-BZCEN4JA.js} +198 -177
  165. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +7 -0
  166. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js → chunk-CF7RL6FR.js} +12 -16
  167. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js.map → chunk-CF7RL6FR.js.map} +1 -1
  168. package/dist/cli-bundle/chunks/{chunk-HC2S36NB.js → chunk-CWFNTKQJ.js} +154 -126
  169. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +1 -0
  170. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
  171. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
  172. package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js → chunk-DDPTYJIM.js} +2 -2
  173. package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js → chunk-EJUDVUYZ.js} +3 -3
  174. package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js → chunk-EVMTBV6V.js} +3 -3
  175. package/dist/cli-bundle/chunks/{chunk-RAWA3Y7O.js → chunk-FFMQB7WR.js} +199 -178
  176. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js → chunk-G7I7DEZA.js} +4 -4
  178. package/dist/cli-bundle/chunks/{chunk-MEXZ5XUM.js → chunk-GJ326ZKX.js} +53 -54
  179. package/dist/cli-bundle/chunks/chunk-GJ326ZKX.js.map +7 -0
  180. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js +119 -0
  181. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js.map +7 -0
  182. package/dist/cli-bundle/chunks/{chunk-OF7V47P3.js → chunk-HXTQJXWT.js} +2172 -2146
  183. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +1 -0
  184. package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js → chunk-HYTGA6GI.js} +3 -3
  185. package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js → chunk-HZZEHPRG.js} +2 -2
  186. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
  187. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
  188. package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js → chunk-IJYK2T43.js} +2 -2
  189. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js → chunk-IPYBJWTE.js} +10 -14
  190. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js.map → chunk-IPYBJWTE.js.map} +1 -1
  191. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js → chunk-IZBR4NRW.js} +10 -14
  192. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js.map → chunk-IZBR4NRW.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js → chunk-JLM7BHI7.js} +7 -9
  194. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js.map → chunk-JLM7BHI7.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{chunk-6EL7SW5C.js → chunk-JMP4E6D7.js} +114 -122
  196. package/dist/cli-bundle/chunks/chunk-JMP4E6D7.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js → chunk-JPECA746.js} +2 -2
  198. package/dist/cli-bundle/chunks/{chunk-KJZOSF7J.js → chunk-JSU5P7VS.js} +100 -35
  199. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{context-55VEOYI3.js → chunk-JWXRETDF.js} +79 -82
  201. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +1 -0
  202. package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js → chunk-KNPEF7QG.js} +4 -4
  203. package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js → chunk-L5OEFZQG.js} +3 -3
  204. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js → chunk-LB6TP6MC.js} +5 -7
  205. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js.map → chunk-LB6TP6MC.js.map} +2 -2
  206. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js → chunk-MAUKX7JC.js} +6 -8
  207. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js.map → chunk-MAUKX7JC.js.map} +1 -1
  208. package/dist/cli-bundle/chunks/{chunk-SMXSDY7J.js → chunk-MDPEOIGN.js} +2221 -2172
  209. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +7 -0
  210. package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js → chunk-N74UMG5H.js} +2 -2
  211. package/dist/cli-bundle/chunks/{chunk-IXAZI443.js → chunk-NFDPYAIP.js} +2 -2
  212. package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js → chunk-NKZAN7BD.js} +3 -3
  213. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js +116 -0
  214. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-L7UXKP2I.js → chunk-NU2UEROZ.js} +1257 -1029
  216. package/dist/cli-bundle/chunks/chunk-NU2UEROZ.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-HBAEFWX3.js → chunk-NUHHPVVS.js} +65 -335
  218. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +7 -0
  219. package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js → chunk-NWMZWYYB.js} +2 -2
  220. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js → chunk-OGXLACHC.js} +10 -14
  221. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js.map → chunk-OGXLACHC.js.map} +1 -1
  222. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
  223. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js → chunk-OTUHB4HS.js} +4 -4
  225. package/dist/cli-bundle/chunks/{chunk-ZLWRPBOW.js → chunk-QCWF6IYD.js} +510 -364
  226. package/dist/cli-bundle/chunks/chunk-QCWF6IYD.js.map +1 -0
  227. package/dist/cli-bundle/chunks/{chunk-PRVTGX64.js → chunk-RGEMWD6Q.js} +11 -23
  228. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +7 -0
  229. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js +809 -0
  230. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js → chunk-RLDHZHQS.js} +12 -16
  232. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js.map → chunk-RLDHZHQS.js.map} +1 -1
  233. package/dist/cli-bundle/chunks/{schema-C6QA367T.js → chunk-RMMQ74TG.js} +144 -67
  234. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +7 -0
  235. package/dist/cli-bundle/chunks/{chunk-EYPINTFR.js → chunk-RVUALSJF.js} +1516 -753
  236. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +7 -0
  237. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js +2468 -0
  238. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js.map +7 -0
  239. package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js → chunk-SLMUGTK3.js} +4 -4
  240. package/dist/cli-bundle/chunks/{chunk-SUREE24M.js → chunk-TP5Q5ZD3.js} +12 -24
  241. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +1 -0
  242. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js → chunk-UYUYDGIB.js} +7 -9
  243. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js.map → chunk-UYUYDGIB.js.map} +1 -1
  244. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js → chunk-UZIWVBE6.js} +6 -8
  245. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js.map → chunk-UZIWVBE6.js.map} +1 -1
  246. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js → chunk-V3NOKJF2.js} +11 -13
  247. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js.map → chunk-V3NOKJF2.js.map} +1 -1
  248. package/dist/cli-bundle/chunks/{chunk-XXKV4UWE.js → chunk-VARHOHYV.js} +571 -507
  249. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +7 -0
  250. package/dist/cli-bundle/chunks/{chunk-AEACLRVH.js → chunk-VICZWYGZ.js} +18 -11
  251. package/dist/cli-bundle/chunks/chunk-VICZWYGZ.js.map +7 -0
  252. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  253. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  254. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
  255. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
  256. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js → chunk-W4ULYO7Z.js} +11 -13
  257. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js.map → chunk-W4ULYO7Z.js.map} +1 -1
  258. package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js → chunk-WYDHYJPO.js} +2 -2
  259. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js → chunk-YITK2PJ6.js} +9 -11
  260. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js.map → chunk-YITK2PJ6.js.map} +1 -1
  261. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
  262. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{chunk-LNEDHJNQ.js → chunk-ZETXE4SE.js} +66 -329
  264. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +1 -0
  265. package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js → chunk-ZRP4VG5U.js} +2 -2
  266. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js → claim-EMQLYPRW.js} +10 -12
  267. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js.map → claim-EMQLYPRW.js.map} +1 -1
  268. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js → claim-T3GCKV7C.js} +8 -10
  269. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js.map → claim-T3GCKV7C.js.map} +1 -1
  270. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +14 -0
  271. package/dist/cli-bundle/chunks/{close-QHMVWM7M.js → close-TQYAAFJP.js} +7 -8
  272. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js → close-many-BG5QQIDQ.js} +16 -18
  273. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js.map → close-many-BG5QQIDQ.js.map} +1 -1
  274. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js → close-many-LDRVEQY2.js} +18 -20
  275. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js.map → close-many-LDRVEQY2.js.map} +1 -1
  276. package/dist/cli-bundle/chunks/{comments-5YM62D75.js → comments-QCKR2YY2.js} +11 -13
  277. package/dist/cli-bundle/chunks/{comments-5YM62D75.js.map → comments-QCKR2YY2.js.map} +1 -1
  278. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js → comments-YUXJRZPQ.js} +9 -11
  279. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js.map → comments-YUXJRZPQ.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{config-NCNNWF6R.js → config-DMSU64QO.js} +18 -387
  281. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +7 -0
  282. package/dist/cli-bundle/chunks/{config-SW3U7XP2.js → config-QH2DICD6.js} +18 -380
  283. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +1 -0
  284. package/dist/cli-bundle/chunks/context-B6275WPX.js +46 -0
  285. package/dist/cli-bundle/chunks/context-OCZ3FJ4Z.js +42 -0
  286. package/dist/cli-bundle/chunks/{contracts-SY6PDFIK.js → contracts-HN7ABKLP.js} +72 -15
  287. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +7 -0
  288. package/dist/cli-bundle/chunks/{contracts-JXFGBOYT.js → contracts-W4FZVVD6.js} +72 -15
  289. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +1 -0
  290. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js → copy-BTJOSKKT.js} +7 -11
  291. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js.map → copy-BTJOSKKT.js.map} +1 -1
  292. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js → copy-DEM4DATS.js} +9 -13
  293. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js.map → copy-DEM4DATS.js.map} +1 -1
  294. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +28 -0
  295. package/dist/cli-bundle/chunks/{create-O4VONGPG.js → create-RLRJMRTM.js} +12 -14
  296. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js → delete-BHK7VB2Z.js} +5 -7
  297. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js.map → delete-BHK7VB2Z.js.map} +1 -1
  298. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js → delete-LSVHAB4Y.js} +7 -9
  299. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js.map → delete-LSVHAB4Y.js.map} +1 -1
  300. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js → deps-4UDFJRUA.js} +8 -11
  301. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js.map → deps-4UDFJRUA.js.map} +1 -1
  302. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js → deps-XHYXWEPT.js} +6 -9
  303. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js.map → deps-XHYXWEPT.js.map} +1 -1
  304. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js → docs-26S44RXU.js} +8 -9
  305. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js.map → docs-26S44RXU.js.map} +1 -1
  306. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js → docs-GYZNVS26.js} +10 -11
  307. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js.map → docs-GYZNVS26.js.map} +1 -1
  308. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js → eval-PGRVIJQU.js} +12 -14
  309. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js.map → eval-PGRVIJQU.js.map} +1 -1
  310. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js → eval-UYF3ZPVO.js} +10 -12
  311. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js.map → eval-UYF3ZPVO.js.map} +1 -1
  312. package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js → extension-CPSLJQVE.js} +12 -7
  313. package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js → extension-CXJ6RELI.js} +12 -7
  314. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js → files-MBNICQFM.js} +9 -11
  315. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js.map → files-MBNICQFM.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js → files-NQHEXUZD.js} +11 -13
  317. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js.map → files-NQHEXUZD.js.map} +1 -1
  318. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js → focus-DWYIG7GU.js} +10 -14
  319. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js.map → focus-DWYIG7GU.js.map} +1 -1
  320. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js → focus-XZW5423D.js} +8 -12
  321. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js.map → focus-XZW5423D.js.map} +1 -1
  322. package/dist/cli-bundle/chunks/{gc-BEJMQT64.js → gc-7GQYOS2G.js} +3 -3
  323. package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js → gc-LPVMKJQJ.js} +3 -3
  324. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js → get-A7MAOHCU.js} +10 -13
  325. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js.map → get-A7MAOHCU.js.map} +1 -1
  326. package/dist/cli-bundle/chunks/{get-WVN75H42.js → get-DSDEKJ3L.js} +12 -15
  327. package/dist/cli-bundle/chunks/{get-WVN75H42.js.map → get-DSDEKJ3L.js.map} +1 -1
  328. package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js → health-3IPFLKXB.js} +17 -17
  329. package/dist/cli-bundle/chunks/{health-P67NZ6TT.js → health-GZXGBZ36.js} +17 -17
  330. package/dist/cli-bundle/chunks/{history-RUKPKNY7.js → history-NERDJNUB.js} +8 -10
  331. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +18 -0
  332. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js → history-compact-2WRZ2WK4.js} +11 -14
  333. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js.map → history-compact-2WRZ2WK4.js.map} +1 -1
  334. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js → history-compact-HR7BB4LR.js} +13 -16
  335. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js.map → history-compact-HR7BB4LR.js.map} +1 -1
  336. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +19 -0
  337. package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js → history-redact-O3NBCNWC.js} +9 -11
  338. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js → history-repair-LCMOS45X.js} +11 -14
  339. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js.map → history-repair-LCMOS45X.js.map} +1 -1
  340. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js → history-repair-XA3LC4GA.js} +13 -16
  341. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js.map → history-repair-XA3LC4GA.js.map} +1 -1
  342. package/dist/cli-bundle/chunks/{init-HBFGYS66.js → init-64XDLQJB.js} +12 -11
  343. package/dist/cli-bundle/chunks/init-PAX32BJA.js +22 -0
  344. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js → learnings-JR6MA5TI.js} +9 -11
  345. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js.map → learnings-JR6MA5TI.js.map} +1 -1
  346. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js → learnings-LPKCSJX7.js} +11 -13
  347. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js.map → learnings-LPKCSJX7.js.map} +1 -1
  348. package/dist/cli-bundle/chunks/{list-C7R33MD5.js → list-DNBJVO3E.js} +10 -10
  349. package/dist/cli-bundle/chunks/{list-DSN6UNFB.js → list-G5Y65VF6.js} +10 -10
  350. package/dist/cli-bundle/chunks/next-BCERKDUR.js +277 -0
  351. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +7 -0
  352. package/dist/cli-bundle/chunks/next-FYTQF6HG.js +274 -0
  353. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +1 -0
  354. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js → notes-2BMU3VVQ.js} +9 -11
  355. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js.map → notes-2BMU3VVQ.js.map} +1 -1
  356. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js → notes-6KTGO2OJ.js} +11 -13
  357. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js.map → notes-6KTGO2OJ.js.map} +1 -1
  358. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js → plan-4WXEQCTN.js} +15 -18
  359. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js.map → plan-4WXEQCTN.js.map} +1 -1
  360. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js → plan-RKZHQVXR.js} +17 -20
  361. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js.map → plan-RKZHQVXR.js.map} +1 -1
  362. package/dist/cli-bundle/chunks/profile-4OMM32CD.js +1235 -0
  363. package/dist/cli-bundle/chunks/profile-4OMM32CD.js.map +7 -0
  364. package/dist/cli-bundle/chunks/profile-QLER5ENE.js +1197 -0
  365. package/dist/cli-bundle/chunks/profile-QLER5ENE.js.map +1 -0
  366. package/dist/cli-bundle/chunks/{register-list-query-OM3E2KMY.js → register-list-query-7LV46VAU.js} +45 -21
  367. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +1 -0
  368. package/dist/cli-bundle/chunks/{register-list-query-CCMHGZTF.js → register-list-query-SNG5PGA4.js} +44 -20
  369. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +7 -0
  370. package/dist/cli-bundle/chunks/{register-mutation-N3CDEGZU.js → register-mutation-ENNDUAZG.js} +106 -40
  371. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +1 -0
  372. package/dist/cli-bundle/chunks/{register-mutation-UXTTWL6N.js → register-mutation-KK7PHYYU.js} +105 -39
  373. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +7 -0
  374. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js → register-operations-C6OWLDSH.js} +32 -34
  375. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js.map → register-operations-C6OWLDSH.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js → register-operations-HZ6XERQG.js} +30 -32
  377. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js.map → register-operations-HZ6XERQG.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{register-setup-G5LTSFYK.js → register-setup-P67EMBDJ.js} +68 -25
  379. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +1 -0
  380. package/dist/cli-bundle/chunks/{register-setup-TWHKICM2.js → register-setup-ZKJ53RS7.js} +67 -24
  381. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +7 -0
  382. package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js → restore-4MHZFJ2E.js} +9 -11
  383. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +17 -0
  384. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js → scheduling-shortcuts-LB6DOLRL.js} +14 -16
  385. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js.map → scheduling-shortcuts-LB6DOLRL.js.map} +1 -1
  386. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js → scheduling-shortcuts-UTOYKLXQ.js} +12 -14
  387. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js.map → scheduling-shortcuts-UTOYKLXQ.js.map} +1 -1
  388. package/dist/cli-bundle/chunks/schema-73HR2OJW.js +75 -0
  389. package/dist/cli-bundle/chunks/schema-U6LJKSIR.js +71 -0
  390. package/dist/cli-bundle/chunks/{search-2EI6EAXH.js → search-AXPXKZER.js} +10 -12
  391. package/dist/cli-bundle/chunks/{search-QBFBLQRO.js → search-KILGT37L.js} +10 -12
  392. package/dist/cli-bundle/chunks/{stats-TKC6CAKB.js → stats-PSYVVTNZ.js} +21 -13
  393. package/dist/cli-bundle/chunks/stats-PSYVVTNZ.js.map +1 -0
  394. package/dist/cli-bundle/chunks/{stats-TCW2SZQG.js → stats-W5KNVJWQ.js} +20 -12
  395. package/dist/cli-bundle/chunks/stats-W5KNVJWQ.js.map +7 -0
  396. package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js → telemetry-BZUF6H7G.js} +4 -4
  397. package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js → telemetry-GAHHQTOS.js} +4 -4
  398. package/dist/cli-bundle/chunks/test-ACD52Z3S.js +35 -0
  399. package/dist/cli-bundle/chunks/test-ACD52Z3S.js.map +7 -0
  400. package/dist/cli-bundle/chunks/{test-NV2DRPUS.js → test-PWDIZ255.js} +15 -16
  401. package/dist/cli-bundle/chunks/test-PWDIZ255.js.map +1 -0
  402. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js → test-all-L2MDDUCA.js} +20 -22
  403. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js.map → test-all-L2MDDUCA.js.map} +1 -1
  404. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js → test-all-RBZ6DLU2.js} +18 -20
  405. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js.map → test-all-RBZ6DLU2.js.map} +1 -1
  406. package/dist/cli-bundle/chunks/{test-runs-PX73DMMI.js → test-runs-PLRAZEFW.js} +5 -6
  407. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +7 -0
  408. package/dist/cli-bundle/chunks/{test-runs-FQ5WNQLP.js → test-runs-UXIXPDKU.js} +6 -7
  409. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +1 -0
  410. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +24 -0
  411. package/dist/cli-bundle/chunks/update-AMRSOIWP.js.map +7 -0
  412. package/dist/cli-bundle/chunks/update-KFX2SIAC.js +28 -0
  413. package/dist/cli-bundle/chunks/update-KFX2SIAC.js.map +1 -0
  414. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js → update-many-RNSBX2TA.js} +35 -36
  415. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js.map → update-many-RNSBX2TA.js.map} +1 -1
  416. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js → update-many-Z5GJS5LC.js} +33 -34
  417. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js.map → update-many-Z5GJS5LC.js.map} +1 -1
  418. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js → upgrade-BRL6KCOJ.js} +13 -8
  419. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js.map → upgrade-BRL6KCOJ.js.map} +1 -1
  420. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js → upgrade-HAK6JG2O.js} +11 -6
  421. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js.map → upgrade-HAK6JG2O.js.map} +1 -1
  422. package/dist/cli-bundle/chunks/{validate-HYZNIB6W.js → validate-MTUVL5VC.js} +38 -28
  423. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +7 -0
  424. package/dist/cli-bundle/chunks/{validate-54SYJ7QW.js → validate-X5W76YJL.js} +39 -29
  425. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +1 -0
  426. package/dist/cli-bundle/main.js +95 -724
  427. package/dist/cli-bundle/main.js.map +4 -4
  428. package/dist/core/config/positional-value.d.ts +2 -0
  429. package/dist/core/config/positional-value.js +2 -2
  430. package/dist/core/config/positional-value.js.map +1 -1
  431. package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
  432. package/dist/core/extensions/activation-summary-markdown.js +151 -0
  433. package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
  434. package/dist/core/extensions/activation-summary.d.ts +2 -0
  435. package/dist/core/extensions/activation-summary.js +3 -2
  436. package/dist/core/extensions/activation-summary.js.map +1 -1
  437. package/dist/core/extensions/capability-usage.d.ts +1 -1
  438. package/dist/core/extensions/capability-usage.js +4 -3
  439. package/dist/core/extensions/capability-usage.js.map +1 -1
  440. package/dist/core/extensions/extension-policy.d.ts +18 -3
  441. package/dist/core/extensions/extension-policy.js +116 -106
  442. package/dist/core/extensions/extension-policy.js.map +1 -1
  443. package/dist/core/extensions/extension-registries.js +3 -2
  444. package/dist/core/extensions/extension-registries.js.map +1 -1
  445. package/dist/core/extensions/extension-types.d.ts +21 -1
  446. package/dist/core/extensions/extension-types.js +3 -2
  447. package/dist/core/extensions/extension-types.js.map +1 -1
  448. package/dist/core/extensions/loader.js +439 -232
  449. package/dist/core/extensions/loader.js.map +1 -1
  450. package/dist/core/fs/fs-utils.js +27 -2
  451. package/dist/core/fs/fs-utils.js.map +1 -1
  452. package/dist/core/item/actionability.d.ts +57 -0
  453. package/dist/core/item/actionability.js +178 -0
  454. package/dist/core/item/actionability.js.map +1 -0
  455. package/dist/core/item/item-format.js +523 -410
  456. package/dist/core/item/item-format.js.map +1 -1
  457. package/dist/core/item/type-registry.js +18 -45
  458. package/dist/core/item/type-registry.js.map +1 -1
  459. package/dist/core/profile/profile-describe.d.ts +64 -0
  460. package/dist/core/profile/profile-describe.js +83 -0
  461. package/dist/core/profile/profile-describe.js.map +1 -0
  462. package/dist/core/profile/profile-lint.d.ts +53 -0
  463. package/dist/core/profile/profile-lint.js +422 -0
  464. package/dist/core/profile/profile-lint.js.map +1 -0
  465. package/dist/core/profile/profile-plan.d.ts +145 -0
  466. package/dist/core/profile/profile-plan.js +0 -0
  467. package/dist/core/profile/profile-plan.js.map +1 -0
  468. package/dist/core/profile/profile-presets.d.ts +218 -0
  469. package/dist/core/profile/profile-presets.js +325 -0
  470. package/dist/core/profile/profile-presets.js.map +1 -0
  471. package/dist/core/schema/fields-file.js +25 -25
  472. package/dist/core/schema/fields-file.js.map +1 -1
  473. package/dist/core/schema/item-types-file.js +3 -3
  474. package/dist/core/schema/item-types-file.js.map +1 -1
  475. package/dist/core/schema/runtime-schema.js +4 -4
  476. package/dist/core/schema/runtime-schema.js.map +1 -1
  477. package/dist/core/schema/status-defs-file.js +3 -3
  478. package/dist/core/schema/status-defs-file.js.map +1 -1
  479. package/dist/core/shared/serialization.js +83 -62
  480. package/dist/core/shared/serialization.js.map +1 -1
  481. package/dist/core/store/item-store.d.ts +1 -0
  482. package/dist/core/store/item-store.js +16 -8
  483. package/dist/core/store/item-store.js.map +1 -1
  484. package/dist/core/store/paths.js +4 -32
  485. package/dist/core/store/paths.js.map +1 -1
  486. package/dist/core/store/settings.js +14 -14
  487. package/dist/core/store/settings.js.map +1 -1
  488. package/dist/core/telemetry/observability.js +50 -54
  489. package/dist/core/telemetry/observability.js.map +1 -1
  490. package/dist/core/telemetry/runtime.js +11 -2
  491. package/dist/core/telemetry/runtime.js.map +1 -1
  492. package/dist/core/test/background-runs.js +3 -2
  493. package/dist/core/test/background-runs.js.map +1 -1
  494. package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
  495. package/dist/core/validate/linked-artifact-reference.js +41 -0
  496. package/dist/core/validate/linked-artifact-reference.js.map +1 -0
  497. package/dist/mcp/server.js +540 -420
  498. package/dist/mcp/server.js.map +1 -1
  499. package/dist/mcp/tool-definitions.js +33 -2
  500. package/dist/mcp/tool-definitions.js.map +1 -1
  501. package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
  502. package/dist/sdk/cli-contracts/commander-types.js +15 -2
  503. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  504. package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
  505. package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
  506. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  507. package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
  508. package/dist/sdk/cli-contracts/flag-contracts.js +1514 -0
  509. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
  510. package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
  511. package/dist/sdk/cli-contracts/string-lists.js +20 -0
  512. package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
  513. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
  514. package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
  515. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  516. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
  517. package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
  518. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  519. package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
  520. package/dist/sdk/cli-contracts/tool-schema.js +871 -0
  521. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
  522. package/dist/sdk/cli-contracts.d.ts +13 -193
  523. package/dist/sdk/cli-contracts.js +5 -2277
  524. package/dist/sdk/cli-contracts.js.map +1 -1
  525. package/dist/sdk/compose.d.ts +11 -5
  526. package/dist/sdk/compose.js +240 -124
  527. package/dist/sdk/compose.js.map +1 -1
  528. package/dist/sdk/define.d.ts +14 -0
  529. package/dist/sdk/define.js +17 -2
  530. package/dist/sdk/define.js.map +1 -1
  531. package/dist/sdk/index.d.ts +14 -3
  532. package/dist/sdk/index.js +14 -3
  533. package/dist/sdk/index.js.map +1 -1
  534. package/dist/sdk/testing.d.ts +82 -2
  535. package/dist/sdk/testing.js +74 -3
  536. package/dist/sdk/testing.js.map +1 -1
  537. package/docs/AGENT_GUIDE.md +2 -0
  538. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  539. package/docs/COMMANDS.md +37 -0
  540. package/docs/EXTENSIONS.md +12 -13
  541. package/docs/RELEASING.md +8 -4
  542. package/docs/SDK.md +184 -17
  543. package/docs/TESTING.md +12 -0
  544. package/docs/examples/policy-restricted-extension/README.md +6 -0
  545. package/docs/examples/policy-restricted-extension/index.ts +40 -0
  546. package/docs/examples/policy-restricted-extension/manifest.json +2 -2
  547. package/docs/examples/starter-extension/README.md +14 -2
  548. package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
  549. package/docs/examples/starter-extension/manifest.json +2 -2
  550. package/package.json +20 -7
  551. package/packages/pm-beads/extensions/beads/index.ts +3 -3
  552. package/packages/pm-beads/extensions/beads/manifest.json +2 -2
  553. package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
  554. package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
  555. package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
  556. package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
  557. package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
  558. package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
  559. package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
  560. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  561. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
  562. package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
  563. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
  564. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
  565. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
  566. package/packages/pm-kanban/README.md +97 -0
  567. package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
  568. package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
  569. package/packages/pm-kanban/package.json +57 -0
  570. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
  571. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
  572. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
  573. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
  574. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
  575. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
  576. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
  577. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
  578. package/packages/pm-templates/extensions/templates/index.ts +2 -2
  579. package/packages/pm-templates/extensions/templates/manifest.json +2 -2
  580. package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
  581. package/packages/pm-todos/extensions/todos/index.ts +3 -3
  582. package/packages/pm-todos/extensions/todos/manifest.json +2 -2
  583. package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
  584. package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
  585. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
  586. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
  587. package/scripts/bundle-cli.mjs +1 -1
  588. package/dist/cli-bundle/chunks/activity-54TXGJ2T.js +0 -18
  589. package/dist/cli-bundle/chunks/aggregate-63NWNIBR.js.map +0 -1
  590. package/dist/cli-bundle/chunks/aggregate-YHCYX2EV.js.map +0 -7
  591. package/dist/cli-bundle/chunks/chunk-6EL7SW5C.js.map +0 -7
  592. package/dist/cli-bundle/chunks/chunk-6W3Y65PL.js.map +0 -7
  593. package/dist/cli-bundle/chunks/chunk-AEACLRVH.js.map +0 -7
  594. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js +0 -78
  595. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js.map +0 -7
  596. package/dist/cli-bundle/chunks/chunk-BFFO3AIB.js.map +0 -1
  597. package/dist/cli-bundle/chunks/chunk-C4C3EJCJ.js.map +0 -7
  598. package/dist/cli-bundle/chunks/chunk-EYPINTFR.js.map +0 -7
  599. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js +0 -75
  600. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js.map +0 -1
  601. package/dist/cli-bundle/chunks/chunk-GQYJEEFX.js.map +0 -1
  602. package/dist/cli-bundle/chunks/chunk-HBAEFWX3.js.map +0 -7
  603. package/dist/cli-bundle/chunks/chunk-HC2S36NB.js.map +0 -1
  604. package/dist/cli-bundle/chunks/chunk-IAP5KYBQ.js.map +0 -1
  605. package/dist/cli-bundle/chunks/chunk-INPHFO33.js +0 -764
  606. package/dist/cli-bundle/chunks/chunk-INPHFO33.js.map +0 -7
  607. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js +0 -86
  608. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js.map +0 -7
  609. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  610. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  611. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js +0 -115
  612. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js.map +0 -1
  613. package/dist/cli-bundle/chunks/chunk-J7I4C5ZB.js.map +0 -7
  614. package/dist/cli-bundle/chunks/chunk-JKL6HRMV.js.map +0 -7
  615. package/dist/cli-bundle/chunks/chunk-KJZOSF7J.js.map +0 -1
  616. package/dist/cli-bundle/chunks/chunk-L7UXKP2I.js.map +0 -1
  617. package/dist/cli-bundle/chunks/chunk-LNEDHJNQ.js.map +0 -1
  618. package/dist/cli-bundle/chunks/chunk-M6TUBOGW.js.map +0 -1
  619. package/dist/cli-bundle/chunks/chunk-MEXZ5XUM.js.map +0 -7
  620. package/dist/cli-bundle/chunks/chunk-N5B6WZC5.js.map +0 -1
  621. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js +0 -761
  622. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js.map +0 -1
  623. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js +0 -83
  624. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js.map +0 -1
  625. package/dist/cli-bundle/chunks/chunk-OF7V47P3.js.map +0 -1
  626. package/dist/cli-bundle/chunks/chunk-OHDQNKJB.js.map +0 -7
  627. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js +0 -118
  628. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js.map +0 -7
  629. package/dist/cli-bundle/chunks/chunk-PRVTGX64.js.map +0 -7
  630. package/dist/cli-bundle/chunks/chunk-RAWA3Y7O.js.map +0 -1
  631. package/dist/cli-bundle/chunks/chunk-SMXSDY7J.js.map +0 -7
  632. package/dist/cli-bundle/chunks/chunk-SUREE24M.js.map +0 -1
  633. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js +0 -654
  634. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js.map +0 -1
  635. package/dist/cli-bundle/chunks/chunk-VSAABFGQ.js.map +0 -1
  636. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  637. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  638. package/dist/cli-bundle/chunks/chunk-XVYKWZNL.js.map +0 -7
  639. package/dist/cli-bundle/chunks/chunk-XXKV4UWE.js.map +0 -7
  640. package/dist/cli-bundle/chunks/chunk-ZLWRPBOW.js.map +0 -1
  641. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js +0 -657
  642. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js.map +0 -7
  643. package/dist/cli-bundle/chunks/close-JEBZXONN.js +0 -15
  644. package/dist/cli-bundle/chunks/config-NCNNWF6R.js.map +0 -7
  645. package/dist/cli-bundle/chunks/config-SW3U7XP2.js.map +0 -1
  646. package/dist/cli-bundle/chunks/context-55VEOYI3.js.map +0 -1
  647. package/dist/cli-bundle/chunks/context-5LB7UGKE.js.map +0 -7
  648. package/dist/cli-bundle/chunks/contracts-JXFGBOYT.js.map +0 -1
  649. package/dist/cli-bundle/chunks/contracts-SY6PDFIK.js.map +0 -7
  650. package/dist/cli-bundle/chunks/create-CLSCHGJJ.js +0 -30
  651. package/dist/cli-bundle/chunks/history-ALTM2RRP.js +0 -20
  652. package/dist/cli-bundle/chunks/history-redact-5YGLWUDH.js +0 -21
  653. package/dist/cli-bundle/chunks/init-C4CRHW22.js +0 -21
  654. package/dist/cli-bundle/chunks/register-list-query-CCMHGZTF.js.map +0 -7
  655. package/dist/cli-bundle/chunks/register-list-query-OM3E2KMY.js.map +0 -1
  656. package/dist/cli-bundle/chunks/register-mutation-N3CDEGZU.js.map +0 -1
  657. package/dist/cli-bundle/chunks/register-mutation-UXTTWL6N.js.map +0 -7
  658. package/dist/cli-bundle/chunks/register-setup-G5LTSFYK.js.map +0 -1
  659. package/dist/cli-bundle/chunks/register-setup-TWHKICM2.js.map +0 -7
  660. package/dist/cli-bundle/chunks/restore-LQHXBAY5.js +0 -19
  661. package/dist/cli-bundle/chunks/schema-C6QA367T.js.map +0 -7
  662. package/dist/cli-bundle/chunks/schema-QO5I4FBL.js.map +0 -1
  663. package/dist/cli-bundle/chunks/stats-TCW2SZQG.js.map +0 -7
  664. package/dist/cli-bundle/chunks/stats-TKC6CAKB.js.map +0 -1
  665. package/dist/cli-bundle/chunks/test-WA6RZGM2.js +0 -36
  666. package/dist/cli-bundle/chunks/test-runs-FQ5WNQLP.js.map +0 -1
  667. package/dist/cli-bundle/chunks/test-runs-PX73DMMI.js.map +0 -7
  668. package/dist/cli-bundle/chunks/update-BSKMQOYH.js +0 -28
  669. package/dist/cli-bundle/chunks/update-FIGYNQ2I.js +0 -24
  670. package/dist/cli-bundle/chunks/validate-54SYJ7QW.js.map +0 -1
  671. package/dist/cli-bundle/chunks/validate-HYZNIB6W.js.map +0 -7
  672. package/docs/examples/policy-restricted-extension/index.js +0 -21
  673. package/packages/pm-beads/extensions/beads/index.js +0 -64
  674. package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
  675. package/packages/pm-beads/extensions/beads/runtime.js +0 -482
  676. package/packages/pm-calendar/extensions/calendar/index.js +0 -150
  677. package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
  678. package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
  679. package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
  680. package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
  681. package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
  682. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
  683. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
  684. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
  685. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
  686. package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
  687. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
  688. package/packages/pm-templates/extensions/templates/index.js +0 -132
  689. package/packages/pm-templates/extensions/templates/runtime.js +0 -35
  690. package/packages/pm-todos/extensions/todos/index.js +0 -81
  691. package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
  692. package/packages/pm-todos/extensions/todos/runtime.js +0 -545
  693. /package/dist/cli-bundle/chunks/{activity-54TXGJ2T.js.map → activity-AW6XVFH6.js.map} +0 -0
  694. /package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js.map → activity-DBLQVIP6.js.map} +0 -0
  695. /package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js.map → chunk-27BXPBAY.js.map} +0 -0
  696. /package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js.map → chunk-3VGN2UWE.js.map} +0 -0
  697. /package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js.map → chunk-AXIDKKAT.js.map} +0 -0
  698. /package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js.map → chunk-BDTISOSD.js.map} +0 -0
  699. /package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js.map → chunk-DDPTYJIM.js.map} +0 -0
  700. /package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js.map → chunk-EJUDVUYZ.js.map} +0 -0
  701. /package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js.map → chunk-EVMTBV6V.js.map} +0 -0
  702. /package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js.map → chunk-G7I7DEZA.js.map} +0 -0
  703. /package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js.map → chunk-HYTGA6GI.js.map} +0 -0
  704. /package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js.map → chunk-HZZEHPRG.js.map} +0 -0
  705. /package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js.map → chunk-IJYK2T43.js.map} +0 -0
  706. /package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js.map → chunk-JPECA746.js.map} +0 -0
  707. /package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js.map → chunk-KNPEF7QG.js.map} +0 -0
  708. /package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js.map → chunk-L5OEFZQG.js.map} +0 -0
  709. /package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js.map → chunk-N74UMG5H.js.map} +0 -0
  710. /package/dist/cli-bundle/chunks/{chunk-IXAZI443.js.map → chunk-NFDPYAIP.js.map} +0 -0
  711. /package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js.map → chunk-NKZAN7BD.js.map} +0 -0
  712. /package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js.map → chunk-NWMZWYYB.js.map} +0 -0
  713. /package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js.map → chunk-OTUHB4HS.js.map} +0 -0
  714. /package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js.map → chunk-SLMUGTK3.js.map} +0 -0
  715. /package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js.map → chunk-WYDHYJPO.js.map} +0 -0
  716. /package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js.map → chunk-ZRP4VG5U.js.map} +0 -0
  717. /package/dist/cli-bundle/chunks/{close-JEBZXONN.js.map → close-E6ZZGCJY.js.map} +0 -0
  718. /package/dist/cli-bundle/chunks/{close-QHMVWM7M.js.map → close-TQYAAFJP.js.map} +0 -0
  719. /package/dist/cli-bundle/chunks/{create-O4VONGPG.js.map → context-B6275WPX.js.map} +0 -0
  720. /package/dist/cli-bundle/chunks/{create-CLSCHGJJ.js.map → context-OCZ3FJ4Z.js.map} +0 -0
  721. /package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js.map → create-OH3BDGBB.js.map} +0 -0
  722. /package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js.map → create-RLRJMRTM.js.map} +0 -0
  723. /package/dist/cli-bundle/chunks/{history-ALTM2RRP.js.map → extension-CPSLJQVE.js.map} +0 -0
  724. /package/dist/cli-bundle/chunks/{history-RUKPKNY7.js.map → extension-CXJ6RELI.js.map} +0 -0
  725. /package/dist/cli-bundle/chunks/{gc-BEJMQT64.js.map → gc-7GQYOS2G.js.map} +0 -0
  726. /package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js.map → gc-LPVMKJQJ.js.map} +0 -0
  727. /package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js.map → health-3IPFLKXB.js.map} +0 -0
  728. /package/dist/cli-bundle/chunks/{health-P67NZ6TT.js.map → health-GZXGBZ36.js.map} +0 -0
  729. /package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js.map → history-NERDJNUB.js.map} +0 -0
  730. /package/dist/cli-bundle/chunks/{history-redact-5YGLWUDH.js.map → history-WSZHY3PN.js.map} +0 -0
  731. /package/dist/cli-bundle/chunks/{init-C4CRHW22.js.map → history-redact-MP6CH7U5.js.map} +0 -0
  732. /package/dist/cli-bundle/chunks/{init-HBFGYS66.js.map → history-redact-O3NBCNWC.js.map} +0 -0
  733. /package/dist/cli-bundle/chunks/{list-C7R33MD5.js.map → init-64XDLQJB.js.map} +0 -0
  734. /package/dist/cli-bundle/chunks/{list-DSN6UNFB.js.map → init-PAX32BJA.js.map} +0 -0
  735. /package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js.map → list-DNBJVO3E.js.map} +0 -0
  736. /package/dist/cli-bundle/chunks/{restore-LQHXBAY5.js.map → list-G5Y65VF6.js.map} +0 -0
  737. /package/dist/cli-bundle/chunks/{search-2EI6EAXH.js.map → restore-4MHZFJ2E.js.map} +0 -0
  738. /package/dist/cli-bundle/chunks/{search-QBFBLQRO.js.map → restore-YALDGTQR.js.map} +0 -0
  739. /package/dist/cli-bundle/chunks/{test-NV2DRPUS.js.map → schema-73HR2OJW.js.map} +0 -0
  740. /package/dist/cli-bundle/chunks/{test-WA6RZGM2.js.map → schema-U6LJKSIR.js.map} +0 -0
  741. /package/dist/cli-bundle/chunks/{update-BSKMQOYH.js.map → search-AXPXKZER.js.map} +0 -0
  742. /package/dist/cli-bundle/chunks/{update-FIGYNQ2I.js.map → search-KILGT37L.js.map} +0 -0
  743. /package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js.map → telemetry-BZUF6H7G.js.map} +0 -0
  744. /package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js.map → telemetry-GAHHQTOS.js.map} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Implements extension runtime contracts and governance for Extension Policy.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="34b7e8e0-c42f-50c2-9ee5-093565566cd7")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="dbc43b74-6872-52c3-859a-64fe84c02b5b")}catch(e){}}();
8
8
  import { KNOWN_EXTENSION_POLICY_MODES, KNOWN_EXTENSION_POLICY_SURFACES, KNOWN_EXTENSION_SANDBOX_PROFILES, KNOWN_EXTENSION_TRUST_MODES, KNOWN_PM_MAX_VERSION_EXCEEDED_MODES, } from "./extension-types.js";
9
9
  import { isKnownExtensionCapability } from "./extension-capability-aliases.js";
10
10
  import { normalizeCommandName } from "./extension-runtime-helpers.js";
@@ -138,36 +138,22 @@ function collectExtensionPolicyOverrides(rawOverrides) {
138
138
  return overridesByName;
139
139
  }
140
140
  /**
141
- * Implements normalize extension policy for the public runtime surface of this module.
141
+ * Collect the deduplicated, alphabetically-sorted `extension_policy_unknown_*`
142
+ * warnings for a normalized policy: every allow/block capability and surface
143
+ * token — at the top level and inside each per-extension override — that is not a
144
+ * recognized {@link ExtensionCapability} or known policy surface. Overrides are
145
+ * walked in name order and the final list is re-sorted, so the result is stable
146
+ * regardless of insertion order.
142
147
  */
143
- export function normalizeExtensionPolicy(settings) {
144
- const policy = settings.extensions.policy;
145
- const mode = normalizePolicyMode(policy?.mode);
146
- const trustMode = normalizePolicyTrustMode(policy?.trust_mode);
147
- const pmMaxVersionExceededMode = normalizePmMaxVersionExceededMode(policy?.pm_max_version_exceeded_mode);
148
- const requireProvenance = policy?.require_provenance === true;
149
- const trustedExtensions = normalizePolicyStringSet(policy?.trusted_extensions);
150
- const defaultSandboxProfile = normalizePolicySandboxProfile(policy?.default_sandbox_profile);
151
- const allowedExtensions = normalizePolicyStringSet(policy?.allowed_extensions);
152
- const blockedExtensions = normalizePolicyStringSet(policy?.blocked_extensions);
153
- const allowedCapabilities = normalizePolicyStringSet(policy?.allowed_capabilities);
154
- const blockedCapabilities = normalizePolicyStringSet(policy?.blocked_capabilities);
155
- const allowedSurfaces = normalizePolicySurfaceSet(policy?.allowed_surfaces);
156
- const blockedSurfaces = normalizePolicySurfaceSet(policy?.blocked_surfaces);
157
- const allowedCommands = normalizePolicyStringSet(policy?.allowed_commands);
158
- const blockedCommands = normalizePolicyStringSet(policy?.blocked_commands);
159
- const allowedActions = normalizePolicyStringSet(policy?.allowed_actions);
160
- const blockedActions = normalizePolicyStringSet(policy?.blocked_actions);
161
- const allowedServices = normalizePolicyStringSet(policy?.allowed_services);
162
- const blockedServices = normalizePolicyStringSet(policy?.blocked_services);
163
- const overridesByName = collectExtensionPolicyOverrides(policy?.extension_overrides);
148
+ function collectExtensionPolicyWarnings(normalized) {
164
149
  const warnings = [];
165
- for (const capability of toSortedList([...allowedCapabilities, ...blockedCapabilities])) {
150
+ const sortedOverrides = [...normalized.overridesByName.values()].sort((left, right) => left.name.localeCompare(right.name));
151
+ for (const capability of toSortedList([...normalized.allowedCapabilities, ...normalized.blockedCapabilities])) {
166
152
  if (!isKnownExtensionCapability(capability)) {
167
153
  warnings.push(`extension_policy_unknown_capability:${capability}`);
168
154
  }
169
155
  }
170
- for (const override of [...overridesByName.values()].sort((left, right) => left.name.localeCompare(right.name))) {
156
+ for (const override of sortedOverrides) {
171
157
  for (const capability of toSortedList([...override.allowedCapabilities, ...override.blockedCapabilities])) {
172
158
  if (!isKnownExtensionCapability(capability)) {
173
159
  warnings.push(`extension_policy_unknown_capability:${override.name}:${capability}`);
@@ -175,39 +161,62 @@ export function normalizeExtensionPolicy(settings) {
175
161
  }
176
162
  }
177
163
  const knownSurfaces = new Set(KNOWN_EXTENSION_POLICY_SURFACES);
178
- for (const surface of toSortedList([...allowedSurfaces, ...blockedSurfaces])) {
164
+ for (const surface of toSortedList([...normalized.allowedSurfaces, ...normalized.blockedSurfaces])) {
179
165
  if (!knownSurfaces.has(surface)) {
180
166
  warnings.push(`extension_policy_unknown_surface:${surface}`);
181
167
  }
182
168
  }
183
- for (const override of [...overridesByName.values()].sort((left, right) => left.name.localeCompare(right.name))) {
169
+ for (const override of sortedOverrides) {
184
170
  for (const surface of toSortedList([...override.allowedSurfaces, ...override.blockedSurfaces])) {
185
171
  if (!knownSurfaces.has(surface)) {
186
172
  warnings.push(`extension_policy_unknown_surface:${override.name}:${surface}`);
187
173
  }
188
174
  }
189
175
  }
176
+ return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
177
+ }
178
+ /**
179
+ * Normalize the raw `extensions.policy` settings block into the canonical
180
+ * {@link NormalizedExtensionPolicy} used across loading, registration, and the
181
+ * doctor surface: modes/trust/sandbox coerced to known values, every allow/block
182
+ * list lower-cased and de-duplicated into a set, per-extension overrides indexed by
183
+ * name, and unknown-capability/surface tokens surfaced as warnings. A missing
184
+ * policy block resolves to the all-defaults policy (mode/trust `off`).
185
+ */
186
+ export function normalizeExtensionPolicy(settings) {
187
+ const policy = settings.extensions?.policy ?? {};
188
+ const allowedCapabilities = normalizePolicyStringSet(policy.allowed_capabilities);
189
+ const blockedCapabilities = normalizePolicyStringSet(policy.blocked_capabilities);
190
+ const allowedSurfaces = normalizePolicySurfaceSet(policy.allowed_surfaces);
191
+ const blockedSurfaces = normalizePolicySurfaceSet(policy.blocked_surfaces);
192
+ const overridesByName = collectExtensionPolicyOverrides(policy.extension_overrides);
190
193
  return {
191
- mode,
192
- trustMode,
193
- pmMaxVersionExceededMode,
194
- requireProvenance,
195
- trustedExtensions,
196
- defaultSandboxProfile,
197
- allowedExtensions,
198
- blockedExtensions,
194
+ mode: normalizePolicyMode(policy.mode),
195
+ trustMode: normalizePolicyTrustMode(policy.trust_mode),
196
+ pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),
197
+ requireProvenance: policy.require_provenance === true,
198
+ trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),
199
+ defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),
200
+ allowedExtensions: normalizePolicyStringSet(policy.allowed_extensions),
201
+ blockedExtensions: normalizePolicyStringSet(policy.blocked_extensions),
199
202
  allowedCapabilities,
200
203
  blockedCapabilities,
201
204
  allowedSurfaces,
202
205
  blockedSurfaces,
203
- allowedCommands,
204
- blockedCommands,
205
- allowedActions,
206
- blockedActions,
207
- allowedServices,
208
- blockedServices,
206
+ allowedCommands: normalizePolicyStringSet(policy.allowed_commands),
207
+ blockedCommands: normalizePolicyStringSet(policy.blocked_commands),
208
+ allowedActions: normalizePolicyStringSet(policy.allowed_actions),
209
+ blockedActions: normalizePolicyStringSet(policy.blocked_actions),
210
+ allowedServices: normalizePolicyStringSet(policy.allowed_services),
211
+ blockedServices: normalizePolicyStringSet(policy.blocked_services),
209
212
  overridesByName,
210
- warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),
213
+ warnings: collectExtensionPolicyWarnings({
214
+ allowedCapabilities,
215
+ blockedCapabilities,
216
+ allowedSurfaces,
217
+ blockedSurfaces,
218
+ overridesByName,
219
+ }),
211
220
  };
212
221
  }
213
222
  /**
@@ -427,61 +436,40 @@ function buildPolicyWarning(mode, scope, extension, reason, details = {}) {
427
436
  return `extension_policy_${mode}_${scope}:${extension.layer}:${extension.name}:reason=${reason}${suffix}`;
428
437
  }
429
438
  /**
430
- * Implements evaluate extension policy for extension for the public runtime surface of this module.
439
+ * Evaluate the layer-level governance policy for one extension by combining the
440
+ * extension allow/block decision, the trust-mode decision, and the sandbox-profile
441
+ * decision. Reasons are weighed in extension → trust → sandbox order: the first
442
+ * reason whose governing mode is `enforce` blocks the extension; otherwise the
443
+ * first whose mode is `warn` surfaces a non-blocking violation warning; otherwise
444
+ * the extension is allowed. The all-`off` short-circuit skips reason resolution
445
+ * entirely.
431
446
  */
432
447
  export function evaluateExtensionPolicyForExtension(policy, extension) {
433
448
  if (policy.mode === "off" && policy.trustMode === "off") {
434
449
  return { allowed: true, warning: null };
435
450
  }
451
+ const violations = [];
436
452
  const reason = resolvePolicyExtensionReason(policy, extension);
437
- const trustReason = resolvePolicyTrustReason(policy, extension);
438
- const sandboxReason = resolvePolicySandboxReason(policy, extension);
439
- const extensionEnforced = reason && policy.mode === "enforce";
440
- const trustEnforced = trustReason && policy.trustMode === "enforce";
441
- const sandboxEnforced = sandboxReason && policy.mode === "enforce";
442
- if (!reason && !trustReason && !sandboxReason) {
443
- return { allowed: true, warning: null };
453
+ if (reason) {
454
+ violations.push({ reason, scope: "extension", mode: policy.mode });
444
455
  }
445
- if (extensionEnforced) {
446
- return {
447
- allowed: false,
448
- warning: buildPolicyWarning("blocked", "extension", extension, reason),
449
- };
450
- }
451
- if (trustEnforced) {
452
- return {
453
- allowed: false,
454
- warning: buildPolicyWarning("blocked", "trust", extension, trustReason),
455
- };
456
- }
457
- if (sandboxEnforced) {
458
- return {
459
- allowed: false,
460
- warning: buildPolicyWarning("blocked", "extension", extension, sandboxReason),
461
- };
456
+ const trustReason = resolvePolicyTrustReason(policy, extension);
457
+ if (trustReason) {
458
+ violations.push({ reason: trustReason, scope: "trust", mode: policy.trustMode });
462
459
  }
463
- if (reason && policy.mode === "warn") {
464
- return {
465
- allowed: true,
466
- warning: buildPolicyWarning("violation", "extension", extension, reason),
467
- };
460
+ const sandboxReason = resolvePolicySandboxReason(policy, extension);
461
+ if (sandboxReason) {
462
+ violations.push({ reason: sandboxReason, scope: "extension", mode: policy.mode });
468
463
  }
469
- if (trustReason && policy.trustMode === "warn") {
470
- return {
471
- allowed: true,
472
- warning: buildPolicyWarning("violation", "trust", extension, trustReason),
473
- };
464
+ const enforced = violations.find((violation) => violation.mode === "enforce");
465
+ if (enforced) {
466
+ return { allowed: false, warning: buildPolicyWarning("blocked", enforced.scope, extension, enforced.reason) };
474
467
  }
475
- if (sandboxReason && policy.mode === "warn") {
476
- return {
477
- allowed: true,
478
- warning: buildPolicyWarning("violation", "extension", extension, sandboxReason),
479
- };
468
+ const warned = violations.find((violation) => violation.mode === "warn");
469
+ if (warned) {
470
+ return { allowed: true, warning: buildPolicyWarning("violation", warned.scope, extension, warned.reason) };
480
471
  }
481
- return {
482
- allowed: true,
483
- warning: null,
484
- };
472
+ return { allowed: true, warning: null };
485
473
  }
486
474
  /**
487
475
  * Implements evaluate extension policy for capability for the public runtime surface of this module.
@@ -500,21 +488,25 @@ export function evaluateExtensionPolicyForCapability(policy, extension, capabili
500
488
  };
501
489
  }
502
490
  /**
503
- * Implements evaluate extension policy for registration for the public runtime surface of this module.
491
+ * Resolve the first applicable registration-policy reason for a surface
492
+ * registration, weighed in capability → surface → command → action → service
493
+ * precedence. Returns `null` when the registration violates no allow/block rule.
504
494
  */
505
- export function evaluateExtensionPolicyForRegistration(policy, extension, surface, method, capability, details) {
506
- if (policy.mode === "off") {
507
- return { allowed: true, warning: null };
508
- }
495
+ function resolveRegistrationPolicyReason(policy, extension, surface, capability, detail) {
509
496
  const capabilityReason = typeof capability === "string" ? resolvePolicyCapabilityReason(policy, extension, capability) : null;
510
497
  const surfaceReason = resolvePolicySurfaceReason(policy, extension, surface);
511
- const commandReason = details?.command ? resolvePolicyCommandReason(policy, extension, details.command) : null;
512
- const actionReason = details?.action ? resolvePolicyActionReason(policy, extension, details.action) : null;
513
- const serviceReason = details?.service ? resolvePolicyServiceReason(policy, extension, details.service) : null;
514
- const reason = capabilityReason ?? surfaceReason ?? commandReason ?? actionReason ?? serviceReason;
515
- if (!reason) {
516
- return { allowed: true, warning: null };
517
- }
498
+ const commandReason = detail.command ? resolvePolicyCommandReason(policy, extension, detail.command) : null;
499
+ const actionReason = detail.action ? resolvePolicyActionReason(policy, extension, detail.action) : null;
500
+ const serviceReason = detail.service ? resolvePolicyServiceReason(policy, extension, detail.service) : null;
501
+ return capabilityReason ?? surfaceReason ?? commandReason ?? actionReason ?? serviceReason;
502
+ }
503
+ /**
504
+ * Build the detail token map attached to a registration-policy warning: the
505
+ * normalized method and surface plus whichever of capability/command/action/service
506
+ * the registration carries. {@link buildPolicyWarning} sorts and joins these into
507
+ * the warning's `key=value` suffix.
508
+ */
509
+ function buildRegistrationPolicyWarningDetails(method, surface, capability, detail) {
518
510
  const warningDetails = {
519
511
  method: normalizePolicyName(method).replace(/\s+/g, "_"),
520
512
  surface,
@@ -522,20 +514,38 @@ export function evaluateExtensionPolicyForRegistration(policy, extension, surfac
522
514
  if (capability) {
523
515
  warningDetails.capability = capability;
524
516
  }
525
- if (details?.command) {
526
- warningDetails.command = normalizeCommandName(details.command);
517
+ if (detail.command) {
518
+ warningDetails.command = normalizeCommandName(detail.command);
519
+ }
520
+ if (detail.action) {
521
+ warningDetails.action = normalizePolicyName(detail.action).replace(/\s+/g, "-");
527
522
  }
528
- if (details?.action) {
529
- warningDetails.action = normalizePolicyName(details.action).replace(/\s+/g, "-");
523
+ if (detail.service) {
524
+ warningDetails.service = normalizePolicyName(detail.service);
530
525
  }
531
- if (details?.service) {
532
- warningDetails.service = normalizePolicyName(details.service);
526
+ return warningDetails;
527
+ }
528
+ /**
529
+ * Evaluate the governance policy for a single capability/surface registration an
530
+ * extension performs during activation. When `mode` is `off` the registration is
531
+ * always allowed; otherwise the first allow/block reason (capability → surface →
532
+ * command → action → service) blocks the registration under `enforce` or surfaces
533
+ * a non-blocking violation warning under `warn`.
534
+ */
535
+ export function evaluateExtensionPolicyForRegistration(policy, extension, surface, method, capability, details) {
536
+ if (policy.mode === "off") {
537
+ return { allowed: true, warning: null };
538
+ }
539
+ const detail = details ?? {};
540
+ const reason = resolveRegistrationPolicyReason(policy, extension, surface, capability, detail);
541
+ if (!reason) {
542
+ return { allowed: true, warning: null };
533
543
  }
534
- const warning = buildPolicyWarning(policy.mode === "warn" ? "violation" : "blocked", "registration", extension, reason, warningDetails);
544
+ const warning = buildPolicyWarning(policy.mode === "warn" ? "violation" : "blocked", "registration", extension, reason, buildRegistrationPolicyWarningDetails(method, surface, capability, detail));
535
545
  return {
536
546
  allowed: policy.mode === "warn",
537
547
  warning,
538
548
  };
539
549
  }
540
550
  //# sourceMappingURL=extension-policy.js.map
541
- //# debugId=34b7e8e0-c42f-50c2-9ee5-093565566cd7
551
+ //# debugId=dbc43b74-6872-52c3-859a-64fe84c02b5b
@@ -1 +1 @@
1
- {"version":3,"file":"extension-policy.js","sources":["core/extensions/extension-policy.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-policy\n *\n * Implements extension runtime contracts and governance for Extension Policy.\n */\nimport {\n KNOWN_EXTENSION_POLICY_MODES,\n KNOWN_EXTENSION_POLICY_SURFACES,\n KNOWN_EXTENSION_SANDBOX_PROFILES,\n KNOWN_EXTENSION_TRUST_MODES,\n KNOWN_PM_MAX_VERSION_EXCEEDED_MODES,\n type ExtensionCapability,\n type ExtensionGovernancePolicy,\n type ExtensionLayer,\n type ExtensionPolicyMode,\n type ExtensionPolicyOverride,\n type ExtensionPolicySurface,\n type ExtensionSandboxProfile,\n type ExtensionTrustMode,\n type PmMaxVersionExceededMode,\n type PmMaxVersionExceededModeSetting,\n} from \"./extension-types.js\";\nimport { isKnownExtensionCapability } from \"./extension-capability-aliases.js\";\nimport { normalizeCommandName } from \"./extension-runtime-helpers.js\";\nimport type { PmSettings } from \"../../types/index.js\";\n\ninterface NormalizedExtensionPolicyOverride {\n name: string;\n disabled: boolean;\n requireTrusted: boolean;\n requireProvenance: boolean;\n sandboxProfile?: ExtensionSandboxProfile;\n allowedCapabilities: Set<string>;\n blockedCapabilities: Set<string>;\n allowedSurfaces: Set<string>;\n blockedSurfaces: Set<string>;\n allowedCommands: Set<string>;\n blockedCommands: Set<string>;\n allowedActions: Set<string>;\n blockedActions: Set<string>;\n allowedServices: Set<string>;\n blockedServices: Set<string>;\n}\n\n/** Concrete per-layer resolution of `pm_max_version_exceeded_mode` (default: block). */\nexport interface NormalizedPmMaxVersionExceededMode {\n global: PmMaxVersionExceededMode;\n project: PmMaxVersionExceededMode;\n}\n\n/**\n * Documents the normalized extension policy payload exchanged by command, SDK, and package integrations.\n */\nexport interface NormalizedExtensionPolicy {\n mode: ExtensionPolicyMode;\n trustMode: ExtensionTrustMode;\n pmMaxVersionExceededMode: NormalizedPmMaxVersionExceededMode;\n requireProvenance: boolean;\n trustedExtensions: Set<string>;\n defaultSandboxProfile: ExtensionSandboxProfile;\n allowedExtensions: Set<string>;\n blockedExtensions: Set<string>;\n allowedCapabilities: Set<string>;\n blockedCapabilities: Set<string>;\n allowedSurfaces: Set<string>;\n blockedSurfaces: Set<string>;\n allowedCommands: Set<string>;\n blockedCommands: Set<string>;\n allowedActions: Set<string>;\n blockedActions: Set<string>;\n allowedServices: Set<string>;\n blockedServices: Set<string>;\n overridesByName: Map<string, NormalizedExtensionPolicyOverride>;\n warnings: string[];\n}\n\n/**\n * Documents the policy extension ref payload exchanged by command, SDK, and package integrations.\n */\nexport interface PolicyExtensionRef {\n layer: ExtensionLayer;\n name: string;\n trusted?: boolean;\n provenanceVerified?: boolean;\n sandboxProfile?: ExtensionSandboxProfile;\n permissions?: Record<string, boolean | undefined>;\n}\n\nfunction normalizePolicyName(value: string | undefined): string {\n if (typeof value !== \"string\") {\n return \"\";\n }\n return value.trim().toLowerCase();\n}\n\nfunction normalizePolicyStringSet(values: readonly string[] | undefined): Set<string> {\n return new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n );\n}\n\nfunction normalizePolicySurfaceToken(value: string): string {\n const normalized = value.trim().toLowerCase();\n if (normalized.length === 0) {\n return \"\";\n }\n const segments = normalized\n .split(/[.:/]/)\n .map((segment) => segment.replace(/[\\s_-]+/g, \"\"))\n .filter((segment) => segment.length > 0);\n if (segments.length === 0) {\n return \"\";\n }\n if (segments.length === 1) {\n return segments[0];\n }\n return `${segments[0]}.${segments.slice(1).join(\"\")}`;\n}\n\nfunction normalizePolicySurfaceSet(values: readonly string[] | undefined): Set<string> {\n return new Set(\n (values ?? [])\n .map((value) => normalizePolicySurfaceToken(value))\n .filter((value) => value.length > 0),\n );\n}\n\nfunction normalizePolicyMode(value: string | undefined): ExtensionPolicyMode {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_POLICY_MODES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionPolicyMode;\n }\n return \"off\";\n}\n\nfunction normalizePolicyTrustMode(value: string | undefined): ExtensionTrustMode {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_TRUST_MODES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionTrustMode;\n }\n return \"off\";\n}\n\n/**\n * Implements normalize policy sandbox profile for the public runtime surface of this module.\n */\nexport function normalizePolicySandboxProfile(value: string | undefined): ExtensionSandboxProfile {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_SANDBOX_PROFILES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionSandboxProfile;\n }\n return \"none\";\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n return (KNOWN_PM_MAX_VERSION_EXCEEDED_MODES as readonly string[]).includes(normalized)\n ? (normalized as PmMaxVersionExceededMode)\n : undefined;\n}\n\n/**\n * Resolve `extensions.policy.pm_max_version_exceeded_mode` to a concrete\n * per-layer mode map. Accepts a single mode string (applied to both layers) or\n * a `{ global?, project? }` override map; anything unset or unknown defaults to\n * the safe `\"block\"`.\n */\nexport function normalizePmMaxVersionExceededMode(\n value: PmMaxVersionExceededModeSetting | undefined,\n): NormalizedPmMaxVersionExceededMode {\n if (typeof value === \"string\") {\n const mode = normalizePmMaxVersionExceededModeValue(value) ?? \"block\";\n return { global: mode, project: mode };\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n return {\n global: normalizePmMaxVersionExceededModeValue(value.global) ?? \"block\",\n project: normalizePmMaxVersionExceededModeValue(value.project) ?? \"block\",\n };\n }\n return { global: \"block\", project: \"block\" };\n}\n\nfunction serializePmMaxVersionExceededMode(\n mode: NormalizedPmMaxVersionExceededMode,\n): PmMaxVersionExceededModeSetting {\n return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };\n}\n\nfunction toSortedList(values: Iterable<string>): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction buildExtensionPolicyOverride(\n rawOverride: ExtensionPolicyOverride,\n): { name: string; normalized: NormalizedExtensionPolicyOverride } | null {\n const name = normalizePolicyName(rawOverride.name);\n if (name.length === 0) {\n return null;\n }\n return {\n name,\n normalized: {\n name,\n disabled: rawOverride.disabled === true,\n requireTrusted: rawOverride.require_trusted === true,\n requireProvenance: rawOverride.require_provenance === true,\n sandboxProfile:\n rawOverride.sandbox_profile !== undefined\n ? normalizePolicySandboxProfile(rawOverride.sandbox_profile)\n : undefined,\n allowedCapabilities: normalizePolicyStringSet(rawOverride.allowed_capabilities),\n blockedCapabilities: normalizePolicyStringSet(rawOverride.blocked_capabilities),\n allowedSurfaces: normalizePolicySurfaceSet(rawOverride.allowed_surfaces),\n blockedSurfaces: normalizePolicySurfaceSet(rawOverride.blocked_surfaces),\n allowedCommands: normalizePolicyStringSet(rawOverride.allowed_commands),\n blockedCommands: normalizePolicyStringSet(rawOverride.blocked_commands),\n allowedActions: normalizePolicyStringSet(rawOverride.allowed_actions),\n blockedActions: normalizePolicyStringSet(rawOverride.blocked_actions),\n allowedServices: normalizePolicyStringSet(rawOverride.allowed_services),\n blockedServices: normalizePolicyStringSet(rawOverride.blocked_services),\n },\n };\n}\n\nfunction collectExtensionPolicyOverrides(\n rawOverrides: readonly ExtensionPolicyOverride[] | undefined,\n): Map<string, NormalizedExtensionPolicyOverride> {\n const overridesByName = new Map<string, NormalizedExtensionPolicyOverride>();\n for (const rawOverride of rawOverrides ?? []) {\n const built = buildExtensionPolicyOverride(rawOverride);\n if (built) {\n overridesByName.set(built.name, built.normalized);\n }\n }\n return overridesByName;\n}\n\n/**\n * Implements normalize extension policy for the public runtime surface of this module.\n */\nexport function normalizeExtensionPolicy(settings: PmSettings): NormalizedExtensionPolicy {\n const policy = settings.extensions.policy as ExtensionGovernancePolicy | undefined;\n const mode = normalizePolicyMode(policy?.mode);\n const trustMode = normalizePolicyTrustMode(policy?.trust_mode);\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededMode(policy?.pm_max_version_exceeded_mode);\n const requireProvenance = policy?.require_provenance === true;\n const trustedExtensions = normalizePolicyStringSet(policy?.trusted_extensions);\n const defaultSandboxProfile = normalizePolicySandboxProfile(policy?.default_sandbox_profile);\n const allowedExtensions = normalizePolicyStringSet(policy?.allowed_extensions);\n const blockedExtensions = normalizePolicyStringSet(policy?.blocked_extensions);\n const allowedCapabilities = normalizePolicyStringSet(policy?.allowed_capabilities);\n const blockedCapabilities = normalizePolicyStringSet(policy?.blocked_capabilities);\n const allowedSurfaces = normalizePolicySurfaceSet(policy?.allowed_surfaces);\n const blockedSurfaces = normalizePolicySurfaceSet(policy?.blocked_surfaces);\n const allowedCommands = normalizePolicyStringSet(policy?.allowed_commands);\n const blockedCommands = normalizePolicyStringSet(policy?.blocked_commands);\n const allowedActions = normalizePolicyStringSet(policy?.allowed_actions);\n const blockedActions = normalizePolicyStringSet(policy?.blocked_actions);\n const allowedServices = normalizePolicyStringSet(policy?.allowed_services);\n const blockedServices = normalizePolicyStringSet(policy?.blocked_services);\n const overridesByName = collectExtensionPolicyOverrides(policy?.extension_overrides);\n\n const warnings: string[] = [];\n for (const capability of toSortedList([...allowedCapabilities, ...blockedCapabilities])) {\n if (!isKnownExtensionCapability(capability)) {\n warnings.push(`extension_policy_unknown_capability:${capability}`);\n }\n }\n for (const override of [...overridesByName.values()].sort((left, right) => left.name.localeCompare(right.name))) {\n for (const capability of toSortedList([...override.allowedCapabilities, ...override.blockedCapabilities])) {\n if (!isKnownExtensionCapability(capability)) {\n warnings.push(`extension_policy_unknown_capability:${override.name}:${capability}`);\n }\n }\n }\n const knownSurfaces = new Set<string>(KNOWN_EXTENSION_POLICY_SURFACES);\n for (const surface of toSortedList([...allowedSurfaces, ...blockedSurfaces])) {\n if (!knownSurfaces.has(surface)) {\n warnings.push(`extension_policy_unknown_surface:${surface}`);\n }\n }\n for (const override of [...overridesByName.values()].sort((left, right) => left.name.localeCompare(right.name))) {\n for (const surface of toSortedList([...override.allowedSurfaces, ...override.blockedSurfaces])) {\n if (!knownSurfaces.has(surface)) {\n warnings.push(`extension_policy_unknown_surface:${override.name}:${surface}`);\n }\n }\n }\n\n return {\n mode,\n trustMode,\n pmMaxVersionExceededMode,\n requireProvenance,\n trustedExtensions,\n defaultSandboxProfile,\n allowedExtensions,\n blockedExtensions,\n allowedCapabilities,\n blockedCapabilities,\n allowedSurfaces,\n blockedSurfaces,\n allowedCommands,\n blockedCommands,\n allowedActions,\n blockedActions,\n allowedServices,\n blockedServices,\n overridesByName,\n warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),\n };\n}\n\n/**\n * Implements serialize extension policy for the public runtime surface of this module.\n */\nexport function serializeExtensionPolicy(policy: NormalizedExtensionPolicy): ExtensionGovernancePolicy {\n const overrides = [...policy.overridesByName.values()]\n .sort((left, right) => left.name.localeCompare(right.name))\n .map((override) => ({\n name: override.name,\n ...(override.disabled ? { disabled: true } : {}),\n ...(override.requireTrusted ? { require_trusted: true } : {}),\n ...(override.requireProvenance ? { require_provenance: true } : {}),\n ...(override.sandboxProfile ? { sandbox_profile: override.sandboxProfile } : {}),\n ...(override.allowedCapabilities.size > 0 ? { allowed_capabilities: toSortedList(override.allowedCapabilities) } : {}),\n ...(override.blockedCapabilities.size > 0 ? { blocked_capabilities: toSortedList(override.blockedCapabilities) } : {}),\n ...(override.allowedSurfaces.size > 0 ? { allowed_surfaces: toSortedList(override.allowedSurfaces) } : {}),\n ...(override.blockedSurfaces.size > 0 ? { blocked_surfaces: toSortedList(override.blockedSurfaces) } : {}),\n ...(override.allowedCommands.size > 0 ? { allowed_commands: toSortedList(override.allowedCommands) } : {}),\n ...(override.blockedCommands.size > 0 ? { blocked_commands: toSortedList(override.blockedCommands) } : {}),\n ...(override.allowedActions.size > 0 ? { allowed_actions: toSortedList(override.allowedActions) } : {}),\n ...(override.blockedActions.size > 0 ? { blocked_actions: toSortedList(override.blockedActions) } : {}),\n ...(override.allowedServices.size > 0 ? { allowed_services: toSortedList(override.allowedServices) } : {}),\n ...(override.blockedServices.size > 0 ? { blocked_services: toSortedList(override.blockedServices) } : {}),\n }));\n return {\n mode: policy.mode,\n trust_mode: policy.trustMode,\n pm_max_version_exceeded_mode: serializePmMaxVersionExceededMode(policy.pmMaxVersionExceededMode),\n require_provenance: policy.requireProvenance,\n trusted_extensions: toSortedList(policy.trustedExtensions),\n default_sandbox_profile: policy.defaultSandboxProfile,\n allowed_extensions: toSortedList(policy.allowedExtensions),\n blocked_extensions: toSortedList(policy.blockedExtensions),\n allowed_capabilities: toSortedList(policy.allowedCapabilities),\n blocked_capabilities: toSortedList(policy.blockedCapabilities),\n allowed_surfaces: toSortedList(policy.allowedSurfaces),\n blocked_surfaces: toSortedList(policy.blockedSurfaces),\n allowed_commands: toSortedList(policy.allowedCommands),\n blocked_commands: toSortedList(policy.blockedCommands),\n allowed_actions: toSortedList(policy.allowedActions),\n blocked_actions: toSortedList(policy.blockedActions),\n allowed_services: toSortedList(policy.allowedServices),\n blocked_services: toSortedList(policy.blockedServices),\n extension_overrides: overrides,\n };\n}\n\n/**\n * Implements hydrate extension policy for the public runtime surface of this module.\n */\nexport function hydrateExtensionPolicy(policy: ExtensionGovernancePolicy): NormalizedExtensionPolicy {\n const overridesByName = collectExtensionPolicyOverrides(policy.extension_overrides);\n return {\n mode: normalizePolicyMode(policy.mode),\n trustMode: normalizePolicyTrustMode(policy.trust_mode),\n pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),\n requireProvenance: policy.require_provenance === true,\n trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),\n defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),\n allowedExtensions: normalizePolicyStringSet(policy.allowed_extensions),\n blockedExtensions: normalizePolicyStringSet(policy.blocked_extensions),\n allowedCapabilities: normalizePolicyStringSet(policy.allowed_capabilities),\n blockedCapabilities: normalizePolicyStringSet(policy.blocked_capabilities),\n allowedSurfaces: normalizePolicySurfaceSet(policy.allowed_surfaces),\n blockedSurfaces: normalizePolicySurfaceSet(policy.blocked_surfaces),\n allowedCommands: normalizePolicyStringSet(policy.allowed_commands),\n blockedCommands: normalizePolicyStringSet(policy.blocked_commands),\n allowedActions: normalizePolicyStringSet(policy.allowed_actions),\n blockedActions: normalizePolicyStringSet(policy.blocked_actions),\n allowedServices: normalizePolicyStringSet(policy.allowed_services),\n blockedServices: normalizePolicyStringSet(policy.blocked_services),\n overridesByName,\n warnings: [],\n };\n}\n\nfunction resolvePolicyOverride(\n policy: NormalizedExtensionPolicy,\n extensionName: string,\n): NormalizedExtensionPolicyOverride | null {\n return policy.overridesByName.get(normalizePolicyName(extensionName)) ?? null;\n}\n\nfunction evaluatePolicySet(\n allowed: Set<string>,\n blocked: Set<string>,\n value: string,\n notAllowlistedReason: string,\n blockedReason: string,\n): string | null {\n if (blocked.has(value)) {\n return blockedReason;\n }\n if (allowed.size > 0 && !allowed.has(value)) {\n return notAllowlistedReason;\n }\n return null;\n}\n\nfunction resolvePolicyCapabilityReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n capability: string,\n): string | null {\n const normalizedCapability = capability.trim().toLowerCase();\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedCapabilities.size > 0 ? override.allowedCapabilities : policy.allowedCapabilities;\n const blocked = new Set<string>([\n ...policy.blockedCapabilities,\n ...(override ? override.blockedCapabilities : []),\n ]);\n return evaluatePolicySet(\n allowed,\n blocked,\n normalizedCapability,\n \"capability_not_allowlisted\",\n \"capability_blocked\",\n );\n}\n\nfunction resolvePolicySurfaceReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n surface: ExtensionPolicySurface,\n): string | null {\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedSurfaces.size > 0 ? override.allowedSurfaces : policy.allowedSurfaces;\n const blocked = new Set<string>([\n ...policy.blockedSurfaces,\n ...(override ? override.blockedSurfaces : []),\n ]);\n return evaluatePolicySet(allowed, blocked, surface, \"surface_not_allowlisted\", \"surface_blocked\");\n}\n\nfunction resolvePolicyCommandReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n command: string,\n): string | null {\n const normalizedCommand = normalizeCommandName(command);\n if (normalizedCommand.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedCommands.size > 0 ? override.allowedCommands : policy.allowedCommands;\n const blocked = new Set<string>([\n ...policy.blockedCommands,\n ...(override ? override.blockedCommands : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedCommand, \"command_not_allowlisted\", \"command_blocked\");\n}\n\nfunction resolvePolicyActionReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n action: string,\n): string | null {\n const normalizedAction = normalizePolicyName(action).replace(/\\s+/g, \"-\");\n if (normalizedAction.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedActions.size > 0 ? override.allowedActions : policy.allowedActions;\n const blocked = new Set<string>([\n ...policy.blockedActions,\n ...(override ? override.blockedActions : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedAction, \"action_not_allowlisted\", \"action_blocked\");\n}\n\nfunction resolvePolicyServiceReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n service: string,\n): string | null {\n const normalizedService = normalizePolicyName(service);\n if (normalizedService.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedServices.size > 0 ? override.allowedServices : policy.allowedServices;\n const blocked = new Set<string>([\n ...policy.blockedServices,\n ...(override ? override.blockedServices : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedService, \"service_not_allowlisted\", \"service_blocked\");\n}\n\nfunction resolvePolicyExtensionReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n const name = normalizePolicyName(extension.name);\n const override = resolvePolicyOverride(policy, extension.name);\n if (override?.disabled === true) {\n return \"extension_override_disabled\";\n }\n return evaluatePolicySet(\n policy.allowedExtensions,\n policy.blockedExtensions,\n name,\n \"extension_not_allowlisted\",\n \"extension_blocked\",\n );\n}\n\nfunction resolvePolicyTrustReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n if (policy.trustMode === \"off\") {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const name = normalizePolicyName(extension.name);\n const trusted = extension.trusted === true;\n const provenanceVerified = extension.provenanceVerified === true;\n\n if (policy.trustedExtensions.size > 0 && !policy.trustedExtensions.has(name)) {\n return \"extension_not_trusted\";\n }\n if ((override?.requireTrusted === true || policy.trustMode === \"warn\" || policy.trustMode === \"enforce\") && !trusted) {\n return \"extension_untrusted\";\n }\n if ((policy.requireProvenance || override?.requireProvenance === true) && !provenanceVerified) {\n return \"provenance_missing_or_unverified\";\n }\n return null;\n}\n\nfunction resolvePolicySandboxReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n if (policy.mode === \"off\") {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const profile = override?.sandboxProfile ?? extension.sandboxProfile ?? policy.defaultSandboxProfile;\n if (profile === \"none\") {\n return null;\n }\n const permissions = extension.permissions;\n if (!permissions) {\n return \"sandbox_permissions_missing\";\n }\n\n const hasPermission = (name: keyof typeof permissions): boolean => permissions[name] === true;\n if (profile === \"restricted\") {\n if (hasPermission(\"process_spawn\")) {\n return \"sandbox_restricted_disallows_process_spawn\";\n }\n if (hasPermission(\"env_write\")) {\n return \"sandbox_restricted_disallows_env_write\";\n }\n return null;\n }\n\n // Remaining profile branch is strict (none/restricted returned above).\n if (hasPermission(\"process_spawn\")) {\n return \"sandbox_strict_disallows_process_spawn\";\n }\n if (hasPermission(\"network\")) {\n return \"sandbox_strict_disallows_network\";\n }\n if (hasPermission(\"fs_write\")) {\n return \"sandbox_strict_disallows_fs_write\";\n }\n if (hasPermission(\"env_write\")) {\n return \"sandbox_strict_disallows_env_write\";\n }\n return null;\n}\n\nfunction buildPolicyWarning(\n mode: \"blocked\" | \"violation\",\n scope: \"extension\" | \"capability\" | \"registration\" | \"trust\",\n extension: PolicyExtensionRef,\n reason: string,\n details: Record<string, string> = {},\n): string {\n const tokens = Object.entries(details)\n .sort((left, right) => left[0].localeCompare(right[0]))\n .map(([key, value]) => `${key}=${value}`)\n .join(\":\");\n const suffix = tokens.length > 0 ? `:${tokens}` : \"\";\n return `extension_policy_${mode}_${scope}:${extension.layer}:${extension.name}:reason=${reason}${suffix}`;\n}\n\n/**\n * Implements evaluate extension policy for extension for the public runtime surface of this module.\n */\nexport function evaluateExtensionPolicyForExtension(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\" && policy.trustMode === \"off\") {\n return { allowed: true, warning: null };\n }\n const reason = resolvePolicyExtensionReason(policy, extension);\n const trustReason = resolvePolicyTrustReason(policy, extension);\n const sandboxReason = resolvePolicySandboxReason(policy, extension);\n const extensionEnforced = reason && policy.mode === \"enforce\";\n const trustEnforced = trustReason && policy.trustMode === \"enforce\";\n const sandboxEnforced = sandboxReason && policy.mode === \"enforce\";\n if (!reason && !trustReason && !sandboxReason) {\n return { allowed: true, warning: null };\n }\n if (extensionEnforced) {\n return {\n allowed: false,\n warning: buildPolicyWarning(\"blocked\", \"extension\", extension, reason),\n };\n }\n if (trustEnforced) {\n return {\n allowed: false,\n warning: buildPolicyWarning(\"blocked\", \"trust\", extension, trustReason),\n };\n }\n if (sandboxEnforced) {\n return {\n allowed: false,\n warning: buildPolicyWarning(\"blocked\", \"extension\", extension, sandboxReason),\n };\n }\n if (reason && policy.mode === \"warn\") {\n return {\n allowed: true,\n warning: buildPolicyWarning(\"violation\", \"extension\", extension, reason),\n };\n }\n if (trustReason && policy.trustMode === \"warn\") {\n return {\n allowed: true,\n warning: buildPolicyWarning(\"violation\", \"trust\", extension, trustReason),\n };\n }\n if (sandboxReason && policy.mode === \"warn\") {\n return {\n allowed: true,\n warning: buildPolicyWarning(\"violation\", \"extension\", extension, sandboxReason),\n };\n }\n return {\n allowed: true,\n warning: null,\n };\n}\n\n/**\n * Implements evaluate extension policy for capability for the public runtime surface of this module.\n */\nexport function evaluateExtensionPolicyForCapability(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n capability: string,\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\") {\n return { allowed: true, warning: null };\n }\n const reason = resolvePolicyCapabilityReason(policy, extension, capability);\n if (!reason) {\n return { allowed: true, warning: null };\n }\n return {\n allowed: policy.mode === \"warn\",\n warning: buildPolicyWarning(\n policy.mode === \"warn\" ? \"violation\" : \"blocked\",\n \"capability\",\n extension,\n reason,\n { capability: capability.trim().toLowerCase() },\n ),\n };\n}\n\n/**\n * Implements evaluate extension policy for registration for the public runtime surface of this module.\n */\nexport function evaluateExtensionPolicyForRegistration(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n surface: ExtensionPolicySurface,\n method: string,\n capability?: ExtensionCapability,\n details?: {\n command?: string;\n action?: string;\n service?: string;\n },\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\") {\n return { allowed: true, warning: null };\n }\n const capabilityReason =\n typeof capability === \"string\" ? resolvePolicyCapabilityReason(policy, extension, capability) : null;\n const surfaceReason = resolvePolicySurfaceReason(policy, extension, surface);\n const commandReason = details?.command ? resolvePolicyCommandReason(policy, extension, details.command) : null;\n const actionReason = details?.action ? resolvePolicyActionReason(policy, extension, details.action) : null;\n const serviceReason = details?.service ? resolvePolicyServiceReason(policy, extension, details.service) : null;\n const reason = capabilityReason ?? surfaceReason ?? commandReason ?? actionReason ?? serviceReason;\n if (!reason) {\n return { allowed: true, warning: null };\n }\n const warningDetails: Record<string, string> = {\n method: normalizePolicyName(method).replace(/\\s+/g, \"_\"),\n surface,\n };\n if (capability) {\n warningDetails.capability = capability;\n }\n if (details?.command) {\n warningDetails.command = normalizeCommandName(details.command);\n }\n if (details?.action) {\n warningDetails.action = normalizePolicyName(details.action).replace(/\\s+/g, \"-\");\n }\n if (details?.service) {\n warningDetails.service = normalizePolicyName(details.service);\n }\n const warning = buildPolicyWarning(\n policy.mode === \"warn\" ? \"violation\" : \"blocked\",\n \"registration\",\n extension,\n reason,\n warningDetails,\n );\n return {\n allowed: policy.mode === \"warn\",\n warning,\n };\n}\n"],"names":[],"mappings":"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","debugId":"34b7e8e0-c42f-50c2-9ee5-093565566cd7"}
1
+ {"version":3,"file":"extension-policy.js","sources":["core/extensions/extension-policy.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-policy\n *\n * Implements extension runtime contracts and governance for Extension Policy.\n */\nimport {\n KNOWN_EXTENSION_POLICY_MODES,\n KNOWN_EXTENSION_POLICY_SURFACES,\n KNOWN_EXTENSION_SANDBOX_PROFILES,\n KNOWN_EXTENSION_TRUST_MODES,\n KNOWN_PM_MAX_VERSION_EXCEEDED_MODES,\n type ExtensionCapability,\n type ExtensionGovernancePolicy,\n type ExtensionLayer,\n type ExtensionPolicyMode,\n type ExtensionPolicyOverride,\n type ExtensionPolicySurface,\n type ExtensionSandboxProfile,\n type ExtensionTrustMode,\n type PmMaxVersionExceededMode,\n type PmMaxVersionExceededModeSetting,\n} from \"./extension-types.js\";\nimport { isKnownExtensionCapability } from \"./extension-capability-aliases.js\";\nimport { normalizeCommandName } from \"./extension-runtime-helpers.js\";\nimport type { PmSettings } from \"../../types/index.js\";\n\ninterface NormalizedExtensionPolicyOverride {\n name: string;\n disabled: boolean;\n requireTrusted: boolean;\n requireProvenance: boolean;\n sandboxProfile?: ExtensionSandboxProfile;\n allowedCapabilities: Set<string>;\n blockedCapabilities: Set<string>;\n allowedSurfaces: Set<string>;\n blockedSurfaces: Set<string>;\n allowedCommands: Set<string>;\n blockedCommands: Set<string>;\n allowedActions: Set<string>;\n blockedActions: Set<string>;\n allowedServices: Set<string>;\n blockedServices: Set<string>;\n}\n\n/** Concrete per-layer resolution of `pm_max_version_exceeded_mode` (default: block). */\nexport interface NormalizedPmMaxVersionExceededMode {\n global: PmMaxVersionExceededMode;\n project: PmMaxVersionExceededMode;\n}\n\n/**\n * Documents the normalized extension policy payload exchanged by command, SDK, and package integrations.\n */\nexport interface NormalizedExtensionPolicy {\n mode: ExtensionPolicyMode;\n trustMode: ExtensionTrustMode;\n pmMaxVersionExceededMode: NormalizedPmMaxVersionExceededMode;\n requireProvenance: boolean;\n trustedExtensions: Set<string>;\n defaultSandboxProfile: ExtensionSandboxProfile;\n allowedExtensions: Set<string>;\n blockedExtensions: Set<string>;\n allowedCapabilities: Set<string>;\n blockedCapabilities: Set<string>;\n allowedSurfaces: Set<string>;\n blockedSurfaces: Set<string>;\n allowedCommands: Set<string>;\n blockedCommands: Set<string>;\n allowedActions: Set<string>;\n blockedActions: Set<string>;\n allowedServices: Set<string>;\n blockedServices: Set<string>;\n overridesByName: Map<string, NormalizedExtensionPolicyOverride>;\n warnings: string[];\n}\n\n/**\n * Documents the policy extension ref payload exchanged by command, SDK, and package integrations.\n */\nexport interface PolicyExtensionRef {\n layer: ExtensionLayer;\n name: string;\n trusted?: boolean;\n provenanceVerified?: boolean;\n sandboxProfile?: ExtensionSandboxProfile;\n permissions?: Record<string, boolean | undefined>;\n}\n\nfunction normalizePolicyName(value: string | undefined): string {\n if (typeof value !== \"string\") {\n return \"\";\n }\n return value.trim().toLowerCase();\n}\n\nfunction normalizePolicyStringSet(values: readonly string[] | undefined): Set<string> {\n return new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n );\n}\n\nfunction normalizePolicySurfaceToken(value: string): string {\n const normalized = value.trim().toLowerCase();\n if (normalized.length === 0) {\n return \"\";\n }\n const segments = normalized\n .split(/[.:/]/)\n .map((segment) => segment.replace(/[\\s_-]+/g, \"\"))\n .filter((segment) => segment.length > 0);\n if (segments.length === 0) {\n return \"\";\n }\n if (segments.length === 1) {\n return segments[0];\n }\n return `${segments[0]}.${segments.slice(1).join(\"\")}`;\n}\n\nfunction normalizePolicySurfaceSet(values: readonly string[] | undefined): Set<string> {\n return new Set(\n (values ?? [])\n .map((value) => normalizePolicySurfaceToken(value))\n .filter((value) => value.length > 0),\n );\n}\n\nfunction normalizePolicyMode(value: string | undefined): ExtensionPolicyMode {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_POLICY_MODES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionPolicyMode;\n }\n return \"off\";\n}\n\nfunction normalizePolicyTrustMode(value: string | undefined): ExtensionTrustMode {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_TRUST_MODES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionTrustMode;\n }\n return \"off\";\n}\n\n/**\n * Implements normalize policy sandbox profile for the public runtime surface of this module.\n */\nexport function normalizePolicySandboxProfile(value: string | undefined): ExtensionSandboxProfile {\n const normalized = normalizePolicyName(value);\n if ((KNOWN_EXTENSION_SANDBOX_PROFILES as readonly string[]).includes(normalized)) {\n return normalized as ExtensionSandboxProfile;\n }\n return \"none\";\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n return (KNOWN_PM_MAX_VERSION_EXCEEDED_MODES as readonly string[]).includes(normalized)\n ? (normalized as PmMaxVersionExceededMode)\n : undefined;\n}\n\n/**\n * Resolve `extensions.policy.pm_max_version_exceeded_mode` to a concrete\n * per-layer mode map. Accepts a single mode string (applied to both layers) or\n * a `{ global?, project? }` override map; anything unset or unknown defaults to\n * the safe `\"block\"`.\n */\nexport function normalizePmMaxVersionExceededMode(\n value: PmMaxVersionExceededModeSetting | undefined,\n): NormalizedPmMaxVersionExceededMode {\n if (typeof value === \"string\") {\n const mode = normalizePmMaxVersionExceededModeValue(value) ?? \"block\";\n return { global: mode, project: mode };\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n return {\n global: normalizePmMaxVersionExceededModeValue(value.global) ?? \"block\",\n project: normalizePmMaxVersionExceededModeValue(value.project) ?? \"block\",\n };\n }\n return { global: \"block\", project: \"block\" };\n}\n\nfunction serializePmMaxVersionExceededMode(\n mode: NormalizedPmMaxVersionExceededMode,\n): PmMaxVersionExceededModeSetting {\n return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };\n}\n\nfunction toSortedList(values: Iterable<string>): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction buildExtensionPolicyOverride(\n rawOverride: ExtensionPolicyOverride,\n): { name: string; normalized: NormalizedExtensionPolicyOverride } | null {\n const name = normalizePolicyName(rawOverride.name);\n if (name.length === 0) {\n return null;\n }\n return {\n name,\n normalized: {\n name,\n disabled: rawOverride.disabled === true,\n requireTrusted: rawOverride.require_trusted === true,\n requireProvenance: rawOverride.require_provenance === true,\n sandboxProfile:\n rawOverride.sandbox_profile !== undefined\n ? normalizePolicySandboxProfile(rawOverride.sandbox_profile)\n : undefined,\n allowedCapabilities: normalizePolicyStringSet(rawOverride.allowed_capabilities),\n blockedCapabilities: normalizePolicyStringSet(rawOverride.blocked_capabilities),\n allowedSurfaces: normalizePolicySurfaceSet(rawOverride.allowed_surfaces),\n blockedSurfaces: normalizePolicySurfaceSet(rawOverride.blocked_surfaces),\n allowedCommands: normalizePolicyStringSet(rawOverride.allowed_commands),\n blockedCommands: normalizePolicyStringSet(rawOverride.blocked_commands),\n allowedActions: normalizePolicyStringSet(rawOverride.allowed_actions),\n blockedActions: normalizePolicyStringSet(rawOverride.blocked_actions),\n allowedServices: normalizePolicyStringSet(rawOverride.allowed_services),\n blockedServices: normalizePolicyStringSet(rawOverride.blocked_services),\n },\n };\n}\n\nfunction collectExtensionPolicyOverrides(\n rawOverrides: readonly ExtensionPolicyOverride[] | undefined,\n): Map<string, NormalizedExtensionPolicyOverride> {\n const overridesByName = new Map<string, NormalizedExtensionPolicyOverride>();\n for (const rawOverride of rawOverrides ?? []) {\n const built = buildExtensionPolicyOverride(rawOverride);\n if (built) {\n overridesByName.set(built.name, built.normalized);\n }\n }\n return overridesByName;\n}\n\n/**\n * Collect the deduplicated, alphabetically-sorted `extension_policy_unknown_*`\n * warnings for a normalized policy: every allow/block capability and surface\n * token — at the top level and inside each per-extension override — that is not a\n * recognized {@link ExtensionCapability} or known policy surface. Overrides are\n * walked in name order and the final list is re-sorted, so the result is stable\n * regardless of insertion order.\n */\nfunction collectExtensionPolicyWarnings(normalized: {\n allowedCapabilities: Set<string>;\n blockedCapabilities: Set<string>;\n allowedSurfaces: Set<string>;\n blockedSurfaces: Set<string>;\n overridesByName: Map<string, NormalizedExtensionPolicyOverride>;\n}): string[] {\n const warnings: string[] = [];\n const sortedOverrides = [...normalized.overridesByName.values()].sort((left, right) =>\n left.name.localeCompare(right.name),\n );\n for (const capability of toSortedList([...normalized.allowedCapabilities, ...normalized.blockedCapabilities])) {\n if (!isKnownExtensionCapability(capability)) {\n warnings.push(`extension_policy_unknown_capability:${capability}`);\n }\n }\n for (const override of sortedOverrides) {\n for (const capability of toSortedList([...override.allowedCapabilities, ...override.blockedCapabilities])) {\n if (!isKnownExtensionCapability(capability)) {\n warnings.push(`extension_policy_unknown_capability:${override.name}:${capability}`);\n }\n }\n }\n const knownSurfaces = new Set<string>(KNOWN_EXTENSION_POLICY_SURFACES);\n for (const surface of toSortedList([...normalized.allowedSurfaces, ...normalized.blockedSurfaces])) {\n if (!knownSurfaces.has(surface)) {\n warnings.push(`extension_policy_unknown_surface:${surface}`);\n }\n }\n for (const override of sortedOverrides) {\n for (const surface of toSortedList([...override.allowedSurfaces, ...override.blockedSurfaces])) {\n if (!knownSurfaces.has(surface)) {\n warnings.push(`extension_policy_unknown_surface:${override.name}:${surface}`);\n }\n }\n }\n return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));\n}\n\n/**\n * Normalize the raw `extensions.policy` settings block into the canonical\n * {@link NormalizedExtensionPolicy} used across loading, registration, and the\n * doctor surface: modes/trust/sandbox coerced to known values, every allow/block\n * list lower-cased and de-duplicated into a set, per-extension overrides indexed by\n * name, and unknown-capability/surface tokens surfaced as warnings. A missing\n * policy block resolves to the all-defaults policy (mode/trust `off`).\n */\nexport function normalizeExtensionPolicy(settings: PmSettings): NormalizedExtensionPolicy {\n const policy: Partial<ExtensionGovernancePolicy> = (settings.extensions?.policy as ExtensionGovernancePolicy | undefined) ?? {};\n const allowedCapabilities = normalizePolicyStringSet(policy.allowed_capabilities);\n const blockedCapabilities = normalizePolicyStringSet(policy.blocked_capabilities);\n const allowedSurfaces = normalizePolicySurfaceSet(policy.allowed_surfaces);\n const blockedSurfaces = normalizePolicySurfaceSet(policy.blocked_surfaces);\n const overridesByName = collectExtensionPolicyOverrides(policy.extension_overrides);\n return {\n mode: normalizePolicyMode(policy.mode),\n trustMode: normalizePolicyTrustMode(policy.trust_mode),\n pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),\n requireProvenance: policy.require_provenance === true,\n trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),\n defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),\n allowedExtensions: normalizePolicyStringSet(policy.allowed_extensions),\n blockedExtensions: normalizePolicyStringSet(policy.blocked_extensions),\n allowedCapabilities,\n blockedCapabilities,\n allowedSurfaces,\n blockedSurfaces,\n allowedCommands: normalizePolicyStringSet(policy.allowed_commands),\n blockedCommands: normalizePolicyStringSet(policy.blocked_commands),\n allowedActions: normalizePolicyStringSet(policy.allowed_actions),\n blockedActions: normalizePolicyStringSet(policy.blocked_actions),\n allowedServices: normalizePolicyStringSet(policy.allowed_services),\n blockedServices: normalizePolicyStringSet(policy.blocked_services),\n overridesByName,\n warnings: collectExtensionPolicyWarnings({\n allowedCapabilities,\n blockedCapabilities,\n allowedSurfaces,\n blockedSurfaces,\n overridesByName,\n }),\n };\n}\n\n/**\n * Implements serialize extension policy for the public runtime surface of this module.\n */\nexport function serializeExtensionPolicy(policy: NormalizedExtensionPolicy): ExtensionGovernancePolicy {\n const overrides = [...policy.overridesByName.values()]\n .sort((left, right) => left.name.localeCompare(right.name))\n .map((override) => ({\n name: override.name,\n ...(override.disabled ? { disabled: true } : {}),\n ...(override.requireTrusted ? { require_trusted: true } : {}),\n ...(override.requireProvenance ? { require_provenance: true } : {}),\n ...(override.sandboxProfile ? { sandbox_profile: override.sandboxProfile } : {}),\n ...(override.allowedCapabilities.size > 0 ? { allowed_capabilities: toSortedList(override.allowedCapabilities) } : {}),\n ...(override.blockedCapabilities.size > 0 ? { blocked_capabilities: toSortedList(override.blockedCapabilities) } : {}),\n ...(override.allowedSurfaces.size > 0 ? { allowed_surfaces: toSortedList(override.allowedSurfaces) } : {}),\n ...(override.blockedSurfaces.size > 0 ? { blocked_surfaces: toSortedList(override.blockedSurfaces) } : {}),\n ...(override.allowedCommands.size > 0 ? { allowed_commands: toSortedList(override.allowedCommands) } : {}),\n ...(override.blockedCommands.size > 0 ? { blocked_commands: toSortedList(override.blockedCommands) } : {}),\n ...(override.allowedActions.size > 0 ? { allowed_actions: toSortedList(override.allowedActions) } : {}),\n ...(override.blockedActions.size > 0 ? { blocked_actions: toSortedList(override.blockedActions) } : {}),\n ...(override.allowedServices.size > 0 ? { allowed_services: toSortedList(override.allowedServices) } : {}),\n ...(override.blockedServices.size > 0 ? { blocked_services: toSortedList(override.blockedServices) } : {}),\n }));\n return {\n mode: policy.mode,\n trust_mode: policy.trustMode,\n pm_max_version_exceeded_mode: serializePmMaxVersionExceededMode(policy.pmMaxVersionExceededMode),\n require_provenance: policy.requireProvenance,\n trusted_extensions: toSortedList(policy.trustedExtensions),\n default_sandbox_profile: policy.defaultSandboxProfile,\n allowed_extensions: toSortedList(policy.allowedExtensions),\n blocked_extensions: toSortedList(policy.blockedExtensions),\n allowed_capabilities: toSortedList(policy.allowedCapabilities),\n blocked_capabilities: toSortedList(policy.blockedCapabilities),\n allowed_surfaces: toSortedList(policy.allowedSurfaces),\n blocked_surfaces: toSortedList(policy.blockedSurfaces),\n allowed_commands: toSortedList(policy.allowedCommands),\n blocked_commands: toSortedList(policy.blockedCommands),\n allowed_actions: toSortedList(policy.allowedActions),\n blocked_actions: toSortedList(policy.blockedActions),\n allowed_services: toSortedList(policy.allowedServices),\n blocked_services: toSortedList(policy.blockedServices),\n extension_overrides: overrides,\n };\n}\n\n/**\n * Implements hydrate extension policy for the public runtime surface of this module.\n */\nexport function hydrateExtensionPolicy(policy: ExtensionGovernancePolicy): NormalizedExtensionPolicy {\n const overridesByName = collectExtensionPolicyOverrides(policy.extension_overrides);\n return {\n mode: normalizePolicyMode(policy.mode),\n trustMode: normalizePolicyTrustMode(policy.trust_mode),\n pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),\n requireProvenance: policy.require_provenance === true,\n trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),\n defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),\n allowedExtensions: normalizePolicyStringSet(policy.allowed_extensions),\n blockedExtensions: normalizePolicyStringSet(policy.blocked_extensions),\n allowedCapabilities: normalizePolicyStringSet(policy.allowed_capabilities),\n blockedCapabilities: normalizePolicyStringSet(policy.blocked_capabilities),\n allowedSurfaces: normalizePolicySurfaceSet(policy.allowed_surfaces),\n blockedSurfaces: normalizePolicySurfaceSet(policy.blocked_surfaces),\n allowedCommands: normalizePolicyStringSet(policy.allowed_commands),\n blockedCommands: normalizePolicyStringSet(policy.blocked_commands),\n allowedActions: normalizePolicyStringSet(policy.allowed_actions),\n blockedActions: normalizePolicyStringSet(policy.blocked_actions),\n allowedServices: normalizePolicyStringSet(policy.allowed_services),\n blockedServices: normalizePolicyStringSet(policy.blocked_services),\n overridesByName,\n warnings: [],\n };\n}\n\nfunction resolvePolicyOverride(\n policy: NormalizedExtensionPolicy,\n extensionName: string,\n): NormalizedExtensionPolicyOverride | null {\n return policy.overridesByName.get(normalizePolicyName(extensionName)) ?? null;\n}\n\nfunction evaluatePolicySet(\n allowed: Set<string>,\n blocked: Set<string>,\n value: string,\n notAllowlistedReason: string,\n blockedReason: string,\n): string | null {\n if (blocked.has(value)) {\n return blockedReason;\n }\n if (allowed.size > 0 && !allowed.has(value)) {\n return notAllowlistedReason;\n }\n return null;\n}\n\nfunction resolvePolicyCapabilityReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n capability: string,\n): string | null {\n const normalizedCapability = capability.trim().toLowerCase();\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedCapabilities.size > 0 ? override.allowedCapabilities : policy.allowedCapabilities;\n const blocked = new Set<string>([\n ...policy.blockedCapabilities,\n ...(override ? override.blockedCapabilities : []),\n ]);\n return evaluatePolicySet(\n allowed,\n blocked,\n normalizedCapability,\n \"capability_not_allowlisted\",\n \"capability_blocked\",\n );\n}\n\nfunction resolvePolicySurfaceReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n surface: ExtensionPolicySurface,\n): string | null {\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedSurfaces.size > 0 ? override.allowedSurfaces : policy.allowedSurfaces;\n const blocked = new Set<string>([\n ...policy.blockedSurfaces,\n ...(override ? override.blockedSurfaces : []),\n ]);\n return evaluatePolicySet(allowed, blocked, surface, \"surface_not_allowlisted\", \"surface_blocked\");\n}\n\nfunction resolvePolicyCommandReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n command: string,\n): string | null {\n const normalizedCommand = normalizeCommandName(command);\n if (normalizedCommand.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedCommands.size > 0 ? override.allowedCommands : policy.allowedCommands;\n const blocked = new Set<string>([\n ...policy.blockedCommands,\n ...(override ? override.blockedCommands : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedCommand, \"command_not_allowlisted\", \"command_blocked\");\n}\n\nfunction resolvePolicyActionReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n action: string,\n): string | null {\n const normalizedAction = normalizePolicyName(action).replace(/\\s+/g, \"-\");\n if (normalizedAction.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedActions.size > 0 ? override.allowedActions : policy.allowedActions;\n const blocked = new Set<string>([\n ...policy.blockedActions,\n ...(override ? override.blockedActions : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedAction, \"action_not_allowlisted\", \"action_blocked\");\n}\n\nfunction resolvePolicyServiceReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n service: string,\n): string | null {\n const normalizedService = normalizePolicyName(service);\n if (normalizedService.length === 0) {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const allowed = override && override.allowedServices.size > 0 ? override.allowedServices : policy.allowedServices;\n const blocked = new Set<string>([\n ...policy.blockedServices,\n ...(override ? override.blockedServices : []),\n ]);\n return evaluatePolicySet(allowed, blocked, normalizedService, \"service_not_allowlisted\", \"service_blocked\");\n}\n\nfunction resolvePolicyExtensionReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n const name = normalizePolicyName(extension.name);\n const override = resolvePolicyOverride(policy, extension.name);\n if (override?.disabled === true) {\n return \"extension_override_disabled\";\n }\n return evaluatePolicySet(\n policy.allowedExtensions,\n policy.blockedExtensions,\n name,\n \"extension_not_allowlisted\",\n \"extension_blocked\",\n );\n}\n\nfunction resolvePolicyTrustReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n if (policy.trustMode === \"off\") {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const name = normalizePolicyName(extension.name);\n const trusted = extension.trusted === true;\n const provenanceVerified = extension.provenanceVerified === true;\n\n if (policy.trustedExtensions.size > 0 && !policy.trustedExtensions.has(name)) {\n return \"extension_not_trusted\";\n }\n if ((override?.requireTrusted === true || policy.trustMode === \"warn\" || policy.trustMode === \"enforce\") && !trusted) {\n return \"extension_untrusted\";\n }\n if ((policy.requireProvenance || override?.requireProvenance === true) && !provenanceVerified) {\n return \"provenance_missing_or_unverified\";\n }\n return null;\n}\n\nfunction resolvePolicySandboxReason(policy: NormalizedExtensionPolicy, extension: PolicyExtensionRef): string | null {\n if (policy.mode === \"off\") {\n return null;\n }\n const override = resolvePolicyOverride(policy, extension.name);\n const profile = override?.sandboxProfile ?? extension.sandboxProfile ?? policy.defaultSandboxProfile;\n if (profile === \"none\") {\n return null;\n }\n const permissions = extension.permissions;\n if (!permissions) {\n return \"sandbox_permissions_missing\";\n }\n\n const hasPermission = (name: keyof typeof permissions): boolean => permissions[name] === true;\n if (profile === \"restricted\") {\n if (hasPermission(\"process_spawn\")) {\n return \"sandbox_restricted_disallows_process_spawn\";\n }\n if (hasPermission(\"env_write\")) {\n return \"sandbox_restricted_disallows_env_write\";\n }\n return null;\n }\n\n // Remaining profile branch is strict (none/restricted returned above).\n if (hasPermission(\"process_spawn\")) {\n return \"sandbox_strict_disallows_process_spawn\";\n }\n if (hasPermission(\"network\")) {\n return \"sandbox_strict_disallows_network\";\n }\n if (hasPermission(\"fs_write\")) {\n return \"sandbox_strict_disallows_fs_write\";\n }\n if (hasPermission(\"env_write\")) {\n return \"sandbox_strict_disallows_env_write\";\n }\n return null;\n}\n\nfunction buildPolicyWarning(\n mode: \"blocked\" | \"violation\",\n scope: \"extension\" | \"capability\" | \"registration\" | \"trust\",\n extension: PolicyExtensionRef,\n reason: string,\n details: Record<string, string> = {},\n): string {\n const tokens = Object.entries(details)\n .sort((left, right) => left[0].localeCompare(right[0]))\n .map(([key, value]) => `${key}=${value}`)\n .join(\":\");\n const suffix = tokens.length > 0 ? `:${tokens}` : \"\";\n return `extension_policy_${mode}_${scope}:${extension.layer}:${extension.name}:reason=${reason}${suffix}`;\n}\n\n/**\n * Evaluate the layer-level governance policy for one extension by combining the\n * extension allow/block decision, the trust-mode decision, and the sandbox-profile\n * decision. Reasons are weighed in extension → trust → sandbox order: the first\n * reason whose governing mode is `enforce` blocks the extension; otherwise the\n * first whose mode is `warn` surfaces a non-blocking violation warning; otherwise\n * the extension is allowed. The all-`off` short-circuit skips reason resolution\n * entirely.\n */\nexport function evaluateExtensionPolicyForExtension(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\" && policy.trustMode === \"off\") {\n return { allowed: true, warning: null };\n }\n const violations: Array<{\n reason: string;\n scope: \"extension\" | \"trust\";\n mode: ExtensionPolicyMode | ExtensionTrustMode;\n }> = [];\n const reason = resolvePolicyExtensionReason(policy, extension);\n if (reason) {\n violations.push({ reason, scope: \"extension\", mode: policy.mode });\n }\n const trustReason = resolvePolicyTrustReason(policy, extension);\n if (trustReason) {\n violations.push({ reason: trustReason, scope: \"trust\", mode: policy.trustMode });\n }\n const sandboxReason = resolvePolicySandboxReason(policy, extension);\n if (sandboxReason) {\n violations.push({ reason: sandboxReason, scope: \"extension\", mode: policy.mode });\n }\n const enforced = violations.find((violation) => violation.mode === \"enforce\");\n if (enforced) {\n return { allowed: false, warning: buildPolicyWarning(\"blocked\", enforced.scope, extension, enforced.reason) };\n }\n const warned = violations.find((violation) => violation.mode === \"warn\");\n if (warned) {\n return { allowed: true, warning: buildPolicyWarning(\"violation\", warned.scope, extension, warned.reason) };\n }\n return { allowed: true, warning: null };\n}\n\n/**\n * Implements evaluate extension policy for capability for the public runtime surface of this module.\n */\nexport function evaluateExtensionPolicyForCapability(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n capability: string,\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\") {\n return { allowed: true, warning: null };\n }\n const reason = resolvePolicyCapabilityReason(policy, extension, capability);\n if (!reason) {\n return { allowed: true, warning: null };\n }\n return {\n allowed: policy.mode === \"warn\",\n warning: buildPolicyWarning(\n policy.mode === \"warn\" ? \"violation\" : \"blocked\",\n \"capability\",\n extension,\n reason,\n { capability: capability.trim().toLowerCase() },\n ),\n };\n}\n\n/** Optional command/action/service identifiers carried by a surface registration. */\ninterface RegistrationPolicyDetails {\n command?: string;\n action?: string;\n service?: string;\n}\n\n/**\n * Resolve the first applicable registration-policy reason for a surface\n * registration, weighed in capability → surface → command → action → service\n * precedence. Returns `null` when the registration violates no allow/block rule.\n */\nfunction resolveRegistrationPolicyReason(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n surface: ExtensionPolicySurface,\n capability: ExtensionCapability | undefined,\n detail: RegistrationPolicyDetails,\n): string | null {\n const capabilityReason =\n typeof capability === \"string\" ? resolvePolicyCapabilityReason(policy, extension, capability) : null;\n const surfaceReason = resolvePolicySurfaceReason(policy, extension, surface);\n const commandReason = detail.command ? resolvePolicyCommandReason(policy, extension, detail.command) : null;\n const actionReason = detail.action ? resolvePolicyActionReason(policy, extension, detail.action) : null;\n const serviceReason = detail.service ? resolvePolicyServiceReason(policy, extension, detail.service) : null;\n return capabilityReason ?? surfaceReason ?? commandReason ?? actionReason ?? serviceReason;\n}\n\n/**\n * Build the detail token map attached to a registration-policy warning: the\n * normalized method and surface plus whichever of capability/command/action/service\n * the registration carries. {@link buildPolicyWarning} sorts and joins these into\n * the warning's `key=value` suffix.\n */\nfunction buildRegistrationPolicyWarningDetails(\n method: string,\n surface: ExtensionPolicySurface,\n capability: ExtensionCapability | undefined,\n detail: RegistrationPolicyDetails,\n): Record<string, string> {\n const warningDetails: Record<string, string> = {\n method: normalizePolicyName(method).replace(/\\s+/g, \"_\"),\n surface,\n };\n if (capability) {\n warningDetails.capability = capability;\n }\n if (detail.command) {\n warningDetails.command = normalizeCommandName(detail.command);\n }\n if (detail.action) {\n warningDetails.action = normalizePolicyName(detail.action).replace(/\\s+/g, \"-\");\n }\n if (detail.service) {\n warningDetails.service = normalizePolicyName(detail.service);\n }\n return warningDetails;\n}\n\n/**\n * Evaluate the governance policy for a single capability/surface registration an\n * extension performs during activation. When `mode` is `off` the registration is\n * always allowed; otherwise the first allow/block reason (capability → surface →\n * command → action → service) blocks the registration under `enforce` or surfaces\n * a non-blocking violation warning under `warn`.\n */\nexport function evaluateExtensionPolicyForRegistration(\n policy: NormalizedExtensionPolicy,\n extension: PolicyExtensionRef,\n surface: ExtensionPolicySurface,\n method: string,\n capability?: ExtensionCapability,\n details?: {\n command?: string;\n action?: string;\n service?: string;\n },\n): { allowed: boolean; warning: string | null } {\n if (policy.mode === \"off\") {\n return { allowed: true, warning: null };\n }\n const detail = details ?? {};\n const reason = resolveRegistrationPolicyReason(policy, extension, surface, capability, detail);\n if (!reason) {\n return { allowed: true, warning: null };\n }\n const warning = buildPolicyWarning(\n policy.mode === \"warn\" ? \"violation\" : \"blocked\",\n \"registration\",\n extension,\n reason,\n buildRegistrationPolicyWarningDetails(method, surface, capability, detail),\n );\n return {\n allowed: policy.mode === \"warn\",\n warning,\n };\n}\n"],"names":[],"mappings":"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","debugId":"dbc43b74-6872-52c3-859a-64fe84c02b5b"}
@@ -2,7 +2,7 @@
2
2
  * Implements create empty extension hook registry for the public runtime surface of this module.
3
3
  */
4
4
 
5
- !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]="2520e0b0-3e9e-5f16-93a0-c0e45fc8bb8f")}catch(e){}}();
5
+ !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]="dcfdfd88-3d2a-57c9-9873-d8d7d9cf339d")}catch(e){}}();
6
6
  export function createEmptyExtensionHookRegistry() {
7
7
  return {
8
8
  beforeCommand: [],
@@ -63,6 +63,7 @@ export function createEmptyExtensionRegistrationRegistry() {
63
63
  item_fields: [],
64
64
  item_types: [],
65
65
  migrations: [],
66
+ profiles: [],
66
67
  importers: [],
67
68
  exporters: [],
68
69
  search_providers: [],
@@ -70,4 +71,4 @@ export function createEmptyExtensionRegistrationRegistry() {
70
71
  };
71
72
  }
72
73
  //# sourceMappingURL=extension-registries.js.map
73
- //# debugId=2520e0b0-3e9e-5f16-93a0-c0e45fc8bb8f
74
+ //# debugId=dcfdfd88-3d2a-57c9-9873-d8d7d9cf339d
@@ -1 +1 @@
1
- {"version":3,"file":"extension-registries.js","sources":["core/extensions/extension-registries.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-registries\n *\n * Implements extension runtime contracts and governance for Extension Registries.\n */\nimport type {\n ExtensionHookRegistry,\n ExtensionCommandRegistry,\n ExtensionParserRegistry,\n ExtensionPreflightRegistry,\n ExtensionServiceRegistry,\n ExtensionRendererRegistry,\n ExtensionRegistrationRegistry,\n} from \"./extension-types.js\";\n\n/**\n * Implements create empty extension hook registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionHookRegistry(): ExtensionHookRegistry {\n return {\n beforeCommand: [],\n afterCommand: [],\n onWrite: [],\n onRead: [],\n onIndex: [],\n };\n}\n\n/**\n * Implements create empty extension command registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionCommandRegistry(): ExtensionCommandRegistry {\n return {\n overrides: [],\n handlers: [],\n };\n}\n\n/**\n * Implements create empty extension parser registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionParserRegistry(): ExtensionParserRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension preflight registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionPreflightRegistry(): ExtensionPreflightRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension service registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionServiceRegistry(): ExtensionServiceRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension renderer registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionRendererRegistry(): ExtensionRendererRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension registration registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionRegistrationRegistry(): ExtensionRegistrationRegistry {\n return {\n commands: [],\n flags: [],\n item_fields: [],\n item_types: [],\n migrations: [],\n importers: [],\n exporters: [],\n search_providers: [],\n vector_store_adapters: [],\n };\n}\n"],"names":[],"mappings":"AAeA;;GAEG;;;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC;IAClD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wCAAwC;IACtD,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,EAAE;QACpB,qBAAqB,EAAE,EAAE;KAC1B,CAAC;AACJ,CAAC","debugId":"2520e0b0-3e9e-5f16-93a0-c0e45fc8bb8f"}
1
+ {"version":3,"file":"extension-registries.js","sources":["core/extensions/extension-registries.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-registries\n *\n * Implements extension runtime contracts and governance for Extension Registries.\n */\nimport type {\n ExtensionHookRegistry,\n ExtensionCommandRegistry,\n ExtensionParserRegistry,\n ExtensionPreflightRegistry,\n ExtensionServiceRegistry,\n ExtensionRendererRegistry,\n ExtensionRegistrationRegistry,\n} from \"./extension-types.js\";\n\n/**\n * Implements create empty extension hook registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionHookRegistry(): ExtensionHookRegistry {\n return {\n beforeCommand: [],\n afterCommand: [],\n onWrite: [],\n onRead: [],\n onIndex: [],\n };\n}\n\n/**\n * Implements create empty extension command registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionCommandRegistry(): ExtensionCommandRegistry {\n return {\n overrides: [],\n handlers: [],\n };\n}\n\n/**\n * Implements create empty extension parser registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionParserRegistry(): ExtensionParserRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension preflight registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionPreflightRegistry(): ExtensionPreflightRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension service registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionServiceRegistry(): ExtensionServiceRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension renderer registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionRendererRegistry(): ExtensionRendererRegistry {\n return {\n overrides: [],\n };\n}\n\n/**\n * Implements create empty extension registration registry for the public runtime surface of this module.\n */\nexport function createEmptyExtensionRegistrationRegistry(): ExtensionRegistrationRegistry {\n return {\n commands: [],\n flags: [],\n item_fields: [],\n item_types: [],\n migrations: [],\n profiles: [],\n importers: [],\n exporters: [],\n search_providers: [],\n vector_store_adapters: [],\n };\n}\n"],"names":[],"mappings":"AAeA;;GAEG;;;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC;IAClD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wCAAwC;IACtD,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,EAAE;QACpB,qBAAqB,EAAE,EAAE;KAC1B,CAAC;AACJ,CAAC","debugId":"dcfdfd88-3d2a-57c9-9873-d8d7d9cf339d"}