@unbrained/pm-cli 2026.6.21 → 2026.6.22

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 (406) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cli/commands/completion.js +5 -3
  3. package/dist/cli/commands/completion.js.map +1 -1
  4. package/dist/cli/commands/extension/doctor.d.ts +11 -0
  5. package/dist/cli/commands/extension/doctor.js +31 -2
  6. package/dist/cli/commands/extension/doctor.js.map +1 -1
  7. package/dist/cli/commands/extension/scaffold.d.ts +16 -2
  8. package/dist/cli/commands/extension/scaffold.js +481 -48
  9. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  10. package/dist/cli/commands/extension.d.ts +1 -0
  11. package/dist/cli/commands/extension.js +9 -4
  12. package/dist/cli/commands/extension.js.map +1 -1
  13. package/dist/cli/help-content.js +16 -4
  14. package/dist/cli/help-content.js.map +1 -1
  15. package/dist/cli/register-setup.js +6 -2
  16. package/dist/cli/register-setup.js.map +1 -1
  17. package/dist/cli-bundle/chunks/{activity-KW3IRP44.js → activity-DXS2XMQU.js} +11 -11
  18. package/dist/cli-bundle/chunks/activity-NEOI45NX.js +18 -0
  19. package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js → aggregate-IHM4KMQ3.js} +10 -10
  20. package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js → aggregate-NMYDVQF7.js} +10 -10
  21. package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js → append-3HY5G7ET.js} +8 -8
  22. package/dist/cli-bundle/chunks/{append-QEOLX3XB.js → append-K54MDQYC.js} +8 -8
  23. package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js → chunk-25XZN3JD.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js → chunk-2LEYMXI6.js} +4 -4
  25. package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js +643 -0
  26. package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js.map +1 -0
  27. package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js → chunk-3VLPDG3J.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js → chunk-44O4JIN6.js} +13 -13
  29. package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js → chunk-47HTJ6BU.js} +5 -5
  30. package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js → chunk-4JXWVHMN.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js → chunk-4SDKF5BG.js} +3 -3
  32. package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js +646 -0
  33. package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js.map +7 -0
  34. package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js → chunk-5SESR24H.js} +8 -8
  35. package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js → chunk-6FQHNHQQ.js} +3 -3
  36. package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js → chunk-6UPTNMVW.js} +5 -5
  37. package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js → chunk-75VEYQJS.js} +3 -3
  38. package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js → chunk-77VKGH4L.js} +10 -10
  39. package/dist/cli-bundle/chunks/{chunk-5PCI3UBT.js → chunk-7GCCDXXN.js} +55 -266
  40. package/dist/cli-bundle/chunks/chunk-7GCCDXXN.js.map +7 -0
  41. package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js → chunk-7MALIV5H.js} +9 -9
  42. package/dist/cli-bundle/chunks/{chunk-A4Z7ZOL5.js → chunk-7MPTFYT3.js} +20 -15
  43. package/dist/cli-bundle/chunks/chunk-7MPTFYT3.js.map +1 -0
  44. package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js → chunk-7PBGTIN3.js} +5 -5
  45. package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js → chunk-A25LOPRG.js} +2 -2
  46. package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js → chunk-A7E4ZXG2.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js → chunk-AJXYOYJV.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js → chunk-B2KR24R4.js} +9 -9
  49. package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js → chunk-C5SWTISA.js} +12 -12
  50. package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js → chunk-CLLVBO3I.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js → chunk-CR7KFPAQ.js} +3 -3
  52. package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js → chunk-CWPBGUC7.js} +2 -2
  53. package/dist/cli-bundle/chunks/{chunk-32R4PIC6.js → chunk-D35LTIFR.js} +55 -259
  54. package/dist/cli-bundle/chunks/chunk-D35LTIFR.js.map +1 -0
  55. package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js → chunk-DBQUQ3AS.js} +3 -3
  56. package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js → chunk-DHBPJ7VG.js} +2 -2
  57. package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js → chunk-DMT4ODVN.js} +2 -2
  58. package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js → chunk-DU64SZUQ.js} +2 -2
  59. package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js → chunk-EVPVCE4R.js} +3 -3
  60. package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js → chunk-FK6MV5F5.js} +12 -12
  61. package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js → chunk-GGAXE22C.js} +6 -6
  62. package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js → chunk-GNDHOR64.js} +6 -6
  63. package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js → chunk-GU7YHKYP.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js → chunk-GXBSFKSX.js} +4 -4
  65. package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js → chunk-H6FNDCDI.js} +5 -5
  66. package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js → chunk-HYQV75IB.js} +7 -7
  67. package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js → chunk-I367IDZP.js} +7 -7
  68. package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js → chunk-I6XE47J2.js} +5 -5
  69. package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js → chunk-J2TSPY5L.js} +4 -4
  70. package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js → chunk-JLSC5NPC.js} +10 -10
  71. package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js → chunk-JY25IOEZ.js} +5 -5
  72. package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js → chunk-K25UDYJ4.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js → chunk-KBTREGVO.js} +3 -3
  74. package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js → chunk-KK4TQ3ZP.js} +2 -2
  75. package/dist/cli-bundle/chunks/{chunk-434HM6Z5.js → chunk-KL5ELX2X.js} +81 -3
  76. package/dist/cli-bundle/chunks/chunk-KL5ELX2X.js.map +1 -0
  77. package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js → chunk-KRJJPDUO.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js → chunk-MD7XKVWI.js} +7 -7
  79. package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js → chunk-MNGAQB2E.js} +8 -8
  80. package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js → chunk-NIWY4V4Z.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js → chunk-NKZOJPXK.js} +3 -3
  82. package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js → chunk-NVUATMTC.js} +3 -3
  83. package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js → chunk-P7ZU73BO.js} +3 -3
  84. package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js → chunk-PCH2JTEO.js} +2 -2
  85. package/dist/cli-bundle/chunks/{chunk-B473GZWW.js → chunk-PJS2J7Z4.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js → chunk-QQWEROGS.js} +7 -7
  87. package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js → chunk-RPRFBXND.js} +3 -3
  88. package/dist/cli-bundle/chunks/{chunk-HMOADQVT.js → chunk-RZZMSY4P.js} +88 -3
  89. package/dist/cli-bundle/chunks/chunk-RZZMSY4P.js.map +7 -0
  90. package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js → chunk-SFKQAVZA.js} +8 -8
  91. package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js → chunk-THKDPOS5.js} +8 -8
  92. package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js → chunk-TIKJAXQW.js} +3 -3
  93. package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js → chunk-TJABI6PR.js} +5 -5
  94. package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js → chunk-TRUFOER3.js} +19 -14
  95. package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js.map → chunk-TRUFOER3.js.map} +2 -2
  96. package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js → chunk-TZQKEBKF.js} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js → chunk-UKK2VTTH.js} +9 -9
  98. package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js → chunk-V4SM4UAL.js} +13 -13
  99. package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js → chunk-VB54F347.js} +2 -2
  100. package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js → chunk-WBSYW3NT.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js → chunk-WQDX7DVG.js} +7 -7
  102. package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js → chunk-XKNF3VRJ.js} +5 -5
  103. package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js → chunk-Y335KFHD.js} +9 -9
  104. package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js → chunk-Y4BZEND6.js} +2 -2
  105. package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js → chunk-YATDFWYK.js} +7 -7
  106. package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js → chunk-YJICYNAV.js} +8 -8
  107. package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js → chunk-YQSWTVZF.js} +4 -4
  108. package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js → chunk-YRLLL5TY.js} +8 -8
  109. package/dist/cli-bundle/chunks/{claim-RC56YUWG.js → claim-MPXNVBZQ.js} +10 -10
  110. package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js → claim-SKHJDLW6.js} +10 -10
  111. package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js → close-4RKSL5L6.js} +8 -8
  112. package/dist/cli-bundle/chunks/close-Z6AI736U.js +15 -0
  113. package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js → close-many-AWTPXLHJ.js} +15 -15
  114. package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js → close-many-SXODYBDP.js} +15 -15
  115. package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js → comments-OOH64LWW.js} +10 -10
  116. package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js → comments-YYW5P7AG.js} +10 -10
  117. package/dist/cli-bundle/chunks/{config-OZCUABPB.js → config-3445MCQQ.js} +8 -8
  118. package/dist/cli-bundle/chunks/{config-7CK62S7T.js → config-LCDMKRB2.js} +8 -8
  119. package/dist/cli-bundle/chunks/{context-PUG2A7RC.js → context-DZMIBIVP.js} +13 -13
  120. package/dist/cli-bundle/chunks/{context-OEC366TO.js → context-PJCURODY.js} +13 -13
  121. package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js → contracts-7YDFEJB3.js} +4 -4
  122. package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js → contracts-MP2P3HL5.js} +4 -4
  123. package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js → copy-63IQQRRS.js} +7 -7
  124. package/dist/cli-bundle/chunks/{copy-6QLHILAC.js → copy-TASIH2AZ.js} +7 -7
  125. package/dist/cli-bundle/chunks/create-3BV2VA3Q.js +30 -0
  126. package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js → create-TGSB5GV4.js} +14 -14
  127. package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js → delete-ARILQQLB.js} +7 -7
  128. package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js → delete-ZQKBZYNK.js} +7 -7
  129. package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js → deps-MSHQR2GY.js} +7 -7
  130. package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js → deps-NJFJIMQ5.js} +7 -7
  131. package/dist/cli-bundle/chunks/{docs-C75YIXHC.js → docs-SS4UKYYA.js} +9 -9
  132. package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js → docs-XK2UVUXX.js} +9 -9
  133. package/dist/cli-bundle/chunks/{eval-GTENKE24.js → eval-FVZGX5IZ.js} +12 -12
  134. package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js → eval-JOTG2YHU.js} +12 -12
  135. package/dist/cli-bundle/chunks/{extension-46NWACO3.js → extension-NLMS47I4.js} +6 -5
  136. package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js → extension-OQPS27B4.js} +6 -5
  137. package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js → files-3EVJQZ2N.js} +9 -9
  138. package/dist/cli-bundle/chunks/{files-DSZBOSSN.js → files-Y2P6LN5A.js} +9 -9
  139. package/dist/cli-bundle/chunks/{focus-5STQXDPU.js → focus-D5ZUPTII.js} +8 -8
  140. package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js → focus-ZPIFTY4R.js} +8 -8
  141. package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js → gc-LXXDY456.js} +3 -3
  142. package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js → gc-RNOEQHSX.js} +3 -3
  143. package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js → get-Q3SZGQHD.js} +11 -11
  144. package/dist/cli-bundle/chunks/{get-J2IPJRZW.js → get-W23G7MJX.js} +11 -11
  145. package/dist/cli-bundle/chunks/{health-WOYBR3KU.js → health-5LHSX365.js} +14 -13
  146. package/dist/cli-bundle/chunks/{health-WOYBR3KU.js.map → health-5LHSX365.js.map} +1 -1
  147. package/dist/cli-bundle/chunks/{health-IVMA3XQC.js → health-UDDGJLPP.js} +16 -15
  148. package/dist/cli-bundle/chunks/{health-IVMA3XQC.js.map → health-UDDGJLPP.js.map} +1 -1
  149. package/dist/cli-bundle/chunks/{history-RLH2QCRO.js → history-6CZVFIUJ.js} +10 -10
  150. package/dist/cli-bundle/chunks/history-YRQUD4YM.js +20 -0
  151. package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js → history-compact-M35PDQ4G.js} +12 -12
  152. package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js → history-compact-VWUSQH6Z.js} +12 -12
  153. package/dist/cli-bundle/chunks/history-redact-27OEOZRZ.js +21 -0
  154. package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js → history-redact-AJGARHT3.js} +11 -11
  155. package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js → history-repair-5RDMF7K4.js} +12 -12
  156. package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js → history-repair-YUAHIPIN.js} +12 -12
  157. package/dist/cli-bundle/chunks/init-DWAKYRXI.js +21 -0
  158. package/dist/cli-bundle/chunks/{init-2BNZOO6F.js → init-HASX3YNJ.js} +11 -10
  159. package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js → learnings-JNGUIJDK.js} +10 -10
  160. package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js → learnings-M4KA6MQE.js} +10 -10
  161. package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js → list-5UU2W24O.js} +10 -10
  162. package/dist/cli-bundle/chunks/{list-K6FPV4J4.js → list-6FMKTIH3.js} +10 -10
  163. package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js → notes-MODH5CBT.js} +10 -10
  164. package/dist/cli-bundle/chunks/{notes-PU74EPKV.js → notes-PYCPLA5Y.js} +10 -10
  165. package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js → plan-DXRIRYRU.js} +14 -14
  166. package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js → plan-EHQALWSC.js} +14 -14
  167. package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js → register-list-query-QAASVP2J.js} +19 -19
  168. package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js → register-list-query-WE54YJMH.js} +19 -19
  169. package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js → register-mutation-B6DZJTY2.js} +33 -33
  170. package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js → register-mutation-CPV4C2KR.js} +33 -33
  171. package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js → register-operations-AT3BVVX2.js} +32 -32
  172. package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js → register-operations-RC4C3423.js} +32 -32
  173. package/dist/cli-bundle/chunks/{register-setup-EG2U6CEU.js → register-setup-HXEHMDHE.js} +23 -18
  174. package/dist/cli-bundle/chunks/register-setup-HXEHMDHE.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{register-setup-DYBFLEZX.js → register-setup-JSMJEFCJ.js} +24 -19
  176. package/dist/cli-bundle/chunks/register-setup-JSMJEFCJ.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js → restore-FNBV4GWE.js} +11 -11
  178. package/dist/cli-bundle/chunks/restore-XY4YE2OV.js +19 -0
  179. package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js → scheduling-shortcuts-ECL6GBMZ.js} +14 -14
  180. package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js → scheduling-shortcuts-JRIUREEU.js} +14 -14
  181. package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js → schema-74YENAJL.js} +9 -9
  182. package/dist/cli-bundle/chunks/{schema-263RI4WW.js → schema-TCW3I7QR.js} +9 -9
  183. package/dist/cli-bundle/chunks/{search-SFRJOVDG.js → search-7USZ6XZA.js} +12 -12
  184. package/dist/cli-bundle/chunks/{search-LECJYSXE.js → search-GNAUE65M.js} +12 -12
  185. package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js → stats-CVHASAEU.js} +8 -8
  186. package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js → stats-DQMKJMFT.js} +8 -8
  187. package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js → telemetry-7P5EUWCS.js} +4 -4
  188. package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js → telemetry-PQTL5YS2.js} +4 -4
  189. package/dist/cli-bundle/chunks/test-COWPCGBE.js +36 -0
  190. package/dist/cli-bundle/chunks/{test-3EGNS3T5.js → test-FDQZQNZ4.js} +16 -15
  191. package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js → test-all-PIPPS4S5.js} +18 -17
  192. package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js.map → test-all-PIPPS4S5.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js → test-all-WQIAZVA6.js} +16 -15
  194. package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js.map → test-all-WQIAZVA6.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js → test-runs-JS6DNCCI.js} +5 -5
  196. package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js → test-runs-NZD2QGL5.js} +5 -5
  197. package/dist/cli-bundle/chunks/update-7IYQHX4Q.js +24 -0
  198. package/dist/cli-bundle/chunks/update-IJKDRBIX.js +28 -0
  199. package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js → update-many-6NTZ5J5D.js} +23 -23
  200. package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js → update-many-B3TH5TDS.js} +23 -23
  201. package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js → upgrade-4C7VE7MS.js} +8 -7
  202. package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js.map → upgrade-4C7VE7MS.js.map} +1 -1
  203. package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js → upgrade-76IKZ6EZ.js} +6 -5
  204. package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js.map → upgrade-76IKZ6EZ.js.map} +1 -1
  205. package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js → validate-AQU7OCL3.js} +21 -20
  206. package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js.map → validate-AQU7OCL3.js.map} +1 -1
  207. package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js → validate-BPM6Z3OT.js} +23 -22
  208. package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js.map → validate-BPM6Z3OT.js.map} +1 -1
  209. package/dist/cli-bundle/main.js +34 -22
  210. package/dist/cli-bundle/main.js.map +2 -2
  211. package/dist/cli.js +3 -3
  212. package/dist/cli.js.map +1 -1
  213. package/dist/core/extensions/capability-usage.d.ts +82 -0
  214. package/dist/core/extensions/capability-usage.js +133 -0
  215. package/dist/core/extensions/capability-usage.js.map +1 -0
  216. package/dist/core/extensions/extension-capability-aliases.d.ts +7 -0
  217. package/dist/core/extensions/extension-capability-aliases.js +12 -2
  218. package/dist/core/extensions/extension-capability-aliases.js.map +1 -1
  219. package/dist/core/extensions/index.d.ts +1 -0
  220. package/dist/core/extensions/index.js +3 -2
  221. package/dist/core/extensions/index.js.map +1 -1
  222. package/dist/sdk/cli-contracts.d.ts +1 -0
  223. package/dist/sdk/cli-contracts.js +18 -13
  224. package/dist/sdk/cli-contracts.js.map +1 -1
  225. package/dist/sdk/index.d.ts +7 -2
  226. package/dist/sdk/index.js +8 -3
  227. package/dist/sdk/index.js.map +1 -1
  228. package/dist/sdk/testing.d.ts +520 -1
  229. package/dist/sdk/testing.js +477 -18
  230. package/dist/sdk/testing.js.map +1 -1
  231. package/docs/EXTENSIONS.md +4 -8
  232. package/docs/SDK.md +257 -0
  233. package/package.json +2 -2
  234. package/dist/cli-bundle/chunks/activity-CIHV64UC.js +0 -18
  235. package/dist/cli-bundle/chunks/chunk-32R4PIC6.js.map +0 -1
  236. package/dist/cli-bundle/chunks/chunk-434HM6Z5.js.map +0 -1
  237. package/dist/cli-bundle/chunks/chunk-5PCI3UBT.js.map +0 -7
  238. package/dist/cli-bundle/chunks/chunk-A4Z7ZOL5.js.map +0 -1
  239. package/dist/cli-bundle/chunks/chunk-HMOADQVT.js.map +0 -7
  240. package/dist/cli-bundle/chunks/close-DNMHGOCX.js +0 -15
  241. package/dist/cli-bundle/chunks/create-NNP6TSFO.js +0 -30
  242. package/dist/cli-bundle/chunks/history-WX3MGFS2.js +0 -20
  243. package/dist/cli-bundle/chunks/history-redact-YQGU3XRA.js +0 -21
  244. package/dist/cli-bundle/chunks/init-SC2P6CHP.js +0 -20
  245. package/dist/cli-bundle/chunks/register-setup-DYBFLEZX.js.map +0 -1
  246. package/dist/cli-bundle/chunks/register-setup-EG2U6CEU.js.map +0 -7
  247. package/dist/cli-bundle/chunks/restore-5KHR2YYQ.js +0 -19
  248. package/dist/cli-bundle/chunks/test-RQCTSWUK.js +0 -35
  249. package/dist/cli-bundle/chunks/update-6YXOGHRT.js +0 -24
  250. package/dist/cli-bundle/chunks/update-V33YUBRP.js +0 -28
  251. /package/dist/cli-bundle/chunks/{activity-KW3IRP44.js.map → activity-DXS2XMQU.js.map} +0 -0
  252. /package/dist/cli-bundle/chunks/{activity-CIHV64UC.js.map → activity-NEOI45NX.js.map} +0 -0
  253. /package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js.map → aggregate-IHM4KMQ3.js.map} +0 -0
  254. /package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js.map → aggregate-NMYDVQF7.js.map} +0 -0
  255. /package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js.map → append-3HY5G7ET.js.map} +0 -0
  256. /package/dist/cli-bundle/chunks/{append-QEOLX3XB.js.map → append-K54MDQYC.js.map} +0 -0
  257. /package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js.map → chunk-25XZN3JD.js.map} +0 -0
  258. /package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js.map → chunk-2LEYMXI6.js.map} +0 -0
  259. /package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js.map → chunk-3VLPDG3J.js.map} +0 -0
  260. /package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js.map → chunk-44O4JIN6.js.map} +0 -0
  261. /package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js.map → chunk-47HTJ6BU.js.map} +0 -0
  262. /package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js.map → chunk-4JXWVHMN.js.map} +0 -0
  263. /package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js.map → chunk-4SDKF5BG.js.map} +0 -0
  264. /package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js.map → chunk-5SESR24H.js.map} +0 -0
  265. /package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js.map → chunk-6FQHNHQQ.js.map} +0 -0
  266. /package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js.map → chunk-6UPTNMVW.js.map} +0 -0
  267. /package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js.map → chunk-75VEYQJS.js.map} +0 -0
  268. /package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js.map → chunk-77VKGH4L.js.map} +0 -0
  269. /package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js.map → chunk-7MALIV5H.js.map} +0 -0
  270. /package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js.map → chunk-7PBGTIN3.js.map} +0 -0
  271. /package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js.map → chunk-A25LOPRG.js.map} +0 -0
  272. /package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js.map → chunk-A7E4ZXG2.js.map} +0 -0
  273. /package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js.map → chunk-AJXYOYJV.js.map} +0 -0
  274. /package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js.map → chunk-B2KR24R4.js.map} +0 -0
  275. /package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js.map → chunk-C5SWTISA.js.map} +0 -0
  276. /package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js.map → chunk-CLLVBO3I.js.map} +0 -0
  277. /package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js.map → chunk-CR7KFPAQ.js.map} +0 -0
  278. /package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js.map → chunk-CWPBGUC7.js.map} +0 -0
  279. /package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js.map → chunk-DBQUQ3AS.js.map} +0 -0
  280. /package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js.map → chunk-DHBPJ7VG.js.map} +0 -0
  281. /package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js.map → chunk-DMT4ODVN.js.map} +0 -0
  282. /package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js.map → chunk-DU64SZUQ.js.map} +0 -0
  283. /package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js.map → chunk-EVPVCE4R.js.map} +0 -0
  284. /package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js.map → chunk-FK6MV5F5.js.map} +0 -0
  285. /package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js.map → chunk-GGAXE22C.js.map} +0 -0
  286. /package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js.map → chunk-GNDHOR64.js.map} +0 -0
  287. /package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js.map → chunk-GU7YHKYP.js.map} +0 -0
  288. /package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js.map → chunk-GXBSFKSX.js.map} +0 -0
  289. /package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js.map → chunk-H6FNDCDI.js.map} +0 -0
  290. /package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js.map → chunk-HYQV75IB.js.map} +0 -0
  291. /package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js.map → chunk-I367IDZP.js.map} +0 -0
  292. /package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js.map → chunk-I6XE47J2.js.map} +0 -0
  293. /package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js.map → chunk-J2TSPY5L.js.map} +0 -0
  294. /package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js.map → chunk-JLSC5NPC.js.map} +0 -0
  295. /package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js.map → chunk-JY25IOEZ.js.map} +0 -0
  296. /package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js.map → chunk-K25UDYJ4.js.map} +0 -0
  297. /package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js.map → chunk-KBTREGVO.js.map} +0 -0
  298. /package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js.map → chunk-KK4TQ3ZP.js.map} +0 -0
  299. /package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js.map → chunk-KRJJPDUO.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js.map → chunk-MD7XKVWI.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js.map → chunk-MNGAQB2E.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js.map → chunk-NIWY4V4Z.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js.map → chunk-NKZOJPXK.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js.map → chunk-NVUATMTC.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js.map → chunk-P7ZU73BO.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js.map → chunk-PCH2JTEO.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{chunk-B473GZWW.js.map → chunk-PJS2J7Z4.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js.map → chunk-QQWEROGS.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js.map → chunk-RPRFBXND.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js.map → chunk-SFKQAVZA.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js.map → chunk-THKDPOS5.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js.map → chunk-TIKJAXQW.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js.map → chunk-TJABI6PR.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js.map → chunk-TZQKEBKF.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js.map → chunk-UKK2VTTH.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js.map → chunk-V4SM4UAL.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js.map → chunk-VB54F347.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js.map → chunk-WBSYW3NT.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js.map → chunk-WQDX7DVG.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js.map → chunk-XKNF3VRJ.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js.map → chunk-Y335KFHD.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js.map → chunk-Y4BZEND6.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js.map → chunk-YATDFWYK.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js.map → chunk-YJICYNAV.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js.map → chunk-YQSWTVZF.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js.map → chunk-YRLLL5TY.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{claim-RC56YUWG.js.map → claim-MPXNVBZQ.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js.map → claim-SKHJDLW6.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js.map → close-4RKSL5L6.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{close-DNMHGOCX.js.map → close-Z6AI736U.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js.map → close-many-AWTPXLHJ.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js.map → close-many-SXODYBDP.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js.map → comments-OOH64LWW.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js.map → comments-YYW5P7AG.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{config-OZCUABPB.js.map → config-3445MCQQ.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{config-7CK62S7T.js.map → config-LCDMKRB2.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{context-PUG2A7RC.js.map → context-DZMIBIVP.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{context-OEC366TO.js.map → context-PJCURODY.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js.map → contracts-7YDFEJB3.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js.map → contracts-MP2P3HL5.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js.map → copy-63IQQRRS.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{copy-6QLHILAC.js.map → copy-TASIH2AZ.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{create-NNP6TSFO.js.map → create-3BV2VA3Q.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js.map → create-TGSB5GV4.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js.map → delete-ARILQQLB.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js.map → delete-ZQKBZYNK.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js.map → deps-MSHQR2GY.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js.map → deps-NJFJIMQ5.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{docs-C75YIXHC.js.map → docs-SS4UKYYA.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js.map → docs-XK2UVUXX.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{eval-GTENKE24.js.map → eval-FVZGX5IZ.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js.map → eval-JOTG2YHU.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{extension-46NWACO3.js.map → extension-NLMS47I4.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js.map → extension-OQPS27B4.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js.map → files-3EVJQZ2N.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{files-DSZBOSSN.js.map → files-Y2P6LN5A.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{focus-5STQXDPU.js.map → focus-D5ZUPTII.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js.map → focus-ZPIFTY4R.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js.map → gc-LXXDY456.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js.map → gc-RNOEQHSX.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js.map → get-Q3SZGQHD.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{get-J2IPJRZW.js.map → get-W23G7MJX.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{history-RLH2QCRO.js.map → history-6CZVFIUJ.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{history-WX3MGFS2.js.map → history-YRQUD4YM.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js.map → history-compact-M35PDQ4G.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js.map → history-compact-VWUSQH6Z.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{history-redact-YQGU3XRA.js.map → history-redact-27OEOZRZ.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js.map → history-redact-AJGARHT3.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js.map → history-repair-5RDMF7K4.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js.map → history-repair-YUAHIPIN.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{init-SC2P6CHP.js.map → init-DWAKYRXI.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{init-2BNZOO6F.js.map → init-HASX3YNJ.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js.map → learnings-JNGUIJDK.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js.map → learnings-M4KA6MQE.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js.map → list-5UU2W24O.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{list-K6FPV4J4.js.map → list-6FMKTIH3.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js.map → notes-MODH5CBT.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{notes-PU74EPKV.js.map → notes-PYCPLA5Y.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js.map → plan-DXRIRYRU.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js.map → plan-EHQALWSC.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js.map → register-list-query-QAASVP2J.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js.map → register-list-query-WE54YJMH.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js.map → register-mutation-B6DZJTY2.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js.map → register-mutation-CPV4C2KR.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js.map → register-operations-AT3BVVX2.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js.map → register-operations-RC4C3423.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js.map → restore-FNBV4GWE.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{restore-5KHR2YYQ.js.map → restore-XY4YE2OV.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js.map → scheduling-shortcuts-ECL6GBMZ.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js.map → scheduling-shortcuts-JRIUREEU.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js.map → schema-74YENAJL.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{schema-263RI4WW.js.map → schema-TCW3I7QR.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{search-SFRJOVDG.js.map → search-7USZ6XZA.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{search-LECJYSXE.js.map → search-GNAUE65M.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js.map → stats-CVHASAEU.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js.map → stats-DQMKJMFT.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js.map → telemetry-7P5EUWCS.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js.map → telemetry-PQTL5YS2.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{test-RQCTSWUK.js.map → test-COWPCGBE.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{test-3EGNS3T5.js.map → test-FDQZQNZ4.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js.map → test-runs-JS6DNCCI.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js.map → test-runs-NZD2QGL5.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{update-6YXOGHRT.js.map → update-7IYQHX4Q.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{update-V33YUBRP.js.map → update-IJKDRBIX.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js.map → update-many-6NTZ5J5D.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js.map → update-many-B3TH5TDS.js.map} +0 -0
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Defines public SDK APIs and package-author helpers for Testing.
5
5
  */
6
- import type { ExtensionActivationResult, ExtensionCapability, ExtensionCommandRegistry, ExtensionGovernancePolicy, ExtensionHookRegistry, ExtensionLayer, ExtensionParserRegistry, ExtensionPreflightRegistry, ExtensionRegistrationRegistry, ExtensionRendererRegistry, ExtensionServiceName, ExtensionServiceRegistry, FlagDefinition, OutputRendererFormat, RegisteredExtensionCommandDefinition, RegisteredExtensionCommandOverride, RegisteredExtensionExporter, RegisteredExtensionFlagDefinitions, RegisteredExtensionImporter, RegisteredExtensionParserOverride, RegisteredExtensionPreflightOverride, RegisteredExtensionRendererOverride, RegisteredExtensionSchemaFieldDefinitions, RegisteredExtensionSchemaItemTypeDefinitions, RegisteredExtensionSchemaMigrationDefinition, RegisteredExtensionSearchProvider, RegisteredExtensionServiceOverride, RegisteredExtensionVectorStoreAdapter, SchemaFieldDefinition, SchemaItemTypeDefinition } from "../core/extensions/loader.js";
6
+ import type { AfterCommandHookContext, BeforeCommandHookContext, CommandHandlerResult, CommandOverrideContext, CommandOverrideResult, ExtensionActivationResult, ExtensionCapability, ExtensionCommandRegistry, ExtensionDeactivationResult, ExtensionGovernancePolicy, ExtensionHookRegistry, ExtensionLayer, ExtensionParserRegistry, ExtensionPreflightRegistry, ExtensionRegistrationRegistry, ExtensionRendererRegistry, ExtensionServiceName, ExtensionServiceRegistry, FlagDefinition, OnIndexHookContext, OnReadHookContext, OnWriteHookContext, OutputRendererFormat, ParserOverrideContext, ParserOverrideResult, PreflightOverrideContext, PreflightOverrideResult, RegisteredExtensionCommandDefinition, RegisteredExtensionCommandOverride, RegisteredExtensionExporter, RegisteredExtensionFlagDefinitions, RegisteredExtensionImporter, RegisteredExtensionParserOverride, RegisteredExtensionPreflightOverride, RegisteredExtensionRendererOverride, RegisteredExtensionSchemaFieldDefinitions, RegisteredExtensionSchemaItemTypeDefinitions, RegisteredExtensionSchemaMigrationDefinition, RegisteredExtensionSearchProvider, RegisteredExtensionServiceOverride, RegisteredExtensionVectorStoreAdapter, RendererOverrideContext, RendererOverrideResult, SchemaFieldDefinition, SchemaItemTypeDefinition, SearchProviderEmbedBatchContext, SearchProviderEmbedContext, SearchProviderQueryContext, SearchProviderQueryExpansionContext, SearchProviderQueryExpansionResult, SearchProviderQueryResult, SearchProviderRerankContext, SearchProviderRerankResult, ServiceOverrideContext, ServiceOverrideResult, VectorStoreDeleteContext, VectorStoreQueryContext, VectorStoreQueryHit, VectorStoreUpsertContext } from "../core/extensions/loader.js";
7
+ import type { GlobalOptions } from "../core/shared/command-types.js";
7
8
  import type { PmPackageManifest, PmPackageResourceKind } from "../core/packages/manifest.js";
8
9
  /**
9
10
  * Documents the activate extension for test options payload exchanged by command, SDK, and package integrations.
@@ -14,6 +15,235 @@ export interface ActivateExtensionForTestOptions {
14
15
  capabilities?: readonly ExtensionCapability[];
15
16
  policy?: ExtensionGovernancePolicy;
16
17
  }
18
+ /**
19
+ * Documents the deactivate extension for test options payload exchanged by command, SDK, and package integrations.
20
+ */
21
+ export interface DeactivateExtensionForTestOptions {
22
+ /** Overrides the in-memory extension name (defaults to `manifest.name` or `"test-extension"`). */
23
+ name?: string;
24
+ /** Overrides the layer recorded for the in-memory extension (defaults to `"project"`). */
25
+ layer?: ExtensionLayer;
26
+ /**
27
+ * Activation result returned by `activateExtensionForTest`. When provided, an
28
+ * extension whose `activate` failed is skipped — mirroring the host teardown
29
+ * contract that never deactivates a never-initialized extension. Pass the same
30
+ * `name`/`layer` to both helpers so the skip key matches.
31
+ */
32
+ activation?: Pick<ExtensionActivationResult, "failed">;
33
+ /**
34
+ * Per-hook teardown bound, forwarded as `deactivate_timeout_ms`. Use `0` (or
35
+ * `Infinity`) to wait indefinitely; omit to keep the host default.
36
+ */
37
+ deactivateTimeoutMs?: number;
38
+ }
39
+ /**
40
+ * Options for {@link runRegisteredCommandForTest} — the inputs forwarded to a
41
+ * registered extension command handler when exercising its behavior in a test.
42
+ */
43
+ export interface RunRegisteredCommandForTestOptions {
44
+ /**
45
+ * Full registered command path to invoke, e.g. `"hello"` or `"todos import"`.
46
+ * Matched against `commands.handlers[].command` after normalization (trimmed,
47
+ * lower-cased, internal whitespace collapsed), mirroring runtime dispatch.
48
+ */
49
+ command: string;
50
+ /** Positional arguments forwarded as `context.args` (default: none). */
51
+ args?: readonly string[];
52
+ /** Parsed flags/options forwarded as `context.options` (default: none). */
53
+ options?: Record<string, unknown>;
54
+ /**
55
+ * Global option overrides merged onto the agent-safe test defaults
56
+ * (`{ json: true, quiet: true, noPager: true }`), forwarded as `context.global`.
57
+ */
58
+ global?: Partial<GlobalOptions>;
59
+ /**
60
+ * Resolved pm workspace root forwarded as `context.pm_root` (default: `""`).
61
+ * Most pure handlers ignore it; set it when the handler reads workspace files.
62
+ */
63
+ pmRoot?: string;
64
+ }
65
+ /**
66
+ * Options for {@link runRegisteredHookForTest} — the lifecycle `kind` to fire and
67
+ * the synthetic context handed to every registered hook of that kind.
68
+ *
69
+ * The union keeps `context` type-safe per kind: `kind: "on_write"` requires an
70
+ * {@link OnWriteHookContext}, `kind: "after_command"` an
71
+ * {@link AfterCommandHookContext}, and so on — so authors cannot accidentally
72
+ * pass an index context to a read hook.
73
+ */
74
+ export type RunRegisteredHookForTestOptions = {
75
+ kind: "before_command";
76
+ context: BeforeCommandHookContext;
77
+ } | {
78
+ kind: "after_command";
79
+ context: AfterCommandHookContext;
80
+ } | {
81
+ kind: "on_read";
82
+ context: OnReadHookContext;
83
+ } | {
84
+ kind: "on_write";
85
+ context: OnWriteHookContext;
86
+ } | {
87
+ kind: "on_index";
88
+ context: OnIndexHookContext;
89
+ };
90
+ /**
91
+ * Maps each invokable search-provider operation to the context type its function
92
+ * receives, keeping {@link runRegisteredSearchProviderForTest} type-safe per
93
+ * operation. Mirrors the operations the host dispatches to a registered provider:
94
+ * semantic `query`, single/batch embedding (`embed`/`embedBatch`),
95
+ * `queryExpansion`, and `rerank`.
96
+ */
97
+ export interface SearchProviderOperationContexts {
98
+ query: SearchProviderQueryContext;
99
+ embed: SearchProviderEmbedContext;
100
+ embedBatch: SearchProviderEmbedBatchContext;
101
+ queryExpansion: SearchProviderQueryExpansionContext;
102
+ rerank: SearchProviderRerankContext;
103
+ }
104
+ /**
105
+ * Maps each invokable search-provider operation to the result type its function
106
+ * returns, so {@link runRegisteredSearchProviderForTest} resolves a precise return
107
+ * type from the chosen `operation` instead of a union the caller must narrow.
108
+ */
109
+ export interface SearchProviderOperationResults {
110
+ query: SearchProviderQueryResult;
111
+ embed: number[];
112
+ embedBatch: number[][];
113
+ queryExpansion: SearchProviderQueryExpansionResult;
114
+ rerank: SearchProviderRerankResult;
115
+ }
116
+ /**
117
+ * Options for {@link runRegisteredSearchProviderForTest}: the registered
118
+ * `provider` name to resolve, the `operation` to invoke, and the synthetic
119
+ * `context` handed to that operation. The discriminated union keeps `context`
120
+ * type-safe per operation — `operation: "embed"` requires a
121
+ * {@link SearchProviderEmbedContext}, `operation: "rerank"` a
122
+ * {@link SearchProviderRerankContext}, and so on.
123
+ */
124
+ export type RunRegisteredSearchProviderForTestOptions = {
125
+ [Operation in keyof SearchProviderOperationContexts]: {
126
+ /** Registered provider name to resolve, matched case-insensitively as the host does. */
127
+ provider: string;
128
+ /** Provider operation to invoke. */
129
+ operation: Operation;
130
+ /** Synthetic context handed to the resolved operation function. */
131
+ context: SearchProviderOperationContexts[Operation];
132
+ };
133
+ }[keyof SearchProviderOperationContexts];
134
+ /**
135
+ * Maps each invokable vector-store-adapter operation to the context type its
136
+ * function receives, keeping {@link runRegisteredVectorStoreAdapterForTest}
137
+ * type-safe per operation. Mirrors the operations the host dispatches to a
138
+ * registered adapter: nearest-neighbour `query`, `upsert`, and `delete`.
139
+ */
140
+ export interface VectorStoreAdapterOperationContexts {
141
+ query: VectorStoreQueryContext;
142
+ upsert: VectorStoreUpsertContext;
143
+ delete: VectorStoreDeleteContext;
144
+ }
145
+ /**
146
+ * Maps each invokable vector-store-adapter operation to the result type its
147
+ * function returns. Only `query` has a structured result
148
+ * ({@link VectorStoreQueryHit}[]); `upsert`/`delete` report success by not
149
+ * throwing, so their result is `unknown` and typically ignored.
150
+ */
151
+ export interface VectorStoreAdapterOperationResults {
152
+ query: VectorStoreQueryHit[];
153
+ upsert: unknown;
154
+ delete: unknown;
155
+ }
156
+ /**
157
+ * Options for {@link runRegisteredVectorStoreAdapterForTest}: the registered
158
+ * `adapter` name to resolve, the `operation` to invoke, and the synthetic
159
+ * `context` handed to that operation. The discriminated union keeps `context`
160
+ * type-safe per operation — `operation: "upsert"` requires a
161
+ * {@link VectorStoreUpsertContext}, `operation: "delete"` a
162
+ * {@link VectorStoreDeleteContext}, and so on.
163
+ */
164
+ export type RunRegisteredVectorStoreAdapterForTestOptions = {
165
+ [Operation in keyof VectorStoreAdapterOperationContexts]: {
166
+ /** Registered adapter name to resolve, matched case-insensitively as the host does. */
167
+ adapter: string;
168
+ /** Adapter operation to invoke. */
169
+ operation: Operation;
170
+ /** Synthetic context handed to the resolved operation function. */
171
+ context: VectorStoreAdapterOperationContexts[Operation];
172
+ };
173
+ }[keyof VectorStoreAdapterOperationContexts];
174
+ /**
175
+ * Options for {@link runRegisteredMigrationForTest}: which registered migration
176
+ * to invoke and the workspace root its run context reports.
177
+ */
178
+ export interface RunRegisteredMigrationForTestOptions {
179
+ /** Registered migration id to resolve, matched case-insensitively against `definition.id`. */
180
+ migration: string;
181
+ /** Optional extension name to disambiguate when several extensions register the same id. */
182
+ extensionName?: string;
183
+ /** Resolved pm workspace root forwarded as `context.pm_root` (default `""`). */
184
+ pmRoot?: string;
185
+ }
186
+ /**
187
+ * Options for {@link runRegisteredImporterForTest} — the registered importer name
188
+ * to invoke plus the synthetic invocation context forwarded to its handler.
189
+ *
190
+ * The `importer` name is the value passed to `api.registerImporter(name, ...)`,
191
+ * resolved case-insensitively (and whitespace-collapsed) against
192
+ * `registrations.importers`; the helper derives the `"<name> import"` command
193
+ * path internally, so authors never hand-build it.
194
+ */
195
+ export interface RunRegisteredImporterForTestOptions {
196
+ /** Registered importer name to resolve, e.g. `"csv"` for a `"csv import"` handler. */
197
+ importer: string;
198
+ /** Optional extension name to disambiguate when several extensions register the same importer. */
199
+ extensionName?: string;
200
+ /** Positional arguments forwarded as `context.args` (default: none). */
201
+ args?: readonly string[];
202
+ /** Parsed flags/options forwarded as `context.options` (default: none). */
203
+ options?: Record<string, unknown>;
204
+ /**
205
+ * Global option overrides merged onto the agent-safe test defaults
206
+ * (`{ json: true, quiet: true, noPager: true }`), forwarded as `context.global`.
207
+ */
208
+ global?: Partial<GlobalOptions>;
209
+ /** Resolved pm workspace root forwarded as `context.pm_root` (default: `""`). */
210
+ pmRoot?: string;
211
+ }
212
+ /**
213
+ * Options for {@link runRegisteredExporterForTest} — the registered exporter name
214
+ * to invoke plus the synthetic invocation context forwarded to its handler.
215
+ *
216
+ * The `exporter` name is the value passed to `api.registerExporter(name, ...)`,
217
+ * resolved case-insensitively (and whitespace-collapsed) against
218
+ * `registrations.exporters`; the helper derives the `"<name> export"` command
219
+ * path internally, so authors never hand-build it.
220
+ */
221
+ export interface RunRegisteredExporterForTestOptions {
222
+ /** Registered exporter name to resolve, e.g. `"csv"` for a `"csv export"` handler. */
223
+ exporter: string;
224
+ /** Optional extension name to disambiguate when several extensions register the same exporter. */
225
+ extensionName?: string;
226
+ /** Positional arguments forwarded as `context.args` (default: none). */
227
+ args?: readonly string[];
228
+ /** Parsed flags/options forwarded as `context.options` (default: none). */
229
+ options?: Record<string, unknown>;
230
+ /**
231
+ * Global option overrides merged onto the agent-safe test defaults
232
+ * (`{ json: true, quiet: true, noPager: true }`), forwarded as `context.global`.
233
+ */
234
+ global?: Partial<GlobalOptions>;
235
+ /** Resolved pm workspace root forwarded as `context.pm_root` (default: `""`). */
236
+ pmRoot?: string;
237
+ }
238
+ /**
239
+ * Documents the extension deactivation expectation payload exchanged by command, SDK, and package integrations.
240
+ */
241
+ export interface ExtensionDeactivationExpectation {
242
+ /** Expected count of extensions whose `deactivate` ran without throwing (default `1`). */
243
+ deactivated?: number;
244
+ /** Expected count of teardown failures (default `0`). */
245
+ failed?: number;
246
+ }
17
247
  /**
18
248
  * Documents the registered command contract expectation payload exchanged by command, SDK, and package integrations.
19
249
  */
@@ -151,6 +381,35 @@ export interface RegisteredMigrationExpectation {
151
381
  extensionName?: string;
152
382
  mandatory?: boolean;
153
383
  }
384
+ /**
385
+ * Documents the extension capability usage expectation payload exchanged by command, SDK, and package integrations.
386
+ */
387
+ export interface ExtensionCapabilityUsageExpectation {
388
+ /**
389
+ * Capabilities the manifest declares. Mirror `manifest.capabilities` here so
390
+ * the assertion fails when the manifest grants more than the code uses.
391
+ */
392
+ declared: readonly ExtensionCapability[];
393
+ /** Restrict reconciliation to a single extension when the activation has several. */
394
+ extensionName?: string;
395
+ /**
396
+ * Capabilities allowed to be declared without being exercised (e.g. ones a
397
+ * runtime registers only behind a config flag). These are excluded from the
398
+ * least-privilege failure.
399
+ */
400
+ allowUnused?: readonly ExtensionCapability[];
401
+ }
402
+ /**
403
+ * Documents the extension capability usage assertion payload exchanged by command, SDK, and package integrations.
404
+ */
405
+ export interface ExtensionCapabilityUsageAssertion {
406
+ /** Declared capabilities considered, sorted and de-duplicated. */
407
+ declared: ExtensionCapability[];
408
+ /** Capabilities the extension actually registered against, sorted. */
409
+ used: ExtensionCapability[];
410
+ /** Declared capabilities with no matching registration after the allowlist. */
411
+ unused: ExtensionCapability[];
412
+ }
154
413
  /**
155
414
  * Restricts package manifest resource expectation values accepted by command, SDK, and storage contracts.
156
415
  */
@@ -170,6 +429,254 @@ export interface PackageManifestExpectation {
170
429
  * avoiding private loader imports, filesystem manifests, or workspace setup.
171
430
  */
172
431
  export declare function activateExtensionForTest(module: unknown, options?: ActivateExtensionForTestOptions): Promise<ExtensionActivationResult>;
432
+ /**
433
+ * Deactivate one in-memory extension module for package tests — the teardown
434
+ * counterpart to {@link activateExtensionForTest}.
435
+ *
436
+ * Runs pm's real `deactivateExtensions` engine (including its bounded per-hook
437
+ * timeout and best-effort failure capture) over a single synthetic load entry,
438
+ * so authors can prove an extension's `deactivate` releases the resources its
439
+ * `activate` opened — without importing private loader internals or staging a
440
+ * workspace. Resolve `name`/`layer` the same way {@link activateExtensionForTest}
441
+ * does so a forwarded `activation` result skips a failed extension correctly.
442
+ */
443
+ export declare function deactivateExtensionForTest(module: unknown, options?: DeactivateExtensionForTestOptions): Promise<ExtensionDeactivationResult>;
444
+ /**
445
+ * Invoke a registered extension command handler and return its real
446
+ * {@link CommandHandlerResult} so package tests can assert on behavior — not
447
+ * just that the command was registered.
448
+ *
449
+ * This is the "invoke" verb that completes the package-author testing loop:
450
+ * `activateExtensionForTest` → `assertRegisteredCommandContract` → **run** →
451
+ * `deactivateExtensionForTest`. It runs pm's real handler-dispatch engine
452
+ * (`runCommandHandler`) over `activation.commands`, building the
453
+ * `CommandHandlerContext` with agent-safe global defaults
454
+ * (`{ json: true, quiet: true, noPager: true }`) that callers may override.
455
+ *
456
+ * Because `registerImporter`/`registerExporter` register their handlers under
457
+ * the `"<name> import"` / `"<name> export"` command paths, this same helper
458
+ * exercises importer and exporter handlers too.
459
+ *
460
+ * Throws a descriptive error (listing the available handler command paths) when
461
+ * no handler is registered for `command`, since that is a wiring/typo bug in the
462
+ * test rather than a behavior under test. When a handler is found, the result is
463
+ * returned verbatim: a clean run yields `{ handled: true, result, warnings: [] }`,
464
+ * while a handler that throws a non-exit error yields
465
+ * `{ handled: false, warnings: [code], errorMessage }` so the failure can be
466
+ * asserted. A handler that throws an error carrying a numeric `exitCode`
467
+ * propagates the throw, matching runtime semantics.
468
+ */
469
+ export declare function runRegisteredCommandForTest(commands: ExtensionCommandRegistry, options: RunRegisteredCommandForTestOptions): Promise<CommandHandlerResult>;
470
+ /**
471
+ * Fire every registered lifecycle hook of a given `kind` through pm's real hook
472
+ * runner and return the warnings array so package tests can assert on behavior —
473
+ * not just that a hook was registered.
474
+ *
475
+ * This is the hook counterpart to {@link runRegisteredCommandForTest}, extending
476
+ * the package-author "invoke" verb to the `api.hooks.*` surface. Pass the
477
+ * `ExtensionHookRegistry` from `activateExtensionForTest(...).hooks` together with
478
+ * the lifecycle `kind` and a synthetic context. Hooks observe their inputs via a
479
+ * cloned context snapshot (mutations never leak back to the caller), so the
480
+ * observable signal is twofold: any side effects the hook performs, and the
481
+ * returned warnings. A clean run returns `[]`; a hook that throws contributes one
482
+ * `extension_hook_failed:<layer>:<name>:<hookName>` warning, mirroring runtime
483
+ * dispatch which isolates a failing hook without aborting the others.
484
+ *
485
+ * Throws a descriptive error (listing the hook kinds that do have registrations)
486
+ * when no hook of `kind` is registered, since firing a hook the extension never
487
+ * registered is a wiring/typo bug in the test rather than a behavior under test.
488
+ */
489
+ export declare function runRegisteredHookForTest(hooks: ExtensionHookRegistry, options: RunRegisteredHookForTestOptions): Promise<string[]>;
490
+ /**
491
+ * Invoke a registered parser override through pm's real runner and return the
492
+ * resolved {@link ParserOverrideResult}, so package tests can assert the rewritten
493
+ * args/options/global an override produces for a command before dispatch.
494
+ *
495
+ * Guards that a parser override is registered for the (normalized) target command
496
+ * before delegating: without a match `runParserOverride` would silently return
497
+ * `overridden: false`, hiding a typo'd command name in the test. When a match
498
+ * exists the result is returned verbatim — `overridden: true` with the rewritten
499
+ * context on success, or `overridden: false` with an
500
+ * `extension_parser_override_failed:*` warning when the override throws.
501
+ */
502
+ export declare function runRegisteredParserOverrideForTest(parsers: ExtensionParserRegistry, context: ParserOverrideContext): Promise<ParserOverrideResult>;
503
+ /**
504
+ * Invoke the active preflight override through pm's real runner and return the
505
+ * resolved {@link PreflightOverrideResult}, so package tests can assert the
506
+ * migration/format gate decision an override yields.
507
+ *
508
+ * Unlike command-scoped overrides, the runtime applies the **last** registered
509
+ * preflight override regardless of command, so this helper guards only that at
510
+ * least one preflight override is registered before delegating. The result is
511
+ * returned verbatim — `overridden: true` with the adjusted decision on success,
512
+ * or `overridden: false` with an `extension_preflight_override_failed:*` warning
513
+ * when the override throws.
514
+ */
515
+ export declare function runRegisteredPreflightOverrideForTest(preflight: ExtensionPreflightRegistry, context: PreflightOverrideContext): Promise<PreflightOverrideResult>;
516
+ /**
517
+ * Invoke a registered command-result override through pm's real runner and return
518
+ * the resolved {@link CommandOverrideResult}, so package tests can assert how an
519
+ * override transforms a command's result payload.
520
+ *
521
+ * Accepts the same `ExtensionCommandRegistry` exposed as
522
+ * `activateExtensionForTest(...).commands` (it carries both handlers and
523
+ * overrides). Guards that an override is registered for the (normalized) target
524
+ * command before delegating, so a typo'd command name surfaces as a clear error
525
+ * rather than a silent `overridden: false`. The result is returned verbatim —
526
+ * including the `extension_command_override_async_unsupported:*` warning the
527
+ * runtime emits when an override returns a Promise (command overrides are
528
+ * synchronous), or an `extension_command_override_failed:*` warning on throw.
529
+ */
530
+ export declare function runRegisteredCommandOverrideForTest(commands: ExtensionCommandRegistry, context: CommandOverrideContext): Promise<CommandOverrideResult>;
531
+ /**
532
+ * Invoke a registered renderer override through pm's real runner and return the
533
+ * resolved {@link RendererOverrideResult}, so package tests can assert the custom
534
+ * string an override renders for a given output `format`.
535
+ *
536
+ * Guards that a renderer override is registered for `context.format` before
537
+ * delegating, so a wrong format surfaces as a clear error rather than a silent
538
+ * `overridden: false`. The result is returned verbatim — `overridden: true` with
539
+ * the rendered string on success, or `overridden: false` (with an
540
+ * `extension_renderer_invalid_result:*` / `extension_renderer_failed:*` warning
541
+ * where applicable) when the override returns a non-string or throws.
542
+ */
543
+ export declare function runRegisteredRendererOverrideForTest(renderers: ExtensionRendererRegistry, context: RendererOverrideContext): Promise<RendererOverrideResult>;
544
+ /**
545
+ * Invoke a registered service override through pm's real runner and return the
546
+ * resolved {@link ServiceOverrideResult}, so package tests can assert how an
547
+ * override handles an internal service payload (e.g. `output_format`).
548
+ *
549
+ * Guards that a service override is registered for `context.service` before
550
+ * delegating, so a wrong service name surfaces as a clear error rather than a
551
+ * silent `handled: false`. The result is returned verbatim — `handled: true` with
552
+ * the override's result when it claims the payload, or `handled: false` with the
553
+ * original payload (and any `extension_service_override_*` warnings) otherwise.
554
+ */
555
+ export declare function runRegisteredServiceOverrideForTest(services: ExtensionServiceRegistry, context: ServiceOverrideContext): Promise<ServiceOverrideResult>;
556
+ /**
557
+ * Invoke an operation of a registered search provider through the same name
558
+ * resolution the host uses and return the operation's result, so package tests
559
+ * can assert a custom provider's runtime behavior — not just that it registered.
560
+ *
561
+ * This is the search-provider counterpart to {@link runRegisteredCommandForTest},
562
+ * extending the package-author "invoke" verb to the `api.registerSearchProvider`
563
+ * surface. Pass the `ExtensionRegistrationRegistry` from
564
+ * `activateExtensionForTest(...).registrations`, the registered provider name, the
565
+ * `operation` to exercise (`query`, `embed`, `embedBatch`, `queryExpansion`, or
566
+ * `rerank`), and a synthetic context. The provider is resolved via
567
+ * {@link resolveRegisteredSearchProvider} (case-insensitive, last registration
568
+ * wins) and the operation is invoked on its `runtime_definition` — the clone that
569
+ * preserves live functions, matching what the runtime dispatches.
570
+ *
571
+ * Throws a descriptive error listing the available providers when the name is not
572
+ * registered, and a separate error when the resolved provider does not implement
573
+ * the requested operation, since invoking an absent provider/operation is a
574
+ * wiring bug in the test rather than a behavior under test.
575
+ */
576
+ export declare function runRegisteredSearchProviderForTest<Operation extends keyof SearchProviderOperationContexts>(registrations: ExtensionRegistrationRegistry, options: {
577
+ provider: string;
578
+ operation: Operation;
579
+ context: SearchProviderOperationContexts[Operation];
580
+ }): Promise<SearchProviderOperationResults[Operation]>;
581
+ /**
582
+ * Invoke an operation of a registered vector store adapter through the same name
583
+ * resolution the host uses and return the operation's result, so package tests
584
+ * can assert a custom adapter's runtime behavior — not just that it registered.
585
+ *
586
+ * This is the vector-store counterpart to {@link runRegisteredSearchProviderForTest}.
587
+ * Pass the `ExtensionRegistrationRegistry` from
588
+ * `activateExtensionForTest(...).registrations`, the registered adapter name, the
589
+ * `operation` to exercise (`query`, `upsert`, or `delete`), and a synthetic
590
+ * context. The adapter is resolved via {@link resolveRegisteredVectorStoreAdapter}
591
+ * (case-insensitive, last registration wins) and the operation is invoked on its
592
+ * `runtime_definition` — the clone that preserves live functions, matching what
593
+ * the runtime dispatches.
594
+ *
595
+ * Throws a descriptive error listing the available adapters when the name is not
596
+ * registered, and a separate error when the resolved adapter does not implement
597
+ * the requested operation.
598
+ */
599
+ export declare function runRegisteredVectorStoreAdapterForTest<Operation extends keyof VectorStoreAdapterOperationContexts>(registrations: ExtensionRegistrationRegistry, options: {
600
+ adapter: string;
601
+ operation: Operation;
602
+ context: VectorStoreAdapterOperationContexts[Operation];
603
+ }): Promise<VectorStoreAdapterOperationResults[Operation]>;
604
+ /**
605
+ * Invoke a registered schema migration's `run` function through the same runtime
606
+ * definition the host executes and return its result, so package tests can assert
607
+ * a migration's behavior — not just that it registered.
608
+ *
609
+ * This completes the package-author "invoke" verb across every executable
610
+ * registration surface. The migration is resolved by id via
611
+ * {@link assertRegisteredMigration} (which throws a descriptive "available
612
+ * migrations" error when absent), then `run` is invoked on its
613
+ * `runtime_definition` with a context mirroring the one
614
+ * `executeRegisteredRuntimeMigrations` builds at runtime: the resolved id,
615
+ * `command: "migration"`, the registering extension's layer/name, the supplied
616
+ * `pmRoot`, and the migration's normalized status. Unlike the runtime — which
617
+ * skips already-applied migrations and folds a throw into a warning — this helper
618
+ * always invokes `run` and lets a throw propagate, so authors can assert both the
619
+ * success result and failure via rejection.
620
+ *
621
+ * Throws when the resolved migration declares no `run` function, since invoking a
622
+ * runless migration is a wiring bug in the test rather than a behavior under test.
623
+ */
624
+ export declare function runRegisteredMigrationForTest(registrations: ExtensionRegistrationRegistry, options: RunRegisteredMigrationForTestOptions): Promise<unknown>;
625
+ /**
626
+ * Invoke a registered extension importer through pm's real handler-dispatch
627
+ * engine and return its {@link CommandHandlerResult}, so package tests can assert
628
+ * an importer's behavior — not just that it registered.
629
+ *
630
+ * This is the importer counterpart to {@link runRegisteredCommandForTest},
631
+ * extending the package-author "invoke" verb to the `api.registerImporter`
632
+ * surface. Because `registerImporter(name, fn)` wraps `fn` into a command handler
633
+ * at the `"<name> import"` path, invoking it through `runRegisteredCommandForTest`
634
+ * requires the author to know that naming convention and to remember that an
635
+ * importer is reachable as a command at all. This helper closes both gaps: it
636
+ * accepts the registered importer name directly, validates via
637
+ * {@link assertRegisteredImporter} that it is genuinely a registered importer
638
+ * (not merely some command parked at that path), derives the command path, and
639
+ * dispatches through the same engine.
640
+ *
641
+ * The full activation result is required because importer execution spans two
642
+ * sub-registries: `registrations.importers` proves the importer exists, while
643
+ * `commands` holds the wrapped handler. The result is returned verbatim from the
644
+ * command engine: a clean run yields `{ handled: true, result, warnings: [] }`
645
+ * (where `result` is the importer's return value), a non-exit throw yields
646
+ * `{ handled: false, warnings: [code], errorMessage }`, and an error carrying a
647
+ * numeric `exitCode` propagates — matching runtime import semantics.
648
+ *
649
+ * Throws a descriptive "available importers" error (via `assertRegisteredImporter`)
650
+ * when no importer matches, since that is a wiring/typo bug in the test rather
651
+ * than a behavior under test.
652
+ */
653
+ export declare function runRegisteredImporterForTest(activation: ExtensionActivationResult, options: RunRegisteredImporterForTestOptions): Promise<CommandHandlerResult>;
654
+ /**
655
+ * Invoke a registered extension exporter through pm's real handler-dispatch
656
+ * engine and return its {@link CommandHandlerResult}, so package tests can assert
657
+ * an exporter's behavior — not just that it registered.
658
+ *
659
+ * This is the exporter counterpart to {@link runRegisteredImporterForTest} and
660
+ * the final surface in the package-author "invoke" verb. Because
661
+ * `registerExporter(name, fn)` wraps `fn` into a command handler at the
662
+ * `"<name> export"` path, this helper accepts the registered exporter name
663
+ * directly, validates via {@link assertRegisteredExporter} that it is genuinely a
664
+ * registered exporter, derives the command path, and dispatches through the same
665
+ * engine. See {@link runRegisteredImporterForTest} for the full activation
666
+ * rationale and return semantics (which apply identically here).
667
+ *
668
+ * Throws a descriptive "available exporters" error (via `assertRegisteredExporter`)
669
+ * when no exporter matches, since that is a wiring/typo bug in the test rather
670
+ * than a behavior under test.
671
+ */
672
+ export declare function runRegisteredExporterForTest(activation: ExtensionActivationResult, options: RunRegisteredExporterForTestOptions): Promise<CommandHandlerResult>;
673
+ /**
674
+ * Assert that an {@link ExtensionDeactivationResult} reports the expected clean
675
+ * teardown counts, throwing a descriptive error otherwise. Defaults assert the
676
+ * single-extension happy path — exactly one extension deactivated and none
677
+ * failed. Returns the result so assertions can chain.
678
+ */
679
+ export declare function assertExtensionDeactivated(result: ExtensionDeactivationResult, expectation?: ExtensionDeactivationExpectation): ExtensionDeactivationResult;
173
680
  /**
174
681
  * Assert that a normalized package manifest advertises expected package
175
682
  * resources. Pair with `readPmPackageManifest(packageRoot)` in package tests.
@@ -284,4 +791,16 @@ export declare function assertRegisteredServiceOverride(services: ExtensionServi
284
791
  * Migrations are surfaced via `ExtensionActivationResult.registrations.migrations`.
285
792
  */
286
793
  export declare function assertRegisteredMigration(registrations: ExtensionRegistrationRegistry, expectation: RegisteredMigrationExpectation): RegisteredExtensionSchemaMigrationDefinition;
794
+ /**
795
+ * Assert that an activated extension declares no capability it never uses
796
+ * (least privilege). Pass the same capabilities as `manifest.capabilities` via
797
+ * `expectation.declared`; the helper computes what the extension actually
798
+ * registered against and throws when any declared capability is unused.
799
+ *
800
+ * This is the package-test counterpart of the advisory
801
+ * `extension_capability_unused` warning `pm package doctor` emits, letting an
802
+ * author catch an over-broad manifest at `npm test` time. Returns the
803
+ * declared/used/unused breakdown for further assertions.
804
+ */
805
+ export declare function assertExtensionCapabilityUsage(activation: ExtensionActivationResult, expectation: ExtensionCapabilityUsageExpectation): ExtensionCapabilityUsageAssertion;
287
806
  export {};