@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.
- package/CHANGELOG.md +22 -0
- package/dist/cli/commands/completion.js +5 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/extension/doctor.d.ts +11 -0
- package/dist/cli/commands/extension/doctor.js +31 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +16 -2
- package/dist/cli/commands/extension/scaffold.js +481 -48
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +1 -0
- package/dist/cli/commands/extension.js +9 -4
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/help-content.js +16 -4
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/register-setup.js +6 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/{activity-KW3IRP44.js → activity-DXS2XMQU.js} +11 -11
- package/dist/cli-bundle/chunks/activity-NEOI45NX.js +18 -0
- package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js → aggregate-IHM4KMQ3.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js → aggregate-NMYDVQF7.js} +10 -10
- package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js → append-3HY5G7ET.js} +8 -8
- package/dist/cli-bundle/chunks/{append-QEOLX3XB.js → append-K54MDQYC.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js → chunk-25XZN3JD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js → chunk-2LEYMXI6.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js +643 -0
- package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js → chunk-3VLPDG3J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js → chunk-44O4JIN6.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js → chunk-47HTJ6BU.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js → chunk-4JXWVHMN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js → chunk-4SDKF5BG.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js +646 -0
- package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js → chunk-5SESR24H.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js → chunk-6FQHNHQQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js → chunk-6UPTNMVW.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js → chunk-75VEYQJS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js → chunk-77VKGH4L.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-5PCI3UBT.js → chunk-7GCCDXXN.js} +55 -266
- package/dist/cli-bundle/chunks/chunk-7GCCDXXN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js → chunk-7MALIV5H.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-A4Z7ZOL5.js → chunk-7MPTFYT3.js} +20 -15
- package/dist/cli-bundle/chunks/chunk-7MPTFYT3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js → chunk-7PBGTIN3.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js → chunk-A25LOPRG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js → chunk-A7E4ZXG2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js → chunk-AJXYOYJV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js → chunk-B2KR24R4.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js → chunk-C5SWTISA.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js → chunk-CLLVBO3I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js → chunk-CR7KFPAQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js → chunk-CWPBGUC7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-32R4PIC6.js → chunk-D35LTIFR.js} +55 -259
- package/dist/cli-bundle/chunks/chunk-D35LTIFR.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js → chunk-DBQUQ3AS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js → chunk-DHBPJ7VG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js → chunk-DMT4ODVN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js → chunk-DU64SZUQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js → chunk-EVPVCE4R.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js → chunk-FK6MV5F5.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js → chunk-GGAXE22C.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js → chunk-GNDHOR64.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js → chunk-GU7YHKYP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js → chunk-GXBSFKSX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js → chunk-H6FNDCDI.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js → chunk-HYQV75IB.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js → chunk-I367IDZP.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js → chunk-I6XE47J2.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js → chunk-J2TSPY5L.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js → chunk-JLSC5NPC.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js → chunk-JY25IOEZ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js → chunk-K25UDYJ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js → chunk-KBTREGVO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js → chunk-KK4TQ3ZP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-434HM6Z5.js → chunk-KL5ELX2X.js} +81 -3
- package/dist/cli-bundle/chunks/chunk-KL5ELX2X.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js → chunk-KRJJPDUO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js → chunk-MD7XKVWI.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js → chunk-MNGAQB2E.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js → chunk-NIWY4V4Z.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js → chunk-NKZOJPXK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js → chunk-NVUATMTC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js → chunk-P7ZU73BO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js → chunk-PCH2JTEO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B473GZWW.js → chunk-PJS2J7Z4.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js → chunk-QQWEROGS.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js → chunk-RPRFBXND.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HMOADQVT.js → chunk-RZZMSY4P.js} +88 -3
- package/dist/cli-bundle/chunks/chunk-RZZMSY4P.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js → chunk-SFKQAVZA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js → chunk-THKDPOS5.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js → chunk-TIKJAXQW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js → chunk-TJABI6PR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js → chunk-TRUFOER3.js} +19 -14
- package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js.map → chunk-TRUFOER3.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js → chunk-TZQKEBKF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js → chunk-UKK2VTTH.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js → chunk-V4SM4UAL.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js → chunk-VB54F347.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js → chunk-WBSYW3NT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js → chunk-WQDX7DVG.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js → chunk-XKNF3VRJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js → chunk-Y335KFHD.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js → chunk-Y4BZEND6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js → chunk-YATDFWYK.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js → chunk-YJICYNAV.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js → chunk-YQSWTVZF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js → chunk-YRLLL5TY.js} +8 -8
- package/dist/cli-bundle/chunks/{claim-RC56YUWG.js → claim-MPXNVBZQ.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js → claim-SKHJDLW6.js} +10 -10
- package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js → close-4RKSL5L6.js} +8 -8
- package/dist/cli-bundle/chunks/close-Z6AI736U.js +15 -0
- package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js → close-many-AWTPXLHJ.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js → close-many-SXODYBDP.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js → comments-OOH64LWW.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js → comments-YYW5P7AG.js} +10 -10
- package/dist/cli-bundle/chunks/{config-OZCUABPB.js → config-3445MCQQ.js} +8 -8
- package/dist/cli-bundle/chunks/{config-7CK62S7T.js → config-LCDMKRB2.js} +8 -8
- package/dist/cli-bundle/chunks/{context-PUG2A7RC.js → context-DZMIBIVP.js} +13 -13
- package/dist/cli-bundle/chunks/{context-OEC366TO.js → context-PJCURODY.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js → contracts-7YDFEJB3.js} +4 -4
- package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js → contracts-MP2P3HL5.js} +4 -4
- package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js → copy-63IQQRRS.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-6QLHILAC.js → copy-TASIH2AZ.js} +7 -7
- package/dist/cli-bundle/chunks/create-3BV2VA3Q.js +30 -0
- package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js → create-TGSB5GV4.js} +14 -14
- package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js → delete-ARILQQLB.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js → delete-ZQKBZYNK.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js → deps-MSHQR2GY.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js → deps-NJFJIMQ5.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-C75YIXHC.js → docs-SS4UKYYA.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js → docs-XK2UVUXX.js} +9 -9
- package/dist/cli-bundle/chunks/{eval-GTENKE24.js → eval-FVZGX5IZ.js} +12 -12
- package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js → eval-JOTG2YHU.js} +12 -12
- package/dist/cli-bundle/chunks/{extension-46NWACO3.js → extension-NLMS47I4.js} +6 -5
- package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js → extension-OQPS27B4.js} +6 -5
- package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js → files-3EVJQZ2N.js} +9 -9
- package/dist/cli-bundle/chunks/{files-DSZBOSSN.js → files-Y2P6LN5A.js} +9 -9
- package/dist/cli-bundle/chunks/{focus-5STQXDPU.js → focus-D5ZUPTII.js} +8 -8
- package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js → focus-ZPIFTY4R.js} +8 -8
- package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js → gc-LXXDY456.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js → gc-RNOEQHSX.js} +3 -3
- package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js → get-Q3SZGQHD.js} +11 -11
- package/dist/cli-bundle/chunks/{get-J2IPJRZW.js → get-W23G7MJX.js} +11 -11
- package/dist/cli-bundle/chunks/{health-WOYBR3KU.js → health-5LHSX365.js} +14 -13
- package/dist/cli-bundle/chunks/{health-WOYBR3KU.js.map → health-5LHSX365.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-IVMA3XQC.js → health-UDDGJLPP.js} +16 -15
- package/dist/cli-bundle/chunks/{health-IVMA3XQC.js.map → health-UDDGJLPP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-RLH2QCRO.js → history-6CZVFIUJ.js} +10 -10
- package/dist/cli-bundle/chunks/history-YRQUD4YM.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js → history-compact-M35PDQ4G.js} +12 -12
- package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js → history-compact-VWUSQH6Z.js} +12 -12
- package/dist/cli-bundle/chunks/history-redact-27OEOZRZ.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js → history-redact-AJGARHT3.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js → history-repair-5RDMF7K4.js} +12 -12
- package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js → history-repair-YUAHIPIN.js} +12 -12
- package/dist/cli-bundle/chunks/init-DWAKYRXI.js +21 -0
- package/dist/cli-bundle/chunks/{init-2BNZOO6F.js → init-HASX3YNJ.js} +11 -10
- package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js → learnings-JNGUIJDK.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js → learnings-M4KA6MQE.js} +10 -10
- package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js → list-5UU2W24O.js} +10 -10
- package/dist/cli-bundle/chunks/{list-K6FPV4J4.js → list-6FMKTIH3.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js → notes-MODH5CBT.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-PU74EPKV.js → notes-PYCPLA5Y.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js → plan-DXRIRYRU.js} +14 -14
- package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js → plan-EHQALWSC.js} +14 -14
- package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js → register-list-query-QAASVP2J.js} +19 -19
- package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js → register-list-query-WE54YJMH.js} +19 -19
- package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js → register-mutation-B6DZJTY2.js} +33 -33
- package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js → register-mutation-CPV4C2KR.js} +33 -33
- package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js → register-operations-AT3BVVX2.js} +32 -32
- package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js → register-operations-RC4C3423.js} +32 -32
- package/dist/cli-bundle/chunks/{register-setup-EG2U6CEU.js → register-setup-HXEHMDHE.js} +23 -18
- package/dist/cli-bundle/chunks/register-setup-HXEHMDHE.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-DYBFLEZX.js → register-setup-JSMJEFCJ.js} +24 -19
- package/dist/cli-bundle/chunks/register-setup-JSMJEFCJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js → restore-FNBV4GWE.js} +11 -11
- package/dist/cli-bundle/chunks/restore-XY4YE2OV.js +19 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js → scheduling-shortcuts-ECL6GBMZ.js} +14 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js → scheduling-shortcuts-JRIUREEU.js} +14 -14
- package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js → schema-74YENAJL.js} +9 -9
- package/dist/cli-bundle/chunks/{schema-263RI4WW.js → schema-TCW3I7QR.js} +9 -9
- package/dist/cli-bundle/chunks/{search-SFRJOVDG.js → search-7USZ6XZA.js} +12 -12
- package/dist/cli-bundle/chunks/{search-LECJYSXE.js → search-GNAUE65M.js} +12 -12
- package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js → stats-CVHASAEU.js} +8 -8
- package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js → stats-DQMKJMFT.js} +8 -8
- package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js → telemetry-7P5EUWCS.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js → telemetry-PQTL5YS2.js} +4 -4
- package/dist/cli-bundle/chunks/test-COWPCGBE.js +36 -0
- package/dist/cli-bundle/chunks/{test-3EGNS3T5.js → test-FDQZQNZ4.js} +16 -15
- package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js → test-all-PIPPS4S5.js} +18 -17
- package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js.map → test-all-PIPPS4S5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js → test-all-WQIAZVA6.js} +16 -15
- package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js.map → test-all-WQIAZVA6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js → test-runs-JS6DNCCI.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js → test-runs-NZD2QGL5.js} +5 -5
- package/dist/cli-bundle/chunks/update-7IYQHX4Q.js +24 -0
- package/dist/cli-bundle/chunks/update-IJKDRBIX.js +28 -0
- package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js → update-many-6NTZ5J5D.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js → update-many-B3TH5TDS.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js → upgrade-4C7VE7MS.js} +8 -7
- package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js.map → upgrade-4C7VE7MS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js → upgrade-76IKZ6EZ.js} +6 -5
- package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js.map → upgrade-76IKZ6EZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js → validate-AQU7OCL3.js} +21 -20
- package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js.map → validate-AQU7OCL3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js → validate-BPM6Z3OT.js} +23 -22
- package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js.map → validate-BPM6Z3OT.js.map} +1 -1
- package/dist/cli-bundle/main.js +34 -22
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/capability-usage.d.ts +82 -0
- package/dist/core/extensions/capability-usage.js +133 -0
- package/dist/core/extensions/capability-usage.js.map +1 -0
- package/dist/core/extensions/extension-capability-aliases.d.ts +7 -0
- package/dist/core/extensions/extension-capability-aliases.js +12 -2
- package/dist/core/extensions/extension-capability-aliases.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.js +3 -2
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts.js +18 -13
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +7 -2
- package/dist/sdk/index.js +8 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +520 -1
- package/dist/sdk/testing.js +477 -18
- package/dist/sdk/testing.js.map +1 -1
- package/docs/EXTENSIONS.md +4 -8
- package/docs/SDK.md +257 -0
- package/package.json +2 -2
- package/dist/cli-bundle/chunks/activity-CIHV64UC.js +0 -18
- package/dist/cli-bundle/chunks/chunk-32R4PIC6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-434HM6Z5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5PCI3UBT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A4Z7ZOL5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HMOADQVT.js.map +0 -7
- package/dist/cli-bundle/chunks/close-DNMHGOCX.js +0 -15
- package/dist/cli-bundle/chunks/create-NNP6TSFO.js +0 -30
- package/dist/cli-bundle/chunks/history-WX3MGFS2.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-YQGU3XRA.js +0 -21
- package/dist/cli-bundle/chunks/init-SC2P6CHP.js +0 -20
- package/dist/cli-bundle/chunks/register-setup-DYBFLEZX.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-EG2U6CEU.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-5KHR2YYQ.js +0 -19
- package/dist/cli-bundle/chunks/test-RQCTSWUK.js +0 -35
- package/dist/cli-bundle/chunks/update-6YXOGHRT.js +0 -24
- package/dist/cli-bundle/chunks/update-V33YUBRP.js +0 -28
- /package/dist/cli-bundle/chunks/{activity-KW3IRP44.js.map → activity-DXS2XMQU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-CIHV64UC.js.map → activity-NEOI45NX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js.map → aggregate-IHM4KMQ3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js.map → aggregate-NMYDVQF7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js.map → append-3HY5G7ET.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-QEOLX3XB.js.map → append-K54MDQYC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js.map → chunk-25XZN3JD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js.map → chunk-2LEYMXI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js.map → chunk-3VLPDG3J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js.map → chunk-44O4JIN6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js.map → chunk-47HTJ6BU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js.map → chunk-4JXWVHMN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js.map → chunk-4SDKF5BG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js.map → chunk-5SESR24H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js.map → chunk-6FQHNHQQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js.map → chunk-6UPTNMVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js.map → chunk-75VEYQJS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js.map → chunk-77VKGH4L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js.map → chunk-7MALIV5H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js.map → chunk-7PBGTIN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js.map → chunk-A25LOPRG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js.map → chunk-A7E4ZXG2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js.map → chunk-AJXYOYJV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js.map → chunk-B2KR24R4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js.map → chunk-C5SWTISA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js.map → chunk-CLLVBO3I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js.map → chunk-CR7KFPAQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js.map → chunk-CWPBGUC7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js.map → chunk-DBQUQ3AS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js.map → chunk-DHBPJ7VG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js.map → chunk-DMT4ODVN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js.map → chunk-DU64SZUQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js.map → chunk-EVPVCE4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js.map → chunk-FK6MV5F5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js.map → chunk-GGAXE22C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js.map → chunk-GNDHOR64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js.map → chunk-GU7YHKYP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js.map → chunk-GXBSFKSX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js.map → chunk-H6FNDCDI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js.map → chunk-HYQV75IB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js.map → chunk-I367IDZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js.map → chunk-I6XE47J2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js.map → chunk-J2TSPY5L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js.map → chunk-JLSC5NPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js.map → chunk-JY25IOEZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js.map → chunk-K25UDYJ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js.map → chunk-KBTREGVO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js.map → chunk-KK4TQ3ZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js.map → chunk-KRJJPDUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js.map → chunk-MD7XKVWI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js.map → chunk-MNGAQB2E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js.map → chunk-NIWY4V4Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js.map → chunk-NKZOJPXK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js.map → chunk-NVUATMTC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js.map → chunk-P7ZU73BO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js.map → chunk-PCH2JTEO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B473GZWW.js.map → chunk-PJS2J7Z4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js.map → chunk-QQWEROGS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js.map → chunk-RPRFBXND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js.map → chunk-SFKQAVZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js.map → chunk-THKDPOS5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js.map → chunk-TIKJAXQW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js.map → chunk-TJABI6PR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js.map → chunk-TZQKEBKF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js.map → chunk-UKK2VTTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js.map → chunk-V4SM4UAL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js.map → chunk-VB54F347.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js.map → chunk-WBSYW3NT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js.map → chunk-WQDX7DVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js.map → chunk-XKNF3VRJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js.map → chunk-Y335KFHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js.map → chunk-Y4BZEND6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js.map → chunk-YATDFWYK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js.map → chunk-YJICYNAV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js.map → chunk-YQSWTVZF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js.map → chunk-YRLLL5TY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-RC56YUWG.js.map → claim-MPXNVBZQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js.map → claim-SKHJDLW6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js.map → close-4RKSL5L6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-DNMHGOCX.js.map → close-Z6AI736U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js.map → close-many-AWTPXLHJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js.map → close-many-SXODYBDP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js.map → comments-OOH64LWW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js.map → comments-YYW5P7AG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-OZCUABPB.js.map → config-3445MCQQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-7CK62S7T.js.map → config-LCDMKRB2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-PUG2A7RC.js.map → context-DZMIBIVP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-OEC366TO.js.map → context-PJCURODY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js.map → contracts-7YDFEJB3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js.map → contracts-MP2P3HL5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js.map → copy-63IQQRRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-6QLHILAC.js.map → copy-TASIH2AZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-NNP6TSFO.js.map → create-3BV2VA3Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js.map → create-TGSB5GV4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js.map → delete-ARILQQLB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js.map → delete-ZQKBZYNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js.map → deps-MSHQR2GY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js.map → deps-NJFJIMQ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-C75YIXHC.js.map → docs-SS4UKYYA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js.map → docs-XK2UVUXX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-GTENKE24.js.map → eval-FVZGX5IZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js.map → eval-JOTG2YHU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-46NWACO3.js.map → extension-NLMS47I4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js.map → extension-OQPS27B4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js.map → files-3EVJQZ2N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-DSZBOSSN.js.map → files-Y2P6LN5A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-5STQXDPU.js.map → focus-D5ZUPTII.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js.map → focus-ZPIFTY4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js.map → gc-LXXDY456.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js.map → gc-RNOEQHSX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js.map → get-Q3SZGQHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-J2IPJRZW.js.map → get-W23G7MJX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-RLH2QCRO.js.map → history-6CZVFIUJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-WX3MGFS2.js.map → history-YRQUD4YM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js.map → history-compact-M35PDQ4G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js.map → history-compact-VWUSQH6Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-YQGU3XRA.js.map → history-redact-27OEOZRZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js.map → history-redact-AJGARHT3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js.map → history-repair-5RDMF7K4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js.map → history-repair-YUAHIPIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-SC2P6CHP.js.map → init-DWAKYRXI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-2BNZOO6F.js.map → init-HASX3YNJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js.map → learnings-JNGUIJDK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js.map → learnings-M4KA6MQE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js.map → list-5UU2W24O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-K6FPV4J4.js.map → list-6FMKTIH3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js.map → notes-MODH5CBT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-PU74EPKV.js.map → notes-PYCPLA5Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js.map → plan-DXRIRYRU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js.map → plan-EHQALWSC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js.map → register-list-query-QAASVP2J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js.map → register-list-query-WE54YJMH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js.map → register-mutation-B6DZJTY2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js.map → register-mutation-CPV4C2KR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js.map → register-operations-AT3BVVX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js.map → register-operations-RC4C3423.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js.map → restore-FNBV4GWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-5KHR2YYQ.js.map → restore-XY4YE2OV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js.map → scheduling-shortcuts-ECL6GBMZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js.map → scheduling-shortcuts-JRIUREEU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js.map → schema-74YENAJL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-263RI4WW.js.map → schema-TCW3I7QR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-SFRJOVDG.js.map → search-7USZ6XZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-LECJYSXE.js.map → search-GNAUE65M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js.map → stats-CVHASAEU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js.map → stats-DQMKJMFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js.map → telemetry-7P5EUWCS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js.map → telemetry-PQTL5YS2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-RQCTSWUK.js.map → test-COWPCGBE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-3EGNS3T5.js.map → test-FDQZQNZ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js.map → test-runs-JS6DNCCI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js.map → test-runs-NZD2QGL5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-6YXOGHRT.js.map → update-7IYQHX4Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-V33YUBRP.js.map → update-IJKDRBIX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js.map → update-many-6NTZ5J5D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js.map → update-many-B3TH5TDS.js.map} +0 -0
package/dist/sdk/testing.d.ts
CHANGED
|
@@ -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 {};
|