@unbrained/pm-cli 2026.6.8 → 2026.6.9

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 (374) hide show
  1. package/CHANGELOG.md +31 -11
  2. package/dist/cli/extension-command-options.js +40 -17
  3. package/dist/cli/extension-command-options.js.map +1 -1
  4. package/dist/cli-bundle/chunks/activity-HF3VJYKH.js +16 -0
  5. package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js → activity-RUJATACW.js} +11 -11
  6. package/dist/cli-bundle/chunks/{aggregate-GBSHSXOB.js → aggregate-IQ27NFBI.js} +10 -11
  7. package/dist/cli-bundle/chunks/{aggregate-GBSHSXOB.js.map → aggregate-IQ27NFBI.js.map} +1 -1
  8. package/dist/cli-bundle/chunks/{aggregate-HKQJZUBG.js → aggregate-TT7OCHHT.js} +12 -13
  9. package/dist/cli-bundle/chunks/{aggregate-HKQJZUBG.js.map → aggregate-TT7OCHHT.js.map} +1 -1
  10. package/dist/cli-bundle/chunks/{append-3RFOU7P5.js → append-CWQZBUWV.js} +8 -8
  11. package/dist/cli-bundle/chunks/{append-OM74OJVT.js → append-E7AJ5RTR.js} +8 -8
  12. package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js → chunk-23WNCJBA.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-KVXIQDJG.js → chunk-3RHE76G6.js} +12 -12
  14. package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js → chunk-42IULX44.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js → chunk-44JP4PYY.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-DV27WDA7.js → chunk-4LRVXVJK.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js → chunk-4TJWRPIH.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js → chunk-5ATRWEZO.js} +3 -3
  19. package/dist/cli-bundle/chunks/{chunk-YJAKN2N2.js → chunk-5JF76OJF.js} +203 -10
  20. package/dist/cli-bundle/chunks/chunk-5JF76OJF.js.map +1 -0
  21. package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js → chunk-5MMLINZB.js} +3 -3
  22. package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js → chunk-6IGTNFE3.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-4TI3532H.js → chunk-7CR4GAYN.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-D7WK2PKB.js → chunk-7YTWXGE3.js} +5 -5
  25. package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js → chunk-A5342JVL.js} +12 -12
  26. package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js → chunk-AM2AXVFS.js} +5 -5
  27. package/dist/cli-bundle/chunks/{chunk-F33VC5EX.js → chunk-ANKG2JKL.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-ODN53S6H.js → chunk-AVGOVJGV.js} +10 -13
  29. package/dist/cli-bundle/chunks/chunk-AVGOVJGV.js.map +1 -0
  30. package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js → chunk-BACSNVWE.js} +5 -5
  31. package/dist/cli-bundle/chunks/{chunk-L3LYL3ID.js → chunk-BIRVSIM2.js} +12 -12
  32. package/dist/cli-bundle/chunks/{chunk-3TXWDGPU.js → chunk-C72IQIBT.js} +224 -10
  33. package/dist/cli-bundle/chunks/chunk-C72IQIBT.js.map +7 -0
  34. package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js → chunk-CAXUGAAF.js} +8 -8
  35. package/dist/cli-bundle/chunks/{chunk-7NQIY7Z6.js → chunk-D5D7VKIC.js} +3 -3
  36. package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js → chunk-E7LOIIFP.js} +3 -3
  37. package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js → chunk-EFRHTZO4.js} +8 -8
  38. package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js → chunk-ENCVPOID.js} +12 -12
  39. package/dist/cli-bundle/chunks/{chunk-2YPVCD7T.js → chunk-EQ6N6IDR.js} +8 -8
  40. package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js → chunk-F2REA7VW.js} +4 -6
  41. package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js.map → chunk-F2REA7VW.js.map} +1 -1
  42. package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js → chunk-FHUI7AXS.js} +6 -8
  43. package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js.map → chunk-FHUI7AXS.js.map} +1 -1
  44. package/dist/cli-bundle/chunks/{chunk-OVSSE2JP.js → chunk-FJNJEWU4.js} +8 -8
  45. package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js → chunk-FKH7K6YP.js} +9 -9
  46. package/dist/cli-bundle/chunks/{chunk-KCGMABHM.js → chunk-GPOSGWCN.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-MSH23UWO.js → chunk-H37YPWLM.js} +4 -4
  48. package/dist/cli-bundle/chunks/{chunk-F33AQIB4.js → chunk-I26E6XA7.js} +17 -7
  49. package/dist/cli-bundle/chunks/chunk-I26E6XA7.js.map +1 -0
  50. package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js → chunk-I3UILOUU.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-KS2U7BZ3.js → chunk-I4FGL3K2.js} +4 -4
  52. package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js → chunk-JEGFLKSI.js} +2 -2
  53. package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js → chunk-JN3BT7UY.js} +9 -9
  54. package/dist/cli-bundle/chunks/{chunk-ALSRBNYB.js → chunk-JVMAOD54.js} +5 -5
  55. package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js → chunk-KDX6VC3P.js} +3 -3
  56. package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js → chunk-KTVXLI54.js} +7 -7
  57. package/dist/cli-bundle/chunks/{chunk-2HMD3JM2.js → chunk-LF2VNLEZ.js} +9 -12
  58. package/dist/cli-bundle/chunks/chunk-LF2VNLEZ.js.map +7 -0
  59. package/dist/cli-bundle/chunks/{chunk-XNGMIVQY.js → chunk-LU2HE272.js} +3 -3
  60. package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js → chunk-LU54Z4QI.js} +5 -5
  61. package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js → chunk-MNXJ6YDO.js} +9 -9
  62. package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js → chunk-NHRZSYAA.js} +3 -3
  63. package/dist/cli-bundle/chunks/{chunk-HOA3GMB6.js → chunk-NJRZIJ4N.js} +4 -4
  64. package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js → chunk-NUGAWYEN.js} +2 -2
  65. package/dist/cli-bundle/chunks/{chunk-NUKHZZNM.js → chunk-O4L7Z6LB.js} +3 -3
  66. package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js → chunk-OPYA2HIU.js} +7 -7
  67. package/dist/cli-bundle/chunks/{chunk-7WXGR44E.js → chunk-OT6XAMO5.js} +16 -6
  68. package/dist/cli-bundle/chunks/chunk-OT6XAMO5.js.map +7 -0
  69. package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js → chunk-P2NVFE4L.js} +3 -3
  70. package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js → chunk-PUSOAQCR.js} +5 -5
  71. package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js → chunk-PW7C262O.js} +2 -2
  72. package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js → chunk-RE2JQJZJ.js} +3 -3
  73. package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js → chunk-RKCJ2JMA.js} +7 -7
  74. package/dist/cli-bundle/chunks/{chunk-QWNUDGFQ.js → chunk-RLVI7KDW.js} +8 -8
  75. package/dist/cli-bundle/chunks/{chunk-KBKJVXUS.js → chunk-RMTI5R76.js} +5 -5
  76. package/dist/cli-bundle/chunks/{chunk-QFVASU44.js → chunk-SAUXUI6U.js} +2 -2
  77. package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js → chunk-SD6H3RLA.js} +4 -4
  78. package/dist/cli-bundle/chunks/{chunk-VXBUXLVD.js → chunk-T7B5VAKD.js} +5 -5
  79. package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js → chunk-T7NWFVOA.js} +7 -7
  80. package/dist/cli-bundle/chunks/{chunk-TXKENAQP.js → chunk-TLD3UYGY.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js → chunk-U3Z4OCZC.js} +2 -2
  82. package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js → chunk-VDVVOLR6.js} +3 -3
  83. package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js → chunk-WCWIDJII.js} +2 -2
  84. package/dist/cli-bundle/chunks/{chunk-EPWT7BEA.js → chunk-WQZCEEQN.js} +8 -8
  85. package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js → chunk-XEOO6K5J.js} +9 -9
  86. package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js → chunk-YI6W2DBN.js} +6 -6
  87. package/dist/cli-bundle/chunks/{chunk-N4SQZ7L3.js → chunk-YSANBZAE.js} +2 -2
  88. package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js → chunk-YX5LAKFJ.js} +2 -2
  89. package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js → chunk-ZPXDD6RQ.js} +6 -6
  90. package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js → claim-RV6WYUF7.js} +10 -10
  91. package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js → claim-UXFGCF3P.js} +10 -10
  92. package/dist/cli-bundle/chunks/close-JTTGW7TS.js +13 -0
  93. package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js → close-O4JK2JKD.js} +8 -8
  94. package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js → close-many-EQO4TPIE.js} +17 -18
  95. package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js.map → close-many-EQO4TPIE.js.map} +1 -1
  96. package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js → close-many-SRDBV3SI.js} +15 -16
  97. package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js.map → close-many-SRDBV3SI.js.map} +1 -1
  98. package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js → comments-OMB7YE27.js} +10 -10
  99. package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js → comments-TTZUIB2O.js} +10 -10
  100. package/dist/cli-bundle/chunks/{config-72253M2O.js → config-5VPR42A6.js} +8 -8
  101. package/dist/cli-bundle/chunks/{config-VFYA6BMI.js → config-NNLXVGVC.js} +8 -8
  102. package/dist/cli-bundle/chunks/{context-WMSI2D65.js → context-4N7GYTVQ.js} +16 -18
  103. package/dist/cli-bundle/chunks/{context-WMSI2D65.js.map → context-4N7GYTVQ.js.map} +1 -1
  104. package/dist/cli-bundle/chunks/{context-AVLO4IFH.js → context-4QK6GRXO.js} +14 -16
  105. package/dist/cli-bundle/chunks/{context-AVLO4IFH.js.map → context-4QK6GRXO.js.map} +1 -1
  106. package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js → contracts-AOBNEBVT.js} +4 -4
  107. package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js → contracts-DXCWXOSP.js} +4 -4
  108. package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js → copy-5NM3SVJA.js} +7 -7
  109. package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js → copy-XSYEQTLA.js} +7 -7
  110. package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js → create-FCCAATQV.js} +13 -13
  111. package/dist/cli-bundle/chunks/create-JAPLFDGJ.js +27 -0
  112. package/dist/cli-bundle/chunks/{delete-WBME6WG5.js → delete-5JFP6OG7.js} +7 -7
  113. package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js → delete-PQXJQXQ7.js} +7 -7
  114. package/dist/cli-bundle/chunks/{deps-KWHQRO75.js → deps-S5322EOQ.js} +7 -7
  115. package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js → deps-XXKBOQUA.js} +7 -7
  116. package/dist/cli-bundle/chunks/{docs-364GT3ZR.js → docs-C7CCVWAJ.js} +9 -9
  117. package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js → docs-DZRPAW5S.js} +9 -9
  118. package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js → extension-CSHP6FZX.js} +5 -5
  119. package/dist/cli-bundle/chunks/{extension-CRE7JM47.js → extension-XNNVUVAY.js} +5 -5
  120. package/dist/cli-bundle/chunks/{files-66EHM5ZR.js → files-OBWYYPKM.js} +9 -9
  121. package/dist/cli-bundle/chunks/{files-3GESQAWL.js → files-UPCNKEIZ.js} +9 -9
  122. package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js → gc-FA2ONELT.js} +3 -3
  123. package/dist/cli-bundle/chunks/{gc-MOQDND5J.js → gc-KXK6KBRN.js} +3 -3
  124. package/dist/cli-bundle/chunks/{get-WXSLXV3K.js → get-FLHYTOBA.js} +11 -11
  125. package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js → get-PNTSONGB.js} +11 -11
  126. package/dist/cli-bundle/chunks/{health-B6AEM7BV.js → health-CS5RNTJX.js} +13 -13
  127. package/dist/cli-bundle/chunks/{health-YMZGOMVX.js → health-KCRVYIYY.js} +13 -13
  128. package/dist/cli-bundle/chunks/history-6624XISO.js +20 -0
  129. package/dist/cli-bundle/chunks/{history-TJTO5GCR.js → history-COQTPBEU.js} +10 -10
  130. package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js → history-compact-66PSRYL3.js} +11 -11
  131. package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js → history-compact-PVS2A3FS.js} +11 -11
  132. package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js → history-redact-DCXAWGTF.js} +11 -11
  133. package/dist/cli-bundle/chunks/history-redact-ZRQTI7NB.js +19 -0
  134. package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js → history-repair-SEQDFTGW.js} +11 -11
  135. package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js → history-repair-TA3NRIFO.js} +11 -11
  136. package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js → init-IQJE3EKJ.js} +9 -9
  137. package/dist/cli-bundle/chunks/init-ZVE2HMKK.js +17 -0
  138. package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js → learnings-RJPGH2ME.js} +10 -10
  139. package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js → learnings-XC6EMW5E.js} +10 -10
  140. package/dist/cli-bundle/chunks/{list-JGP7ODML.js → list-NJV6WBT4.js} +10 -11
  141. package/dist/cli-bundle/chunks/list-OO5P472O.js +19 -0
  142. package/dist/cli-bundle/chunks/{notes-P25YVTEG.js → notes-2KWHADK3.js} +10 -10
  143. package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js → notes-FNCDMZW2.js} +10 -10
  144. package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js → plan-CYK2P5PD.js} +13 -13
  145. package/dist/cli-bundle/chunks/{plan-RACB5PI6.js → plan-MQO5JTSV.js} +13 -13
  146. package/dist/cli-bundle/chunks/{register-list-query-5IXDPUZ6.js → register-list-query-6RA24SIZ.js} +18 -18
  147. package/dist/cli-bundle/chunks/{register-list-query-GQAEIG4K.js → register-list-query-IO3RR5K6.js} +18 -18
  148. package/dist/cli-bundle/chunks/{register-mutation-YZCUILGO.js → register-mutation-KVFUXCAZ.js} +32 -32
  149. package/dist/cli-bundle/chunks/{register-mutation-FAS4YG63.js → register-mutation-VV2SC2KL.js} +32 -32
  150. package/dist/cli-bundle/chunks/{register-operations-S2BOLUPF.js → register-operations-DFNVRSJ5.js} +30 -30
  151. package/dist/cli-bundle/chunks/{register-operations-IBYWNJN5.js → register-operations-TAUUTRJ4.js} +30 -30
  152. package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js → register-setup-GAQZZRUA.js} +15 -15
  153. package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js → register-setup-X2R5CFDV.js} +15 -15
  154. package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js → restore-E3GZKRRK.js} +11 -11
  155. package/dist/cli-bundle/chunks/restore-F4ALFV4D.js +17 -0
  156. package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js → schema-3CPFLDAY.js} +8 -8
  157. package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js → schema-7EHBPNXM.js} +8 -8
  158. package/dist/cli-bundle/chunks/{search-EQDHSE4G.js → search-2T3NCCUR.js} +12 -13
  159. package/dist/cli-bundle/chunks/{search-EQDHSE4G.js.map → search-2T3NCCUR.js.map} +1 -1
  160. package/dist/cli-bundle/chunks/{search-632WJ7GO.js → search-OBZVYJJ2.js} +10 -11
  161. package/dist/cli-bundle/chunks/{search-632WJ7GO.js.map → search-OBZVYJJ2.js.map} +1 -1
  162. package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js → stats-6LVK4JER.js} +7 -7
  163. package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js → stats-ULGQACF7.js} +7 -7
  164. package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js → telemetry-6G27FLCP.js} +4 -4
  165. package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js → telemetry-HHKRTMZA.js} +4 -4
  166. package/dist/cli-bundle/chunks/{test-GXUBQNUC.js → test-2PP4YBV6.js} +14 -14
  167. package/dist/cli-bundle/chunks/test-PPOLRIBA.js +32 -0
  168. package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js → test-all-6Z272JRI.js} +14 -14
  169. package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js → test-all-NETGVNM6.js} +14 -14
  170. package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js → test-runs-CRPQVMMG.js} +5 -5
  171. package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js → test-runs-M24WA6TI.js} +5 -5
  172. package/dist/cli-bundle/chunks/update-MCPCPMHV.js +25 -0
  173. package/dist/cli-bundle/chunks/update-O7TBOUVQ.js +21 -0
  174. package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js → update-many-JSRF5EH5.js} +22 -23
  175. package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js.map → update-many-JSRF5EH5.js.map} +1 -1
  176. package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js → update-many-Y3HOL7WA.js} +24 -25
  177. package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js.map → update-many-Y3HOL7WA.js.map} +1 -1
  178. package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js → upgrade-5RTQVKKE.js} +5 -5
  179. package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js → upgrade-ECB6GH3M.js} +5 -5
  180. package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js → validate-J6Q444SD.js} +16 -16
  181. package/dist/cli-bundle/chunks/{validate-CRWXZILW.js → validate-MCNMAXVA.js} +16 -16
  182. package/dist/cli-bundle/main.js +43 -36
  183. package/dist/cli-bundle/main.js.map +2 -2
  184. package/dist/core/extensions/extension-types.d.ts +59 -1
  185. package/dist/core/extensions/extension-types.js +2 -2
  186. package/dist/core/extensions/extension-types.js.map +1 -1
  187. package/dist/core/extensions/flag-value-types.d.ts +29 -0
  188. package/dist/core/extensions/flag-value-types.js +78 -0
  189. package/dist/core/extensions/flag-value-types.js.map +1 -0
  190. package/dist/core/extensions/item-field-types.d.ts +22 -0
  191. package/dist/core/extensions/item-field-types.js +43 -0
  192. package/dist/core/extensions/item-field-types.js.map +1 -0
  193. package/dist/core/extensions/item-fields.js +4 -11
  194. package/dist/core/extensions/item-fields.js.map +1 -1
  195. package/dist/core/extensions/loader.d.ts +14 -1
  196. package/dist/core/extensions/loader.js +141 -10
  197. package/dist/core/extensions/loader.js.map +1 -1
  198. package/dist/core/packages/manifest.d.ts +1 -1
  199. package/dist/core/packages/manifest.js +12 -2
  200. package/dist/core/packages/manifest.js.map +1 -1
  201. package/dist/mcp/server.js +57 -31
  202. package/dist/mcp/server.js.map +1 -1
  203. package/dist/sdk/index.d.ts +7 -2
  204. package/dist/sdk/index.js +3 -3
  205. package/dist/sdk/index.js.map +1 -1
  206. package/dist/sdk/testing.d.ts +55 -1
  207. package/dist/sdk/testing.js +92 -2
  208. package/dist/sdk/testing.js.map +1 -1
  209. package/docs/EXTENSIONS.md +7 -3
  210. package/docs/SDK.md +98 -0
  211. package/package.json +1 -1
  212. package/dist/cli-bundle/chunks/activity-A3QKFSSF.js +0 -16
  213. package/dist/cli-bundle/chunks/chunk-2HMD3JM2.js.map +0 -7
  214. package/dist/cli-bundle/chunks/chunk-3TXWDGPU.js.map +0 -7
  215. package/dist/cli-bundle/chunks/chunk-7WXGR44E.js.map +0 -7
  216. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js +0 -56
  217. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js.map +0 -7
  218. package/dist/cli-bundle/chunks/chunk-F33AQIB4.js.map +0 -1
  219. package/dist/cli-bundle/chunks/chunk-ODN53S6H.js.map +0 -1
  220. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +0 -53
  221. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +0 -1
  222. package/dist/cli-bundle/chunks/chunk-YJAKN2N2.js.map +0 -1
  223. package/dist/cli-bundle/chunks/close-UNTFXVM3.js +0 -13
  224. package/dist/cli-bundle/chunks/create-EZWAMUKR.js +0 -27
  225. package/dist/cli-bundle/chunks/history-ZERISU2L.js +0 -20
  226. package/dist/cli-bundle/chunks/history-redact-GODBYT5A.js +0 -19
  227. package/dist/cli-bundle/chunks/init-CBZHXBR3.js +0 -17
  228. package/dist/cli-bundle/chunks/list-7MTPPZHC.js +0 -20
  229. package/dist/cli-bundle/chunks/restore-3JRX27QW.js +0 -17
  230. package/dist/cli-bundle/chunks/test-XN7RJL5Z.js +0 -32
  231. package/dist/cli-bundle/chunks/update-LFBSEW3N.js +0 -21
  232. package/dist/cli-bundle/chunks/update-U4B4OMHZ.js +0 -25
  233. /package/dist/cli-bundle/chunks/{activity-A3QKFSSF.js.map → activity-HF3VJYKH.js.map} +0 -0
  234. /package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js.map → activity-RUJATACW.js.map} +0 -0
  235. /package/dist/cli-bundle/chunks/{append-3RFOU7P5.js.map → append-CWQZBUWV.js.map} +0 -0
  236. /package/dist/cli-bundle/chunks/{append-OM74OJVT.js.map → append-E7AJ5RTR.js.map} +0 -0
  237. /package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js.map → chunk-23WNCJBA.js.map} +0 -0
  238. /package/dist/cli-bundle/chunks/{chunk-KVXIQDJG.js.map → chunk-3RHE76G6.js.map} +0 -0
  239. /package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js.map → chunk-42IULX44.js.map} +0 -0
  240. /package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js.map → chunk-44JP4PYY.js.map} +0 -0
  241. /package/dist/cli-bundle/chunks/{chunk-DV27WDA7.js.map → chunk-4LRVXVJK.js.map} +0 -0
  242. /package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js.map → chunk-4TJWRPIH.js.map} +0 -0
  243. /package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js.map → chunk-5ATRWEZO.js.map} +0 -0
  244. /package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js.map → chunk-5MMLINZB.js.map} +0 -0
  245. /package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js.map → chunk-6IGTNFE3.js.map} +0 -0
  246. /package/dist/cli-bundle/chunks/{chunk-4TI3532H.js.map → chunk-7CR4GAYN.js.map} +0 -0
  247. /package/dist/cli-bundle/chunks/{chunk-D7WK2PKB.js.map → chunk-7YTWXGE3.js.map} +0 -0
  248. /package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js.map → chunk-A5342JVL.js.map} +0 -0
  249. /package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js.map → chunk-AM2AXVFS.js.map} +0 -0
  250. /package/dist/cli-bundle/chunks/{chunk-F33VC5EX.js.map → chunk-ANKG2JKL.js.map} +0 -0
  251. /package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js.map → chunk-BACSNVWE.js.map} +0 -0
  252. /package/dist/cli-bundle/chunks/{chunk-L3LYL3ID.js.map → chunk-BIRVSIM2.js.map} +0 -0
  253. /package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js.map → chunk-CAXUGAAF.js.map} +0 -0
  254. /package/dist/cli-bundle/chunks/{chunk-7NQIY7Z6.js.map → chunk-D5D7VKIC.js.map} +0 -0
  255. /package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js.map → chunk-E7LOIIFP.js.map} +0 -0
  256. /package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js.map → chunk-EFRHTZO4.js.map} +0 -0
  257. /package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js.map → chunk-ENCVPOID.js.map} +0 -0
  258. /package/dist/cli-bundle/chunks/{chunk-2YPVCD7T.js.map → chunk-EQ6N6IDR.js.map} +0 -0
  259. /package/dist/cli-bundle/chunks/{chunk-OVSSE2JP.js.map → chunk-FJNJEWU4.js.map} +0 -0
  260. /package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js.map → chunk-FKH7K6YP.js.map} +0 -0
  261. /package/dist/cli-bundle/chunks/{chunk-KCGMABHM.js.map → chunk-GPOSGWCN.js.map} +0 -0
  262. /package/dist/cli-bundle/chunks/{chunk-MSH23UWO.js.map → chunk-H37YPWLM.js.map} +0 -0
  263. /package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js.map → chunk-I3UILOUU.js.map} +0 -0
  264. /package/dist/cli-bundle/chunks/{chunk-KS2U7BZ3.js.map → chunk-I4FGL3K2.js.map} +0 -0
  265. /package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js.map → chunk-JEGFLKSI.js.map} +0 -0
  266. /package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js.map → chunk-JN3BT7UY.js.map} +0 -0
  267. /package/dist/cli-bundle/chunks/{chunk-ALSRBNYB.js.map → chunk-JVMAOD54.js.map} +0 -0
  268. /package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js.map → chunk-KDX6VC3P.js.map} +0 -0
  269. /package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js.map → chunk-KTVXLI54.js.map} +0 -0
  270. /package/dist/cli-bundle/chunks/{chunk-XNGMIVQY.js.map → chunk-LU2HE272.js.map} +0 -0
  271. /package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js.map → chunk-LU54Z4QI.js.map} +0 -0
  272. /package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js.map → chunk-MNXJ6YDO.js.map} +0 -0
  273. /package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js.map → chunk-NHRZSYAA.js.map} +0 -0
  274. /package/dist/cli-bundle/chunks/{chunk-HOA3GMB6.js.map → chunk-NJRZIJ4N.js.map} +0 -0
  275. /package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js.map → chunk-NUGAWYEN.js.map} +0 -0
  276. /package/dist/cli-bundle/chunks/{chunk-NUKHZZNM.js.map → chunk-O4L7Z6LB.js.map} +0 -0
  277. /package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js.map → chunk-OPYA2HIU.js.map} +0 -0
  278. /package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js.map → chunk-P2NVFE4L.js.map} +0 -0
  279. /package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js.map → chunk-PUSOAQCR.js.map} +0 -0
  280. /package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js.map → chunk-PW7C262O.js.map} +0 -0
  281. /package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js.map → chunk-RE2JQJZJ.js.map} +0 -0
  282. /package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js.map → chunk-RKCJ2JMA.js.map} +0 -0
  283. /package/dist/cli-bundle/chunks/{chunk-QWNUDGFQ.js.map → chunk-RLVI7KDW.js.map} +0 -0
  284. /package/dist/cli-bundle/chunks/{chunk-KBKJVXUS.js.map → chunk-RMTI5R76.js.map} +0 -0
  285. /package/dist/cli-bundle/chunks/{chunk-QFVASU44.js.map → chunk-SAUXUI6U.js.map} +0 -0
  286. /package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js.map → chunk-SD6H3RLA.js.map} +0 -0
  287. /package/dist/cli-bundle/chunks/{chunk-VXBUXLVD.js.map → chunk-T7B5VAKD.js.map} +0 -0
  288. /package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js.map → chunk-T7NWFVOA.js.map} +0 -0
  289. /package/dist/cli-bundle/chunks/{chunk-TXKENAQP.js.map → chunk-TLD3UYGY.js.map} +0 -0
  290. /package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js.map → chunk-U3Z4OCZC.js.map} +0 -0
  291. /package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js.map → chunk-VDVVOLR6.js.map} +0 -0
  292. /package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js.map → chunk-WCWIDJII.js.map} +0 -0
  293. /package/dist/cli-bundle/chunks/{chunk-EPWT7BEA.js.map → chunk-WQZCEEQN.js.map} +0 -0
  294. /package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js.map → chunk-XEOO6K5J.js.map} +0 -0
  295. /package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js.map → chunk-YI6W2DBN.js.map} +0 -0
  296. /package/dist/cli-bundle/chunks/{chunk-N4SQZ7L3.js.map → chunk-YSANBZAE.js.map} +0 -0
  297. /package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js.map → chunk-YX5LAKFJ.js.map} +0 -0
  298. /package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js.map → chunk-ZPXDD6RQ.js.map} +0 -0
  299. /package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js.map → claim-RV6WYUF7.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js.map → claim-UXFGCF3P.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{close-UNTFXVM3.js.map → close-JTTGW7TS.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js.map → close-O4JK2JKD.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js.map → comments-OMB7YE27.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js.map → comments-TTZUIB2O.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{config-72253M2O.js.map → config-5VPR42A6.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{config-VFYA6BMI.js.map → config-NNLXVGVC.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js.map → contracts-AOBNEBVT.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js.map → contracts-DXCWXOSP.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js.map → copy-5NM3SVJA.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js.map → copy-XSYEQTLA.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js.map → create-FCCAATQV.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{create-EZWAMUKR.js.map → create-JAPLFDGJ.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{delete-WBME6WG5.js.map → delete-5JFP6OG7.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js.map → delete-PQXJQXQ7.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{deps-KWHQRO75.js.map → deps-S5322EOQ.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js.map → deps-XXKBOQUA.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{docs-364GT3ZR.js.map → docs-C7CCVWAJ.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js.map → docs-DZRPAW5S.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js.map → extension-CSHP6FZX.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{extension-CRE7JM47.js.map → extension-XNNVUVAY.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{files-66EHM5ZR.js.map → files-OBWYYPKM.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{files-3GESQAWL.js.map → files-UPCNKEIZ.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js.map → gc-FA2ONELT.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{gc-MOQDND5J.js.map → gc-KXK6KBRN.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{get-WXSLXV3K.js.map → get-FLHYTOBA.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js.map → get-PNTSONGB.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{health-B6AEM7BV.js.map → health-CS5RNTJX.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{health-YMZGOMVX.js.map → health-KCRVYIYY.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{history-ZERISU2L.js.map → history-6624XISO.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{history-TJTO5GCR.js.map → history-COQTPBEU.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js.map → history-compact-66PSRYL3.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js.map → history-compact-PVS2A3FS.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js.map → history-redact-DCXAWGTF.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{history-redact-GODBYT5A.js.map → history-redact-ZRQTI7NB.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js.map → history-repair-SEQDFTGW.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js.map → history-repair-TA3NRIFO.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js.map → init-IQJE3EKJ.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{init-CBZHXBR3.js.map → init-ZVE2HMKK.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js.map → learnings-RJPGH2ME.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js.map → learnings-XC6EMW5E.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{list-JGP7ODML.js.map → list-NJV6WBT4.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{list-7MTPPZHC.js.map → list-OO5P472O.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{notes-P25YVTEG.js.map → notes-2KWHADK3.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js.map → notes-FNCDMZW2.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js.map → plan-CYK2P5PD.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{plan-RACB5PI6.js.map → plan-MQO5JTSV.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{register-list-query-5IXDPUZ6.js.map → register-list-query-6RA24SIZ.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{register-list-query-GQAEIG4K.js.map → register-list-query-IO3RR5K6.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{register-mutation-YZCUILGO.js.map → register-mutation-KVFUXCAZ.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{register-mutation-FAS4YG63.js.map → register-mutation-VV2SC2KL.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{register-operations-S2BOLUPF.js.map → register-operations-DFNVRSJ5.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{register-operations-IBYWNJN5.js.map → register-operations-TAUUTRJ4.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js.map → register-setup-GAQZZRUA.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js.map → register-setup-X2R5CFDV.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js.map → restore-E3GZKRRK.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{restore-3JRX27QW.js.map → restore-F4ALFV4D.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js.map → schema-3CPFLDAY.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js.map → schema-7EHBPNXM.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js.map → stats-6LVK4JER.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js.map → stats-ULGQACF7.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js.map → telemetry-6G27FLCP.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js.map → telemetry-HHKRTMZA.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{test-GXUBQNUC.js.map → test-2PP4YBV6.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{test-XN7RJL5Z.js.map → test-PPOLRIBA.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js.map → test-all-6Z272JRI.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js.map → test-all-NETGVNM6.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js.map → test-runs-CRPQVMMG.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js.map → test-runs-M24WA6TI.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{update-U4B4OMHZ.js.map → update-MCPCPMHV.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{update-LFBSEW3N.js.map → update-O7TBOUVQ.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js.map → upgrade-5RTQVKKE.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js.map → upgrade-ECB6GH3M.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js.map → validate-J6Q444SD.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{validate-CRWXZILW.js.map → validate-MCNMAXVA.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- !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]="54365547-c7be-5bd4-be2e-ca02f27aa365")}catch(e){}}();
2
+ !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]="e5c4c469-142a-5854-82ca-a920130d2104")}catch(e){}}();
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { pathToFileURL } from "node:url";
@@ -8,6 +8,8 @@ import { isPathWithinDirectory } from "../fs/path-utils.js";
8
8
  import { resolvePmPackageRootFromModule } from "../packages/root.js";
9
9
  import { resolveGlobalPmRoot } from "../store/paths.js";
10
10
  import { asRecordLoose } from "../shared/primitives.js";
11
+ import { flattenFlagListValue, isFlagDefaultValueCoercible, resolveFlagValueKind } from "./flag-value-types.js";
12
+ import { KNOWN_ITEM_FIELD_TYPES, normalizeItemFieldType, suggestKnownItemFieldType } from "./item-field-types.js";
11
13
  // Cohesive helper groups now live in sibling modules. They are imported for the
12
14
  // discovery/activation code that stays here and re-exported below so existing
13
15
  // import sites (sdk/index.ts, commands/extension.ts, health.ts, tests, …) keep
@@ -19,7 +21,7 @@ import { normalizeCommandName, cloneContextSnapshot, } from "./extension-runtime
19
21
  export { parseUnknownExtensionCapabilityWarning, parseLegacyExtensionCapabilityAliasWarning, } from "./extension-capability-aliases.js";
20
22
  export { createEmptyExtensionHookRegistry, createEmptyExtensionCommandRegistry, createEmptyExtensionParserRegistry, createEmptyExtensionPreflightRegistry, createEmptyExtensionServiceRegistry, createEmptyExtensionRendererRegistry, createEmptyExtensionRegistrationRegistry, } from "./extension-registries.js";
21
23
  export { runBeforeCommandHooks, runAfterCommandHooks, runOnWriteHooks, runOnReadHooks, runOnIndexHooks, runCommandHandler, runParserOverride, runPreflightOverride, runServiceOverrideSync, runServiceOverride, runCommandOverride, runRendererOverride, } from "./extension-hook-runtime.js";
22
- import { KNOWN_EXTENSION_SERVICE_NAMES, createDefaultExtensionGovernancePolicy, } from "./extension-types.js";
24
+ import { KNOWN_EXTENSION_CAPABILITIES, KNOWN_EXTENSION_SERVICE_NAMES, createDefaultExtensionGovernancePolicy, } from "./extension-types.js";
23
25
  export * from "./extension-types.js";
24
26
  const DEFAULT_EXTENSION_PRIORITY = 100;
25
27
  let currentPmCliVersionPromise = null;
@@ -727,24 +729,82 @@ export async function loadExtensions(options) {
727
729
  failed,
728
730
  };
729
731
  }
732
+ function toActivatableExtension(source) {
733
+ // Bind to `source` so a module/default-export authored with methods (or a class
734
+ // instance) keeps its `this` across both lifecycle calls — `activate` is a
735
+ // method call on a fresh object and `deactivate` is invoked bare, so without
736
+ // binding the two would see different (or undefined) `this`.
737
+ const activate = source.activate;
738
+ const activatable = {
739
+ activate: activate.bind(source),
740
+ };
741
+ if (typeof source.deactivate === "function") {
742
+ const deactivate = source.deactivate;
743
+ activatable.deactivate = deactivate.bind(source);
744
+ }
745
+ return activatable;
746
+ }
730
747
  function resolveActivatableExtension(module) {
731
748
  const moduleRecord = asRecordLoose(module);
732
749
  if (!moduleRecord) {
733
750
  return null;
734
751
  }
735
752
  if (typeof moduleRecord.activate === "function") {
736
- return {
737
- activate: moduleRecord.activate,
738
- };
753
+ return toActivatableExtension(moduleRecord);
739
754
  }
740
755
  const defaultExport = asRecordLoose(moduleRecord.default);
741
756
  if (defaultExport && typeof defaultExport.activate === "function") {
742
- return {
743
- activate: defaultExport.activate,
744
- };
757
+ return toActivatableExtension(defaultExport);
745
758
  }
746
759
  return null;
747
760
  }
761
+ /**
762
+ * Run the optional `deactivate` teardown hook for every loaded extension that
763
+ * exports one. Best-effort: a throwing teardown is captured as a warning and a
764
+ * failure entry rather than propagated, so one extension cannot block another's
765
+ * cleanup. Hosts call this on shutdown/reload (e.g. the MCP server between
766
+ * native-action requests) to release resources opened during `activate`.
767
+ *
768
+ * Pass the `activationResult` to skip extensions whose `activate` failed — they
769
+ * never fully initialized, so (VS Code-style) their `deactivate` must not run.
770
+ * Teardowns run concurrently so one slow hook cannot serialize the rest; the
771
+ * returned warnings/failures preserve loaded order.
772
+ */
773
+ export async function deactivateExtensions(loadResult, activationResult) {
774
+ const failedActivationKeys = new Set((activationResult?.failed ?? []).map((entry) => `${entry.layer}:${entry.name}`));
775
+ const targets = [];
776
+ for (const extension of loadResult.loaded) {
777
+ if (failedActivationKeys.has(`${extension.layer}:${extension.name}`)) {
778
+ continue;
779
+ }
780
+ const activatable = resolveActivatableExtension(extension.module);
781
+ if (!activatable || typeof activatable.deactivate !== "function") {
782
+ continue;
783
+ }
784
+ targets.push({ extension, deactivate: activatable.deactivate });
785
+ }
786
+ const outcomes = await Promise.all(targets.map(async ({ extension, deactivate }) => {
787
+ try {
788
+ await deactivate();
789
+ return { ok: true };
790
+ }
791
+ catch (error) {
792
+ return { ok: false, layer: extension.layer, name: extension.name, error: formatUnknownError(error) };
793
+ }
794
+ }));
795
+ const warnings = [];
796
+ const failed = [];
797
+ let deactivated = 0;
798
+ for (const outcome of outcomes) {
799
+ if (outcome.ok) {
800
+ deactivated += 1;
801
+ continue;
802
+ }
803
+ warnings.push(`extension_deactivate_failed:${outcome.layer}:${outcome.name}`);
804
+ failed.push({ layer: outcome.layer, name: outcome.name, error: outcome.error });
805
+ }
806
+ return { deactivated, warnings, failed };
807
+ }
748
808
  function isOutputRendererFormat(value) {
749
809
  return value === "toon" || value === "json";
750
810
  }
@@ -873,6 +933,25 @@ function assertOptionalStringField(name, value) {
873
933
  throw new TypeError(`${name} must be a non-empty string when provided`);
874
934
  }
875
935
  }
936
+ function isFlagDefaultScalar(value) {
937
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
938
+ }
939
+ function assertOptionalFlagDefaultField(name, value) {
940
+ if (value === undefined) {
941
+ return;
942
+ }
943
+ if (Array.isArray(value)) {
944
+ for (const [index, item] of value.entries()) {
945
+ if (!isFlagDefaultScalar(item)) {
946
+ throw new TypeError(`${name}[${index}] must be a string, number, or boolean`);
947
+ }
948
+ }
949
+ return;
950
+ }
951
+ if (!isFlagDefaultScalar(value)) {
952
+ throw new TypeError(`${name} must be a string, number, or boolean, or an array of these when provided`);
953
+ }
954
+ }
876
955
  function assertOptionalStringArrayField(name, value) {
877
956
  if (value === undefined) {
878
957
  return;
@@ -992,6 +1071,42 @@ function validateFlagDefinitions(flags) {
992
1071
  assertOptionalBooleanField(`registerFlags flags[${index}].required`, record.required);
993
1072
  assertOptionalBooleanField(`registerFlags flags[${index}].enabled`, record.enabled);
994
1073
  assertOptionalBooleanField(`registerFlags flags[${index}].visible`, record.visible);
1074
+ assertOptionalBooleanField(`registerFlags flags[${index}].list`, record.list);
1075
+ assertOptionalFlagDefaultField(`registerFlags flags[${index}].default`, record.default);
1076
+ if (Array.isArray(record.default) && record.list !== true) {
1077
+ throw new TypeError(`registerFlags flags[${index}].default cannot be an array unless list is true.`);
1078
+ }
1079
+ assertFlagValueTypeAndDefault(`registerFlags flags[${index}]`, record);
1080
+ }
1081
+ }
1082
+ /**
1083
+ * Reject a declared `value_type`/`type` that is not a known flag value kind, and
1084
+ * a `default` whose value(s) would not cleanly coerce under that kind — so the
1085
+ * typed-flag contract is enforced at registration instead of silently leaving
1086
+ * an untyped value to surface at use time.
1087
+ */
1088
+ function assertFlagValueTypeAndDefault(label, record) {
1089
+ const declaredType = (typeof record.value_type === "string" ? record.value_type : undefined) ??
1090
+ (typeof record.type === "string" ? record.type : undefined);
1091
+ if (declaredType === undefined) {
1092
+ return;
1093
+ }
1094
+ const kind = resolveFlagValueKind(declaredType);
1095
+ if (kind === null) {
1096
+ throw new TypeError(`${label} value_type "${declaredType}" is not a known flag value type (expected one of: string, number, boolean).`);
1097
+ }
1098
+ if (record.default === undefined) {
1099
+ return;
1100
+ }
1101
+ // For list flags, validate the default exactly as the runtime will see it —
1102
+ // comma-joined strings and nested arrays are flattened first — so a valid
1103
+ // default like `value_type: "number", default: "10,20"` is not wrongly rejected.
1104
+ const defaults = record.list === true ? flattenFlagListValue(record.default) : [record.default];
1105
+ for (const [defaultIndex, defaultValue] of defaults.entries()) {
1106
+ if (!isFlagDefaultValueCoercible(defaultValue, kind)) {
1107
+ const suffix = defaults.length > 1 ? `default[${defaultIndex}]` : "default";
1108
+ throw new TypeError(`${label}.${suffix} (${JSON.stringify(defaultValue)}) is not coercible to ${kind}.`);
1109
+ }
995
1110
  }
996
1111
  }
997
1112
  function validateItemFieldDefinitions(fields) {
@@ -1001,7 +1116,13 @@ function validateItemFieldDefinitions(fields) {
1001
1116
  for (const [index, raw] of fields.entries()) {
1002
1117
  const record = asRegistrationRecord(`registerItemFields fields[${index}]`, raw);
1003
1118
  assertNonEmptyString(`registerItemFields fields[${index}].name`, record.name);
1004
- assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
1119
+ const fieldType = assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
1120
+ if (normalizeItemFieldType(fieldType) === null) {
1121
+ const suggestion = suggestKnownItemFieldType(fieldType);
1122
+ const hint = suggestion ? ` Did you mean "${suggestion}"?` : "";
1123
+ throw new TypeError(`registerItemFields fields[${index}].type "${fieldType}" is not a known field type ` +
1124
+ `(expected one of: ${KNOWN_ITEM_FIELD_TYPES.join(", ")}).${hint}`);
1125
+ }
1005
1126
  assertOptionalBooleanField(`registerItemFields fields[${index}].optional`, record.optional);
1006
1127
  }
1007
1128
  }
@@ -1102,6 +1223,15 @@ function assertExtensionCapability(extension, capability, method) {
1102
1223
  }
1103
1224
  }
1104
1225
  function createExtensionApi(extension, hooks, commands, parsers, preflight, services, renderers, registrations, activationWarnings, policy) {
1226
+ const selfIdentity = Object.freeze({
1227
+ name: extension.name,
1228
+ layer: extension.layer,
1229
+ version: extension.version,
1230
+ capabilities: Object.freeze((extension.capabilities ?? []).filter((capability) => KNOWN_EXTENSION_CAPABILITIES.includes(capability))),
1231
+ pm_min_version: extension.pm_min_version,
1232
+ pm_max_version: extension.pm_max_version,
1233
+ source_package: extension.source_package,
1234
+ });
1105
1235
  const extensionRef = {
1106
1236
  layer: extension.layer,
1107
1237
  name: extension.name,
@@ -1552,6 +1682,7 @@ function createExtensionApi(extension, hooks, commands, parsers, preflight, serv
1552
1682
  });
1553
1683
  };
1554
1684
  return {
1685
+ extension: selfIdentity,
1555
1686
  registerCommand,
1556
1687
  registerParser,
1557
1688
  registerPreflight,
@@ -1769,4 +1900,4 @@ export async function activateExtensions(loadResult) {
1769
1900
  };
1770
1901
  }
1771
1902
  //# sourceMappingURL=loader.js.map
1772
- //# debugId=54365547-c7be-5bd4-be2e-ca02f27aa365
1903
+ //# debugId=e5c4c469-142a-5854-82ca-a920130d2104