@unbrained/pm-cli 2026.7.5 → 2026.7.6
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 +10 -0
- package/dist/cli-bundle/chunks/activity-WJCGCYPU.js +18 -0
- package/dist/cli-bundle/chunks/activity-Z6QUAUSG.js +22 -0
- package/dist/cli-bundle/chunks/aggregate-BDM6EIAR.js +25 -0
- package/dist/cli-bundle/chunks/aggregate-VQ2DHU3S.js +21 -0
- package/dist/cli-bundle/chunks/append-BGML6VLD.js +19 -0
- package/dist/cli-bundle/chunks/append-RKJYPU74.js +15 -0
- package/dist/cli-bundle/chunks/chunk-22KBU3MW.js +57 -0
- package/dist/cli-bundle/chunks/chunk-24YG75HI.js +634 -0
- package/dist/cli-bundle/chunks/chunk-2XG4IZON.js +218 -0
- package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js +228 -0
- package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js +2330 -0
- package/dist/cli-bundle/chunks/chunk-3N6RRO2Q.js +808 -0
- package/dist/cli-bundle/chunks/chunk-3N6RRO2Q.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-3UJRFJ5R.js +1573 -0
- package/dist/cli-bundle/chunks/chunk-3VHSI5FL.js +1001 -0
- package/dist/cli-bundle/chunks/chunk-425E4QL5.js +278 -0
- package/dist/cli-bundle/chunks/chunk-425E4QL5.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-45FYNUFJ.js +38 -0
- package/dist/cli-bundle/chunks/chunk-45FYNUFJ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-46CUF5L6.js +1018 -0
- package/dist/cli-bundle/chunks/chunk-4CJFCTLM.js +222 -0
- package/dist/cli-bundle/chunks/chunk-4CJFCTLM.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js +249 -0
- package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js +819 -0
- package/dist/cli-bundle/chunks/chunk-4LELACOL.js +391 -0
- package/dist/cli-bundle/chunks/chunk-4LELACOL.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js +279 -0
- package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4ZBE5GUN.js +184 -0
- package/dist/cli-bundle/chunks/chunk-4ZBE5GUN.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-57NWPFF2.js +5640 -0
- package/dist/cli-bundle/chunks/chunk-57NWPFF2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js +268 -0
- package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js +508 -0
- package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js +1868 -0
- package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js +1749 -0
- package/dist/cli-bundle/chunks/chunk-64YKRTSV.js +1961 -0
- package/dist/cli-bundle/chunks/chunk-6LLVNJXT.js +429 -0
- package/dist/cli-bundle/chunks/chunk-6QBJLYBP.js +120 -0
- package/dist/cli-bundle/chunks/chunk-6QBJLYBP.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-7D7OOEYG.js +278 -0
- package/dist/cli-bundle/chunks/chunk-7D7OOEYG.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-7DT4WSH2.js +60 -0
- package/dist/cli-bundle/chunks/chunk-7WBAJSS6.js +102 -0
- package/dist/cli-bundle/chunks/chunk-AGHMOTGM.js +150 -0
- package/dist/cli-bundle/chunks/chunk-ALFPSEWO.js +112 -0
- package/dist/cli-bundle/chunks/chunk-AZYGZGGI.js +361 -0
- package/dist/cli-bundle/chunks/chunk-B6DUFX6H.js +1413 -0
- package/dist/cli-bundle/chunks/chunk-B6XS3R3O.js +275 -0
- package/dist/cli-bundle/chunks/chunk-B6XS3R3O.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js +421 -0
- package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js +1985 -0
- package/dist/cli-bundle/chunks/chunk-CFB33L7W.js +398 -0
- package/dist/cli-bundle/chunks/chunk-CFNGIXZP.js +784 -0
- package/dist/cli-bundle/chunks/chunk-CFNGIXZP.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-CL36D4PC.js +225 -0
- package/dist/cli-bundle/chunks/chunk-COSPOP7H.js +6677 -0
- package/dist/cli-bundle/chunks/chunk-COSPOP7H.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-COWTDV6B.js +3461 -0
- package/dist/cli-bundle/chunks/chunk-COWTDV6B.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-CRVYGJUI.js +553 -0
- package/dist/cli-bundle/chunks/chunk-CRVYGJUI.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-D2XRLB55.js +645 -0
- package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js +1858 -0
- package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js +1063 -0
- package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js +1932 -0
- package/dist/cli-bundle/chunks/chunk-E42XTBSP.js +1359 -0
- package/dist/cli-bundle/chunks/chunk-E42XTBSP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-EBRZZ54H.js +655 -0
- package/dist/cli-bundle/chunks/chunk-EBRZZ54H.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js +4712 -0
- package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-EGY6JBQ3.js +160 -0
- package/dist/cli-bundle/chunks/chunk-EKFNL33R.js +222 -0
- package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js +1704 -0
- package/dist/cli-bundle/chunks/chunk-EOKXK3R3.js +2046 -0
- package/dist/cli-bundle/chunks/chunk-F3K4JGFD.js +121 -0
- package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js +231 -0
- package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js +2090 -0
- package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-FT3QTERD.js +550 -0
- package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js +1570 -0
- package/dist/cli-bundle/chunks/chunk-G64OCSKU.js +444 -0
- package/dist/cli-bundle/chunks/chunk-GANUTS7W.js +1775 -0
- package/dist/cli-bundle/chunks/chunk-GBAX2ZAQ.js +401 -0
- package/dist/cli-bundle/chunks/chunk-GDDAGPWJ.js +105 -0
- package/dist/cli-bundle/chunks/chunk-GDDAGPWJ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js +239 -0
- package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GJ7QC5DJ.js +624 -0
- package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js +530 -0
- package/dist/cli-bundle/chunks/chunk-GZRDYONU.js +1005 -0
- package/dist/cli-bundle/chunks/chunk-HFDADVJZ.js +1356 -0
- package/dist/cli-bundle/chunks/chunk-HFDADVJZ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-HIHMT6WS.js +41 -0
- package/dist/cli-bundle/chunks/chunk-HIHMT6WS.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js +277 -0
- package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-HOVCGJSD.js +293 -0
- package/dist/cli-bundle/chunks/chunk-HOVCGJSD.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-I36Y7PCE.js +38 -0
- package/dist/cli-bundle/chunks/chunk-I36Y7PCE.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js +309 -0
- package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-IWVU4C2F.js +358 -0
- package/dist/cli-bundle/chunks/chunk-IX5BXEMX.js +267 -0
- package/dist/cli-bundle/chunks/chunk-JDDLOQAE.js +265 -0
- package/dist/cli-bundle/chunks/chunk-JJP45OEI.js +119 -0
- package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js +2257 -0
- package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-JVH7QBVV.js +24 -0
- package/dist/cli-bundle/chunks/chunk-JVH7QBVV.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-K46RF36U.js +207 -0
- package/dist/cli-bundle/chunks/chunk-KERMZVY5.js +371 -0
- package/dist/cli-bundle/chunks/chunk-KERMZVY5.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-KGFUY7WN.js +814 -0
- package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js +76 -0
- package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-KUOOJR35.js +260 -0
- package/dist/cli-bundle/chunks/chunk-L5PSPMZ4.js +277 -0
- package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js +5799 -0
- package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js +140 -0
- package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-LPSSSDJR.js +1239 -0
- package/dist/cli-bundle/chunks/chunk-M7JNBQAD.js +225 -0
- package/dist/cli-bundle/chunks/chunk-M7JNBQAD.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-MA4SM3QZ.js +655 -0
- package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js +1601 -0
- package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js +1031 -0
- package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js +995 -0
- package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js +296 -0
- package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-MLIYFOE7.js +357 -0
- package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js +2043 -0
- package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-MUH7A3FD.js +61 -0
- package/dist/cli-bundle/chunks/chunk-MVSP7WGJ.js +108 -0
- package/dist/cli-bundle/chunks/chunk-MVSP7WGJ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-MVYWGY2A.js +262 -0
- package/dist/cli-bundle/chunks/chunk-MWMVPCIE.js +1423 -0
- package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js +2033 -0
- package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-N745W3B3.js +1604 -0
- package/dist/cli-bundle/chunks/chunk-N745W3B3.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-NB7RLQFW.js +57 -0
- package/dist/cli-bundle/chunks/chunk-NB7RLQFW.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-NC33K5ZS.js +123 -0
- package/dist/cli-bundle/chunks/chunk-NC33K5ZS.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-NGXQ3PFT.js +263 -0
- package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js +1615 -0
- package/dist/cli-bundle/chunks/chunk-NO442GWJ.js +41 -0
- package/dist/cli-bundle/chunks/chunk-NO442GWJ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-NZEHECMW.js +658 -0
- package/dist/cli-bundle/chunks/chunk-NZEHECMW.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-O6AWCQRQ.js +124 -0
- package/dist/cli-bundle/chunks/chunk-OGWQ2IEP.js +240 -0
- package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js +143 -0
- package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-QLMX7SRD.js +210 -0
- package/dist/cli-bundle/chunks/chunk-QX6HM775.js +398 -0
- package/dist/cli-bundle/chunks/chunk-QX6HM775.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-R5BMJX33.js +27 -0
- package/dist/cli-bundle/chunks/chunk-R5BMJX33.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-RCQZK2GO.js +296 -0
- package/dist/cli-bundle/chunks/chunk-RCQZK2GO.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-RFNYTESG.js +520 -0
- package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js +79 -0
- package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js +282 -0
- package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js +274 -0
- package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-SCUR7K7N.js +2198 -0
- package/dist/cli-bundle/chunks/chunk-SGMFPXKR.js +68 -0
- package/dist/cli-bundle/chunks/chunk-SGMFPXKR.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js +1977 -0
- package/dist/cli-bundle/chunks/chunk-SMB7RV23.js +130 -0
- package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js +1041 -0
- package/dist/cli-bundle/chunks/chunk-SQOIV3OQ.js +563 -0
- package/dist/cli-bundle/chunks/chunk-SQOIV3OQ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-SQYJ4HF2.js +1765 -0
- package/dist/cli-bundle/chunks/chunk-T42JWV3F.js +822 -0
- package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js +6567 -0
- package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-TULGS6X6.js +2132 -0
- package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js +2306 -0
- package/dist/cli-bundle/chunks/chunk-UH7T2DAX.js +181 -0
- package/dist/cli-bundle/chunks/chunk-UH7T2DAX.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js +4773 -0
- package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-VPIM42PC.js +367 -0
- package/dist/cli-bundle/chunks/chunk-VQRSPVME.js +368 -0
- package/dist/cli-bundle/chunks/chunk-VQRSPVME.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-W3DSJQIO.js +447 -0
- package/dist/cli-bundle/chunks/chunk-W572BIEB.js +1249 -0
- package/dist/cli-bundle/chunks/chunk-W6DYWXPQ.js +1073 -0
- package/dist/cli-bundle/chunks/chunk-W6DYWXPQ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js +3423 -0
- package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-WLSM645P.js +2247 -0
- package/dist/cli-bundle/chunks/chunk-WLSM645P.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-WRTENIX3.js +215 -0
- package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js +388 -0
- package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-XB7KFVFI.js +533 -0
- package/dist/cli-bundle/chunks/chunk-XC5BURG2.js +306 -0
- package/dist/cli-bundle/chunks/chunk-XC5BURG2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js +424 -0
- package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-XG625QP4.js +58 -0
- package/dist/cli-bundle/chunks/chunk-XHET7YUZ.js +71 -0
- package/dist/cli-bundle/chunks/chunk-XHET7YUZ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-XUC7PI2H.js +243 -0
- package/dist/cli-bundle/chunks/chunk-Y46GD4IX.js +116 -0
- package/dist/cli-bundle/chunks/chunk-Y4M7CPQP.js +804 -0
- package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js +2128 -0
- package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-YN7Y6DQZ.js +426 -0
- package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js +511 -0
- package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-ZGK4L4JM.js +133 -0
- package/dist/cli-bundle/chunks/chunk-ZJ262CED.js +394 -0
- package/dist/cli-bundle/chunks/chunk-ZJ262CED.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js +299 -0
- package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-ZSUS2OD3.js +2105 -0
- package/dist/cli-bundle/chunks/chunk-ZWBEPGD7.js +54 -0
- package/dist/cli-bundle/chunks/chunk-ZWBEPGD7.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-ZZD4J5XY.js +1570 -0
- package/dist/cli-bundle/chunks/claim-RFS7BROJ.js +19 -0
- package/dist/cli-bundle/chunks/claim-XP5AWZ5H.js +23 -0
- package/dist/cli-bundle/chunks/close-2SSSHHUZ.js +20 -0
- package/dist/cli-bundle/chunks/close-GEANHQ2J.js +16 -0
- package/dist/cli-bundle/chunks/close-many-CMZW7ITN.js +31 -0
- package/dist/cli-bundle/chunks/close-many-ZFDIG6M7.js +27 -0
- package/dist/cli-bundle/chunks/comments-MFSYVNNU.js +21 -0
- package/dist/cli-bundle/chunks/comments-XUBPXDYX.js +17 -0
- package/dist/cli-bundle/chunks/config-D7XQMONX.js +18 -0
- package/dist/cli-bundle/chunks/config-T4FHBSYN.js +22 -0
- package/dist/cli-bundle/chunks/context-DIU275XI.js +48 -0
- package/dist/cli-bundle/chunks/context-JCOYB4LZ.js +44 -0
- package/dist/cli-bundle/chunks/contracts-BVO7CSLK.js +12 -0
- package/dist/cli-bundle/chunks/contracts-NYPEW2G4.js +16 -0
- package/dist/cli-bundle/chunks/copy-32ROBIDL.js +17 -0
- package/dist/cli-bundle/chunks/copy-NAGLGMHZ.js +13 -0
- package/dist/cli-bundle/chunks/create-4V7SWNBB.js +30 -0
- package/dist/cli-bundle/chunks/create-E77SDCUP.js +34 -0
- package/dist/cli-bundle/chunks/delete-NQI5OSKN.js +14 -0
- package/dist/cli-bundle/chunks/delete-RA5KTCLB.js +18 -0
- package/dist/cli-bundle/chunks/deps-32SU7HO5.js +21 -0
- package/dist/cli-bundle/chunks/deps-T7SCWXEX.js +17 -0
- package/dist/cli-bundle/chunks/docs-RRUPT7O2.js +22 -0
- package/dist/cli-bundle/chunks/docs-WL2IWGWV.js +18 -0
- package/dist/cli-bundle/chunks/eval-NF2J5SHR.js +23 -0
- package/dist/cli-bundle/chunks/eval-SKDT3MZU.js +27 -0
- package/dist/cli-bundle/chunks/extension-LAXKCAYE.js +42 -0
- package/dist/cli-bundle/chunks/extension-LAXKCAYE.js.map +1 -0
- package/dist/cli-bundle/chunks/extension-ZISPBRBC.js +38 -0
- package/dist/cli-bundle/chunks/extension-ZISPBRBC.js.map +7 -0
- package/dist/cli-bundle/chunks/files-EWRQHGIS.js +22 -0
- package/dist/cli-bundle/chunks/files-EWRQHGIS.js.map +7 -0
- package/dist/cli-bundle/chunks/files-PYKR2UUG.js +26 -0
- package/dist/cli-bundle/chunks/files-PYKR2UUG.js.map +1 -0
- package/dist/cli-bundle/chunks/focus-4T7TM4MT.js +18 -0
- package/dist/cli-bundle/chunks/focus-4T7TM4MT.js.map +1 -0
- package/dist/cli-bundle/chunks/focus-L3YUASOD.js +14 -0
- package/dist/cli-bundle/chunks/focus-L3YUASOD.js.map +7 -0
- package/dist/cli-bundle/chunks/gc-2DNMPXMC.js +16 -0
- package/dist/cli-bundle/chunks/gc-2DNMPXMC.js.map +1 -0
- package/dist/cli-bundle/chunks/gc-2PCTYYRI.js +12 -0
- package/dist/cli-bundle/chunks/gc-2PCTYYRI.js.map +7 -0
- package/dist/cli-bundle/chunks/get-7DMITJ3G.js +23 -0
- package/dist/cli-bundle/chunks/get-7DMITJ3G.js.map +1 -0
- package/dist/cli-bundle/chunks/get-VKQXCXLL.js +19 -0
- package/dist/cli-bundle/chunks/get-VKQXCXLL.js.map +7 -0
- package/dist/cli-bundle/chunks/health-CVSTAR2F.js +31 -0
- package/dist/cli-bundle/chunks/health-CVSTAR2F.js.map +7 -0
- package/dist/cli-bundle/chunks/health-TV3GKTFN.js +35 -0
- package/dist/cli-bundle/chunks/health-TV3GKTFN.js.map +1 -0
- package/dist/cli-bundle/chunks/history-D4JUX5XV.js +20 -0
- package/dist/cli-bundle/chunks/history-D4JUX5XV.js.map +7 -0
- package/dist/cli-bundle/chunks/history-LQ2UWZTE.js +24 -0
- package/dist/cli-bundle/chunks/history-LQ2UWZTE.js.map +1 -0
- package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js +29 -0
- package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js.map +1 -0
- package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js +25 -0
- package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js.map +7 -0
- package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js +21 -0
- package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js.map +7 -0
- package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js +25 -0
- package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js.map +1 -0
- package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js +23 -0
- package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js.map +7 -0
- package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js +27 -0
- package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js.map +1 -0
- package/dist/cli-bundle/chunks/init-C3LJPWQZ.js +30 -0
- package/dist/cli-bundle/chunks/init-C3LJPWQZ.js.map +1 -0
- package/dist/cli-bundle/chunks/init-J3DPGWQI.js +26 -0
- package/dist/cli-bundle/chunks/init-J3DPGWQI.js.map +7 -0
- package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js +21 -0
- package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js.map +1 -0
- package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js +17 -0
- package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js.map +7 -0
- package/dist/cli-bundle/chunks/list-O5NZVSPN.js +36 -0
- package/dist/cli-bundle/chunks/list-O5NZVSPN.js.map +1 -0
- package/dist/cli-bundle/chunks/list-Z55YCNTC.js +32 -0
- package/dist/cli-bundle/chunks/list-Z55YCNTC.js.map +7 -0
- package/dist/cli-bundle/chunks/next-GBNTGXFC.js +28 -0
- package/dist/cli-bundle/chunks/next-GBNTGXFC.js.map +7 -0
- package/dist/cli-bundle/chunks/next-QKW7PTKE.js +32 -0
- package/dist/cli-bundle/chunks/next-QKW7PTKE.js.map +1 -0
- package/dist/cli-bundle/chunks/notes-R5FZTKWF.js +17 -0
- package/dist/cli-bundle/chunks/notes-R5FZTKWF.js.map +7 -0
- package/dist/cli-bundle/chunks/notes-WCGIULVG.js +21 -0
- package/dist/cli-bundle/chunks/notes-WCGIULVG.js.map +1 -0
- package/dist/cli-bundle/chunks/plan-ADISFYH4.js +29 -0
- package/dist/cli-bundle/chunks/plan-ADISFYH4.js.map +7 -0
- package/dist/cli-bundle/chunks/plan-CHVE7PBR.js +33 -0
- package/dist/cli-bundle/chunks/plan-CHVE7PBR.js.map +1 -0
- package/dist/cli-bundle/chunks/profile-LD23PSI6.js +37 -0
- package/dist/cli-bundle/chunks/profile-LD23PSI6.js.map +7 -0
- package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js +41 -0
- package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js.map +1 -0
- package/dist/cli-bundle/chunks/register-list-query-B42JCCOI.js +409 -0
- package/dist/cli-bundle/chunks/register-list-query-OEYQHFXO.js +419 -0
- package/dist/cli-bundle/chunks/register-mutation-3QXIHCQG.js +1273 -0
- package/dist/cli-bundle/chunks/register-mutation-IAEST26S.js +1256 -0
- package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js +19 -0
- package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js.map +7 -0
- package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js +23 -0
- package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js.map +1 -0
- package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js +324 -0
- package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js.map +7 -0
- package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js +321 -0
- package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-5RQHAPMA.js +23 -0
- package/dist/cli-bundle/chunks/restore-5RQHAPMA.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-PNEIBBLW.js +19 -0
- package/dist/cli-bundle/chunks/restore-PNEIBBLW.js.map +7 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js +29 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js.map +1 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js +25 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js.map +7 -0
- package/dist/cli-bundle/chunks/schema-245WW4G2.js +78 -0
- package/dist/cli-bundle/chunks/schema-245WW4G2.js.map +1 -0
- package/dist/cli-bundle/chunks/schema-HBORFC6B.js +74 -0
- package/dist/cli-bundle/chunks/schema-HBORFC6B.js.map +7 -0
- package/dist/cli-bundle/chunks/search-AOZC5SIK.js +34 -0
- package/dist/cli-bundle/chunks/search-AOZC5SIK.js.map +7 -0
- package/dist/cli-bundle/chunks/search-DRXPGHD7.js +38 -0
- package/dist/cli-bundle/chunks/search-DRXPGHD7.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-NJG4NLHG.js +21 -0
- package/dist/cli-bundle/chunks/stats-NJG4NLHG.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-RG6AG4N2.js +17 -0
- package/dist/cli-bundle/chunks/stats-RG6AG4N2.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js +14 -0
- package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js +18 -0
- package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js.map +1 -0
- package/dist/cli-bundle/chunks/test-6CMOCWUC.js +39 -0
- package/dist/cli-bundle/chunks/test-6CMOCWUC.js.map +7 -0
- package/dist/cli-bundle/chunks/test-RI7XHBZL.js +43 -0
- package/dist/cli-bundle/chunks/test-RI7XHBZL.js.map +1 -0
- package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js +29 -0
- package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js.map +7 -0
- package/dist/cli-bundle/chunks/test-all-QEIORFYW.js +33 -0
- package/dist/cli-bundle/chunks/test-all-QEIORFYW.js.map +1 -0
- package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js +28 -0
- package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js.map +1 -0
- package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js +24 -0
- package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js.map +7 -0
- package/dist/cli-bundle/chunks/update-QVJDFEAP.js +30 -0
- package/dist/cli-bundle/chunks/update-QVJDFEAP.js.map +1 -0
- package/dist/cli-bundle/chunks/update-VQVHAY6X.js +26 -0
- package/dist/cli-bundle/chunks/update-VQVHAY6X.js.map +7 -0
- package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js +37 -0
- package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js.map +7 -0
- package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js +41 -0
- package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js.map +1 -0
- package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js +24 -0
- package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js.map +7 -0
- package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js +28 -0
- package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js.map +1 -0
- package/dist/cli-bundle/chunks/validate-4NTXSB62.js +36 -0
- package/dist/cli-bundle/chunks/validate-4NTXSB62.js.map +1 -0
- package/dist/cli-bundle/chunks/validate-MUFXQZMI.js +32 -0
- package/dist/cli-bundle/chunks/validate-MUFXQZMI.js.map +7 -0
- package/dist/cli-bundle/main.js +16 -16
- package/dist/cli-bundle/sdk-runtime.js +88 -28
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +92 -49
- package/dist/cli-bundle/sdk.js.map +2 -2
- package/dist/mcp/server.d.ts +22 -50
- package/dist/mcp/server.js +62 -916
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +4 -4
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +168 -4
- package/dist/sdk/runtime.js +1149 -25
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/workspace-contracts-cache.d.ts +17 -0
- package/dist/sdk/workspace-contracts-cache.js +36 -0
- package/dist/sdk/workspace-contracts-cache.js.map +1 -0
- package/docs/RELEASING.md +3 -1
- package/docs/SDK.md +46 -0
- package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +16 -2
- package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +16 -1
- package/package.json +1 -1
- package/dist/cli-bundle/chunks/activity-4XQIDNM5.js +0 -18
- package/dist/cli-bundle/chunks/activity-YKAKZTZ4.js +0 -22
- package/dist/cli-bundle/chunks/aggregate-EQX2RGB7.js +0 -375
- package/dist/cli-bundle/chunks/aggregate-EQX2RGB7.js.map +0 -7
- package/dist/cli-bundle/chunks/aggregate-PEGZGJXD.js +0 -372
- package/dist/cli-bundle/chunks/aggregate-PEGZGJXD.js.map +0 -1
- package/dist/cli-bundle/chunks/append-CZGUZ45Q.js +0 -73
- package/dist/cli-bundle/chunks/append-CZGUZ45Q.js.map +0 -7
- package/dist/cli-bundle/chunks/append-NSQBCXZJ.js +0 -70
- package/dist/cli-bundle/chunks/append-NSQBCXZJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js +0 -1413
- package/dist/cli-bundle/chunks/chunk-3PL6LEKP.js +0 -1961
- package/dist/cli-bundle/chunks/chunk-3U3VEWK6.js +0 -1749
- package/dist/cli-bundle/chunks/chunk-3Y4OESPP.js +0 -277
- package/dist/cli-bundle/chunks/chunk-4LRVSBO6.js +0 -822
- package/dist/cli-bundle/chunks/chunk-4OFLJHX6.js +0 -356
- package/dist/cli-bundle/chunks/chunk-4QQ6PM7M.js +0 -1249
- package/dist/cli-bundle/chunks/chunk-53BTLLAF.js +0 -2181
- package/dist/cli-bundle/chunks/chunk-53BTLLAF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-57C2RLW5.js +0 -1704
- package/dist/cli-bundle/chunks/chunk-5B3X4Y22.js +0 -2330
- package/dist/cli-bundle/chunks/chunk-5J2XPTAD.js +0 -225
- package/dist/cli-bundle/chunks/chunk-5JE6SMYS.js +0 -262
- package/dist/cli-bundle/chunks/chunk-5JZ7APJU.js +0 -995
- package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js +0 -5789
- package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-75U6M5ZD.js +0 -819
- package/dist/cli-bundle/chunks/chunk-7EQNAZX2.js +0 -1018
- package/dist/cli-bundle/chunks/chunk-7MDXZAZS.js +0 -102
- package/dist/cli-bundle/chunks/chunk-7QH7DHUB.js +0 -2046
- package/dist/cli-bundle/chunks/chunk-7WYXBPYQ.js +0 -358
- package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js +0 -150
- package/dist/cli-bundle/chunks/chunk-ABRA3BHY.js +0 -429
- package/dist/cli-bundle/chunks/chunk-BFVHCAOO.js +0 -240
- package/dist/cli-bundle/chunks/chunk-BVEUCSH2.js +0 -530
- package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js +0 -160
- package/dist/cli-bundle/chunks/chunk-D3UCE7RW.js +0 -243
- package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js +0 -275
- package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js +0 -634
- package/dist/cli-bundle/chunks/chunk-DRBV5UC2.js +0 -231
- package/dist/cli-bundle/chunks/chunk-E2FUG6GD.js +0 -2184
- package/dist/cli-bundle/chunks/chunk-E2FUG6GD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EEY54JMF.js +0 -60
- package/dist/cli-bundle/chunks/chunk-EZFKWSC7.js +0 -1615
- package/dist/cli-bundle/chunks/chunk-FDBARR33.js +0 -655
- package/dist/cli-bundle/chunks/chunk-FGQKEDE4.js +0 -447
- package/dist/cli-bundle/chunks/chunk-FJRKQREY.js +0 -228
- package/dist/cli-bundle/chunks/chunk-FUM6UMY4.js +0 -804
- package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js +0 -3237
- package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HBYZDSK5.js +0 -426
- package/dist/cli-bundle/chunks/chunk-HJE4JTKQ.js +0 -124
- package/dist/cli-bundle/chunks/chunk-HK72NWAD.js +0 -1570
- package/dist/cli-bundle/chunks/chunk-IJ6CO3JV.js +0 -645
- package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js +0 -3206
- package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JLA7EVYV.js +0 -222
- package/dist/cli-bundle/chunks/chunk-K32L7HZO.js +0 -76
- package/dist/cli-bundle/chunks/chunk-K32L7HZO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K3AGVXSF.js +0 -444
- package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js +0 -79
- package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KL22PY6L.js +0 -915
- package/dist/cli-bundle/chunks/chunk-KL22PY6L.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KLG4ZULO.js +0 -218
- package/dist/cli-bundle/chunks/chunk-LEKT4K7I.js +0 -2105
- package/dist/cli-bundle/chunks/chunk-MNZ7DRNC.js +0 -1858
- package/dist/cli-bundle/chunks/chunk-MTTXDAK4.js +0 -2198
- package/dist/cli-bundle/chunks/chunk-MZ7VNEVY.js +0 -520
- package/dist/cli-bundle/chunks/chunk-N6DNM2FA.js +0 -116
- package/dist/cli-bundle/chunks/chunk-N7X4WP6L.js +0 -1041
- package/dist/cli-bundle/chunks/chunk-NBFCNJ7Q.js +0 -2132
- package/dist/cli-bundle/chunks/chunk-NER3KUUS.js +0 -260
- package/dist/cli-bundle/chunks/chunk-OBA2WH65.js +0 -918
- package/dist/cli-bundle/chunks/chunk-OBA2WH65.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OESSOFJ4.js +0 -1985
- package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js +0 -238
- package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OWTIRHX4.js +0 -112
- package/dist/cli-bundle/chunks/chunk-P3VRG72Q.js +0 -1765
- package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js +0 -1423
- package/dist/cli-bundle/chunks/chunk-P5YORJRH.js +0 -1977
- package/dist/cli-bundle/chunks/chunk-PDXT6Q55.js +0 -58
- package/dist/cli-bundle/chunks/chunk-PJ3A56YF.js +0 -1239
- package/dist/cli-bundle/chunks/chunk-PPAJG4GB.js +0 -1031
- package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js +0 -4725
- package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QHZO65XW.js +0 -1775
- package/dist/cli-bundle/chunks/chunk-R3ZBLGTC.js +0 -814
- package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js +0 -624
- package/dist/cli-bundle/chunks/chunk-RX3HQSYG.js +0 -265
- package/dist/cli-bundle/chunks/chunk-S4APD35C.js +0 -210
- package/dist/cli-bundle/chunks/chunk-S5AYOUT5.js +0 -130
- package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js +0 -1149
- package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-T35XLYZF.js +0 -263
- package/dist/cli-bundle/chunks/chunk-T3ABIMGW.js +0 -361
- package/dist/cli-bundle/chunks/chunk-T3F4DF23.js +0 -267
- package/dist/cli-bundle/chunks/chunk-T4MX77AK.js +0 -272
- package/dist/cli-bundle/chunks/chunk-T4MX77AK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js +0 -5354
- package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TSPKZRRW.js +0 -1570
- package/dist/cli-bundle/chunks/chunk-TT42JUMF.js +0 -207
- package/dist/cli-bundle/chunks/chunk-UHKX7I75.js +0 -165
- package/dist/cli-bundle/chunks/chunk-UHKX7I75.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js +0 -4786
- package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-US3T3W5J.js +0 -1932
- package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js +0 -175
- package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VZIYHZDX.js +0 -1868
- package/dist/cli-bundle/chunks/chunk-WISPVC2E.js +0 -401
- package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js +0 -5434
- package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js +0 -1152
- package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y76TWC45.js +0 -550
- package/dist/cli-bundle/chunks/chunk-YD5FML7K.js +0 -5630
- package/dist/cli-bundle/chunks/chunk-YD5FML7K.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YFIE7YK6.js +0 -57
- package/dist/cli-bundle/chunks/chunk-YMABYTNG.js +0 -1573
- package/dist/cli-bundle/chunks/chunk-YOF5VPKM.js +0 -119
- package/dist/cli-bundle/chunks/chunk-YPPVU5GX.js +0 -398
- package/dist/cli-bundle/chunks/chunk-YQMMMONE.js +0 -133
- package/dist/cli-bundle/chunks/chunk-YSAH5FY5.js +0 -1001
- package/dist/cli-bundle/chunks/chunk-YZIR4R3U.js +0 -1005
- package/dist/cli-bundle/chunks/chunk-Z2CRRZYF.js +0 -215
- package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js +0 -533
- package/dist/cli-bundle/chunks/chunk-ZCJAA3JK.js +0 -121
- package/dist/cli-bundle/chunks/chunk-ZD34OFFQ.js +0 -366
- package/dist/cli-bundle/chunks/chunk-ZJB3UV5U.js +0 -2306
- package/dist/cli-bundle/chunks/chunk-ZMD35NYG.js +0 -61
- package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js +0 -241
- package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js.map +0 -7
- package/dist/cli-bundle/chunks/claim-4DROPSIS.js +0 -144
- package/dist/cli-bundle/chunks/claim-4DROPSIS.js.map +0 -1
- package/dist/cli-bundle/chunks/claim-VX54TV5U.js +0 -147
- package/dist/cli-bundle/chunks/claim-VX54TV5U.js.map +0 -7
- package/dist/cli-bundle/chunks/close-3YRR3XY6.js +0 -20
- package/dist/cli-bundle/chunks/close-OB2Y4QP5.js +0 -16
- package/dist/cli-bundle/chunks/close-many-AP4MWU36.js +0 -397
- package/dist/cli-bundle/chunks/close-many-AP4MWU36.js.map +0 -1
- package/dist/cli-bundle/chunks/close-many-OMZIGZB4.js +0 -400
- package/dist/cli-bundle/chunks/close-many-OMZIGZB4.js.map +0 -7
- package/dist/cli-bundle/chunks/comments-MIW5MZOX.js +0 -128
- package/dist/cli-bundle/chunks/comments-MIW5MZOX.js.map +0 -7
- package/dist/cli-bundle/chunks/comments-SAG5LSKL.js +0 -125
- package/dist/cli-bundle/chunks/comments-SAG5LSKL.js.map +0 -1
- package/dist/cli-bundle/chunks/config-DJJKZB5R.js +0 -1075
- package/dist/cli-bundle/chunks/config-DJJKZB5R.js.map +0 -7
- package/dist/cli-bundle/chunks/config-V57QD47V.js +0 -1065
- package/dist/cli-bundle/chunks/config-V57QD47V.js.map +0 -1
- package/dist/cli-bundle/chunks/context-4OQGIPSO.js +0 -45
- package/dist/cli-bundle/chunks/context-WLA6IAWE.js +0 -49
- package/dist/cli-bundle/chunks/contracts-HXJLKCRI.js +0 -12
- package/dist/cli-bundle/chunks/contracts-OJEXMKVW.js +0 -16
- package/dist/cli-bundle/chunks/copy-LEE6P6EM.js +0 -184
- package/dist/cli-bundle/chunks/copy-LEE6P6EM.js.map +0 -7
- package/dist/cli-bundle/chunks/copy-OTJOWFL6.js +0 -181
- package/dist/cli-bundle/chunks/copy-OTJOWFL6.js.map +0 -1
- package/dist/cli-bundle/chunks/create-WKOZKPQR.js +0 -30
- package/dist/cli-bundle/chunks/create-XWWQFQ6S.js +0 -34
- package/dist/cli-bundle/chunks/delete-62JQTYT4.js +0 -59
- package/dist/cli-bundle/chunks/delete-62JQTYT4.js.map +0 -7
- package/dist/cli-bundle/chunks/delete-HQKGRNRZ.js +0 -56
- package/dist/cli-bundle/chunks/delete-HQKGRNRZ.js.map +0 -1
- package/dist/cli-bundle/chunks/deps-55FTG6Z5.js +0 -224
- package/dist/cli-bundle/chunks/deps-55FTG6Z5.js.map +0 -1
- package/dist/cli-bundle/chunks/deps-L2FPIAD3.js +0 -227
- package/dist/cli-bundle/chunks/deps-L2FPIAD3.js.map +0 -7
- package/dist/cli-bundle/chunks/docs-6CRCSVKK.js +0 -33
- package/dist/cli-bundle/chunks/docs-6CRCSVKK.js.map +0 -1
- package/dist/cli-bundle/chunks/docs-S6UTOTO5.js +0 -36
- package/dist/cli-bundle/chunks/docs-S6UTOTO5.js.map +0 -7
- package/dist/cli-bundle/chunks/eval-N6UHFWVO.js +0 -288
- package/dist/cli-bundle/chunks/eval-N6UHFWVO.js.map +0 -7
- package/dist/cli-bundle/chunks/eval-PHOTWYHI.js +0 -278
- package/dist/cli-bundle/chunks/eval-PHOTWYHI.js.map +0 -1
- package/dist/cli-bundle/chunks/extension-NBAH62ML.js +0 -40
- package/dist/cli-bundle/chunks/extension-ZF6ZZPOU.js +0 -44
- package/dist/cli-bundle/chunks/files-6P57MRKL.js +0 -301
- package/dist/cli-bundle/chunks/files-6P57MRKL.js.map +0 -7
- package/dist/cli-bundle/chunks/files-JPU3FNJ7.js +0 -298
- package/dist/cli-bundle/chunks/files-JPU3FNJ7.js.map +0 -1
- package/dist/cli-bundle/chunks/focus-LFZ6IDBR.js +0 -106
- package/dist/cli-bundle/chunks/focus-LFZ6IDBR.js.map +0 -1
- package/dist/cli-bundle/chunks/focus-WNMYCVYA.js +0 -109
- package/dist/cli-bundle/chunks/focus-WNMYCVYA.js.map +0 -7
- package/dist/cli-bundle/chunks/gc-AETFKZ44.js +0 -398
- package/dist/cli-bundle/chunks/gc-AETFKZ44.js.map +0 -7
- package/dist/cli-bundle/chunks/gc-RLBP4QVN.js +0 -388
- package/dist/cli-bundle/chunks/gc-RLBP4QVN.js.map +0 -1
- package/dist/cli-bundle/chunks/get-NH2MPBCI.js +0 -283
- package/dist/cli-bundle/chunks/get-NH2MPBCI.js.map +0 -1
- package/dist/cli-bundle/chunks/get-P4ZQXCPZ.js +0 -286
- package/dist/cli-bundle/chunks/get-P4ZQXCPZ.js.map +0 -7
- package/dist/cli-bundle/chunks/health-3GVPMQBL.js +0 -1612
- package/dist/cli-bundle/chunks/health-3GVPMQBL.js.map +0 -1
- package/dist/cli-bundle/chunks/health-DNTM72GJ.js +0 -1615
- package/dist/cli-bundle/chunks/health-DNTM72GJ.js.map +0 -7
- package/dist/cli-bundle/chunks/history-RYKLC72X.js +0 -20
- package/dist/cli-bundle/chunks/history-SGPYRAFT.js +0 -24
- package/dist/cli-bundle/chunks/history-compact-3F6VELO7.js +0 -565
- package/dist/cli-bundle/chunks/history-compact-3F6VELO7.js.map +0 -7
- package/dist/cli-bundle/chunks/history-compact-656Y2TN4.js +0 -555
- package/dist/cli-bundle/chunks/history-compact-656Y2TN4.js.map +0 -1
- package/dist/cli-bundle/chunks/history-redact-4H3FCKF3.js +0 -21
- package/dist/cli-bundle/chunks/history-redact-54ICFKXM.js +0 -25
- package/dist/cli-bundle/chunks/history-repair-4N6SDVHK.js +0 -281
- package/dist/cli-bundle/chunks/history-repair-4N6SDVHK.js.map +0 -7
- package/dist/cli-bundle/chunks/history-repair-EVTO6LIH.js +0 -278
- package/dist/cli-bundle/chunks/history-repair-EVTO6LIH.js.map +0 -1
- package/dist/cli-bundle/chunks/init-RPIPQUNV.js +0 -32
- package/dist/cli-bundle/chunks/init-SKQAESQS.js +0 -28
- package/dist/cli-bundle/chunks/learnings-2HTPZNGZ.js +0 -48
- package/dist/cli-bundle/chunks/learnings-2HTPZNGZ.js.map +0 -7
- package/dist/cli-bundle/chunks/learnings-YBIHY3D6.js +0 -45
- package/dist/cli-bundle/chunks/learnings-YBIHY3D6.js.map +0 -1
- package/dist/cli-bundle/chunks/list-64LHZ3HM.js +0 -32
- package/dist/cli-bundle/chunks/list-7LXBTEKI.js +0 -36
- package/dist/cli-bundle/chunks/next-7ODPAQ4U.js +0 -306
- package/dist/cli-bundle/chunks/next-7ODPAQ4U.js.map +0 -7
- package/dist/cli-bundle/chunks/next-ODJUM4ZM.js +0 -303
- package/dist/cli-bundle/chunks/next-ODJUM4ZM.js.map +0 -1
- package/dist/cli-bundle/chunks/notes-72YXN5JX.js +0 -48
- package/dist/cli-bundle/chunks/notes-72YXN5JX.js.map +0 -7
- package/dist/cli-bundle/chunks/notes-NJ7IQJX4.js +0 -45
- package/dist/cli-bundle/chunks/notes-NJ7IQJX4.js.map +0 -1
- package/dist/cli-bundle/chunks/plan-R4NDQ27E.js +0 -1366
- package/dist/cli-bundle/chunks/plan-R4NDQ27E.js.map +0 -7
- package/dist/cli-bundle/chunks/plan-XWY5T67S.js +0 -1363
- package/dist/cli-bundle/chunks/plan-XWY5T67S.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-XQWEQKS3.js +0 -397
- package/dist/cli-bundle/chunks/profile-XQWEQKS3.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-YRDHLMRO.js +0 -400
- package/dist/cli-bundle/chunks/profile-YRDHLMRO.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-5H66WFYF.js +0 -419
- package/dist/cli-bundle/chunks/register-list-query-FB3FNDLZ.js +0 -409
- package/dist/cli-bundle/chunks/register-mutation-UJO23C7R.js +0 -1256
- package/dist/cli-bundle/chunks/register-mutation-Z2ETYHKS.js +0 -1273
- package/dist/cli-bundle/chunks/register-operations-A3XAM5J7.js +0 -513
- package/dist/cli-bundle/chunks/register-operations-A3XAM5J7.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-SG7HBSUP.js +0 -516
- package/dist/cli-bundle/chunks/register-operations-SG7HBSUP.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-I45OGJUV.js +0 -323
- package/dist/cli-bundle/chunks/register-setup-I45OGJUV.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-K6U3NVY5.js +0 -326
- package/dist/cli-bundle/chunks/register-setup-K6U3NVY5.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-PXOFL6AM.js +0 -19
- package/dist/cli-bundle/chunks/restore-YJ2ET6AT.js +0 -23
- package/dist/cli-bundle/chunks/scheduling-shortcuts-SSC4MYWQ.js +0 -91
- package/dist/cli-bundle/chunks/scheduling-shortcuts-SSC4MYWQ.js.map +0 -7
- package/dist/cli-bundle/chunks/scheduling-shortcuts-ULRG7MNP.js +0 -88
- package/dist/cli-bundle/chunks/scheduling-shortcuts-ULRG7MNP.js.map +0 -1
- package/dist/cli-bundle/chunks/schema-2PUXCZ25.js +0 -74
- package/dist/cli-bundle/chunks/schema-Y6DXXK2F.js +0 -78
- package/dist/cli-bundle/chunks/search-3S72CTD6.js +0 -38
- package/dist/cli-bundle/chunks/search-WNUNBQXO.js +0 -34
- package/dist/cli-bundle/chunks/stats-IJYTRQGV.js +0 -250
- package/dist/cli-bundle/chunks/stats-IJYTRQGV.js.map +0 -7
- package/dist/cli-bundle/chunks/stats-L2D5Y2O5.js +0 -240
- package/dist/cli-bundle/chunks/stats-L2D5Y2O5.js.map +0 -1
- package/dist/cli-bundle/chunks/telemetry-L2CVOKVN.js +0 -309
- package/dist/cli-bundle/chunks/telemetry-L2CVOKVN.js.map +0 -7
- package/dist/cli-bundle/chunks/telemetry-QBYWQA76.js +0 -306
- package/dist/cli-bundle/chunks/telemetry-QBYWQA76.js.map +0 -1
- package/dist/cli-bundle/chunks/test-DQ2QFJ7W.js +0 -45
- package/dist/cli-bundle/chunks/test-W7QBLVJS.js +0 -41
- package/dist/cli-bundle/chunks/test-all-636NTRTT.js +0 -434
- package/dist/cli-bundle/chunks/test-all-636NTRTT.js.map +0 -1
- package/dist/cli-bundle/chunks/test-all-DWYK3RG6.js +0 -437
- package/dist/cli-bundle/chunks/test-all-DWYK3RG6.js.map +0 -7
- package/dist/cli-bundle/chunks/test-runs-245OINZR.js +0 -28
- package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js +0 -24
- package/dist/cli-bundle/chunks/update-SFLZPJXX.js +0 -30
- package/dist/cli-bundle/chunks/update-SJZ6S77U.js +0 -26
- package/dist/cli-bundle/chunks/update-many-DC7X3EWM.js +0 -671
- package/dist/cli-bundle/chunks/update-many-DC7X3EWM.js.map +0 -7
- package/dist/cli-bundle/chunks/update-many-SLLAMHT7.js +0 -668
- package/dist/cli-bundle/chunks/update-many-SLLAMHT7.js.map +0 -1
- package/dist/cli-bundle/chunks/upgrade-HFFXLZJA.js +0 -290
- package/dist/cli-bundle/chunks/upgrade-HFFXLZJA.js.map +0 -7
- package/dist/cli-bundle/chunks/upgrade-UYQKM7RF.js +0 -287
- package/dist/cli-bundle/chunks/upgrade-UYQKM7RF.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-PA4FDTOV.js +0 -2143
- package/dist/cli-bundle/chunks/validate-PA4FDTOV.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-Z7L75YEJ.js +0 -2105
- package/dist/cli-bundle/chunks/validate-Z7L75YEJ.js.map +0 -1
- /package/dist/cli-bundle/chunks/{activity-4XQIDNM5.js.map → activity-WJCGCYPU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-YKAKZTZ4.js.map → activity-Z6QUAUSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-3YRR3XY6.js.map → aggregate-BDM6EIAR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-OB2Y4QP5.js.map → aggregate-VQ2DHU3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-WLA6IAWE.js.map → append-BGML6VLD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-4OQGIPSO.js.map → append-RKJYPU74.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YFIE7YK6.js.map → chunk-22KBU3MW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DLQ4ZTCU.js.map → chunk-24YG75HI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KLG4ZULO.js.map → chunk-2XG4IZON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FJRKQREY.js.map → chunk-3GCS5SKL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5B3X4Y22.js.map → chunk-3KTN6IBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YMABYTNG.js.map → chunk-3UJRFJ5R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YSAH5FY5.js.map → chunk-3VHSI5FL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7EQNAZX2.js.map → chunk-46CUF5L6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-75U6M5ZD.js.map → chunk-4IWYTWGF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VZIYHZDX.js.map → chunk-5GZ7TDD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3U3VEWK6.js.map → chunk-5VAA4YHR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3PL6LEKP.js.map → chunk-64YKRTSV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ABRA3BHY.js.map → chunk-6LLVNJXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EEY54JMF.js.map → chunk-7DT4WSH2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7MDXZAZS.js.map → chunk-7WBAJSS6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AAEQMOC6.js.map → chunk-AGHMOTGM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OWTIRHX4.js.map → chunk-ALFPSEWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T3ABIMGW.js.map → chunk-AZYGZGGI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3JZNEQBA.js.map → chunk-B6DUFX6H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OESSOFJ4.js.map → chunk-C5JBZRPU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YPPVU5GX.js.map → chunk-CFB33L7W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5J2XPTAD.js.map → chunk-CL36D4PC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IJ6CO3JV.js.map → chunk-D2XRLB55.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MNZ7DRNC.js.map → chunk-DEWEK6AN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-US3T3W5J.js.map → chunk-E3SZTQ4K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C3PMDWGX.js.map → chunk-EGY6JBQ3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JLA7EVYV.js.map → chunk-EKFNL33R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-57C2RLW5.js.map → chunk-ENGQOEUY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7QH7DHUB.js.map → chunk-EOKXK3R3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZCJAA3JK.js.map → chunk-F3K4JGFD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DRBV5UC2.js.map → chunk-FLZSGSQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y76TWC45.js.map → chunk-FT3QTERD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HK72NWAD.js.map → chunk-G24G7ZAV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K3AGVXSF.js.map → chunk-G64OCSKU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QHZO65XW.js.map → chunk-GANUTS7W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WISPVC2E.js.map → chunk-GBAX2ZAQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RCT3YJOK.js.map → chunk-GJ7QC5DJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BVEUCSH2.js.map → chunk-GPLPTGOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YZIR4R3U.js.map → chunk-GZRDYONU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7WYXBPYQ.js.map → chunk-IWVU4C2F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T3F4DF23.js.map → chunk-IX5BXEMX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RX3HQSYG.js.map → chunk-JDDLOQAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YOF5VPKM.js.map → chunk-JJP45OEI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TT42JUMF.js.map → chunk-K46RF36U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R3ZBLGTC.js.map → chunk-KGFUY7WN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NER3KUUS.js.map → chunk-KUOOJR35.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3Y4OESPP.js.map → chunk-L5PSPMZ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PJ3A56YF.js.map → chunk-LPSSSDJR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FDBARR33.js.map → chunk-MA4SM3QZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PPAJG4GB.js.map → chunk-MFAZSEM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5JZ7APJU.js.map → chunk-MFSCBT5Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4OFLJHX6.js.map → chunk-MLIYFOE7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZMD35NYG.js.map → chunk-MUH7A3FD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5JE6SMYS.js.map → chunk-MVYWGY2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P5TFTLWW.js.map → chunk-MWMVPCIE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T35XLYZF.js.map → chunk-NGXQ3PFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EZFKWSC7.js.map → chunk-NMP5I3I5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HJE4JTKQ.js.map → chunk-O6AWCQRQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BFVHCAOO.js.map → chunk-OGWQ2IEP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S4APD35C.js.map → chunk-QLMX7SRD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MZ7VNEVY.js.map → chunk-RFNYTESG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MTTXDAK4.js.map → chunk-SCUR7K7N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P5YORJRH.js.map → chunk-SHQY2IDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S5AYOUT5.js.map → chunk-SMB7RV23.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N7X4WP6L.js.map → chunk-SPZ6DOGY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P3VRG72Q.js.map → chunk-SQYJ4HF2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4LRVSBO6.js.map → chunk-T42JWV3F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NBFCNJ7Q.js.map → chunk-TULGS6X6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZJB3UV5U.js.map → chunk-TZXRBVAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZD34OFFQ.js.map → chunk-VPIM42PC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FGQKEDE4.js.map → chunk-W3DSJQIO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4QQ6PM7M.js.map → chunk-W572BIEB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z2CRRZYF.js.map → chunk-WRTENIX3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZAHXPXVY.js.map → chunk-XB7KFVFI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PDXT6Q55.js.map → chunk-XG625QP4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D3UCE7RW.js.map → chunk-XUC7PI2H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N6DNM2FA.js.map → chunk-Y46GD4IX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FUM6UMY4.js.map → chunk-Y4M7CPQP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HBYZDSK5.js.map → chunk-YN7Y6DQZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YQMMMONE.js.map → chunk-ZGK4L4JM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LEKT4K7I.js.map → chunk-ZSUS2OD3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TSPKZRRW.js.map → chunk-ZZD4J5XY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-HXJLKCRI.js.map → claim-RFS7BROJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-OJEXMKVW.js.map → claim-XP5AWZ5H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-XWWQFQ6S.js.map → close-2SSSHHUZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-WKOZKPQR.js.map → close-GEANHQ2J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-ZF6ZZPOU.js.map → close-many-CMZW7ITN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-NBAH62ML.js.map → close-many-ZFDIG6M7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-SGPYRAFT.js.map → comments-MFSYVNNU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-RYKLC72X.js.map → comments-XUBPXDYX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-4H3FCKF3.js.map → config-D7XQMONX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-54ICFKXM.js.map → config-T4FHBSYN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-RPIPQUNV.js.map → context-DIU275XI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-SKQAESQS.js.map → context-JCOYB4LZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-64LHZ3HM.js.map → contracts-BVO7CSLK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-7LXBTEKI.js.map → contracts-NYPEW2G4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-YJ2ET6AT.js.map → copy-32ROBIDL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-PXOFL6AM.js.map → copy-NAGLGMHZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-2PUXCZ25.js.map → create-4V7SWNBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-Y6DXXK2F.js.map → create-E77SDCUP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-WNUNBQXO.js.map → delete-NQI5OSKN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-3S72CTD6.js.map → delete-RA5KTCLB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-DQ2QFJ7W.js.map → deps-32SU7HO5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-W7QBLVJS.js.map → deps-T7SCWXEX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-245OINZR.js.map → docs-RRUPT7O2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-ZRD4GCTT.js.map → docs-WL2IWGWV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-SJZ6S77U.js.map → eval-NF2J5SHR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-SFLZPJXX.js.map → eval-SKDT3MZU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-FB3FNDLZ.js.map → register-list-query-B42JCCOI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-5H66WFYF.js.map → register-list-query-OEYQHFXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-Z2ETYHKS.js.map → register-mutation-3QXIHCQG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-UJO23C7R.js.map → register-mutation-IAEST26S.js.map} +0 -0
|
@@ -0,0 +1,1423 @@
|
|
|
1
|
+
import {
|
|
2
|
+
lintProjectProfile
|
|
3
|
+
} from "./chunk-24YG75HI.js";
|
|
4
|
+
import {
|
|
5
|
+
getMigrationRuntimeDefinition,
|
|
6
|
+
resolveRegisteredSearchProvider,
|
|
7
|
+
resolveRegisteredVectorStoreAdapter
|
|
8
|
+
} from "./chunk-B5KXLBSJ.js";
|
|
9
|
+
import {
|
|
10
|
+
describeExtensionActivation,
|
|
11
|
+
renderExtensionSurfaceMarkdown
|
|
12
|
+
} from "./chunk-EGY6JBQ3.js";
|
|
13
|
+
import {
|
|
14
|
+
activateExtensions,
|
|
15
|
+
asPropertyRecord,
|
|
16
|
+
collectUsedExtensionCapabilities,
|
|
17
|
+
createDefaultExtensionGovernancePolicy,
|
|
18
|
+
deactivateExtensions,
|
|
19
|
+
evaluatePmMaxVersionBound,
|
|
20
|
+
evaluatePmMinVersionBound,
|
|
21
|
+
normalizeCommandName,
|
|
22
|
+
normalizeKnownExtensionCapability,
|
|
23
|
+
resolveActivatablePropertyRecord,
|
|
24
|
+
resolveLegacyExtensionCapabilityAlias,
|
|
25
|
+
runAfterCommandHooks,
|
|
26
|
+
runBeforeCommandHooks,
|
|
27
|
+
runCommandHandler,
|
|
28
|
+
runCommandOverride,
|
|
29
|
+
runOnIndexHooks,
|
|
30
|
+
runOnReadHooks,
|
|
31
|
+
runOnWriteHooks,
|
|
32
|
+
runParserOverride,
|
|
33
|
+
runPreflightOverride,
|
|
34
|
+
runRendererOverride,
|
|
35
|
+
runServiceOverride
|
|
36
|
+
} from "./chunk-LK6XLOGP.js";
|
|
37
|
+
|
|
38
|
+
// dist/sdk/compose.js
|
|
39
|
+
!(function() {
|
|
40
|
+
try {
|
|
41
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
42
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "329d1e0e-99f4-5153-addd-3e8ae912dae1");
|
|
43
|
+
} catch (e2) {
|
|
44
|
+
}
|
|
45
|
+
})();
|
|
46
|
+
function defineExtension(module) {
|
|
47
|
+
return module;
|
|
48
|
+
}
|
|
49
|
+
function defineExtensionBlueprint(blueprint) {
|
|
50
|
+
return blueprint;
|
|
51
|
+
}
|
|
52
|
+
function registerBlueprintCommandSurfaces(api, blueprint) {
|
|
53
|
+
for (const command of blueprint.commands ?? []) {
|
|
54
|
+
api.registerCommand(command);
|
|
55
|
+
}
|
|
56
|
+
for (const [command, override] of Object.entries(blueprint.commandOverrides ?? {})) {
|
|
57
|
+
api.registerCommand(command, override);
|
|
58
|
+
}
|
|
59
|
+
for (const [targetCommand, flags] of Object.entries(blueprint.flags ?? {})) {
|
|
60
|
+
api.registerFlags(targetCommand, flags);
|
|
61
|
+
}
|
|
62
|
+
for (const [command, override] of Object.entries(blueprint.parsers ?? {})) {
|
|
63
|
+
api.registerParser(command, override);
|
|
64
|
+
}
|
|
65
|
+
for (const [format, renderer] of Object.entries(blueprint.renderers ?? {})) {
|
|
66
|
+
api.registerRenderer(format, renderer);
|
|
67
|
+
}
|
|
68
|
+
for (const [service, override] of Object.entries(blueprint.services ?? {})) {
|
|
69
|
+
api.registerService(service, override);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function registerBlueprintSchemaSurfaces(api, blueprint) {
|
|
73
|
+
for (const override of blueprint.preflights ?? []) {
|
|
74
|
+
api.registerPreflight(override);
|
|
75
|
+
}
|
|
76
|
+
const itemTypes = blueprint.itemTypes ?? [];
|
|
77
|
+
if (itemTypes.length > 0) {
|
|
78
|
+
api.registerItemTypes(itemTypes);
|
|
79
|
+
}
|
|
80
|
+
const itemFields = blueprint.itemFields ?? [];
|
|
81
|
+
if (itemFields.length > 0) {
|
|
82
|
+
api.registerItemFields(itemFields);
|
|
83
|
+
}
|
|
84
|
+
for (const migration of blueprint.migrations ?? []) {
|
|
85
|
+
api.registerMigration(migration);
|
|
86
|
+
}
|
|
87
|
+
for (const profile of blueprint.profiles ?? []) {
|
|
88
|
+
api.registerProfile(profile);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function registerBlueprintRetrievalSurfaces(api, blueprint) {
|
|
92
|
+
for (const provider of blueprint.searchProviders ?? []) {
|
|
93
|
+
api.registerSearchProvider(provider);
|
|
94
|
+
}
|
|
95
|
+
for (const adapter of blueprint.vectorStoreAdapters ?? []) {
|
|
96
|
+
api.registerVectorStoreAdapter(adapter);
|
|
97
|
+
}
|
|
98
|
+
for (const entry of blueprint.importers ?? []) {
|
|
99
|
+
api.registerImporter(entry.name, entry.importer, entry.options);
|
|
100
|
+
}
|
|
101
|
+
for (const entry of blueprint.exporters ?? []) {
|
|
102
|
+
api.registerExporter(entry.name, entry.exporter, entry.options);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function registerBlueprintHooks(api, hooks) {
|
|
106
|
+
for (const hook of hooks.beforeCommand ?? []) {
|
|
107
|
+
api.hooks.beforeCommand(hook);
|
|
108
|
+
}
|
|
109
|
+
for (const hook of hooks.afterCommand ?? []) {
|
|
110
|
+
api.hooks.afterCommand(hook);
|
|
111
|
+
}
|
|
112
|
+
for (const hook of hooks.onWrite ?? []) {
|
|
113
|
+
api.hooks.onWrite(hook);
|
|
114
|
+
}
|
|
115
|
+
for (const hook of hooks.onRead ?? []) {
|
|
116
|
+
api.hooks.onRead(hook);
|
|
117
|
+
}
|
|
118
|
+
for (const hook of hooks.onIndex ?? []) {
|
|
119
|
+
api.hooks.onIndex(hook);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function composeExtension(blueprint) {
|
|
123
|
+
const activate = async (api) => {
|
|
124
|
+
registerBlueprintCommandSurfaces(api, blueprint);
|
|
125
|
+
registerBlueprintSchemaSurfaces(api, blueprint);
|
|
126
|
+
registerBlueprintRetrievalSurfaces(api, blueprint);
|
|
127
|
+
registerBlueprintHooks(api, blueprint.hooks ?? {});
|
|
128
|
+
await blueprint.activate?.(api);
|
|
129
|
+
};
|
|
130
|
+
const module = { activate };
|
|
131
|
+
if (blueprint.manifest) {
|
|
132
|
+
module.manifest = blueprint.manifest;
|
|
133
|
+
}
|
|
134
|
+
if (blueprint.deactivate) {
|
|
135
|
+
module.deactivate = blueprint.deactivate;
|
|
136
|
+
}
|
|
137
|
+
return module;
|
|
138
|
+
}
|
|
139
|
+
function mergeArraySurface(surfaces) {
|
|
140
|
+
const merged = surfaces.flatMap((surface) => surface ?? []);
|
|
141
|
+
return merged.length > 0 ? merged : void 0;
|
|
142
|
+
}
|
|
143
|
+
function mergeHandlerRecord(surfaces) {
|
|
144
|
+
const merged = Object.assign({}, ...surfaces.map((surface) => surface ?? {}));
|
|
145
|
+
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
146
|
+
}
|
|
147
|
+
function mergeFlagRecord(surfaces) {
|
|
148
|
+
const merged = {};
|
|
149
|
+
for (const surface of surfaces) {
|
|
150
|
+
for (const [command, flags] of Object.entries(surface ?? {})) {
|
|
151
|
+
merged[command] = [...merged[command] ?? [], ...flags];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
155
|
+
}
|
|
156
|
+
var EXTENSION_BLUEPRINT_HOOK_KEYS = [
|
|
157
|
+
"beforeCommand",
|
|
158
|
+
"afterCommand",
|
|
159
|
+
"onWrite",
|
|
160
|
+
"onRead",
|
|
161
|
+
"onIndex"
|
|
162
|
+
];
|
|
163
|
+
function assignMergedHookSurface(merged, surfaces, key) {
|
|
164
|
+
const hookArrays = surfaces.map((hooks) => hooks?.[key]);
|
|
165
|
+
const value = mergeArraySurface(hookArrays);
|
|
166
|
+
if (value !== void 0) {
|
|
167
|
+
const typedMerged = merged;
|
|
168
|
+
typedMerged[key] = value;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function mergeHookSurfaces(surfaces) {
|
|
172
|
+
const merged = {};
|
|
173
|
+
for (const key of EXTENSION_BLUEPRINT_HOOK_KEYS) {
|
|
174
|
+
assignMergedHookSurface(merged, surfaces, key);
|
|
175
|
+
}
|
|
176
|
+
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
177
|
+
}
|
|
178
|
+
function mergeExtensionBlueprints(...blueprints) {
|
|
179
|
+
const merged = {};
|
|
180
|
+
const assign = (key, value) => {
|
|
181
|
+
if (value !== void 0) {
|
|
182
|
+
merged[key] = value;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
assign("commands", mergeArraySurface(blueprints.map((blueprint) => blueprint.commands)));
|
|
186
|
+
assign("commandOverrides", mergeHandlerRecord(blueprints.map((blueprint) => blueprint.commandOverrides)));
|
|
187
|
+
assign("flags", mergeFlagRecord(blueprints.map((blueprint) => blueprint.flags)));
|
|
188
|
+
assign("parsers", mergeHandlerRecord(blueprints.map((blueprint) => blueprint.parsers)));
|
|
189
|
+
assign("renderers", mergeHandlerRecord(blueprints.map((blueprint) => blueprint.renderers)));
|
|
190
|
+
assign("services", mergeHandlerRecord(blueprints.map((blueprint) => blueprint.services)));
|
|
191
|
+
assign("preflights", mergeArraySurface(blueprints.map((blueprint) => blueprint.preflights)));
|
|
192
|
+
assign("itemTypes", mergeArraySurface(blueprints.map((blueprint) => blueprint.itemTypes)));
|
|
193
|
+
assign("itemFields", mergeArraySurface(blueprints.map((blueprint) => blueprint.itemFields)));
|
|
194
|
+
assign("migrations", mergeArraySurface(blueprints.map((blueprint) => blueprint.migrations)));
|
|
195
|
+
assign("profiles", mergeArraySurface(blueprints.map((blueprint) => blueprint.profiles)));
|
|
196
|
+
assign("searchProviders", mergeArraySurface(blueprints.map((blueprint) => blueprint.searchProviders)));
|
|
197
|
+
assign("vectorStoreAdapters", mergeArraySurface(blueprints.map((blueprint) => blueprint.vectorStoreAdapters)));
|
|
198
|
+
assign("importers", mergeArraySurface(blueprints.map((blueprint) => blueprint.importers)));
|
|
199
|
+
assign("exporters", mergeArraySurface(blueprints.map((blueprint) => blueprint.exporters)));
|
|
200
|
+
assign("hooks", mergeHookSurfaces(blueprints.map((blueprint) => blueprint.hooks)));
|
|
201
|
+
let manifest;
|
|
202
|
+
for (const blueprint of blueprints) {
|
|
203
|
+
if (blueprint.manifest) {
|
|
204
|
+
manifest = blueprint.manifest;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
assign("manifest", manifest);
|
|
208
|
+
const hasActivates = blueprints.some((blueprint) => blueprint.activate);
|
|
209
|
+
assign("activate", hasActivates ? async (api) => {
|
|
210
|
+
for (const blueprint of blueprints) {
|
|
211
|
+
if (blueprint.activate) {
|
|
212
|
+
await blueprint.activate(api);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
} : void 0);
|
|
216
|
+
const hasDeactivates = blueprints.some((blueprint) => blueprint.deactivate);
|
|
217
|
+
assign("deactivate", hasDeactivates ? async () => {
|
|
218
|
+
const errors = [];
|
|
219
|
+
for (const blueprint of [...blueprints].reverse()) {
|
|
220
|
+
if (!blueprint.deactivate) {
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
try {
|
|
224
|
+
await blueprint.deactivate();
|
|
225
|
+
} catch (error) {
|
|
226
|
+
errors.push(error);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (errors.length > 0) {
|
|
230
|
+
if (errors.length > 1) {
|
|
231
|
+
throw new AggregateError(errors, "Multiple extension blueprint deactivate hooks failed.");
|
|
232
|
+
}
|
|
233
|
+
throw errors[0];
|
|
234
|
+
}
|
|
235
|
+
} : void 0);
|
|
236
|
+
return merged;
|
|
237
|
+
}
|
|
238
|
+
var BLUEPRINT_FIELD_CAPABILITIES = [
|
|
239
|
+
["commands", "commands"],
|
|
240
|
+
["commandOverrides", "commands"],
|
|
241
|
+
["flags", "schema"],
|
|
242
|
+
["itemTypes", "schema"],
|
|
243
|
+
["itemFields", "schema"],
|
|
244
|
+
["migrations", "schema"],
|
|
245
|
+
["profiles", "schema"],
|
|
246
|
+
["parsers", "parser"],
|
|
247
|
+
["renderers", "renderers"],
|
|
248
|
+
["services", "services"],
|
|
249
|
+
["preflights", "preflight"],
|
|
250
|
+
["searchProviders", "search"],
|
|
251
|
+
["vectorStoreAdapters", "search"],
|
|
252
|
+
["importers", "importers"],
|
|
253
|
+
["exporters", "importers"]
|
|
254
|
+
];
|
|
255
|
+
function hasEntries(value) {
|
|
256
|
+
if (!value) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
if (Array.isArray(value)) {
|
|
260
|
+
return value.length > 0;
|
|
261
|
+
}
|
|
262
|
+
return Object.keys(value).length > 0;
|
|
263
|
+
}
|
|
264
|
+
function deriveExtensionCapabilities(blueprint) {
|
|
265
|
+
const capabilities = /* @__PURE__ */ new Set();
|
|
266
|
+
for (const [field, capability] of BLUEPRINT_FIELD_CAPABILITIES) {
|
|
267
|
+
if (hasEntries(blueprint[field])) {
|
|
268
|
+
capabilities.add(capability);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if ((blueprint.commands ?? []).filter(isPresent).some((command) => command.flags !== void 0)) {
|
|
272
|
+
capabilities.add("schema");
|
|
273
|
+
}
|
|
274
|
+
const importExportEntries = [...blueprint.importers ?? [], ...blueprint.exporters ?? []].filter(isPresent);
|
|
275
|
+
if (importExportEntries.some((entry) => entry?.options?.flags !== void 0)) {
|
|
276
|
+
capabilities.add("schema");
|
|
277
|
+
}
|
|
278
|
+
if (importExportEntries.some((entry) => typeof entry === "object")) {
|
|
279
|
+
capabilities.add("commands");
|
|
280
|
+
}
|
|
281
|
+
const hooks = blueprint.hooks ?? {};
|
|
282
|
+
if ([hooks.beforeCommand, hooks.afterCommand, hooks.onWrite, hooks.onRead, hooks.onIndex].some(hasEntries)) {
|
|
283
|
+
capabilities.add("hooks");
|
|
284
|
+
}
|
|
285
|
+
return [...capabilities].sort((left, right) => left.localeCompare(right));
|
|
286
|
+
}
|
|
287
|
+
var BLUEPRINT_HOOK_FIELD_TO_KIND = [
|
|
288
|
+
["beforeCommand", "before_command"],
|
|
289
|
+
["afterCommand", "after_command"],
|
|
290
|
+
["onWrite", "on_write"],
|
|
291
|
+
["onRead", "on_read"],
|
|
292
|
+
["onIndex", "on_index"]
|
|
293
|
+
];
|
|
294
|
+
function sortUnique(values) {
|
|
295
|
+
return [...new Set(values)].sort((left, right) => left.localeCompare(right));
|
|
296
|
+
}
|
|
297
|
+
function isPresent(value) {
|
|
298
|
+
return value !== null && value !== void 0;
|
|
299
|
+
}
|
|
300
|
+
function importerCommandPath(entry) {
|
|
301
|
+
return normalizeCommandName(`${entry.name} import`);
|
|
302
|
+
}
|
|
303
|
+
function exporterCommandPath(entry) {
|
|
304
|
+
return normalizeCommandName(`${entry.name} export`);
|
|
305
|
+
}
|
|
306
|
+
function collectBlueprintCommandPaths(commands, importers, exporters) {
|
|
307
|
+
return [
|
|
308
|
+
...commands.map((command) => normalizeCommandName(command.name)),
|
|
309
|
+
...importers.filter((entry) => entry.options !== void 0).map(importerCommandPath),
|
|
310
|
+
...exporters.filter((entry) => entry.options !== void 0).map(exporterCommandPath)
|
|
311
|
+
];
|
|
312
|
+
}
|
|
313
|
+
function collectBlueprintFlagCommands(blueprint, commands, importers, exporters) {
|
|
314
|
+
return [
|
|
315
|
+
...Object.keys(blueprint.flags ?? {}).map((command) => normalizeCommandName(command)),
|
|
316
|
+
...commands.filter((command) => command.flags !== void 0).map((command) => normalizeCommandName(command.name)),
|
|
317
|
+
...importers.filter((entry) => entry.options?.flags !== void 0).map(importerCommandPath),
|
|
318
|
+
...exporters.filter((entry) => entry.options?.flags !== void 0).map(exporterCommandPath)
|
|
319
|
+
];
|
|
320
|
+
}
|
|
321
|
+
function collectBlueprintHookKinds(hooks) {
|
|
322
|
+
return BLUEPRINT_HOOK_FIELD_TO_KIND.filter(([field]) => (hooks[field]?.length ?? 0) > 0).map(([, kind]) => kind);
|
|
323
|
+
}
|
|
324
|
+
function collectBlueprintSurfaceSummary(blueprint, importers, exporters) {
|
|
325
|
+
return {
|
|
326
|
+
item_types: sortUnique((blueprint.itemTypes ?? []).map((type) => type.name)),
|
|
327
|
+
item_fields: sortUnique((blueprint.itemFields ?? []).map((field) => field.name)),
|
|
328
|
+
// id-less migrations register but carry no identifier, so they are omitted —
|
|
329
|
+
// exactly as describeExtensionActivation drops them from its `migrations` list.
|
|
330
|
+
migrations: sortUnique((blueprint.migrations ?? []).flatMap((migration) => typeof migration.id === "string" ? [migration.id] : [])),
|
|
331
|
+
profiles: sortUnique((blueprint.profiles ?? []).map((profile) => profile.name)),
|
|
332
|
+
importers: sortUnique(importers.map((entry) => normalizeCommandName(entry.name))),
|
|
333
|
+
exporters: sortUnique(exporters.map((entry) => normalizeCommandName(entry.name))),
|
|
334
|
+
search_providers: sortUnique((blueprint.searchProviders ?? []).map((provider) => provider.name)),
|
|
335
|
+
vector_store_adapters: sortUnique((blueprint.vectorStoreAdapters ?? []).map((adapter) => adapter.name)),
|
|
336
|
+
parser_overrides: sortUnique(Object.keys(blueprint.parsers ?? {}).map((command) => normalizeCommandName(command))),
|
|
337
|
+
service_overrides: sortUnique(Object.keys(blueprint.services ?? {}).map((service) => String(service).trim().toLowerCase())),
|
|
338
|
+
renderer_overrides: sortUnique(Object.keys(blueprint.renderers ?? {}).map((format) => String(format).trim().toLowerCase())),
|
|
339
|
+
preflight_overrides: (blueprint.preflights ?? []).length
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
function describeExtensionBlueprint(blueprint) {
|
|
343
|
+
const commands = (blueprint.commands ?? []).filter(isPresent);
|
|
344
|
+
const importers = (blueprint.importers ?? []).filter(isPresent);
|
|
345
|
+
const exporters = (blueprint.exporters ?? []).filter(isPresent);
|
|
346
|
+
const importerPaths = importers.map(importerCommandPath);
|
|
347
|
+
const exporterPaths = exporters.map(exporterCommandPath);
|
|
348
|
+
const commandPaths = collectBlueprintCommandPaths(commands, importers, exporters);
|
|
349
|
+
const flagCommands = collectBlueprintFlagCommands(blueprint, commands, importers, exporters);
|
|
350
|
+
const hooks = blueprint.hooks ?? {};
|
|
351
|
+
const surfaces = collectBlueprintSurfaceSummary(blueprint, importers, exporters);
|
|
352
|
+
return {
|
|
353
|
+
capabilities: deriveExtensionCapabilities(blueprint),
|
|
354
|
+
commands: sortUnique(commandPaths),
|
|
355
|
+
command_overrides: sortUnique(Object.keys(blueprint.commandOverrides ?? {}).map((command) => normalizeCommandName(command))),
|
|
356
|
+
// command_handlers is a superset of commands that also carries the synthesized
|
|
357
|
+
// importer/exporter command paths, but never the override-only paths.
|
|
358
|
+
command_handlers: sortUnique([...commandPaths, ...importerPaths, ...exporterPaths]),
|
|
359
|
+
hooks: collectBlueprintHookKinds(hooks),
|
|
360
|
+
flag_commands: sortUnique(flagCommands),
|
|
361
|
+
...surfaces
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
var BLUEPRINT_LINTABLE_SURFACE_FIELDS = [
|
|
365
|
+
"commands",
|
|
366
|
+
"commandOverrides",
|
|
367
|
+
"flags",
|
|
368
|
+
"parsers",
|
|
369
|
+
"renderers",
|
|
370
|
+
"services",
|
|
371
|
+
"preflights",
|
|
372
|
+
"itemTypes",
|
|
373
|
+
"itemFields",
|
|
374
|
+
"migrations",
|
|
375
|
+
"profiles",
|
|
376
|
+
"searchProviders",
|
|
377
|
+
"vectorStoreAdapters",
|
|
378
|
+
"importers",
|
|
379
|
+
"exporters"
|
|
380
|
+
];
|
|
381
|
+
function normalizeDeclaredCapabilities(capabilities) {
|
|
382
|
+
const known = /* @__PURE__ */ new Set();
|
|
383
|
+
for (const capability of capabilities) {
|
|
384
|
+
const normalized = resolveLegacyExtensionCapabilityAlias(capability) ?? normalizeKnownExtensionCapability(capability);
|
|
385
|
+
if (normalized !== null) {
|
|
386
|
+
known.add(normalized);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return [...known].sort((left, right) => left.localeCompare(right));
|
|
390
|
+
}
|
|
391
|
+
function collectBlueprintCapabilityFindings(used, declared) {
|
|
392
|
+
const findings = [];
|
|
393
|
+
if (declared === null) {
|
|
394
|
+
if (used.length > 0) {
|
|
395
|
+
findings.push({
|
|
396
|
+
code: "manifest_capabilities_absent",
|
|
397
|
+
severity: "warning",
|
|
398
|
+
message: `Blueprint exercises ${used.length === 1 ? "capability" : "capabilities"} [${used.join(", ")}] but declares none; set capabilities to deriveExtensionCapabilities(blueprint) so the manifest grant matches.`
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
return findings;
|
|
402
|
+
}
|
|
403
|
+
const declaredSet = new Set(declared);
|
|
404
|
+
const usedSet = new Set(used);
|
|
405
|
+
for (const capability of used) {
|
|
406
|
+
if (!declaredSet.has(capability)) {
|
|
407
|
+
findings.push({
|
|
408
|
+
code: "capability_undeclared",
|
|
409
|
+
severity: "error",
|
|
410
|
+
message: `Blueprint exercises capability "${capability}" but it is absent from the declared capabilities; activation throws extension_capability_missing \u2014 add "${capability}" to the manifest capabilities.`,
|
|
411
|
+
capability
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
for (const capability of declared) {
|
|
416
|
+
if (!usedSet.has(capability)) {
|
|
417
|
+
findings.push({
|
|
418
|
+
code: "capability_unused",
|
|
419
|
+
severity: "warning",
|
|
420
|
+
message: `Capability "${capability}" is declared but no blueprint surface exercises it; drop it to keep the manifest least-privilege (pm package doctor reports this as extension_capability_unused).`,
|
|
421
|
+
capability
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return findings;
|
|
426
|
+
}
|
|
427
|
+
function collectBlueprintCommandFindings(blueprint) {
|
|
428
|
+
const findings = [];
|
|
429
|
+
const commandPathCounts = /* @__PURE__ */ new Map();
|
|
430
|
+
for (const command of blueprint.commands ?? []) {
|
|
431
|
+
const path = normalizeCommandName(command.name);
|
|
432
|
+
commandPathCounts.set(path, (commandPathCounts.get(path) ?? 0) + 1);
|
|
433
|
+
}
|
|
434
|
+
for (const [path, count] of commandPathCounts) {
|
|
435
|
+
if (count > 1) {
|
|
436
|
+
findings.push({
|
|
437
|
+
code: "duplicate_command",
|
|
438
|
+
severity: "warning",
|
|
439
|
+
message: `Command "${path}" is declared ${count} times in commands; the later registration shadows the earlier one at dispatch.`,
|
|
440
|
+
command: path
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
const overridePaths = new Set(Object.keys(blueprint.commandOverrides ?? {}).map((command) => normalizeCommandName(command)));
|
|
445
|
+
for (const path of commandPathCounts.keys()) {
|
|
446
|
+
if (overridePaths.has(path)) {
|
|
447
|
+
findings.push({
|
|
448
|
+
code: "command_override_conflict",
|
|
449
|
+
severity: "warning",
|
|
450
|
+
message: `Command "${path}" is declared both as a new command definition and as a command override; register one or the other.`,
|
|
451
|
+
command: path
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return findings;
|
|
456
|
+
}
|
|
457
|
+
function collectBlueprintEmptySurfaceFindings(blueprint) {
|
|
458
|
+
const findings = [];
|
|
459
|
+
for (const field of BLUEPRINT_LINTABLE_SURFACE_FIELDS) {
|
|
460
|
+
if (field in blueprint && !hasEntries(blueprint[field])) {
|
|
461
|
+
findings.push({
|
|
462
|
+
code: "empty_surface",
|
|
463
|
+
severity: "warning",
|
|
464
|
+
message: `Blueprint field "${field}" is present but empty; remove it or populate it.`,
|
|
465
|
+
field
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
if ("hooks" in blueprint) {
|
|
470
|
+
const hooks = blueprint.hooks ?? {};
|
|
471
|
+
const registersHook = [hooks.beforeCommand, hooks.afterCommand, hooks.onWrite, hooks.onRead, hooks.onIndex].some(hasEntries);
|
|
472
|
+
if (!registersHook) {
|
|
473
|
+
findings.push({
|
|
474
|
+
code: "empty_surface",
|
|
475
|
+
severity: "warning",
|
|
476
|
+
message: `Blueprint field "hooks" is present but registers no lifecycle hooks; remove it or populate it.`,
|
|
477
|
+
field: "hooks"
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
return findings;
|
|
482
|
+
}
|
|
483
|
+
function lintExtensionBlueprint(blueprint, options = {}) {
|
|
484
|
+
const used = deriveExtensionCapabilities(blueprint);
|
|
485
|
+
const declaredSource = options.declaredCapabilities ?? blueprint.manifest?.capabilities;
|
|
486
|
+
const declared = Array.isArray(declaredSource) ? normalizeDeclaredCapabilities(declaredSource) : null;
|
|
487
|
+
const findings = [
|
|
488
|
+
...collectBlueprintCapabilityFindings(used, declared),
|
|
489
|
+
...collectBlueprintCommandFindings(blueprint),
|
|
490
|
+
...collectBlueprintEmptySurfaceFindings(blueprint)
|
|
491
|
+
];
|
|
492
|
+
return {
|
|
493
|
+
ok: findings.every((finding) => finding.severity !== "error"),
|
|
494
|
+
findings,
|
|
495
|
+
used,
|
|
496
|
+
declared
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
function synthesizeExtensionManifest(blueprint, identity) {
|
|
500
|
+
const { additionalCapabilities, ...manifestIdentity } = identity;
|
|
501
|
+
const extra = Array.isArray(additionalCapabilities) ? normalizeDeclaredCapabilities(additionalCapabilities) : [];
|
|
502
|
+
const capabilities = [.../* @__PURE__ */ new Set([...deriveExtensionCapabilities(blueprint), ...extra])].sort((left, right) => left.localeCompare(right));
|
|
503
|
+
return { ...manifestIdentity, capabilities };
|
|
504
|
+
}
|
|
505
|
+
function composeExtensionPackage(blueprint, identity) {
|
|
506
|
+
const manifest = synthesizeExtensionManifest(blueprint, identity);
|
|
507
|
+
const module = composeExtension({ ...blueprint, manifest });
|
|
508
|
+
return { module, manifest };
|
|
509
|
+
}
|
|
510
|
+
function toCompatibilityFinding(evaluation, pmVersion) {
|
|
511
|
+
if (evaluation.status === "absent" || evaluation.status === "ok") {
|
|
512
|
+
return null;
|
|
513
|
+
}
|
|
514
|
+
const code = `${evaluation.kind}_${evaluation.status}`;
|
|
515
|
+
let message;
|
|
516
|
+
switch (code) {
|
|
517
|
+
case "pm_min_version_invalid":
|
|
518
|
+
message = `pm_min_version "${evaluation.required}" is not a valid version; the extension is treated as incompatible and the loader skips it.`;
|
|
519
|
+
break;
|
|
520
|
+
case "pm_min_version_unchecked":
|
|
521
|
+
message = `pm_min_version "${evaluation.required}" could not be compared against pm ${pmVersion}; compatibility is unverified.`;
|
|
522
|
+
break;
|
|
523
|
+
case "pm_min_version_unmet":
|
|
524
|
+
message = `Requires pm >= ${evaluation.required} but the target is pm ${pmVersion}; the loader skips the extension.`;
|
|
525
|
+
break;
|
|
526
|
+
case "pm_max_version_invalid":
|
|
527
|
+
message = `pm_max_version "${evaluation.required}" is not a valid inclusive upper bound (version ranges are not allowed); the extension is treated as incompatible and the loader skips it.`;
|
|
528
|
+
break;
|
|
529
|
+
case "pm_max_version_unchecked":
|
|
530
|
+
message = `pm_max_version "${evaluation.required}" could not be compared against pm ${pmVersion}; compatibility is unverified.`;
|
|
531
|
+
break;
|
|
532
|
+
case "pm_max_version_exceeded":
|
|
533
|
+
message = `Allows pm <= ${evaluation.required} but the target is pm ${pmVersion}; the loader skips the extension.`;
|
|
534
|
+
break;
|
|
535
|
+
case "pm_max_version_exceeded_warn":
|
|
536
|
+
message = `Target pm ${pmVersion} is newer than pm_max_version ${evaluation.required}, but the "warn" exceeded mode lets it load with a warning.`;
|
|
537
|
+
break;
|
|
538
|
+
}
|
|
539
|
+
return {
|
|
540
|
+
code,
|
|
541
|
+
severity: evaluation.allowed ? "warning" : "error",
|
|
542
|
+
constraint: evaluation.kind,
|
|
543
|
+
required: evaluation.required,
|
|
544
|
+
current: pmVersion,
|
|
545
|
+
message
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
function checkExtensionManifestCompatibility(manifest, target) {
|
|
549
|
+
const minEvaluation = evaluatePmMinVersionBound(manifest.pm_min_version, target.pmVersion);
|
|
550
|
+
const maxEvaluation = evaluatePmMaxVersionBound(manifest.pm_max_version, target.pmVersion, target.pmMaxVersionExceededMode ?? "block");
|
|
551
|
+
const findings = [];
|
|
552
|
+
const minFinding = toCompatibilityFinding(minEvaluation, target.pmVersion);
|
|
553
|
+
if (minFinding !== null) {
|
|
554
|
+
findings.push(minFinding);
|
|
555
|
+
}
|
|
556
|
+
const maxFinding = toCompatibilityFinding(maxEvaluation, target.pmVersion);
|
|
557
|
+
if (maxFinding !== null) {
|
|
558
|
+
findings.push(maxFinding);
|
|
559
|
+
}
|
|
560
|
+
return {
|
|
561
|
+
compatible: minEvaluation.allowed && maxEvaluation.allowed,
|
|
562
|
+
findings,
|
|
563
|
+
pmVersion: target.pmVersion
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
var CAPABILITY_DRIFT_LINT_CODES = /* @__PURE__ */ new Set([
|
|
567
|
+
"capability_undeclared",
|
|
568
|
+
"capability_unused",
|
|
569
|
+
"manifest_capabilities_absent"
|
|
570
|
+
]);
|
|
571
|
+
function preflightExtension(blueprint, options = {}) {
|
|
572
|
+
const blueprintResult = lintExtensionBlueprint(blueprint, { declaredCapabilities: options.declaredCapabilities });
|
|
573
|
+
const manifest = options.identity ? synthesizeExtensionManifest(blueprint, options.identity) : null;
|
|
574
|
+
const compatibility = options.target ? checkExtensionManifestCompatibility(manifest ?? blueprint.manifest ?? {}, options.target) : null;
|
|
575
|
+
const suppressCapabilityDrift = manifest !== null && options.declaredCapabilities === void 0;
|
|
576
|
+
const blueprintFindings = suppressCapabilityDrift ? blueprintResult.findings.filter((finding) => !CAPABILITY_DRIFT_LINT_CODES.has(finding.code)) : blueprintResult.findings;
|
|
577
|
+
const findings = [
|
|
578
|
+
...blueprintFindings.map((finding) => ({
|
|
579
|
+
source: "blueprint",
|
|
580
|
+
severity: finding.severity,
|
|
581
|
+
code: finding.code,
|
|
582
|
+
message: finding.message
|
|
583
|
+
})),
|
|
584
|
+
...(compatibility?.findings ?? []).map((finding) => ({
|
|
585
|
+
source: "compatibility",
|
|
586
|
+
severity: finding.severity,
|
|
587
|
+
code: finding.code,
|
|
588
|
+
message: finding.message
|
|
589
|
+
}))
|
|
590
|
+
];
|
|
591
|
+
return {
|
|
592
|
+
ok: findings.every((finding) => finding.severity !== "error"),
|
|
593
|
+
capabilities: blueprintResult.used,
|
|
594
|
+
blueprint: blueprintResult,
|
|
595
|
+
manifest,
|
|
596
|
+
compatibility,
|
|
597
|
+
findings
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// dist/sdk/testing.js
|
|
602
|
+
!(function() {
|
|
603
|
+
try {
|
|
604
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
605
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "fd785549-a72d-5b9c-8e0a-26513960d8dc");
|
|
606
|
+
} catch (e2) {
|
|
607
|
+
}
|
|
608
|
+
})();
|
|
609
|
+
var HOOK_KIND_TO_REGISTRY_FIELD = {
|
|
610
|
+
before_command: "beforeCommand",
|
|
611
|
+
after_command: "afterCommand",
|
|
612
|
+
on_read: "onRead",
|
|
613
|
+
on_write: "onWrite",
|
|
614
|
+
on_index: "onIndex"
|
|
615
|
+
};
|
|
616
|
+
function normalizeSdkIdentifier(value) {
|
|
617
|
+
return value.trim().toLowerCase();
|
|
618
|
+
}
|
|
619
|
+
function normalizeSdkProfileMatchKey(value) {
|
|
620
|
+
return normalizeSdkIdentifier(value).replaceAll("-", "_");
|
|
621
|
+
}
|
|
622
|
+
function extensionNameSuffix(extensionName) {
|
|
623
|
+
return extensionName ? ` from extension "${extensionName}"` : "";
|
|
624
|
+
}
|
|
625
|
+
function sortedUnique(values) {
|
|
626
|
+
return [...new Set(values)].sort((left, right) => left.localeCompare(right));
|
|
627
|
+
}
|
|
628
|
+
function normalizeSdkCommandName(command) {
|
|
629
|
+
if (typeof command !== "string") {
|
|
630
|
+
throw new Error('A command name string is required. Pass it via the options object, e.g. runRegisteredCommandForTest(activation, { command: "my command" }) \u2014 positional command arguments are not supported.');
|
|
631
|
+
}
|
|
632
|
+
return command.trim().toLowerCase().split(/\s+/).filter((part) => part.length > 0).join(" ");
|
|
633
|
+
}
|
|
634
|
+
function formatAvailable(values) {
|
|
635
|
+
return values.length > 0 ? values.join(", ") : "(none)";
|
|
636
|
+
}
|
|
637
|
+
function assertStringSetIncludes(actual, expected, label) {
|
|
638
|
+
const actualValues = new Set(actual ?? []);
|
|
639
|
+
const missing = sortedUnique(expected.filter((value) => !actualValues.has(value)));
|
|
640
|
+
if (missing.length > 0) {
|
|
641
|
+
throw new Error(`Expected package manifest ${label} to include ${missing.join(", ")}; available: ${formatAvailable(sortedUnique(actual ?? []))}`);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
function collectFlagLabels(flags) {
|
|
645
|
+
const labels = /* @__PURE__ */ new Set();
|
|
646
|
+
for (const flag of flags) {
|
|
647
|
+
if (typeof flag.long === "string" && flag.long.trim().length > 0) {
|
|
648
|
+
labels.add(flag.long.trim());
|
|
649
|
+
}
|
|
650
|
+
if (typeof flag.short === "string" && flag.short.trim().length > 0) {
|
|
651
|
+
labels.add(flag.short.trim());
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
return labels;
|
|
655
|
+
}
|
|
656
|
+
function readTestExtensionManifest(module) {
|
|
657
|
+
const moduleRecord = asPropertyRecord(module);
|
|
658
|
+
if (!moduleRecord) {
|
|
659
|
+
return {};
|
|
660
|
+
}
|
|
661
|
+
const manifest = asPropertyRecord(moduleRecord.manifest);
|
|
662
|
+
if (manifest) {
|
|
663
|
+
return manifest;
|
|
664
|
+
}
|
|
665
|
+
const defaultExport = asPropertyRecord(moduleRecord.default);
|
|
666
|
+
const defaultManifest = asPropertyRecord(defaultExport?.manifest);
|
|
667
|
+
if (defaultManifest) {
|
|
668
|
+
return defaultManifest;
|
|
669
|
+
}
|
|
670
|
+
if (defaultExport && typeof moduleRecord.default !== "function" && ("name" in defaultExport || "capabilities" in defaultExport)) {
|
|
671
|
+
return defaultExport;
|
|
672
|
+
}
|
|
673
|
+
if (typeof module !== "function" && ("name" in moduleRecord || "capabilities" in moduleRecord)) {
|
|
674
|
+
return moduleRecord;
|
|
675
|
+
}
|
|
676
|
+
return {};
|
|
677
|
+
}
|
|
678
|
+
function resolveTestExtensionName(manifest, explicitName) {
|
|
679
|
+
return explicitName ?? (typeof manifest.name === "string" && manifest.name.trim().length > 0 ? manifest.name.trim() : "test-extension");
|
|
680
|
+
}
|
|
681
|
+
function readTestExtensionCapabilities(manifest, options) {
|
|
682
|
+
if (Array.isArray(options.capabilities)) {
|
|
683
|
+
return [...options.capabilities];
|
|
684
|
+
}
|
|
685
|
+
if (Array.isArray(manifest.capabilities)) {
|
|
686
|
+
return manifest.capabilities.filter((capability) => typeof capability === "string");
|
|
687
|
+
}
|
|
688
|
+
return [];
|
|
689
|
+
}
|
|
690
|
+
function buildSingleExtensionLoadResult(module, manifest, identity) {
|
|
691
|
+
return {
|
|
692
|
+
disabled_by_flag: false,
|
|
693
|
+
roots: { global: "", project: "" },
|
|
694
|
+
configured_enabled: [],
|
|
695
|
+
configured_disabled: [],
|
|
696
|
+
discovered: [],
|
|
697
|
+
effective: [],
|
|
698
|
+
warnings: [],
|
|
699
|
+
policy: identity.policy,
|
|
700
|
+
failed: [],
|
|
701
|
+
loaded: [
|
|
702
|
+
{
|
|
703
|
+
layer: identity.layer,
|
|
704
|
+
directory: "",
|
|
705
|
+
manifest_path: "",
|
|
706
|
+
name: identity.name,
|
|
707
|
+
version: typeof manifest.version === "string" ? manifest.version : "0.0.0",
|
|
708
|
+
entry: typeof manifest.entry === "string" ? manifest.entry : "./index.js",
|
|
709
|
+
priority: typeof manifest.priority === "number" ? manifest.priority : 0,
|
|
710
|
+
entry_path: "",
|
|
711
|
+
capabilities: identity.capabilities,
|
|
712
|
+
manifest_version: typeof manifest.manifest_version === "number" ? manifest.manifest_version : void 0,
|
|
713
|
+
pm_min_version: typeof manifest.pm_min_version === "string" ? manifest.pm_min_version : void 0,
|
|
714
|
+
pm_max_version: typeof manifest.pm_max_version === "string" ? manifest.pm_max_version : void 0,
|
|
715
|
+
engines: manifest.engines,
|
|
716
|
+
trusted: manifest.trusted,
|
|
717
|
+
provenance: manifest.provenance,
|
|
718
|
+
sandbox_profile: manifest.sandbox_profile,
|
|
719
|
+
permissions: manifest.permissions,
|
|
720
|
+
activation: manifest.activation,
|
|
721
|
+
module
|
|
722
|
+
}
|
|
723
|
+
]
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
async function activateExtensionForTest(module, options = {}) {
|
|
727
|
+
const manifest = readTestExtensionManifest(module);
|
|
728
|
+
return activateExtensions(buildSingleExtensionLoadResult(module, manifest, {
|
|
729
|
+
name: resolveTestExtensionName(manifest, options.name),
|
|
730
|
+
layer: options.layer ?? "project",
|
|
731
|
+
capabilities: readTestExtensionCapabilities(manifest, options),
|
|
732
|
+
policy: options.policy ?? createDefaultExtensionGovernancePolicy()
|
|
733
|
+
}));
|
|
734
|
+
}
|
|
735
|
+
async function deactivateExtensionForTest(module, options = {}) {
|
|
736
|
+
const manifest = readTestExtensionManifest(module);
|
|
737
|
+
return deactivateExtensions(buildSingleExtensionLoadResult(module, manifest, {
|
|
738
|
+
name: resolveTestExtensionName(manifest, options.name),
|
|
739
|
+
layer: options.layer ?? "project",
|
|
740
|
+
capabilities: readTestExtensionCapabilities(manifest, {}),
|
|
741
|
+
policy: createDefaultExtensionGovernancePolicy()
|
|
742
|
+
}), options.activation, options.deactivateTimeoutMs === void 0 ? {} : { deactivate_timeout_ms: options.deactivateTimeoutMs });
|
|
743
|
+
}
|
|
744
|
+
async function runRegisteredCommandForTest(commands, options) {
|
|
745
|
+
const command = normalizeSdkCommandName(options.command);
|
|
746
|
+
if (command.length === 0) {
|
|
747
|
+
throw new Error("Expected command name must be a non-empty string");
|
|
748
|
+
}
|
|
749
|
+
const hasHandler = commands.handlers.some((entry) => entry.command === command);
|
|
750
|
+
if (!hasHandler) {
|
|
751
|
+
const available = sortedUnique(commands.handlers.map((entry) => entry.command));
|
|
752
|
+
throw new Error(`Expected a registered command handler for "${command}" to invoke. Available command handlers: ${formatAvailable(available)}`);
|
|
753
|
+
}
|
|
754
|
+
return runCommandHandler(commands, {
|
|
755
|
+
command,
|
|
756
|
+
args: options.args ? [...options.args] : [],
|
|
757
|
+
options: options.options ? { ...options.options } : {},
|
|
758
|
+
global: { json: true, quiet: true, noPager: true, ...options.global },
|
|
759
|
+
pm_root: options.pmRoot ?? ""
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
async function runRegisteredHookForTest(hooks, options) {
|
|
763
|
+
if (hooks[HOOK_KIND_TO_REGISTRY_FIELD[options.kind]].length === 0) {
|
|
764
|
+
const populatedKinds = sortedUnique(Object.keys(HOOK_KIND_TO_REGISTRY_FIELD).filter((kind) => hooks[HOOK_KIND_TO_REGISTRY_FIELD[kind]].length > 0));
|
|
765
|
+
throw new Error(`Expected a registered "${options.kind}" hook to invoke. Hook kinds with registrations: ${formatAvailable(populatedKinds)}`);
|
|
766
|
+
}
|
|
767
|
+
switch (options.kind) {
|
|
768
|
+
case "before_command":
|
|
769
|
+
return runBeforeCommandHooks(hooks, options.context);
|
|
770
|
+
case "after_command":
|
|
771
|
+
return runAfterCommandHooks(hooks, options.context);
|
|
772
|
+
case "on_read":
|
|
773
|
+
return runOnReadHooks(hooks, options.context);
|
|
774
|
+
case "on_write":
|
|
775
|
+
return runOnWriteHooks(hooks, options.context);
|
|
776
|
+
case "on_index":
|
|
777
|
+
return runOnIndexHooks(hooks, options.context);
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
async function runRegisteredParserOverrideForTest(parsers, context) {
|
|
781
|
+
const command = normalizeSdkCommandName(context.command);
|
|
782
|
+
if (!parsers.overrides.some((entry) => entry.command === command)) {
|
|
783
|
+
throw new Error(`Expected a registered parser override for command "${command}" to invoke. Available parser override commands: ${formatAvailable(sortedUnique(parsers.overrides.map((entry) => entry.command)))}`);
|
|
784
|
+
}
|
|
785
|
+
return runParserOverride(parsers, context);
|
|
786
|
+
}
|
|
787
|
+
async function runRegisteredPreflightOverrideForTest(preflight, context) {
|
|
788
|
+
if (preflight.overrides.length === 0) {
|
|
789
|
+
throw new Error("Expected a registered preflight override to invoke, but none are registered.");
|
|
790
|
+
}
|
|
791
|
+
return runPreflightOverride(preflight, context);
|
|
792
|
+
}
|
|
793
|
+
async function runRegisteredCommandOverrideForTest(commands, context) {
|
|
794
|
+
const command = normalizeSdkCommandName(context.command);
|
|
795
|
+
if (!commands.overrides.some((entry) => entry.command === command)) {
|
|
796
|
+
throw new Error(`Expected a registered command override for command "${command}" to invoke. Available command override commands: ${formatAvailable(sortedUnique(commands.overrides.map((entry) => entry.command)))}`);
|
|
797
|
+
}
|
|
798
|
+
return runCommandOverride(commands, context);
|
|
799
|
+
}
|
|
800
|
+
async function runRegisteredRendererOverrideForTest(renderers, context) {
|
|
801
|
+
if (!renderers.overrides.some((entry) => entry.format === context.format)) {
|
|
802
|
+
throw new Error(`Expected a registered renderer override for format "${context.format}" to invoke. Available renderer override formats: ${formatAvailable(sortedUnique(renderers.overrides.map((entry) => entry.format)))}`);
|
|
803
|
+
}
|
|
804
|
+
return runRendererOverride(renderers, context);
|
|
805
|
+
}
|
|
806
|
+
async function runRegisteredServiceOverrideForTest(services, context) {
|
|
807
|
+
if (!services.overrides.some((entry) => entry.service === context.service)) {
|
|
808
|
+
throw new Error(`Expected a registered service override for service "${context.service}" to invoke. Available service override services: ${formatAvailable(sortedUnique(services.overrides.map((entry) => entry.service)))}`);
|
|
809
|
+
}
|
|
810
|
+
return runServiceOverride(services, context);
|
|
811
|
+
}
|
|
812
|
+
var SEARCH_PROVIDER_OPERATION_DEFINITION_KEYS = {
|
|
813
|
+
query: ["query"],
|
|
814
|
+
embed: ["embed"],
|
|
815
|
+
embedBatch: ["embedBatch", "embed_batch"],
|
|
816
|
+
queryExpansion: ["queryExpansion", "query_expansion"],
|
|
817
|
+
rerank: ["rerank"]
|
|
818
|
+
};
|
|
819
|
+
async function runRegisteredSearchProviderForTest(registrations, options) {
|
|
820
|
+
const registration = resolveRegisteredSearchProvider(registrations, options.provider);
|
|
821
|
+
if (!registration) {
|
|
822
|
+
const available = sortedUnique(registrations.search_providers.map((entry) => entry.definition.name));
|
|
823
|
+
throw new Error(`Expected a registered search provider "${options.provider}" to invoke. Available search providers: ${formatAvailable(available)}`);
|
|
824
|
+
}
|
|
825
|
+
const runtimeDefinition = registration.runtime_definition;
|
|
826
|
+
const operationFn = SEARCH_PROVIDER_OPERATION_DEFINITION_KEYS[options.operation].map((key) => runtimeDefinition[key]).find((value) => typeof value === "function");
|
|
827
|
+
if (typeof operationFn !== "function") {
|
|
828
|
+
throw new Error(`Registered search provider "${options.provider}" does not implement the "${options.operation}" operation.`);
|
|
829
|
+
}
|
|
830
|
+
return await operationFn(options.context);
|
|
831
|
+
}
|
|
832
|
+
async function runRegisteredVectorStoreAdapterForTest(registrations, options) {
|
|
833
|
+
const registration = resolveRegisteredVectorStoreAdapter(registrations, options.adapter);
|
|
834
|
+
if (!registration) {
|
|
835
|
+
const available = sortedUnique(registrations.vector_store_adapters.map((entry) => entry.definition.name));
|
|
836
|
+
throw new Error(`Expected a registered vector store adapter "${options.adapter}" to invoke. Available vector store adapters: ${formatAvailable(available)}`);
|
|
837
|
+
}
|
|
838
|
+
const operationFn = registration.runtime_definition[options.operation];
|
|
839
|
+
if (typeof operationFn !== "function") {
|
|
840
|
+
throw new Error(`Registered vector store adapter "${options.adapter}" does not implement the "${options.operation}" operation.`);
|
|
841
|
+
}
|
|
842
|
+
return await operationFn(options.context);
|
|
843
|
+
}
|
|
844
|
+
async function runRegisteredMigrationForTest(registrations, options) {
|
|
845
|
+
const migration = assertRegisteredMigration(registrations, {
|
|
846
|
+
migration: options.migration,
|
|
847
|
+
extensionName: options.extensionName
|
|
848
|
+
});
|
|
849
|
+
const run = getMigrationRuntimeDefinition(migration).run;
|
|
850
|
+
if (typeof run !== "function") {
|
|
851
|
+
throw new Error(`Registered migration "${options.migration}" does not implement a run function to invoke.`);
|
|
852
|
+
}
|
|
853
|
+
const declaredStatus = migration.definition.status;
|
|
854
|
+
const context = {
|
|
855
|
+
id: migration.definition.id,
|
|
856
|
+
command: "migration",
|
|
857
|
+
layer: migration.layer,
|
|
858
|
+
extension: migration.name,
|
|
859
|
+
pm_root: options.pmRoot ?? "",
|
|
860
|
+
status: (typeof declaredStatus === "string" ? declaredStatus.trim().toLowerCase() : "") || "pending"
|
|
861
|
+
};
|
|
862
|
+
return await run(context);
|
|
863
|
+
}
|
|
864
|
+
async function runRegisteredImporterForTest(activation, options) {
|
|
865
|
+
const importer = assertRegisteredImporter(activation.registrations, {
|
|
866
|
+
importer: options.importer,
|
|
867
|
+
extensionName: options.extensionName
|
|
868
|
+
});
|
|
869
|
+
return runRegisteredCommandForTest(activation.commands, {
|
|
870
|
+
command: `${importer.importer} import`,
|
|
871
|
+
args: options.args,
|
|
872
|
+
options: options.options,
|
|
873
|
+
global: options.global,
|
|
874
|
+
pmRoot: options.pmRoot
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
async function runRegisteredExporterForTest(activation, options) {
|
|
878
|
+
const exporter = assertRegisteredExporter(activation.registrations, {
|
|
879
|
+
exporter: options.exporter,
|
|
880
|
+
extensionName: options.extensionName
|
|
881
|
+
});
|
|
882
|
+
return runRegisteredCommandForTest(activation.commands, {
|
|
883
|
+
command: `${exporter.exporter} export`,
|
|
884
|
+
args: options.args,
|
|
885
|
+
options: options.options,
|
|
886
|
+
global: options.global,
|
|
887
|
+
pmRoot: options.pmRoot
|
|
888
|
+
});
|
|
889
|
+
}
|
|
890
|
+
function assertExtensionDeactivated(result, expectation = {}) {
|
|
891
|
+
const expectedDeactivated = expectation.deactivated ?? 1;
|
|
892
|
+
if (result.deactivated !== expectedDeactivated) {
|
|
893
|
+
throw new Error(`Expected ${expectedDeactivated} extension${expectedDeactivated === 1 ? "" : "s"} to deactivate cleanly, but ${result.deactivated} did.`);
|
|
894
|
+
}
|
|
895
|
+
const expectedFailed = expectation.failed ?? 0;
|
|
896
|
+
if (result.failed.length !== expectedFailed) {
|
|
897
|
+
const detail = result.failed.map((failure) => `${failure.layer}:${failure.name} (${failure.error})`).join(", ");
|
|
898
|
+
throw new Error(`Expected ${expectedFailed} teardown failure${expectedFailed === 1 ? "" : "s"}, but observed ${result.failed.length}${detail.length > 0 ? `: ${detail}` : ""}.`);
|
|
899
|
+
}
|
|
900
|
+
return result;
|
|
901
|
+
}
|
|
902
|
+
function assertPackageManifest(manifest, expectation) {
|
|
903
|
+
if (expectation.packageName !== void 0 && manifest.package_name !== expectation.packageName) {
|
|
904
|
+
throw new Error(`Expected package manifest package_name to be "${expectation.packageName}"; received "${manifest.package_name ?? "(none)"}"`);
|
|
905
|
+
}
|
|
906
|
+
if (expectation.aliases !== void 0) {
|
|
907
|
+
assertStringSetIncludes(manifest.aliases, expectation.aliases, "aliases");
|
|
908
|
+
}
|
|
909
|
+
if (expectation.resources !== void 0) {
|
|
910
|
+
for (const [kind, expectedPaths] of Object.entries(expectation.resources)) {
|
|
911
|
+
assertStringSetIncludes(manifest.resources[kind], expectedPaths, `pm.${kind}`);
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
return manifest;
|
|
915
|
+
}
|
|
916
|
+
function assertRegisteredCommandContract(registrations, expectation) {
|
|
917
|
+
const expectedCommand = normalizeSdkCommandName(expectation.command);
|
|
918
|
+
if (expectedCommand.length === 0) {
|
|
919
|
+
throw new Error("Expected command name must be a non-empty string");
|
|
920
|
+
}
|
|
921
|
+
const commandCandidates = registrations.commands.filter((entry) => entry.command === expectedCommand);
|
|
922
|
+
const command = expectation.extensionName ? commandCandidates.find((entry) => entry.name === expectation.extensionName) : commandCandidates[0];
|
|
923
|
+
if (!command) {
|
|
924
|
+
const available = registrations.commands.map((entry) => entry.command).sort((left, right) => left.localeCompare(right));
|
|
925
|
+
const extensionSuffix = expectation.extensionName ? ` from extension "${expectation.extensionName}"` : "";
|
|
926
|
+
throw new Error(`Expected extension command "${expectedCommand}"${extensionSuffix} to be registered. Available commands: ${formatAvailable(available)}`);
|
|
927
|
+
}
|
|
928
|
+
if (expectation.action !== void 0 && command.action !== expectation.action) {
|
|
929
|
+
throw new Error(`Expected extension command "${expectedCommand}" action "${expectation.action}", received "${command.action}"`);
|
|
930
|
+
}
|
|
931
|
+
if (expectation.arguments !== void 0) {
|
|
932
|
+
const actualArguments = (command.arguments ?? []).map((argument) => argument.name);
|
|
933
|
+
const missingArguments = expectation.arguments.filter((argument) => !actualArguments.includes(argument));
|
|
934
|
+
if (missingArguments.length > 0) {
|
|
935
|
+
throw new Error(`Expected extension command "${expectedCommand}" arguments ${formatAvailable(expectation.arguments)}; missing ${formatAvailable(missingArguments)}; available ${formatAvailable(actualArguments)}`);
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
const flags = registrations.flags.filter((entry) => entry.target_command === expectedCommand && (expectation.extensionName === void 0 || entry.name === expectation.extensionName)).flatMap((entry) => entry.flags);
|
|
939
|
+
if (expectation.flags !== void 0) {
|
|
940
|
+
const actualFlagLabels = collectFlagLabels(flags);
|
|
941
|
+
const missingFlags = expectation.flags.filter((flag) => !actualFlagLabels.has(flag));
|
|
942
|
+
if (missingFlags.length > 0) {
|
|
943
|
+
throw new Error(`Expected extension command "${expectedCommand}" flags ${formatAvailable(expectation.flags)}; missing ${formatAvailable(missingFlags)}; available ${formatAvailable([...actualFlagLabels].sort((left, right) => left.localeCompare(right)))}`);
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
return { command, flags };
|
|
947
|
+
}
|
|
948
|
+
function assertRegisteredFlags(registrations, expectation) {
|
|
949
|
+
const expectedCommand = normalizeSdkCommandName(expectation.targetCommand);
|
|
950
|
+
if (expectedCommand.length === 0) {
|
|
951
|
+
throw new Error("Expected target command name must be a non-empty string");
|
|
952
|
+
}
|
|
953
|
+
const candidates = registrations.flags.filter((entry) => entry.target_command === expectedCommand);
|
|
954
|
+
let registration;
|
|
955
|
+
if (expectation.extensionName) {
|
|
956
|
+
registration = candidates.find((entry) => entry.name === expectation.extensionName);
|
|
957
|
+
} else if (candidates.length === 1) {
|
|
958
|
+
registration = candidates[0];
|
|
959
|
+
} else if (candidates.length > 1) {
|
|
960
|
+
const availableExtensions = sortedUnique(candidates.map((entry) => entry.name));
|
|
961
|
+
throw new Error(`Expected flags for target command "${expectedCommand}" matched multiple extensions: ${formatAvailable(availableExtensions)}. Specify extensionName to choose one registration.`);
|
|
962
|
+
}
|
|
963
|
+
if (!registration) {
|
|
964
|
+
const available = sortedUnique(registrations.flags.map((entry) => entry.target_command));
|
|
965
|
+
const availableExtensions = sortedUnique(candidates.map((entry) => entry.name));
|
|
966
|
+
throw new Error(`Expected flags for target command "${expectedCommand}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available flag target commands: ${formatAvailable(available)}; matching extensions: ${formatAvailable(availableExtensions)}`);
|
|
967
|
+
}
|
|
968
|
+
if (expectation.flags !== void 0) {
|
|
969
|
+
const actualFlagLabels = collectFlagLabels(registration.flags);
|
|
970
|
+
const missingFlags = expectation.flags.filter((flag) => !actualFlagLabels.has(flag));
|
|
971
|
+
if (missingFlags.length > 0) {
|
|
972
|
+
throw new Error(`Expected flags for target command "${expectedCommand}" to include ${formatAvailable(expectation.flags)}; missing ${formatAvailable(missingFlags)}; available ${formatAvailable([...actualFlagLabels].sort((left, right) => left.localeCompare(right)))}`);
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
return registration;
|
|
976
|
+
}
|
|
977
|
+
function assertRegisteredHook(hooks, expectation) {
|
|
978
|
+
const field = HOOK_KIND_TO_REGISTRY_FIELD[expectation.kind];
|
|
979
|
+
const candidates = hooks[field];
|
|
980
|
+
const hook = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
981
|
+
if (!hook) {
|
|
982
|
+
const available = sortedUnique(candidates.map((entry) => entry.name));
|
|
983
|
+
throw new Error(`Expected a "${expectation.kind}" hook${extensionNameSuffix(expectation.extensionName)} to be registered. Available "${expectation.kind}" hooks: ${formatAvailable(available)}`);
|
|
984
|
+
}
|
|
985
|
+
return hook;
|
|
986
|
+
}
|
|
987
|
+
function assertRegisteredSearchProvider(registrations, expectation) {
|
|
988
|
+
const expectedProvider = normalizeSdkIdentifier(expectation.provider);
|
|
989
|
+
if (expectedProvider.length === 0) {
|
|
990
|
+
throw new Error("Expected search provider name must be a non-empty string");
|
|
991
|
+
}
|
|
992
|
+
const candidates = registrations.search_providers.filter((entry) => normalizeSdkIdentifier(entry.definition.name) === expectedProvider);
|
|
993
|
+
const provider = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
994
|
+
if (!provider) {
|
|
995
|
+
const available = sortedUnique(registrations.search_providers.map((entry) => entry.definition.name));
|
|
996
|
+
throw new Error(`Expected search provider "${expectedProvider}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available search providers: ${formatAvailable(available)}`);
|
|
997
|
+
}
|
|
998
|
+
return provider;
|
|
999
|
+
}
|
|
1000
|
+
function assertRegisteredVectorStoreAdapter(registrations, expectation) {
|
|
1001
|
+
const expectedAdapter = normalizeSdkIdentifier(expectation.adapter);
|
|
1002
|
+
if (expectedAdapter.length === 0) {
|
|
1003
|
+
throw new Error("Expected vector store adapter name must be a non-empty string");
|
|
1004
|
+
}
|
|
1005
|
+
const candidates = registrations.vector_store_adapters.filter((entry) => normalizeSdkIdentifier(entry.definition.name) === expectedAdapter);
|
|
1006
|
+
const adapter = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1007
|
+
if (!adapter) {
|
|
1008
|
+
const available = sortedUnique(registrations.vector_store_adapters.map((entry) => entry.definition.name));
|
|
1009
|
+
throw new Error(`Expected vector store adapter "${expectedAdapter}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available vector store adapters: ${formatAvailable(available)}`);
|
|
1010
|
+
}
|
|
1011
|
+
return adapter;
|
|
1012
|
+
}
|
|
1013
|
+
function assertRegisteredImporter(registrations, expectation) {
|
|
1014
|
+
const expectedImporter = normalizeSdkIdentifier(expectation.importer);
|
|
1015
|
+
if (expectedImporter.length === 0) {
|
|
1016
|
+
throw new Error("Expected importer name must be a non-empty string");
|
|
1017
|
+
}
|
|
1018
|
+
const candidates = registrations.importers.filter((entry) => normalizeSdkIdentifier(entry.importer) === expectedImporter);
|
|
1019
|
+
const importer = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1020
|
+
if (!importer) {
|
|
1021
|
+
const available = sortedUnique(registrations.importers.map((entry) => entry.importer));
|
|
1022
|
+
throw new Error(`Expected importer "${expectedImporter}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available importers: ${formatAvailable(available)}`);
|
|
1023
|
+
}
|
|
1024
|
+
return importer;
|
|
1025
|
+
}
|
|
1026
|
+
function assertRegisteredExporter(registrations, expectation) {
|
|
1027
|
+
const expectedExporter = normalizeSdkIdentifier(expectation.exporter);
|
|
1028
|
+
if (expectedExporter.length === 0) {
|
|
1029
|
+
throw new Error("Expected exporter name must be a non-empty string");
|
|
1030
|
+
}
|
|
1031
|
+
const candidates = registrations.exporters.filter((entry) => normalizeSdkIdentifier(entry.exporter) === expectedExporter);
|
|
1032
|
+
const exporter = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1033
|
+
if (!exporter) {
|
|
1034
|
+
const available = sortedUnique(registrations.exporters.map((entry) => entry.exporter));
|
|
1035
|
+
throw new Error(`Expected exporter "${expectedExporter}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available exporters: ${formatAvailable(available)}`);
|
|
1036
|
+
}
|
|
1037
|
+
return exporter;
|
|
1038
|
+
}
|
|
1039
|
+
function assertRegisteredItemField(registrations, expectation) {
|
|
1040
|
+
const expectedField = normalizeSdkIdentifier(expectation.field);
|
|
1041
|
+
if (expectedField.length === 0) {
|
|
1042
|
+
throw new Error("Expected item field name must be a non-empty string");
|
|
1043
|
+
}
|
|
1044
|
+
const candidates = registrations.item_fields.filter((entry) => expectation.extensionName === void 0 || entry.name === expectation.extensionName).map((registration) => ({
|
|
1045
|
+
registration,
|
|
1046
|
+
field: registration.fields.find((field) => normalizeSdkIdentifier(field.name) === expectedField)
|
|
1047
|
+
})).filter((entry) => entry.field !== void 0);
|
|
1048
|
+
const match = candidates.find((entry) => expectation.type === void 0 || entry.field.type === expectation.type);
|
|
1049
|
+
if (!match) {
|
|
1050
|
+
const available = sortedUnique(registrations.item_fields.flatMap((entry) => entry.fields.map((field) => `${field.name}:${field.type}`)));
|
|
1051
|
+
throw new Error(`Expected item field "${expectedField}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available item fields: ${formatAvailable(available)}`);
|
|
1052
|
+
}
|
|
1053
|
+
return match;
|
|
1054
|
+
}
|
|
1055
|
+
function assertRegisteredItemType(registrations, expectation) {
|
|
1056
|
+
const expectedType = normalizeSdkIdentifier(expectation.itemType);
|
|
1057
|
+
if (expectedType.length === 0) {
|
|
1058
|
+
throw new Error("Expected item type name must be a non-empty string");
|
|
1059
|
+
}
|
|
1060
|
+
const candidates = registrations.item_types.filter((entry) => expectation.extensionName === void 0 || entry.name === expectation.extensionName).map((registration) => ({
|
|
1061
|
+
registration,
|
|
1062
|
+
itemType: registration.types.find((itemType) => normalizeSdkIdentifier(itemType.name) === expectedType)
|
|
1063
|
+
})).filter((entry) => entry.itemType !== void 0);
|
|
1064
|
+
const match = candidates.find((entry) => expectation.folder === void 0 || entry.itemType.folder === expectation.folder);
|
|
1065
|
+
if (!match) {
|
|
1066
|
+
const available = sortedUnique(registrations.item_types.flatMap((entry) => entry.types.map((itemType) => `${itemType.name}:${itemType.folder}`)));
|
|
1067
|
+
throw new Error(`Expected item type "${expectedType}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available item types: ${formatAvailable(available)}`);
|
|
1068
|
+
}
|
|
1069
|
+
return match;
|
|
1070
|
+
}
|
|
1071
|
+
function assertRegisteredProfile(registrations, expectation) {
|
|
1072
|
+
const expectedProfile = normalizeSdkProfileMatchKey(expectation.profile);
|
|
1073
|
+
if (expectedProfile.length === 0) {
|
|
1074
|
+
throw new Error("Expected profile name must be a non-empty string");
|
|
1075
|
+
}
|
|
1076
|
+
const match = registrations.profiles.filter((entry) => expectation.extensionName === void 0 || entry.name === expectation.extensionName).find((entry) => normalizeSdkProfileMatchKey(entry.profile.name) === expectedProfile);
|
|
1077
|
+
if (!match) {
|
|
1078
|
+
const available = sortedUnique(registrations.profiles.map((entry) => entry.profile.name));
|
|
1079
|
+
throw new Error(`Expected profile "${expectedProfile}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available profiles: ${formatAvailable(available)}`);
|
|
1080
|
+
}
|
|
1081
|
+
return { registration: match, profile: match.profile };
|
|
1082
|
+
}
|
|
1083
|
+
function assertRegisteredCommandOverride(commands, expectation) {
|
|
1084
|
+
const expectedCommand = normalizeSdkCommandName(expectation.command);
|
|
1085
|
+
if (expectedCommand.length === 0) {
|
|
1086
|
+
throw new Error("Expected command name must be a non-empty string");
|
|
1087
|
+
}
|
|
1088
|
+
const candidates = commands.overrides.filter((entry) => entry.command === expectedCommand);
|
|
1089
|
+
const override = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1090
|
+
if (!override) {
|
|
1091
|
+
const available = sortedUnique(commands.overrides.map((entry) => entry.command));
|
|
1092
|
+
throw new Error(`Expected command override "${expectedCommand}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available command overrides: ${formatAvailable(available)}`);
|
|
1093
|
+
}
|
|
1094
|
+
return override;
|
|
1095
|
+
}
|
|
1096
|
+
function assertRegisteredParserOverride(parsers, expectation) {
|
|
1097
|
+
const expectedCommand = normalizeSdkCommandName(expectation.command);
|
|
1098
|
+
if (expectedCommand.length === 0) {
|
|
1099
|
+
throw new Error("Expected command name must be a non-empty string");
|
|
1100
|
+
}
|
|
1101
|
+
const candidates = parsers.overrides.filter((entry) => entry.command === expectedCommand);
|
|
1102
|
+
const override = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1103
|
+
if (!override) {
|
|
1104
|
+
const available = sortedUnique(parsers.overrides.map((entry) => entry.command));
|
|
1105
|
+
throw new Error(`Expected parser override "${expectedCommand}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available parser overrides: ${formatAvailable(available)}`);
|
|
1106
|
+
}
|
|
1107
|
+
return override;
|
|
1108
|
+
}
|
|
1109
|
+
function assertRegisteredPreflightOverride(preflight, expectation = {}) {
|
|
1110
|
+
const override = expectation.extensionName ? preflight.overrides.find((entry) => entry.name === expectation.extensionName) : preflight.overrides[0];
|
|
1111
|
+
if (!override) {
|
|
1112
|
+
const available = sortedUnique(preflight.overrides.map((entry) => entry.name));
|
|
1113
|
+
throw new Error(`Expected a preflight override${extensionNameSuffix(expectation.extensionName)} to be registered. Available preflight overrides: ${formatAvailable(available)}`);
|
|
1114
|
+
}
|
|
1115
|
+
return override;
|
|
1116
|
+
}
|
|
1117
|
+
function assertRegisteredRendererOverride(renderers, expectation) {
|
|
1118
|
+
const expectedFormat = normalizeSdkIdentifier(expectation.format);
|
|
1119
|
+
if (expectedFormat.length === 0) {
|
|
1120
|
+
throw new Error("Expected renderer format must be a non-empty string");
|
|
1121
|
+
}
|
|
1122
|
+
const candidates = renderers.overrides.filter((entry) => entry.format === expectedFormat);
|
|
1123
|
+
const override = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1124
|
+
if (!override) {
|
|
1125
|
+
const available = sortedUnique(renderers.overrides.map((entry) => entry.format));
|
|
1126
|
+
throw new Error(`Expected renderer override "${expectedFormat}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available renderer overrides: ${formatAvailable(available)}`);
|
|
1127
|
+
}
|
|
1128
|
+
return override;
|
|
1129
|
+
}
|
|
1130
|
+
function assertRegisteredServiceOverride(services, expectation) {
|
|
1131
|
+
const expectedService = normalizeSdkIdentifier(expectation.service);
|
|
1132
|
+
if (expectedService.length === 0) {
|
|
1133
|
+
throw new Error("Expected service name must be a non-empty string");
|
|
1134
|
+
}
|
|
1135
|
+
const candidates = services.overrides.filter((entry) => normalizeSdkIdentifier(entry.service) === expectedService);
|
|
1136
|
+
const override = expectation.extensionName ? candidates.find((entry) => entry.name === expectation.extensionName) : candidates[0];
|
|
1137
|
+
if (!override) {
|
|
1138
|
+
const available = sortedUnique(services.overrides.map((entry) => entry.service));
|
|
1139
|
+
throw new Error(`Expected service override "${expectedService}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available service overrides: ${formatAvailable(available)}`);
|
|
1140
|
+
}
|
|
1141
|
+
return override;
|
|
1142
|
+
}
|
|
1143
|
+
function assertRegisteredMigration(registrations, expectation) {
|
|
1144
|
+
const expectedMigration = normalizeSdkIdentifier(expectation.migration);
|
|
1145
|
+
if (expectedMigration.length === 0) {
|
|
1146
|
+
throw new Error("Expected migration id must be a non-empty string");
|
|
1147
|
+
}
|
|
1148
|
+
const candidates = registrations.migrations.filter((entry) => (expectation.extensionName === void 0 || entry.name === expectation.extensionName) && typeof entry.definition.id === "string" && normalizeSdkIdentifier(entry.definition.id) === expectedMigration);
|
|
1149
|
+
const match = candidates.find((entry) => expectation.mandatory === void 0 || (entry.definition.mandatory ?? false) === expectation.mandatory);
|
|
1150
|
+
if (match) {
|
|
1151
|
+
return match;
|
|
1152
|
+
}
|
|
1153
|
+
const idMatch = candidates[0];
|
|
1154
|
+
if (idMatch !== void 0) {
|
|
1155
|
+
throw new Error(`Expected migration "${expectedMigration}"${extensionNameSuffix(expectation.extensionName)} to have mandatory=${expectation.mandatory}, but it is mandatory=${idMatch.definition.mandatory ?? false}.`);
|
|
1156
|
+
}
|
|
1157
|
+
const available = sortedUnique(registrations.migrations.map((entry) => {
|
|
1158
|
+
const id = typeof entry.definition.id === "string" && entry.definition.id.trim().length > 0 ? entry.definition.id.trim() : "(unnamed)";
|
|
1159
|
+
return `${id}:${entry.definition.mandatory === true}`;
|
|
1160
|
+
}));
|
|
1161
|
+
throw new Error(`Expected migration "${expectedMigration}"${extensionNameSuffix(expectation.extensionName)} to be registered. Available migrations: ${formatAvailable(available)}`);
|
|
1162
|
+
}
|
|
1163
|
+
function assertExtensionCapabilityUsage(activation, expectation) {
|
|
1164
|
+
const toKnownCapabilitySet = (capabilities, field) => {
|
|
1165
|
+
const known = /* @__PURE__ */ new Set();
|
|
1166
|
+
for (const capability of capabilities) {
|
|
1167
|
+
const normalized = normalizeKnownExtensionCapability(capability);
|
|
1168
|
+
if (normalized === null) {
|
|
1169
|
+
throw new Error(`Expected ${field} capability "${capability}" to be a known extension capability. Use canonical capability names (see manifest.capabilities).`);
|
|
1170
|
+
}
|
|
1171
|
+
known.add(normalized);
|
|
1172
|
+
}
|
|
1173
|
+
return known;
|
|
1174
|
+
};
|
|
1175
|
+
const declared = [...toKnownCapabilitySet(expectation.declared, "declared")].sort((left, right) => left.localeCompare(right));
|
|
1176
|
+
const allowUnused = toKnownCapabilitySet(expectation.allowUnused ?? [], "allowUnused");
|
|
1177
|
+
const used = collectUsedExtensionCapabilities(activation, { extensionName: expectation.extensionName });
|
|
1178
|
+
const usedSet = new Set(used);
|
|
1179
|
+
const unused = declared.filter((capability) => !usedSet.has(capability) && !allowUnused.has(capability));
|
|
1180
|
+
if (unused.length > 0) {
|
|
1181
|
+
const scopeSuffix = extensionNameSuffix(expectation.extensionName);
|
|
1182
|
+
throw new Error(`Expected every declared capability${scopeSuffix} to be exercised, but [${unused.join(", ")}] ${unused.length === 1 ? "is" : "are"} declared yet never registered against. Remove ${unused.length === 1 ? "it" : "them"} from manifest.capabilities for least privilege, or pass allowUnused for capabilities registered only behind a runtime flag.`);
|
|
1183
|
+
}
|
|
1184
|
+
return { declared, used, unused };
|
|
1185
|
+
}
|
|
1186
|
+
function assertExtensionBlueprint(blueprint, options = {}) {
|
|
1187
|
+
const result = lintExtensionBlueprint(blueprint, options);
|
|
1188
|
+
if (!result.ok) {
|
|
1189
|
+
const errors = result.findings.filter((finding) => finding.severity === "error");
|
|
1190
|
+
throw new Error(`Extension blueprint failed preflight with ${errors.length} ${errors.length === 1 ? "error" : "errors"}:
|
|
1191
|
+
` + errors.map((finding) => ` - [${finding.code}] ${finding.message}`).join("\n"));
|
|
1192
|
+
}
|
|
1193
|
+
return result;
|
|
1194
|
+
}
|
|
1195
|
+
function assertProjectProfile(profile, options = {}) {
|
|
1196
|
+
const report = lintProjectProfile(profile);
|
|
1197
|
+
const blocking = report.findings.filter((finding) => finding.severity === "error" || options.strict === true && finding.severity === "warning");
|
|
1198
|
+
if (blocking.length > 0) {
|
|
1199
|
+
throw new Error(`Project profile "${report.profile}" failed lint with ${blocking.length} ${blocking.length === 1 ? "issue" : "issues"}:
|
|
1200
|
+
` + blocking.map((finding) => ` - ${finding.severity} [${finding.code}] ${finding.message}`).join("\n"));
|
|
1201
|
+
}
|
|
1202
|
+
return report;
|
|
1203
|
+
}
|
|
1204
|
+
function assertExtensionManifestMatchesBlueprint(manifest, blueprint) {
|
|
1205
|
+
const declaredCapabilities = Array.isArray(manifest.capabilities) ? manifest.capabilities : [];
|
|
1206
|
+
const result = lintExtensionBlueprint(blueprint, { declaredCapabilities });
|
|
1207
|
+
const declared = result.declared;
|
|
1208
|
+
const declaredSet = new Set(declared);
|
|
1209
|
+
const usedSet = new Set(result.used);
|
|
1210
|
+
const missing = result.used.filter((capability) => !declaredSet.has(capability));
|
|
1211
|
+
const unused = declared.filter((capability) => !usedSet.has(capability));
|
|
1212
|
+
if (missing.length > 0 || unused.length > 0) {
|
|
1213
|
+
const parts = [];
|
|
1214
|
+
if (missing.length > 0) {
|
|
1215
|
+
parts.push(`missing [${missing.join(", ")}] (the blueprint registers ${missing.length === 1 ? "a surface" : "surfaces"} requiring ${missing.length === 1 ? "it" : "them"}; activation throws extension_capability_missing)`);
|
|
1216
|
+
}
|
|
1217
|
+
if (unused.length > 0) {
|
|
1218
|
+
parts.push(`unused [${unused.join(", ")}] (declared but no surface exercises ${unused.length === 1 ? "it" : "them"}; drop for least privilege)`);
|
|
1219
|
+
}
|
|
1220
|
+
throw new Error(`Manifest capabilities do not match the blueprint: ${parts.join("; ")}. Set capabilities to synthesizeExtensionManifest(blueprint, identity).capabilities to stay in sync.`);
|
|
1221
|
+
}
|
|
1222
|
+
return { used: result.used, declared, missing, unused, findings: result.findings };
|
|
1223
|
+
}
|
|
1224
|
+
function assertExtensionManifestCompatible(manifest, target) {
|
|
1225
|
+
const result = checkExtensionManifestCompatibility(manifest, target);
|
|
1226
|
+
const blocking = result.findings.filter((finding) => finding.severity === "error");
|
|
1227
|
+
if (blocking.length > 0) {
|
|
1228
|
+
throw new Error(`Extension manifest is not compatible with pm ${result.pmVersion}: ${blocking.map((finding) => finding.message).join("; ")}`);
|
|
1229
|
+
}
|
|
1230
|
+
return result;
|
|
1231
|
+
}
|
|
1232
|
+
function assertExtensionPreflight(blueprint, options = {}) {
|
|
1233
|
+
const report = preflightExtension(blueprint, options);
|
|
1234
|
+
if (!report.ok) {
|
|
1235
|
+
const errors = report.findings.filter((finding) => finding.severity === "error");
|
|
1236
|
+
throw new Error(`Extension failed preflight with ${errors.length} ${errors.length === 1 ? "error" : "errors"}:
|
|
1237
|
+
` + errors.map((finding) => ` - [${finding.source}:${finding.code}] ${finding.message}`).join("\n"));
|
|
1238
|
+
}
|
|
1239
|
+
return report;
|
|
1240
|
+
}
|
|
1241
|
+
function assertTestModuleHasActivateExport(module) {
|
|
1242
|
+
if (resolveActivatablePropertyRecord(module)) {
|
|
1243
|
+
return;
|
|
1244
|
+
}
|
|
1245
|
+
throw new Error("createExtensionTestHarness received a module with no activate export. Pass the extension module (with an activate(api) function on the module or its default export) as the first argument, and options second.");
|
|
1246
|
+
}
|
|
1247
|
+
async function createExtensionTestHarness(module, options = {}) {
|
|
1248
|
+
assertTestModuleHasActivateExport(module);
|
|
1249
|
+
const manifest = readTestExtensionManifest(module);
|
|
1250
|
+
const name = resolveTestExtensionName(manifest, options.name);
|
|
1251
|
+
const layer = options.layer ?? "project";
|
|
1252
|
+
const activation = await activateExtensionForTest(module, options);
|
|
1253
|
+
if (activation.failed.length > 0) {
|
|
1254
|
+
const detail = activation.failed.map((failure) => {
|
|
1255
|
+
const missingCapability = failure.trace?.missing_capability;
|
|
1256
|
+
const reason = missingCapability ? `${failure.error}; missing capability "${missingCapability}"` : failure.error;
|
|
1257
|
+
return `${failure.layer}:${failure.name} (${reason})`;
|
|
1258
|
+
}).join(", ");
|
|
1259
|
+
throw new Error(`createExtensionTestHarness could not activate the extension cleanly: ${detail}. Declare the required capability in the manifest (or pass it via options.capabilities), or use activateExtensionForTest directly to inspect a failed activation.`);
|
|
1260
|
+
}
|
|
1261
|
+
return {
|
|
1262
|
+
module,
|
|
1263
|
+
name,
|
|
1264
|
+
layer,
|
|
1265
|
+
activation,
|
|
1266
|
+
activationSummary(describeOptions) {
|
|
1267
|
+
return describeExtensionActivation(activation, describeOptions);
|
|
1268
|
+
},
|
|
1269
|
+
renderMarkdown(markdownOptions = {}) {
|
|
1270
|
+
const { extensionName, ...renderOptions } = markdownOptions ?? {};
|
|
1271
|
+
return renderExtensionSurfaceMarkdown(describeExtensionActivation(activation, { extensionName }), renderOptions);
|
|
1272
|
+
},
|
|
1273
|
+
assertCommandContract(expectation) {
|
|
1274
|
+
return assertRegisteredCommandContract(activation.registrations, expectation);
|
|
1275
|
+
},
|
|
1276
|
+
assertFlags(expectation) {
|
|
1277
|
+
return assertRegisteredFlags(activation.registrations, expectation);
|
|
1278
|
+
},
|
|
1279
|
+
assertItemField(expectation) {
|
|
1280
|
+
return assertRegisteredItemField(activation.registrations, expectation);
|
|
1281
|
+
},
|
|
1282
|
+
assertItemType(expectation) {
|
|
1283
|
+
return assertRegisteredItemType(activation.registrations, expectation);
|
|
1284
|
+
},
|
|
1285
|
+
assertProfile(expectation) {
|
|
1286
|
+
return assertRegisteredProfile(activation.registrations, expectation);
|
|
1287
|
+
},
|
|
1288
|
+
assertHook(expectation) {
|
|
1289
|
+
return assertRegisteredHook(activation.hooks, expectation);
|
|
1290
|
+
},
|
|
1291
|
+
assertCommandOverride(expectation) {
|
|
1292
|
+
return assertRegisteredCommandOverride(activation.commands, expectation);
|
|
1293
|
+
},
|
|
1294
|
+
assertParserOverride(expectation) {
|
|
1295
|
+
return assertRegisteredParserOverride(activation.parsers, expectation);
|
|
1296
|
+
},
|
|
1297
|
+
assertPreflightOverride(expectation) {
|
|
1298
|
+
return assertRegisteredPreflightOverride(activation.preflight, expectation);
|
|
1299
|
+
},
|
|
1300
|
+
assertRendererOverride(expectation) {
|
|
1301
|
+
return assertRegisteredRendererOverride(activation.renderers, expectation);
|
|
1302
|
+
},
|
|
1303
|
+
assertServiceOverride(expectation) {
|
|
1304
|
+
return assertRegisteredServiceOverride(activation.services, expectation);
|
|
1305
|
+
},
|
|
1306
|
+
assertSearchProvider(expectation) {
|
|
1307
|
+
return assertRegisteredSearchProvider(activation.registrations, expectation);
|
|
1308
|
+
},
|
|
1309
|
+
assertVectorStoreAdapter(expectation) {
|
|
1310
|
+
return assertRegisteredVectorStoreAdapter(activation.registrations, expectation);
|
|
1311
|
+
},
|
|
1312
|
+
assertImporter(expectation) {
|
|
1313
|
+
return assertRegisteredImporter(activation.registrations, expectation);
|
|
1314
|
+
},
|
|
1315
|
+
assertExporter(expectation) {
|
|
1316
|
+
return assertRegisteredExporter(activation.registrations, expectation);
|
|
1317
|
+
},
|
|
1318
|
+
assertMigration(expectation) {
|
|
1319
|
+
return assertRegisteredMigration(activation.registrations, expectation);
|
|
1320
|
+
},
|
|
1321
|
+
assertCapabilityUsage(expectation) {
|
|
1322
|
+
return assertExtensionCapabilityUsage(activation, expectation);
|
|
1323
|
+
},
|
|
1324
|
+
runCommand(runOptions) {
|
|
1325
|
+
return runRegisteredCommandForTest(activation.commands, runOptions);
|
|
1326
|
+
},
|
|
1327
|
+
runHook(runOptions) {
|
|
1328
|
+
return runRegisteredHookForTest(activation.hooks, runOptions);
|
|
1329
|
+
},
|
|
1330
|
+
runCommandOverride(context) {
|
|
1331
|
+
return runRegisteredCommandOverrideForTest(activation.commands, context);
|
|
1332
|
+
},
|
|
1333
|
+
runParserOverride(context) {
|
|
1334
|
+
return runRegisteredParserOverrideForTest(activation.parsers, context);
|
|
1335
|
+
},
|
|
1336
|
+
runPreflightOverride(context) {
|
|
1337
|
+
return runRegisteredPreflightOverrideForTest(activation.preflight, context);
|
|
1338
|
+
},
|
|
1339
|
+
runRendererOverride(context) {
|
|
1340
|
+
return runRegisteredRendererOverrideForTest(activation.renderers, context);
|
|
1341
|
+
},
|
|
1342
|
+
runServiceOverride(context) {
|
|
1343
|
+
return runRegisteredServiceOverrideForTest(activation.services, context);
|
|
1344
|
+
},
|
|
1345
|
+
runSearchProvider(runOptions) {
|
|
1346
|
+
return runRegisteredSearchProviderForTest(activation.registrations, runOptions);
|
|
1347
|
+
},
|
|
1348
|
+
runVectorStoreAdapter(runOptions) {
|
|
1349
|
+
return runRegisteredVectorStoreAdapterForTest(activation.registrations, runOptions);
|
|
1350
|
+
},
|
|
1351
|
+
runMigration(runOptions) {
|
|
1352
|
+
return runRegisteredMigrationForTest(activation.registrations, runOptions);
|
|
1353
|
+
},
|
|
1354
|
+
runImporter(runOptions) {
|
|
1355
|
+
return runRegisteredImporterForTest(activation, runOptions);
|
|
1356
|
+
},
|
|
1357
|
+
runExporter(runOptions) {
|
|
1358
|
+
return runRegisteredExporterForTest(activation, runOptions);
|
|
1359
|
+
},
|
|
1360
|
+
deactivate(deactivateOptions = {}) {
|
|
1361
|
+
return deactivateExtensionForTest(module, {
|
|
1362
|
+
name,
|
|
1363
|
+
layer,
|
|
1364
|
+
activation,
|
|
1365
|
+
deactivateTimeoutMs: deactivateOptions.deactivateTimeoutMs
|
|
1366
|
+
});
|
|
1367
|
+
}
|
|
1368
|
+
};
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
export {
|
|
1372
|
+
defineExtension,
|
|
1373
|
+
defineExtensionBlueprint,
|
|
1374
|
+
composeExtension,
|
|
1375
|
+
mergeExtensionBlueprints,
|
|
1376
|
+
deriveExtensionCapabilities,
|
|
1377
|
+
describeExtensionBlueprint,
|
|
1378
|
+
lintExtensionBlueprint,
|
|
1379
|
+
synthesizeExtensionManifest,
|
|
1380
|
+
composeExtensionPackage,
|
|
1381
|
+
checkExtensionManifestCompatibility,
|
|
1382
|
+
preflightExtension,
|
|
1383
|
+
activateExtensionForTest,
|
|
1384
|
+
deactivateExtensionForTest,
|
|
1385
|
+
runRegisteredCommandForTest,
|
|
1386
|
+
runRegisteredHookForTest,
|
|
1387
|
+
runRegisteredParserOverrideForTest,
|
|
1388
|
+
runRegisteredPreflightOverrideForTest,
|
|
1389
|
+
runRegisteredCommandOverrideForTest,
|
|
1390
|
+
runRegisteredRendererOverrideForTest,
|
|
1391
|
+
runRegisteredServiceOverrideForTest,
|
|
1392
|
+
runRegisteredSearchProviderForTest,
|
|
1393
|
+
runRegisteredVectorStoreAdapterForTest,
|
|
1394
|
+
runRegisteredMigrationForTest,
|
|
1395
|
+
runRegisteredImporterForTest,
|
|
1396
|
+
runRegisteredExporterForTest,
|
|
1397
|
+
assertExtensionDeactivated,
|
|
1398
|
+
assertPackageManifest,
|
|
1399
|
+
assertRegisteredCommandContract,
|
|
1400
|
+
assertRegisteredFlags,
|
|
1401
|
+
assertRegisteredHook,
|
|
1402
|
+
assertRegisteredSearchProvider,
|
|
1403
|
+
assertRegisteredVectorStoreAdapter,
|
|
1404
|
+
assertRegisteredImporter,
|
|
1405
|
+
assertRegisteredExporter,
|
|
1406
|
+
assertRegisteredItemField,
|
|
1407
|
+
assertRegisteredItemType,
|
|
1408
|
+
assertRegisteredProfile,
|
|
1409
|
+
assertRegisteredCommandOverride,
|
|
1410
|
+
assertRegisteredParserOverride,
|
|
1411
|
+
assertRegisteredPreflightOverride,
|
|
1412
|
+
assertRegisteredRendererOverride,
|
|
1413
|
+
assertRegisteredServiceOverride,
|
|
1414
|
+
assertRegisteredMigration,
|
|
1415
|
+
assertExtensionCapabilityUsage,
|
|
1416
|
+
assertExtensionBlueprint,
|
|
1417
|
+
assertProjectProfile,
|
|
1418
|
+
assertExtensionManifestMatchesBlueprint,
|
|
1419
|
+
assertExtensionManifestCompatible,
|
|
1420
|
+
assertExtensionPreflight,
|
|
1421
|
+
createExtensionTestHarness
|
|
1422
|
+
};
|
|
1423
|
+
//# sourceMappingURL=chunk-MWMVPCIE.js.map
|