@unbrained/pm-cli 2026.6.8 → 2026.6.10
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 +74 -11
- package/dist/cli/bootstrap-args.js +4 -2
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/aggregate.d.ts +7 -0
- package/dist/cli/commands/aggregate.js +53 -12
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/close.d.ts +1 -0
- package/dist/cli/commands/close.js +106 -3
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +20 -7
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +9 -0
- package/dist/cli/commands/context.js +149 -20
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -0
- package/dist/cli/commands/create.js +5 -3
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension.js +4 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/health.js +44 -6
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history.js +6 -5
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/linked-test-parsers.d.ts +1 -0
- package/dist/cli/commands/linked-test-parsers.js +289 -2
- package/dist/cli/commands/linked-test-parsers.js.map +1 -1
- package/dist/cli/commands/reindex.d.ts +1 -0
- package/dist/cli/commands/reindex.js +33 -4
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -0
- package/dist/cli/commands/test.js +46 -5
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +1 -0
- package/dist/cli/extension-command-help.js +42 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/extension-command-options.d.ts +2 -0
- package/dist/cli/extension-command-options.js +89 -17
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/main.js +26 -26
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +3 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +4 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +15 -6
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/registration-helpers.js +9 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-5QLX6DHN.js +16 -0
- package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js → activity-W6TS5F2L.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-GBSHSXOB.js → aggregate-NNJLKGEK.js} +64 -24
- package/dist/cli-bundle/chunks/aggregate-NNJLKGEK.js.map +7 -0
- package/dist/cli-bundle/chunks/{aggregate-HKQJZUBG.js → aggregate-UK2WJ4Z3.js} +65 -25
- package/dist/cli-bundle/chunks/aggregate-UK2WJ4Z3.js.map +1 -0
- package/dist/cli-bundle/chunks/{append-3RFOU7P5.js → append-7BS36Z2L.js} +8 -8
- package/dist/cli-bundle/chunks/{append-OM74OJVT.js → append-DHGTLUZW.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js → chunk-2MKBPWMK.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-SDLEYY6A.js.map → chunk-2MKBPWMK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js → chunk-344GDQTH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js → chunk-3VTWCBXL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js → chunk-4CYHWHZU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js → chunk-4H2NDEGJ.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js → chunk-5HH6QRH5.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js → chunk-5OMABP7I.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js → chunk-6ADVKPVV.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js → chunk-6KQS23TX.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js → chunk-6N46IM44.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EPWT7BEA.js → chunk-6OSG3EMX.js} +157 -12
- package/dist/cli-bundle/chunks/chunk-6OSG3EMX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js → chunk-73PSHEMT.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js → chunk-7DUVDW7C.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js → chunk-7GYMMDDW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QFVASU44.js → chunk-7TW64BS5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VXBUXLVD.js → chunk-A6XVYNQJ.js} +13 -6
- package/dist/cli-bundle/chunks/chunk-A6XVYNQJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js → chunk-ANVZCNL5.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HOA3GMB6.js → chunk-BE5G7HEL.js} +14 -8
- package/dist/cli-bundle/chunks/chunk-BE5G7HEL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QWNUDGFQ.js → chunk-CMEHZD6G.js} +163 -11
- package/dist/cli-bundle/chunks/chunk-CMEHZD6G.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7NQIY7Z6.js → chunk-CTW7QAHM.js} +6 -5
- package/dist/cli-bundle/chunks/chunk-CTW7QAHM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js → chunk-D6JZBUZ6.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-F33AQIB4.js → chunk-DEYNERFX.js} +19 -7
- package/dist/cli-bundle/chunks/chunk-DEYNERFX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js → chunk-DMDEC4QP.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js → chunk-DTRIVUTN.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-KS2U7BZ3.js → chunk-EAQLLID6.js} +16 -6
- package/dist/cli-bundle/chunks/chunk-EAQLLID6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js → chunk-EIS32UA4.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-F2PVV7IX.js +528 -0
- package/dist/cli-bundle/chunks/chunk-F2PVV7IX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DV27WDA7.js → chunk-GF5XIBUH.js} +70 -9
- package/dist/cli-bundle/chunks/chunk-GF5XIBUH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js → chunk-GP6SHEAI.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js → chunk-GRHPU6EM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js → chunk-I2FM2SMO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-F33VC5EX.js → chunk-IEQ3N7WP.js} +12 -5
- package/dist/cli-bundle/chunks/chunk-IEQ3N7WP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js → chunk-K45NAJV2.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js → chunk-K7SXBA75.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OVSSE2JP.js → chunk-KHBRV5JU.js} +14 -12
- package/dist/cli-bundle/chunks/chunk-KHBRV5JU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D7WK2PKB.js → chunk-KMMUDSSB.js} +112 -7
- package/dist/cli-bundle/chunks/chunk-KMMUDSSB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ALSRBNYB.js → chunk-KRZQGRVL.js} +14 -7
- package/dist/cli-bundle/chunks/chunk-KRZQGRVL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js → chunk-LUJQJR7G.js} +71 -69
- package/dist/cli-bundle/chunks/{chunk-PQDH3S54.js.map → chunk-LUJQJR7G.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js → chunk-LYL32FT6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ODN53S6H.js → chunk-MF6KSSMF.js} +11 -14
- package/dist/cli-bundle/chunks/chunk-MF6KSSMF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js → chunk-O64EYNHF.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-3TXWDGPU.js → chunk-OQGJSCZZ.js} +522 -37
- package/dist/cli-bundle/chunks/chunk-OQGJSCZZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js → chunk-OROMGSBP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js → chunk-OSGWBWLK.js} +76 -74
- package/dist/cli-bundle/chunks/{chunk-3E3MDBTB.js.map → chunk-OSGWBWLK.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7WXGR44E.js → chunk-OVNSQHDG.js} +19 -7
- package/dist/cli-bundle/chunks/chunk-OVNSQHDG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js → chunk-PYULT32I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js → chunk-Q6PSD5DZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js → chunk-QGIWURY3.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-KCGMABHM.js → chunk-QJ2OIEOC.js} +68 -7
- package/dist/cli-bundle/chunks/chunk-QJ2OIEOC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js → chunk-SNASEDXB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js → chunk-T6QLB34N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js → chunk-TALBUVWF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js → chunk-TV6FZGVK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-MSH23UWO.js → chunk-TXWMLDMG.js} +13 -7
- package/dist/cli-bundle/chunks/chunk-TXWMLDMG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TXKENAQP.js → chunk-TZLGCTA5.js} +5 -4
- package/dist/cli-bundle/chunks/chunk-TZLGCTA5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4TI3532H.js → chunk-UDWUDUJI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N4SQZ7L3.js → chunk-UMWF6ZAS.js} +12 -5
- package/dist/cli-bundle/chunks/chunk-UMWF6ZAS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js → chunk-UNH3KSHG.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-BKQMJXWY.js.map → chunk-UNH3KSHG.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js → chunk-UY26RIBR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js → chunk-VSS3CSTF.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-2YPVCD7T.js → chunk-WBU257Z4.js} +13 -11
- package/dist/cli-bundle/chunks/chunk-WBU257Z4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YJAKN2N2.js → chunk-WNMRICXH.js} +489 -32
- package/dist/cli-bundle/chunks/chunk-WNMRICXH.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-WSWOQP3Z.js +518 -0
- package/dist/cli-bundle/chunks/chunk-WSWOQP3Z.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js → chunk-WWEFBBVF.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js → chunk-X3IPJU2O.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-KBKJVXUS.js → chunk-X5YC5DZM.js} +111 -6
- package/dist/cli-bundle/chunks/chunk-X5YC5DZM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KVXIQDJG.js → chunk-XH6RA5A5.js} +15 -15
- package/dist/cli-bundle/chunks/chunk-XH6RA5A5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2HMD3JM2.js → chunk-XRE4CTNP.js} +11 -14
- package/dist/cli-bundle/chunks/chunk-XRE4CTNP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js → chunk-XSCGU4WT.js} +15 -5
- package/dist/cli-bundle/chunks/{chunk-RISLL7XH.js.map → chunk-XSCGU4WT.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L3LYL3ID.js → chunk-ZH7C7ZVX.js} +14 -14
- package/dist/cli-bundle/chunks/chunk-ZH7C7ZVX.js.map +7 -0
- package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js → claim-3TY5LE54.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js → claim-LM4YY6QQ.js} +10 -10
- package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js → close-CSD4LEMT.js} +8 -8
- package/dist/cli-bundle/chunks/close-SIQCDOBR.js +13 -0
- package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js → close-many-B5SHDX6W.js} +17 -18
- package/dist/cli-bundle/chunks/{close-many-CDPQGQUB.js.map → close-many-B5SHDX6W.js.map} +1 -1
- package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js → close-many-WRXB5KVY.js} +15 -16
- package/dist/cli-bundle/chunks/{close-many-IQV5C2SI.js.map → close-many-WRXB5KVY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js → comments-A5ALOYTG.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js → comments-BDDEK3VW.js} +10 -10
- package/dist/cli-bundle/chunks/{config-72253M2O.js → config-W2NHDNQT.js} +8 -8
- package/dist/cli-bundle/chunks/{config-VFYA6BMI.js → config-YUYBMJOW.js} +8 -8
- package/dist/cli-bundle/chunks/{context-AVLO4IFH.js → context-LRJ74NSU.js} +147 -36
- package/dist/cli-bundle/chunks/context-LRJ74NSU.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-WMSI2D65.js → context-R2QLOJCK.js} +148 -37
- package/dist/cli-bundle/chunks/context-R2QLOJCK.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js → contracts-47X7RYUF.js} +4 -4
- package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js → contracts-HJHR4NCD.js} +4 -4
- package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js → copy-B7HFOWFB.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js → copy-P4UVYZ7M.js} +7 -7
- package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js → create-5ERJF64D.js} +13 -13
- package/dist/cli-bundle/chunks/create-TXNRPS4K.js +27 -0
- package/dist/cli-bundle/chunks/{delete-WBME6WG5.js → delete-LX3LGBCH.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js → delete-S3WVK6LP.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js → deps-GWSNH7OZ.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-KWHQRO75.js → deps-YSM4LZQD.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js → docs-7RYFBHQD.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-364GT3ZR.js → docs-TG6JMVMY.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js → extension-R3LUKMX7.js} +5 -5
- package/dist/cli-bundle/chunks/{extension-CRE7JM47.js → extension-VNMRKIHI.js} +5 -5
- package/dist/cli-bundle/chunks/{files-66EHM5ZR.js → files-KAKU57OT.js} +9 -9
- package/dist/cli-bundle/chunks/{files-3GESQAWL.js → files-QB3EYPMO.js} +9 -9
- package/dist/cli-bundle/chunks/{gc-MOQDND5J.js → gc-B747VM4M.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js → gc-KNUPLPSW.js} +3 -3
- package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js → get-GMGLIQ5I.js} +11 -11
- package/dist/cli-bundle/chunks/{get-WXSLXV3K.js → get-SBL6NHYQ.js} +11 -11
- package/dist/cli-bundle/chunks/{health-B6AEM7BV.js → health-IG43Z4KL.js} +47 -19
- package/dist/cli-bundle/chunks/health-IG43Z4KL.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-YMZGOMVX.js → health-WWZJ5KJS.js} +46 -18
- package/dist/cli-bundle/chunks/health-WWZJ5KJS.js.map +7 -0
- package/dist/cli-bundle/chunks/history-6UKSZTRT.js +20 -0
- package/dist/cli-bundle/chunks/{history-TJTO5GCR.js → history-XCWRXBXC.js} +10 -10
- package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js → history-compact-IDH7E7VN.js} +11 -11
- package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js → history-compact-KICKUCR7.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-HKYBTK6X.js +19 -0
- package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js → history-redact-JJWH3QWK.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js → history-repair-7HWBZKXN.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js → history-repair-N5HXKJOI.js} +11 -11
- package/dist/cli-bundle/chunks/init-27JLDUO2.js +17 -0
- package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js → init-OQA3TWIS.js} +9 -9
- package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js → learnings-L7VQUSVI.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js → learnings-Z4GAIZQ5.js} +10 -10
- package/dist/cli-bundle/chunks/list-6U3CJVXS.js +19 -0
- package/dist/cli-bundle/chunks/{list-JGP7ODML.js → list-W5ROBC5U.js} +10 -11
- package/dist/cli-bundle/chunks/{notes-P25YVTEG.js → notes-JJDOEDFK.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js → notes-SDCK7BEN.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-RACB5PI6.js → plan-H5HYHMBB.js} +13 -13
- package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js → plan-W2B5RYR3.js} +13 -13
- package/dist/cli-bundle/chunks/{register-list-query-GQAEIG4K.js → register-list-query-QGRFMDWA.js} +20 -20
- package/dist/cli-bundle/chunks/register-list-query-QGRFMDWA.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-5IXDPUZ6.js → register-list-query-V4S23735.js} +21 -21
- package/dist/cli-bundle/chunks/register-list-query-V4S23735.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-FAS4YG63.js → register-mutation-I57PLUHA.js} +36 -35
- package/dist/cli-bundle/chunks/register-mutation-I57PLUHA.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-YZCUILGO.js → register-mutation-ZPZNJXSA.js} +35 -34
- package/dist/cli-bundle/chunks/register-mutation-ZPZNJXSA.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-S2BOLUPF.js → register-operations-KAMLXAF5.js} +42 -37
- package/dist/cli-bundle/chunks/register-operations-KAMLXAF5.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-IBYWNJN5.js → register-operations-YEN4YEZ2.js} +41 -36
- package/dist/cli-bundle/chunks/register-operations-YEN4YEZ2.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js → register-setup-BZ3TNE3G.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js → register-setup-WLFL3OUF.js} +15 -15
- package/dist/cli-bundle/chunks/restore-GNI2W5CN.js +17 -0
- package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js → restore-RGFSPG4K.js} +11 -11
- package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js → schema-CCDU3RLC.js} +8 -8
- package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js → schema-KZASL323.js} +8 -8
- package/dist/cli-bundle/chunks/{search-632WJ7GO.js → search-7KSOLI2E.js} +10 -11
- package/dist/cli-bundle/chunks/{search-632WJ7GO.js.map → search-7KSOLI2E.js.map} +1 -1
- package/dist/cli-bundle/chunks/{search-EQDHSE4G.js → search-DTL7CO22.js} +12 -13
- package/dist/cli-bundle/chunks/{search-EQDHSE4G.js.map → search-DTL7CO22.js.map} +1 -1
- package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js → stats-IOXQMGI6.js} +7 -7
- package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js → stats-QNV7B2CE.js} +7 -7
- package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js → telemetry-IV5C6JOM.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js → telemetry-NHR5RFXT.js} +4 -4
- package/dist/cli-bundle/chunks/test-4Z37CXW4.js +32 -0
- package/dist/cli-bundle/chunks/{test-GXUBQNUC.js → test-PIL2CEEB.js} +14 -14
- package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js → test-all-GRLYHBNP.js} +14 -14
- package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js → test-all-MFN4MYCV.js} +14 -14
- package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js → test-runs-7LRFWWCA.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js → test-runs-7WCSC3TY.js} +5 -5
- package/dist/cli-bundle/chunks/update-I4G34LKJ.js +21 -0
- package/dist/cli-bundle/chunks/{update-U4B4OMHZ.js → update-VI5DBZ3G.js} +15 -15
- package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js → update-many-LOTAYUTN.js} +22 -23
- package/dist/cli-bundle/chunks/{update-many-5KD33MKY.js.map → update-many-LOTAYUTN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js → update-many-UYMTVF42.js} +24 -25
- package/dist/cli-bundle/chunks/{update-many-N3YTM7K4.js.map → update-many-UYMTVF42.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js → upgrade-LT2MLLPS.js} +5 -5
- package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js → upgrade-ZZSC7CLV.js} +5 -5
- package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js → validate-3XRORNMP.js} +16 -16
- package/dist/cli-bundle/chunks/{validate-CRWXZILW.js → validate-IQIQSKUX.js} +16 -16
- package/dist/cli-bundle/main.js +157 -62
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/core/diagnostics/remediation.js +12 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-policy.d.ts +14 -1
- package/dist/core/extensions/extension-policy.js +38 -3
- package/dist/core/extensions/extension-policy.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +99 -2
- package/dist/core/extensions/extension-types.js +28 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/flag-value-types.d.ts +29 -0
- package/dist/core/extensions/flag-value-types.js +78 -0
- package/dist/core/extensions/flag-value-types.js.map +1 -0
- package/dist/core/extensions/item-field-types.d.ts +22 -0
- package/dist/core/extensions/item-field-types.js +43 -0
- package/dist/core/extensions/item-field-types.js.map +1 -0
- package/dist/core/extensions/item-fields.js +4 -11
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +16 -1
- package/dist/core/extensions/loader.js +202 -18
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/history/replay.d.ts +1 -1
- package/dist/core/history/replay.js +13 -4
- package/dist/core/history/replay.js.map +1 -1
- package/dist/core/output/mutation-projection.d.ts +2 -0
- package/dist/core/output/mutation-projection.js +9 -2
- package/dist/core/output/mutation-projection.js.map +1 -1
- package/dist/core/output/output.d.ts +2 -0
- package/dist/core/output/output.js +7 -3
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/packages/manifest.d.ts +1 -1
- package/dist/core/packages/manifest.js +12 -2
- package/dist/core/packages/manifest.js.map +1 -1
- package/dist/core/shared/command-types.d.ts +1 -0
- package/dist/core/shared/command-types.js +2 -2
- package/dist/core/shared/command-types.js.map +1 -1
- package/dist/core/shared/constants.js +7 -4
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/store/item-store.d.ts +1 -1
- package/dist/core/store/item-store.js +3 -3
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings-read-cache.d.ts +15 -0
- package/dist/core/store/settings-read-cache.js +72 -0
- package/dist/core/store/settings-read-cache.js.map +1 -0
- package/dist/core/store/settings-validator.d.ts +4 -1
- package/dist/core/store/settings-validator.js +14 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +166 -16
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +3 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/run-selectors.d.ts +27 -0
- package/dist/core/test/run-selectors.js +110 -0
- package/dist/core/test/run-selectors.js.map +1 -0
- package/dist/mcp/server.js +105 -40
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +29 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.js +37 -5
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +7 -2
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +6 -0
- package/dist/sdk/runtime.js +51 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/testing.d.ts +55 -1
- package/dist/sdk/testing.js +92 -2
- package/dist/sdk/testing.js.map +1 -1
- package/dist/types.d.ts +4 -1
- package/dist/types.js +4 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +7 -1
- package/docs/ARCHITECTURE.md +7 -0
- package/docs/COMMANDS.md +37 -3
- package/docs/CONFIGURATION.md +1 -1
- package/docs/EXTENSIONS.md +59 -53
- package/docs/SDK.md +104 -0
- package/docs/TESTING.md +60 -0
- package/docs/schemas/extension-manifest.schema.json +120 -0
- package/package.json +2 -2
- package/packages/pm-beads/extensions/beads/manifest.json +10 -0
- package/packages/pm-calendar/extensions/calendar/manifest.json +10 -0
- package/packages/pm-command-kit/README.md +72 -0
- package/packages/pm-command-kit/extensions/command-kit/index.js +181 -0
- package/packages/pm-command-kit/extensions/command-kit/index.ts +176 -0
- package/packages/pm-command-kit/extensions/command-kit/manifest.json +22 -0
- package/packages/pm-command-kit/package.json +53 -0
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +10 -0
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +10 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +10 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +10 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +6 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +6 -0
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +10 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +1 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -0
- package/packages/pm-templates/extensions/templates/manifest.json +10 -0
- package/packages/pm-todos/extensions/todos/manifest.json +10 -0
- package/dist/cli-bundle/chunks/activity-A3QKFSSF.js +0 -16
- package/dist/cli-bundle/chunks/aggregate-GBSHSXOB.js.map +0 -7
- package/dist/cli-bundle/chunks/aggregate-HKQJZUBG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2HMD3JM2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-2YPVCD7T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3TXWDGPU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7NQIY7Z6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7WXGR44E.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ALSRBNYB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-D7WK2PKB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DV27WDA7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EAOG77HM.js +0 -56
- package/dist/cli-bundle/chunks/chunk-EAOG77HM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EPWT7BEA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-F33AQIB4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-F33VC5EX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HOA3GMB6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KBKJVXUS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KCGMABHM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KS2U7BZ3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KVXIQDJG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-L3LYL3ID.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MSH23UWO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-N4SQZ7L3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NUKHZZNM.js +0 -252
- package/dist/cli-bundle/chunks/chunk-NUKHZZNM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ODN53S6H.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OVSSE2JP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QWNUDGFQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TXKENAQP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VXBUXLVD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XNGMIVQY.js +0 -242
- package/dist/cli-bundle/chunks/chunk-XNGMIVQY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +0 -53
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YJAKN2N2.js.map +0 -1
- package/dist/cli-bundle/chunks/close-UNTFXVM3.js +0 -13
- package/dist/cli-bundle/chunks/context-AVLO4IFH.js.map +0 -7
- package/dist/cli-bundle/chunks/context-WMSI2D65.js.map +0 -1
- package/dist/cli-bundle/chunks/create-EZWAMUKR.js +0 -27
- package/dist/cli-bundle/chunks/health-B6AEM7BV.js.map +0 -1
- package/dist/cli-bundle/chunks/health-YMZGOMVX.js.map +0 -7
- package/dist/cli-bundle/chunks/history-ZERISU2L.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-GODBYT5A.js +0 -19
- package/dist/cli-bundle/chunks/init-CBZHXBR3.js +0 -17
- package/dist/cli-bundle/chunks/list-7MTPPZHC.js +0 -20
- package/dist/cli-bundle/chunks/register-list-query-5IXDPUZ6.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-GQAEIG4K.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-FAS4YG63.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-YZCUILGO.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-IBYWNJN5.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-S2BOLUPF.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-3JRX27QW.js +0 -17
- package/dist/cli-bundle/chunks/test-XN7RJL5Z.js +0 -32
- package/dist/cli-bundle/chunks/update-LFBSEW3N.js +0 -21
- /package/dist/cli-bundle/chunks/{activity-A3QKFSSF.js.map → activity-5QLX6DHN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-Q7XMIZIH.js.map → activity-W6TS5F2L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-3RFOU7P5.js.map → append-7BS36Z2L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-OM74OJVT.js.map → append-DHGTLUZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z2HXAFFH.js.map → chunk-344GDQTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AEMKH5WQ.js.map → chunk-3VTWCBXL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XLSQ3QLT.js.map → chunk-4CYHWHZU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JS47EKLP.js.map → chunk-4H2NDEGJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QF4OPBAG.js.map → chunk-5HH6QRH5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5NVJA7IW.js.map → chunk-5OMABP7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YEFOCDIK.js.map → chunk-6ADVKPVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SM3RMWGO.js.map → chunk-6KQS23TX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ETZZU5QF.js.map → chunk-6N46IM44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5WO2VKFA.js.map → chunk-73PSHEMT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J4DKAGTM.js.map → chunk-7DUVDW7C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2BYKYPWY.js.map → chunk-7GYMMDDW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QFVASU44.js.map → chunk-7TW64BS5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KP4KIUQT.js.map → chunk-ANVZCNL5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UEXNNF3K.js.map → chunk-D6JZBUZ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R4XIE7NQ.js.map → chunk-DMDEC4QP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KN4WSESY.js.map → chunk-DTRIVUTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HP35AVFS.js.map → chunk-EIS32UA4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BFJPMUF5.js.map → chunk-GP6SHEAI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-URJEZOLB.js.map → chunk-GRHPU6EM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K62SNVVE.js.map → chunk-I2FM2SMO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AXBUHLW7.js.map → chunk-K45NAJV2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NLVCMVC7.js.map → chunk-K7SXBA75.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NDSMKB2I.js.map → chunk-LYL32FT6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z55JACL2.js.map → chunk-O64EYNHF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FO2TYSQZ.js.map → chunk-OROMGSBP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XZS4MV37.js.map → chunk-PYULT32I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M7UBTVFT.js.map → chunk-Q6PSD5DZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QQPZYP73.js.map → chunk-QGIWURY3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XEKZCBCS.js.map → chunk-SNASEDXB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4WYBLB6J.js.map → chunk-T6QLB34N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NGEEXR2R.js.map → chunk-TALBUVWF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FGRJZVXD.js.map → chunk-TV6FZGVK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4TI3532H.js.map → chunk-UDWUDUJI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CBJXWXI5.js.map → chunk-UY26RIBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TBLBEOEX.js.map → chunk-VSS3CSTF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OTY2YEH5.js.map → chunk-WWEFBBVF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UMMJAJB2.js.map → chunk-X3IPJU2O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-NHBIIBOW.js.map → claim-3TY5LE54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-RNEBQCOO.js.map → claim-LM4YY6QQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-ZMXL2WDS.js.map → close-CSD4LEMT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-UNTFXVM3.js.map → close-SIQCDOBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-J5Q4IJPH.js.map → comments-A5ALOYTG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-EFVBHWPT.js.map → comments-BDDEK3VW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-72253M2O.js.map → config-W2NHDNQT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-VFYA6BMI.js.map → config-YUYBMJOW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-D4BN3VSQ.js.map → contracts-47X7RYUF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-RGPOBLPL.js.map → contracts-HJHR4NCD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-H6TXHK7S.js.map → copy-B7HFOWFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-WXE3OOLZ.js.map → copy-P4UVYZ7M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-PUAIJEZ7.js.map → create-5ERJF64D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-EZWAMUKR.js.map → create-TXNRPS4K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-WBME6WG5.js.map → delete-LX3LGBCH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-PKR2JHLH.js.map → delete-S3WVK6LP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-4BQEDV4L.js.map → deps-GWSNH7OZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-KWHQRO75.js.map → deps-YSM4LZQD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-SCNBUGSV.js.map → docs-7RYFBHQD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-364GT3ZR.js.map → docs-TG6JMVMY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-KK2UPXJD.js.map → extension-R3LUKMX7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-CRE7JM47.js.map → extension-VNMRKIHI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-66EHM5ZR.js.map → files-KAKU57OT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-3GESQAWL.js.map → files-QB3EYPMO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-MOQDND5J.js.map → gc-B747VM4M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-D5IWOKQH.js.map → gc-KNUPLPSW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-7J2ZCBV5.js.map → get-GMGLIQ5I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-WXSLXV3K.js.map → get-SBL6NHYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-ZERISU2L.js.map → history-6UKSZTRT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-TJTO5GCR.js.map → history-XCWRXBXC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-CKNN6UKW.js.map → history-compact-IDH7E7VN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-N2Q7IR3T.js.map → history-compact-KICKUCR7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-GODBYT5A.js.map → history-redact-HKYBTK6X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-JUXUOH54.js.map → history-redact-JJWH3QWK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-TDBBSRVK.js.map → history-repair-7HWBZKXN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-CCCPBNTF.js.map → history-repair-N5HXKJOI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-CBZHXBR3.js.map → init-27JLDUO2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-6ZPKD3YN.js.map → init-OQA3TWIS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-WYNTYQ5T.js.map → learnings-L7VQUSVI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-U7U2FNIO.js.map → learnings-Z4GAIZQ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-7MTPPZHC.js.map → list-6U3CJVXS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-JGP7ODML.js.map → list-W5ROBC5U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-P25YVTEG.js.map → notes-JJDOEDFK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-QIF6A7XS.js.map → notes-SDCK7BEN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-RACB5PI6.js.map → plan-H5HYHMBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-SSBJFWXA.js.map → plan-W2B5RYR3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-JRZ4UMWZ.js.map → register-setup-BZ3TNE3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-ABA2JPWO.js.map → register-setup-WLFL3OUF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-3JRX27QW.js.map → restore-GNI2W5CN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-K72ZNPEP.js.map → restore-RGFSPG4K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-UL4B2JX5.js.map → schema-CCDU3RLC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-3VKRDBLC.js.map → schema-KZASL323.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-WLJ3XBF5.js.map → stats-IOXQMGI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-O4UTMJMC.js.map → stats-QNV7B2CE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-EUVHFSQU.js.map → telemetry-IV5C6JOM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-NRVWX25E.js.map → telemetry-NHR5RFXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-XN7RJL5Z.js.map → test-4Z37CXW4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-GXUBQNUC.js.map → test-PIL2CEEB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-UTFXC7S2.js.map → test-all-GRLYHBNP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-XM6OKI3L.js.map → test-all-MFN4MYCV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-IK6E2HNX.js.map → test-runs-7LRFWWCA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-7FHCPEA3.js.map → test-runs-7WCSC3TY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-LFBSEW3N.js.map → update-I4G34LKJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-U4B4OMHZ.js.map → update-VI5DBZ3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-FFXGO43H.js.map → upgrade-LT2MLLPS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-5SRFLUNW.js.map → upgrade-ZZSC7CLV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-T3LPWSZG.js.map → validate-3XRORNMP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-CRWXZILW.js.map → validate-IQIQSKUX.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// dist/core/fs/fs-utils.js
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c3981b80-9acf-59eb-b3e4-2434796a7689")}catch(e){}}();
|
|
4
4
|
import * as fs from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import crypto from "node:crypto";
|
|
@@ -158,6 +158,7 @@ var EXTENSION_CAPABILITY_CONTRACT = Object.freeze({
|
|
|
158
158
|
var KNOWN_EXTENSION_POLICY_MODES = ["off", "warn", "enforce"];
|
|
159
159
|
var KNOWN_EXTENSION_TRUST_MODES = ["off", "warn", "enforce"];
|
|
160
160
|
var KNOWN_EXTENSION_SANDBOX_PROFILES = ["none", "restricted", "strict"];
|
|
161
|
+
var KNOWN_PM_MAX_VERSION_EXCEEDED_MODES = ["block", "warn"];
|
|
161
162
|
var KNOWN_EXTENSION_POLICY_SURFACES = [
|
|
162
163
|
"commands.override",
|
|
163
164
|
"commands.handler",
|
|
@@ -211,6 +212,23 @@ function createDefaultExtensionGovernancePolicy() {
|
|
|
211
212
|
extension_overrides: []
|
|
212
213
|
};
|
|
213
214
|
}
|
|
215
|
+
var KNOWN_EXTENSION_MANIFEST_FIELDS = Object.freeze([
|
|
216
|
+
"$schema",
|
|
217
|
+
"name",
|
|
218
|
+
"version",
|
|
219
|
+
"entry",
|
|
220
|
+
"priority",
|
|
221
|
+
"manifest_version",
|
|
222
|
+
"pm_min_version",
|
|
223
|
+
"pm_max_version",
|
|
224
|
+
"engines",
|
|
225
|
+
"trusted",
|
|
226
|
+
"provenance",
|
|
227
|
+
"sandbox_profile",
|
|
228
|
+
"permissions",
|
|
229
|
+
"capabilities",
|
|
230
|
+
"activation"
|
|
231
|
+
]);
|
|
214
232
|
|
|
215
233
|
// dist/core/shared/constants.js
|
|
216
234
|
var DEFAULT_STATUS_DEFINITIONS = Object.freeze([
|
|
@@ -347,6 +365,7 @@ var FRONT_MATTER_KEY_ORDER = [
|
|
|
347
365
|
"test_runs",
|
|
348
366
|
"docs",
|
|
349
367
|
"close_reason",
|
|
368
|
+
"duplicate_of",
|
|
350
369
|
"plan_mode",
|
|
351
370
|
"plan_scope",
|
|
352
371
|
"plan_harness",
|
|
@@ -362,7 +381,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
|
|
|
362
381
|
create_mode_default: "progressive",
|
|
363
382
|
close_validation_default: "off",
|
|
364
383
|
require_close_reason: true,
|
|
365
|
-
parent_reference: "
|
|
384
|
+
parent_reference: "strict_error",
|
|
366
385
|
metadata_profile: "core",
|
|
367
386
|
force_required_for_stale_lock: false
|
|
368
387
|
},
|
|
@@ -371,7 +390,7 @@ var GOVERNANCE_PRESET_DEFAULTS = {
|
|
|
371
390
|
create_mode_default: "progressive",
|
|
372
391
|
close_validation_default: "warn",
|
|
373
392
|
require_close_reason: true,
|
|
374
|
-
parent_reference: "
|
|
393
|
+
parent_reference: "strict_error",
|
|
375
394
|
metadata_profile: "core",
|
|
376
395
|
force_required_for_stale_lock: true
|
|
377
396
|
},
|
|
@@ -516,6 +535,8 @@ var SETTINGS_DEFAULTS = {
|
|
|
516
535
|
hierarchy: true,
|
|
517
536
|
activity: true,
|
|
518
537
|
progress: true,
|
|
538
|
+
recently_created: true,
|
|
539
|
+
unparented: true,
|
|
519
540
|
blockers: true,
|
|
520
541
|
files: true,
|
|
521
542
|
workload: true,
|
|
@@ -1404,6 +1425,128 @@ import fs3 from "node:fs/promises";
|
|
|
1404
1425
|
import path5 from "node:path";
|
|
1405
1426
|
import { pathToFileURL } from "node:url";
|
|
1406
1427
|
|
|
1428
|
+
// dist/core/extensions/flag-value-types.js
|
|
1429
|
+
var FLAG_VALUE_KIND_BY_ALIAS = Object.freeze({
|
|
1430
|
+
string: "string",
|
|
1431
|
+
number: "number",
|
|
1432
|
+
int: "number",
|
|
1433
|
+
integer: "number",
|
|
1434
|
+
float: "number",
|
|
1435
|
+
boolean: "boolean",
|
|
1436
|
+
bool: "boolean"
|
|
1437
|
+
});
|
|
1438
|
+
function resolveFlagValueKind(raw) {
|
|
1439
|
+
if (typeof raw !== "string") {
|
|
1440
|
+
return null;
|
|
1441
|
+
}
|
|
1442
|
+
return FLAG_VALUE_KIND_BY_ALIAS[raw.trim().toLowerCase()] ?? null;
|
|
1443
|
+
}
|
|
1444
|
+
function flattenFlagListValue(value) {
|
|
1445
|
+
const entries = [];
|
|
1446
|
+
const collect = (input) => {
|
|
1447
|
+
if (Array.isArray(input)) {
|
|
1448
|
+
for (const item of input) {
|
|
1449
|
+
collect(item);
|
|
1450
|
+
}
|
|
1451
|
+
return;
|
|
1452
|
+
}
|
|
1453
|
+
if (typeof input === "string") {
|
|
1454
|
+
for (const part of input.split(",")) {
|
|
1455
|
+
const trimmed = part.trim();
|
|
1456
|
+
if (trimmed.length > 0) {
|
|
1457
|
+
entries.push(trimmed);
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
return;
|
|
1461
|
+
}
|
|
1462
|
+
if (input !== void 0 && input !== null) {
|
|
1463
|
+
entries.push(input);
|
|
1464
|
+
}
|
|
1465
|
+
};
|
|
1466
|
+
collect(value);
|
|
1467
|
+
return entries;
|
|
1468
|
+
}
|
|
1469
|
+
function isFlagDefaultValueCoercible(value, kind) {
|
|
1470
|
+
if (kind === "string") {
|
|
1471
|
+
return true;
|
|
1472
|
+
}
|
|
1473
|
+
if (kind === "number") {
|
|
1474
|
+
if (typeof value === "number") {
|
|
1475
|
+
return Number.isFinite(value);
|
|
1476
|
+
}
|
|
1477
|
+
return typeof value === "string" && value.trim().length > 0 && Number.isFinite(Number(value));
|
|
1478
|
+
}
|
|
1479
|
+
if (typeof value === "boolean") {
|
|
1480
|
+
return true;
|
|
1481
|
+
}
|
|
1482
|
+
return typeof value === "string" && ["true", "false", "1", "0"].includes(value.trim().toLowerCase());
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
// dist/core/shared/levenshtein.js
|
|
1486
|
+
function levenshteinDistanceWithinLimit(left, right, limit) {
|
|
1487
|
+
if (left === right) {
|
|
1488
|
+
return 0;
|
|
1489
|
+
}
|
|
1490
|
+
if (Math.abs(left.length - right.length) > limit) {
|
|
1491
|
+
return null;
|
|
1492
|
+
}
|
|
1493
|
+
const width = right.length + 1;
|
|
1494
|
+
const beforePrevious = new Array(width);
|
|
1495
|
+
const previous = new Array(width);
|
|
1496
|
+
const current = new Array(width);
|
|
1497
|
+
for (let column = 0; column < width; column += 1) {
|
|
1498
|
+
beforePrevious[column] = 0;
|
|
1499
|
+
previous[column] = column;
|
|
1500
|
+
}
|
|
1501
|
+
for (let row = 1; row <= left.length; row += 1) {
|
|
1502
|
+
current[0] = row;
|
|
1503
|
+
let rowMin = current[0];
|
|
1504
|
+
for (let column = 1; column <= right.length; column += 1) {
|
|
1505
|
+
const cost = left[row - 1] === right[column - 1] ? 0 : 1;
|
|
1506
|
+
const substitution = previous[column - 1] + cost;
|
|
1507
|
+
const insertion = current[column - 1] + 1;
|
|
1508
|
+
const deletion = previous[column] + 1;
|
|
1509
|
+
let candidate = Math.min(substitution, insertion, deletion);
|
|
1510
|
+
if (row > 1 && column > 1 && left[row - 1] === right[column - 2] && left[row - 2] === right[column - 1]) {
|
|
1511
|
+
candidate = Math.min(candidate, beforePrevious[column - 2] + 1);
|
|
1512
|
+
}
|
|
1513
|
+
current[column] = candidate;
|
|
1514
|
+
if (candidate < rowMin) {
|
|
1515
|
+
rowMin = candidate;
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
if (rowMin > limit) {
|
|
1519
|
+
return null;
|
|
1520
|
+
}
|
|
1521
|
+
for (let column = 0; column < width; column += 1) {
|
|
1522
|
+
beforePrevious[column] = previous[column];
|
|
1523
|
+
previous[column] = current[column];
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
const result = previous[right.length];
|
|
1527
|
+
return result <= limit ? result : null;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
// dist/core/extensions/item-field-types.js
|
|
1531
|
+
var KNOWN_ITEM_FIELD_TYPES = ["string", "number", "boolean", "array", "object"];
|
|
1532
|
+
function normalizeItemFieldType(value) {
|
|
1533
|
+
const normalized = value.trim().toLowerCase();
|
|
1534
|
+
return KNOWN_ITEM_FIELD_TYPES.includes(normalized) ? normalized : null;
|
|
1535
|
+
}
|
|
1536
|
+
function suggestKnownItemFieldType(value) {
|
|
1537
|
+
const normalized = value.trim().toLowerCase();
|
|
1538
|
+
if (normalized.length === 0) {
|
|
1539
|
+
return null;
|
|
1540
|
+
}
|
|
1541
|
+
const limit = Math.max(1, Math.floor(normalized.length * 0.34));
|
|
1542
|
+
for (const candidate of KNOWN_ITEM_FIELD_TYPES) {
|
|
1543
|
+
if (levenshteinDistanceWithinLimit(normalized, candidate, limit) !== null) {
|
|
1544
|
+
return candidate;
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
return null;
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1407
1550
|
// dist/core/extensions/extension-policy.js
|
|
1408
1551
|
function normalizePolicyName(value) {
|
|
1409
1552
|
if (typeof value !== "string") {
|
|
@@ -1452,6 +1595,29 @@ function normalizePolicySandboxProfile(value) {
|
|
|
1452
1595
|
}
|
|
1453
1596
|
return "none";
|
|
1454
1597
|
}
|
|
1598
|
+
function normalizePmMaxVersionExceededModeValue(value) {
|
|
1599
|
+
if (typeof value !== "string") {
|
|
1600
|
+
return void 0;
|
|
1601
|
+
}
|
|
1602
|
+
const normalized = value.trim().toLowerCase();
|
|
1603
|
+
return KNOWN_PM_MAX_VERSION_EXCEEDED_MODES.includes(normalized) ? normalized : void 0;
|
|
1604
|
+
}
|
|
1605
|
+
function normalizePmMaxVersionExceededMode(value) {
|
|
1606
|
+
if (typeof value === "string") {
|
|
1607
|
+
const mode = normalizePmMaxVersionExceededModeValue(value) ?? "block";
|
|
1608
|
+
return { global: mode, project: mode };
|
|
1609
|
+
}
|
|
1610
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
1611
|
+
return {
|
|
1612
|
+
global: normalizePmMaxVersionExceededModeValue(value.global) ?? "block",
|
|
1613
|
+
project: normalizePmMaxVersionExceededModeValue(value.project) ?? "block"
|
|
1614
|
+
};
|
|
1615
|
+
}
|
|
1616
|
+
return { global: "block", project: "block" };
|
|
1617
|
+
}
|
|
1618
|
+
function serializePmMaxVersionExceededMode(mode) {
|
|
1619
|
+
return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };
|
|
1620
|
+
}
|
|
1455
1621
|
function toSortedList(values) {
|
|
1456
1622
|
return [...new Set(values)].sort((left, right) => left.localeCompare(right));
|
|
1457
1623
|
}
|
|
@@ -1495,6 +1661,7 @@ function normalizeExtensionPolicy(settings) {
|
|
|
1495
1661
|
const policy = settings.extensions.policy;
|
|
1496
1662
|
const mode = normalizePolicyMode(policy?.mode);
|
|
1497
1663
|
const trustMode = normalizePolicyTrustMode(policy?.trust_mode);
|
|
1664
|
+
const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededMode(policy?.pm_max_version_exceeded_mode);
|
|
1498
1665
|
const requireProvenance = policy?.require_provenance === true;
|
|
1499
1666
|
const trustedExtensions = normalizePolicyStringSet(policy?.trusted_extensions);
|
|
1500
1667
|
const defaultSandboxProfile = normalizePolicySandboxProfile(policy?.default_sandbox_profile);
|
|
@@ -1540,6 +1707,7 @@ function normalizeExtensionPolicy(settings) {
|
|
|
1540
1707
|
return {
|
|
1541
1708
|
mode,
|
|
1542
1709
|
trustMode,
|
|
1710
|
+
pmMaxVersionExceededMode: pmMaxVersionExceededMode2,
|
|
1543
1711
|
requireProvenance,
|
|
1544
1712
|
trustedExtensions,
|
|
1545
1713
|
defaultSandboxProfile,
|
|
@@ -1580,6 +1748,7 @@ function serializeExtensionPolicy(policy) {
|
|
|
1580
1748
|
return {
|
|
1581
1749
|
mode: policy.mode,
|
|
1582
1750
|
trust_mode: policy.trustMode,
|
|
1751
|
+
pm_max_version_exceeded_mode: serializePmMaxVersionExceededMode(policy.pmMaxVersionExceededMode),
|
|
1583
1752
|
require_provenance: policy.requireProvenance,
|
|
1584
1753
|
trusted_extensions: toSortedList(policy.trustedExtensions),
|
|
1585
1754
|
default_sandbox_profile: policy.defaultSandboxProfile,
|
|
@@ -1603,6 +1772,7 @@ function hydrateExtensionPolicy(policy) {
|
|
|
1603
1772
|
return {
|
|
1604
1773
|
mode: normalizePolicyMode(policy.mode),
|
|
1605
1774
|
trustMode: normalizePolicyTrustMode(policy.trust_mode),
|
|
1775
|
+
pmMaxVersionExceededMode: normalizePmMaxVersionExceededMode(policy.pm_max_version_exceeded_mode),
|
|
1606
1776
|
requireProvenance: policy.require_provenance === true,
|
|
1607
1777
|
trustedExtensions: normalizePolicyStringSet(policy.trusted_extensions),
|
|
1608
1778
|
defaultSandboxProfile: normalizePolicySandboxProfile(policy.default_sandbox_profile),
|
|
@@ -2176,14 +2346,14 @@ function buildEffectiveExtensions(globalCandidates, projectCandidates) {
|
|
|
2176
2346
|
}
|
|
2177
2347
|
return effective;
|
|
2178
2348
|
}
|
|
2179
|
-
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
|
|
2349
|
+
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled, pmMaxVersionExceededMode2) {
|
|
2180
2350
|
const diagnostics = [];
|
|
2181
2351
|
const warnings = [];
|
|
2182
2352
|
const candidates = [];
|
|
2183
2353
|
const directories = await listExtensionDirectories(extensionsRoot);
|
|
2184
2354
|
const managedSourcePackages = await readManagedExtensionSourcePackages(extensionsRoot);
|
|
2185
2355
|
for (const directory of directories) {
|
|
2186
|
-
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages);
|
|
2356
|
+
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2);
|
|
2187
2357
|
diagnostics.push(scanned.diagnostic);
|
|
2188
2358
|
warnings.push(...scanned.warnings);
|
|
2189
2359
|
if (scanned.candidate) {
|
|
@@ -2192,7 +2362,7 @@ async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled) {
|
|
|
2192
2362
|
}
|
|
2193
2363
|
return { diagnostics, warnings, candidates };
|
|
2194
2364
|
}
|
|
2195
|
-
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages) {
|
|
2365
|
+
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode2) {
|
|
2196
2366
|
const extensionDir = path5.join(extensionsRoot, directory);
|
|
2197
2367
|
const manifestPath = path5.join(extensionDir, "manifest.json");
|
|
2198
2368
|
if (!await pathExists(manifestPath)) {
|
|
@@ -2259,7 +2429,7 @@ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled,
|
|
|
2259
2429
|
if (pmVersionCompatibility.warning) {
|
|
2260
2430
|
extensionWarnings.push(pmVersionCompatibility.warning);
|
|
2261
2431
|
}
|
|
2262
|
-
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest);
|
|
2432
|
+
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest, pmMaxVersionExceededMode2);
|
|
2263
2433
|
if (pmMaxVersionCompatibility.warning) {
|
|
2264
2434
|
extensionWarnings.push(pmMaxVersionCompatibility.warning);
|
|
2265
2435
|
}
|
|
@@ -2309,8 +2479,8 @@ async function discoverExtensions(options) {
|
|
|
2309
2479
|
}
|
|
2310
2480
|
const enabled = new Set(configured_enabled);
|
|
2311
2481
|
const disabled = new Set(configured_disabled);
|
|
2312
|
-
const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled);
|
|
2313
|
-
const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled);
|
|
2482
|
+
const globalScan = await scanExtensionLayer("global", roots.global, enabled, disabled, policy.pmMaxVersionExceededMode.global);
|
|
2483
|
+
const projectScan = await scanExtensionLayer("project", roots.project, enabled, disabled, policy.pmMaxVersionExceededMode.project);
|
|
2314
2484
|
const policyWarnings = [...policy.warnings];
|
|
2315
2485
|
const effectiveCandidates = buildEffectiveExtensions(globalScan.candidates, projectScan.candidates);
|
|
2316
2486
|
const effective = [];
|
|
@@ -2435,7 +2605,7 @@ async function evaluatePmMinVersionCompatibility(layer, manifest) {
|
|
|
2435
2605
|
}
|
|
2436
2606
|
return { allowed: true };
|
|
2437
2607
|
}
|
|
2438
|
-
async function evaluatePmMaxVersionCompatibility(layer, manifest) {
|
|
2608
|
+
async function evaluatePmMaxVersionCompatibility(layer, manifest, exceededMode) {
|
|
2439
2609
|
if (typeof manifest.pm_max_version !== "string" || manifest.pm_max_version.trim().length === 0) {
|
|
2440
2610
|
return { allowed: true };
|
|
2441
2611
|
}
|
|
@@ -2466,6 +2636,12 @@ async function evaluatePmMaxVersionCompatibility(layer, manifest) {
|
|
|
2466
2636
|
};
|
|
2467
2637
|
}
|
|
2468
2638
|
if (comparison > 0) {
|
|
2639
|
+
if (exceededMode === "warn") {
|
|
2640
|
+
return {
|
|
2641
|
+
allowed: true,
|
|
2642
|
+
warning: `extension_pm_max_version_exceeded_warn:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
|
|
2643
|
+
};
|
|
2644
|
+
}
|
|
2469
2645
|
return {
|
|
2470
2646
|
allowed: false,
|
|
2471
2647
|
warning: `extension_pm_max_version_exceeded:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
|
|
@@ -2535,21 +2711,28 @@ async function loadExtensions(options) {
|
|
|
2535
2711
|
failed
|
|
2536
2712
|
};
|
|
2537
2713
|
}
|
|
2714
|
+
function toActivatableExtension(source) {
|
|
2715
|
+
const activate = source.activate;
|
|
2716
|
+
const activatable = {
|
|
2717
|
+
activate: activate.bind(source)
|
|
2718
|
+
};
|
|
2719
|
+
if (typeof source.deactivate === "function") {
|
|
2720
|
+
const deactivate = source.deactivate;
|
|
2721
|
+
activatable.deactivate = deactivate.bind(source);
|
|
2722
|
+
}
|
|
2723
|
+
return activatable;
|
|
2724
|
+
}
|
|
2538
2725
|
function resolveActivatableExtension(module) {
|
|
2539
2726
|
const moduleRecord = asRecordLoose(module);
|
|
2540
2727
|
if (!moduleRecord) {
|
|
2541
2728
|
return null;
|
|
2542
2729
|
}
|
|
2543
2730
|
if (typeof moduleRecord.activate === "function") {
|
|
2544
|
-
return
|
|
2545
|
-
activate: moduleRecord.activate
|
|
2546
|
-
};
|
|
2731
|
+
return toActivatableExtension(moduleRecord);
|
|
2547
2732
|
}
|
|
2548
2733
|
const defaultExport = asRecordLoose(moduleRecord.default);
|
|
2549
2734
|
if (defaultExport && typeof defaultExport.activate === "function") {
|
|
2550
|
-
return
|
|
2551
|
-
activate: defaultExport.activate
|
|
2552
|
-
};
|
|
2735
|
+
return toActivatableExtension(defaultExport);
|
|
2553
2736
|
}
|
|
2554
2737
|
return null;
|
|
2555
2738
|
}
|
|
@@ -2676,6 +2859,25 @@ function assertOptionalStringField(name, value) {
|
|
|
2676
2859
|
throw new TypeError(`${name} must be a non-empty string when provided`);
|
|
2677
2860
|
}
|
|
2678
2861
|
}
|
|
2862
|
+
function isFlagDefaultScalar(value) {
|
|
2863
|
+
return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
2864
|
+
}
|
|
2865
|
+
function assertOptionalFlagDefaultField(name, value) {
|
|
2866
|
+
if (value === void 0) {
|
|
2867
|
+
return;
|
|
2868
|
+
}
|
|
2869
|
+
if (Array.isArray(value)) {
|
|
2870
|
+
for (const [index, item] of value.entries()) {
|
|
2871
|
+
if (!isFlagDefaultScalar(item)) {
|
|
2872
|
+
throw new TypeError(`${name}[${index}] must be a string, number, or boolean`);
|
|
2873
|
+
}
|
|
2874
|
+
}
|
|
2875
|
+
return;
|
|
2876
|
+
}
|
|
2877
|
+
if (!isFlagDefaultScalar(value)) {
|
|
2878
|
+
throw new TypeError(`${name} must be a string, number, or boolean, or an array of these when provided`);
|
|
2879
|
+
}
|
|
2880
|
+
}
|
|
2679
2881
|
function assertOptionalStringArrayField(name, value) {
|
|
2680
2882
|
if (value === void 0) {
|
|
2681
2883
|
return;
|
|
@@ -2789,6 +2991,32 @@ function validateFlagDefinitions(flags) {
|
|
|
2789
2991
|
assertOptionalBooleanField(`registerFlags flags[${index}].required`, record.required);
|
|
2790
2992
|
assertOptionalBooleanField(`registerFlags flags[${index}].enabled`, record.enabled);
|
|
2791
2993
|
assertOptionalBooleanField(`registerFlags flags[${index}].visible`, record.visible);
|
|
2994
|
+
assertOptionalBooleanField(`registerFlags flags[${index}].list`, record.list);
|
|
2995
|
+
assertOptionalFlagDefaultField(`registerFlags flags[${index}].default`, record.default);
|
|
2996
|
+
if (Array.isArray(record.default) && record.list !== true) {
|
|
2997
|
+
throw new TypeError(`registerFlags flags[${index}].default cannot be an array unless list is true.`);
|
|
2998
|
+
}
|
|
2999
|
+
assertFlagValueTypeAndDefault(`registerFlags flags[${index}]`, record);
|
|
3000
|
+
}
|
|
3001
|
+
}
|
|
3002
|
+
function assertFlagValueTypeAndDefault(label, record) {
|
|
3003
|
+
const declaredType = (typeof record.value_type === "string" ? record.value_type : void 0) ?? (typeof record.type === "string" ? record.type : void 0);
|
|
3004
|
+
if (declaredType === void 0) {
|
|
3005
|
+
return;
|
|
3006
|
+
}
|
|
3007
|
+
const kind = resolveFlagValueKind(declaredType);
|
|
3008
|
+
if (kind === null) {
|
|
3009
|
+
throw new TypeError(`${label} value_type "${declaredType}" is not a known flag value type (expected one of: string, number, boolean).`);
|
|
3010
|
+
}
|
|
3011
|
+
if (record.default === void 0) {
|
|
3012
|
+
return;
|
|
3013
|
+
}
|
|
3014
|
+
const defaults = record.list === true ? flattenFlagListValue(record.default) : [record.default];
|
|
3015
|
+
for (const [defaultIndex, defaultValue] of defaults.entries()) {
|
|
3016
|
+
if (!isFlagDefaultValueCoercible(defaultValue, kind)) {
|
|
3017
|
+
const suffix = defaults.length > 1 ? `default[${defaultIndex}]` : "default";
|
|
3018
|
+
throw new TypeError(`${label}.${suffix} (${JSON.stringify(defaultValue)}) is not coercible to ${kind}.`);
|
|
3019
|
+
}
|
|
2792
3020
|
}
|
|
2793
3021
|
}
|
|
2794
3022
|
function validateItemFieldDefinitions(fields) {
|
|
@@ -2798,7 +3026,12 @@ function validateItemFieldDefinitions(fields) {
|
|
|
2798
3026
|
for (const [index, raw] of fields.entries()) {
|
|
2799
3027
|
const record = asRegistrationRecord(`registerItemFields fields[${index}]`, raw);
|
|
2800
3028
|
assertNonEmptyString(`registerItemFields fields[${index}].name`, record.name);
|
|
2801
|
-
assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
|
|
3029
|
+
const fieldType = assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);
|
|
3030
|
+
if (normalizeItemFieldType(fieldType) === null) {
|
|
3031
|
+
const suggestion = suggestKnownItemFieldType(fieldType);
|
|
3032
|
+
const hint = suggestion ? ` Did you mean "${suggestion}"?` : "";
|
|
3033
|
+
throw new TypeError(`registerItemFields fields[${index}].type "${fieldType}" is not a known field type (expected one of: ${KNOWN_ITEM_FIELD_TYPES.join(", ")}).${hint}`);
|
|
3034
|
+
}
|
|
2802
3035
|
assertOptionalBooleanField(`registerItemFields fields[${index}].optional`, record.optional);
|
|
2803
3036
|
}
|
|
2804
3037
|
}
|
|
@@ -2896,6 +3129,15 @@ function assertExtensionCapability(extension, capability, method) {
|
|
|
2896
3129
|
}
|
|
2897
3130
|
}
|
|
2898
3131
|
function createExtensionApi(extension, hooks, commands, parsers, preflight, services, renderers, registrations, activationWarnings, policy) {
|
|
3132
|
+
const selfIdentity = Object.freeze({
|
|
3133
|
+
name: extension.name,
|
|
3134
|
+
layer: extension.layer,
|
|
3135
|
+
version: extension.version,
|
|
3136
|
+
capabilities: Object.freeze((extension.capabilities ?? []).filter((capability) => KNOWN_EXTENSION_CAPABILITIES.includes(capability))),
|
|
3137
|
+
pm_min_version: extension.pm_min_version,
|
|
3138
|
+
pm_max_version: extension.pm_max_version,
|
|
3139
|
+
source_package: extension.source_package
|
|
3140
|
+
});
|
|
2899
3141
|
const extensionRef = {
|
|
2900
3142
|
layer: extension.layer,
|
|
2901
3143
|
name: extension.name,
|
|
@@ -3337,6 +3579,7 @@ function createExtensionApi(extension, hooks, commands, parsers, preflight, serv
|
|
|
3337
3579
|
});
|
|
3338
3580
|
};
|
|
3339
3581
|
return {
|
|
3582
|
+
extension: selfIdentity,
|
|
3340
3583
|
registerCommand,
|
|
3341
3584
|
registerParser,
|
|
3342
3585
|
registerPreflight,
|
|
@@ -3886,6 +4129,8 @@ var CONTEXT_SECTION_VALUES = [
|
|
|
3886
4129
|
"hierarchy",
|
|
3887
4130
|
"activity",
|
|
3888
4131
|
"progress",
|
|
4132
|
+
"recently_created",
|
|
4133
|
+
"unparented",
|
|
3889
4134
|
"blockers",
|
|
3890
4135
|
"files",
|
|
3891
4136
|
"workload",
|
|
@@ -4793,9 +5038,15 @@ var extensionPolicyOverride = vObject({
|
|
|
4793
5038
|
allowed_services: vOptional(vArray(vString)),
|
|
4794
5039
|
blocked_services: vOptional(vArray(vString))
|
|
4795
5040
|
});
|
|
5041
|
+
var pmMaxVersionExceededModeLiteral = vLiteral("block", "warn");
|
|
5042
|
+
var pmMaxVersionExceededMode = (input) => typeof input === "string" ? pmMaxVersionExceededModeLiteral(input) : vObject({
|
|
5043
|
+
global: vOptional(pmMaxVersionExceededModeLiteral),
|
|
5044
|
+
project: vOptional(pmMaxVersionExceededModeLiteral)
|
|
5045
|
+
})(input);
|
|
4796
5046
|
var extensionPolicy = vOptional(vObject({
|
|
4797
5047
|
mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
4798
5048
|
trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
5049
|
+
pm_max_version_exceeded_mode: vOptional(pmMaxVersionExceededMode),
|
|
4799
5050
|
require_provenance: vOptional(vBoolean),
|
|
4800
5051
|
trusted_extensions: vOptional(vArray(vString)),
|
|
4801
5052
|
default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
|
|
@@ -4859,6 +5110,8 @@ var settingsCheck = vObject({
|
|
|
4859
5110
|
hierarchy: vOptional(vBoolean),
|
|
4860
5111
|
activity: vOptional(vBoolean),
|
|
4861
5112
|
progress: vOptional(vBoolean),
|
|
5113
|
+
recently_created: vOptional(vBoolean),
|
|
5114
|
+
unparented: vOptional(vBoolean),
|
|
4862
5115
|
blockers: vOptional(vBoolean),
|
|
4863
5116
|
files: vOptional(vBoolean),
|
|
4864
5117
|
workload: vOptional(vBoolean),
|
|
@@ -4992,6 +5245,71 @@ function normalizeItemTypeDefinition(definition, options = {}) {
|
|
|
4992
5245
|
};
|
|
4993
5246
|
}
|
|
4994
5247
|
|
|
5248
|
+
// dist/core/store/settings-read-cache.js
|
|
5249
|
+
import { stat } from "node:fs/promises";
|
|
5250
|
+
var settingsReadCacheByRoot = /* @__PURE__ */ new Map();
|
|
5251
|
+
function normalizeTrackedPaths(paths) {
|
|
5252
|
+
return [...new Set(paths.map((pathValue) => pathValue.trim()).filter((pathValue) => pathValue.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
5253
|
+
}
|
|
5254
|
+
async function readPathSignature(targetPath) {
|
|
5255
|
+
try {
|
|
5256
|
+
const targetStats = await stat(targetPath);
|
|
5257
|
+
return {
|
|
5258
|
+
path: targetPath,
|
|
5259
|
+
mtime_ms: targetStats.mtimeMs,
|
|
5260
|
+
size: targetStats.size
|
|
5261
|
+
};
|
|
5262
|
+
} catch {
|
|
5263
|
+
return {
|
|
5264
|
+
path: targetPath,
|
|
5265
|
+
mtime_ms: null,
|
|
5266
|
+
size: null
|
|
5267
|
+
};
|
|
5268
|
+
}
|
|
5269
|
+
}
|
|
5270
|
+
async function collectSettingsReadCacheSignatures(paths) {
|
|
5271
|
+
const normalizedPaths = normalizeTrackedPaths(paths);
|
|
5272
|
+
const signatures = await Promise.all(normalizedPaths.map((targetPath) => readPathSignature(targetPath)));
|
|
5273
|
+
signatures.sort((left, right) => left.path.localeCompare(right.path));
|
|
5274
|
+
return signatures;
|
|
5275
|
+
}
|
|
5276
|
+
function settingsReadCacheSignaturesEqual(left, right) {
|
|
5277
|
+
if (left.length !== right.length) {
|
|
5278
|
+
return false;
|
|
5279
|
+
}
|
|
5280
|
+
for (let index = 0; index < left.length; index += 1) {
|
|
5281
|
+
const leftEntry = left[index];
|
|
5282
|
+
const rightEntry = right[index];
|
|
5283
|
+
if (leftEntry.path !== rightEntry.path || leftEntry.mtime_ms !== rightEntry.mtime_ms || leftEntry.size !== rightEntry.size) {
|
|
5284
|
+
return false;
|
|
5285
|
+
}
|
|
5286
|
+
}
|
|
5287
|
+
return true;
|
|
5288
|
+
}
|
|
5289
|
+
function getSettingsReadCacheEntry(pmRoot) {
|
|
5290
|
+
return settingsReadCacheByRoot.get(pmRoot);
|
|
5291
|
+
}
|
|
5292
|
+
function setSettingsReadCacheEntry(pmRoot, entry) {
|
|
5293
|
+
const normalizedTrackedPaths = normalizeTrackedPaths(entry.tracked_paths);
|
|
5294
|
+
const normalizedSignatures = [...entry.signatures].map((signature) => ({
|
|
5295
|
+
path: signature.path,
|
|
5296
|
+
mtime_ms: signature.mtime_ms,
|
|
5297
|
+
size: signature.size
|
|
5298
|
+
})).sort((left, right) => left.path.localeCompare(right.path));
|
|
5299
|
+
settingsReadCacheByRoot.set(pmRoot, {
|
|
5300
|
+
tracked_paths: normalizedTrackedPaths,
|
|
5301
|
+
signatures: normalizedSignatures,
|
|
5302
|
+
value: entry.value
|
|
5303
|
+
});
|
|
5304
|
+
}
|
|
5305
|
+
function clearSettingsReadCache(pmRoot) {
|
|
5306
|
+
if (pmRoot) {
|
|
5307
|
+
settingsReadCacheByRoot.delete(pmRoot);
|
|
5308
|
+
return;
|
|
5309
|
+
}
|
|
5310
|
+
settingsReadCacheByRoot.clear();
|
|
5311
|
+
}
|
|
5312
|
+
|
|
4995
5313
|
// dist/core/store/settings.js
|
|
4996
5314
|
var SETTINGS_WRITE_OP = "settings:write";
|
|
4997
5315
|
var SETTINGS_PERSIST_SOURCE_SYMBOL = /* @__PURE__ */ Symbol("pm.settings.persist_source");
|
|
@@ -5158,6 +5476,74 @@ function getSettingsPersistSourceSnapshot(settings) {
|
|
|
5158
5476
|
}
|
|
5159
5477
|
return candidate;
|
|
5160
5478
|
}
|
|
5479
|
+
function cloneSettingsReadResult(result) {
|
|
5480
|
+
const clonedSettings = structuredClone(result.settings);
|
|
5481
|
+
const persistSource = getSettingsPersistSourceSnapshot(result.settings);
|
|
5482
|
+
if (persistSource) {
|
|
5483
|
+
attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));
|
|
5484
|
+
}
|
|
5485
|
+
return {
|
|
5486
|
+
settings: clonedSettings,
|
|
5487
|
+
metadata: {
|
|
5488
|
+
has_explicit_item_format: result.metadata.has_explicit_item_format
|
|
5489
|
+
},
|
|
5490
|
+
warnings: [...result.warnings]
|
|
5491
|
+
};
|
|
5492
|
+
}
|
|
5493
|
+
function resolveSettingsReadTrackedPaths(pmRoot, schema, settingsPath) {
|
|
5494
|
+
const normalizedSchema = normalizeRuntimeSchemaSettings(schema);
|
|
5495
|
+
return [
|
|
5496
|
+
settingsPath,
|
|
5497
|
+
filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),
|
|
5498
|
+
filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),
|
|
5499
|
+
filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),
|
|
5500
|
+
filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows)
|
|
5501
|
+
];
|
|
5502
|
+
}
|
|
5503
|
+
async function cacheSettingsReadResult(pmRoot, trackedPaths, result) {
|
|
5504
|
+
const signatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
5505
|
+
setSettingsReadCacheEntry(pmRoot, {
|
|
5506
|
+
tracked_paths: trackedPaths,
|
|
5507
|
+
signatures,
|
|
5508
|
+
value: cloneSettingsReadResult(result)
|
|
5509
|
+
});
|
|
5510
|
+
}
|
|
5511
|
+
async function cacheSettingsReadResultSafe(pmRoot, trackedPaths, result) {
|
|
5512
|
+
try {
|
|
5513
|
+
await cacheSettingsReadResult(pmRoot, trackedPaths, result);
|
|
5514
|
+
} catch {
|
|
5515
|
+
clearSettingsReadCache(pmRoot);
|
|
5516
|
+
}
|
|
5517
|
+
}
|
|
5518
|
+
function findSettingsReadCacheSignature(signatures, targetPath) {
|
|
5519
|
+
return signatures.find((signature) => signature.path === targetPath);
|
|
5520
|
+
}
|
|
5521
|
+
function selectedSettingsReadCacheSignaturesEqual(before, after, targetPaths) {
|
|
5522
|
+
for (const targetPath of targetPaths) {
|
|
5523
|
+
const beforeSignature = findSettingsReadCacheSignature(before, targetPath);
|
|
5524
|
+
const afterSignature = findSettingsReadCacheSignature(after, targetPath);
|
|
5525
|
+
if (!beforeSignature || !afterSignature || !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])) {
|
|
5526
|
+
return false;
|
|
5527
|
+
}
|
|
5528
|
+
}
|
|
5529
|
+
return true;
|
|
5530
|
+
}
|
|
5531
|
+
async function cacheSettingsReadResultIfStable(pmRoot, trackedPaths, result, stableSignatures, stablePaths) {
|
|
5532
|
+
try {
|
|
5533
|
+
const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
5534
|
+
if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {
|
|
5535
|
+
clearSettingsReadCache(pmRoot);
|
|
5536
|
+
return;
|
|
5537
|
+
}
|
|
5538
|
+
setSettingsReadCacheEntry(pmRoot, {
|
|
5539
|
+
tracked_paths: trackedPaths,
|
|
5540
|
+
signatures: currentSignatures,
|
|
5541
|
+
value: cloneSettingsReadResult(result)
|
|
5542
|
+
});
|
|
5543
|
+
} catch {
|
|
5544
|
+
clearSettingsReadCache(pmRoot);
|
|
5545
|
+
}
|
|
5546
|
+
}
|
|
5161
5547
|
function resolvePersistedFileBackedSchemaSections(settings, source) {
|
|
5162
5548
|
const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
5163
5549
|
const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);
|
|
@@ -5305,11 +5691,33 @@ function normalizeExtensionPolicyOverrides(overrides) {
|
|
|
5305
5691
|
}
|
|
5306
5692
|
return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
|
|
5307
5693
|
}
|
|
5694
|
+
function normalizePmMaxVersionExceededModeValue2(value) {
|
|
5695
|
+
return value === "block" || value === "warn" ? value : void 0;
|
|
5696
|
+
}
|
|
5697
|
+
function normalizePmMaxVersionExceededModeSetting(value) {
|
|
5698
|
+
if (typeof value === "string") {
|
|
5699
|
+
return normalizePmMaxVersionExceededModeValue2(value);
|
|
5700
|
+
}
|
|
5701
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
5702
|
+
const global = normalizePmMaxVersionExceededModeValue2(value.global);
|
|
5703
|
+
const project = normalizePmMaxVersionExceededModeValue2(value.project);
|
|
5704
|
+
if (global === void 0 && project === void 0) {
|
|
5705
|
+
return void 0;
|
|
5706
|
+
}
|
|
5707
|
+
return {
|
|
5708
|
+
...global !== void 0 ? { global } : {},
|
|
5709
|
+
...project !== void 0 ? { project } : {}
|
|
5710
|
+
};
|
|
5711
|
+
}
|
|
5712
|
+
return void 0;
|
|
5713
|
+
}
|
|
5308
5714
|
function normalizeExtensionPolicySettings(policy) {
|
|
5309
5715
|
const defaults = SETTINGS_DEFAULTS.extensions.policy;
|
|
5716
|
+
const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
|
|
5310
5717
|
return {
|
|
5311
5718
|
mode: normalizeExtensionPolicyMode(policy?.mode),
|
|
5312
5719
|
trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
|
|
5720
|
+
...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
|
|
5313
5721
|
require_provenance: policy?.require_provenance === true,
|
|
5314
5722
|
trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),
|
|
5315
5723
|
default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
|
|
@@ -5598,6 +6006,7 @@ function serializeSettings(settings, options = {}) {
|
|
|
5598
6006
|
ordered.extensions.policy = orderObject(ordered.extensions.policy ?? {}, [
|
|
5599
6007
|
"mode",
|
|
5600
6008
|
"trust_mode",
|
|
6009
|
+
"pm_max_version_exceeded_mode",
|
|
5601
6010
|
"require_provenance",
|
|
5602
6011
|
"trusted_extensions",
|
|
5603
6012
|
"default_sandbox_profile",
|
|
@@ -5664,28 +6073,52 @@ function serializeSettings(settings, options = {}) {
|
|
|
5664
6073
|
}
|
|
5665
6074
|
async function readSettingsWithMetadata(pmRoot) {
|
|
5666
6075
|
const settingsPath = getSettingsPath(pmRoot);
|
|
5667
|
-
|
|
5668
|
-
if (raw === null) {
|
|
5669
|
-
return buildFallbackSettingsReadResult();
|
|
5670
|
-
}
|
|
6076
|
+
let trackedPathsForFailure = [settingsPath];
|
|
5671
6077
|
await runActiveOnReadHooks({
|
|
5672
6078
|
path: settingsPath,
|
|
5673
6079
|
scope: "project"
|
|
5674
6080
|
});
|
|
6081
|
+
const cachedResult = getSettingsReadCacheEntry(pmRoot);
|
|
6082
|
+
if (cachedResult) {
|
|
6083
|
+
const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);
|
|
6084
|
+
if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {
|
|
6085
|
+
return cloneSettingsReadResult(cachedResult.value);
|
|
6086
|
+
}
|
|
6087
|
+
}
|
|
6088
|
+
const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
6089
|
+
const raw = await readFileIfExists(settingsPath);
|
|
6090
|
+
if (raw === null) {
|
|
6091
|
+
const fallback = buildFallbackSettingsReadResult();
|
|
6092
|
+
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);
|
|
6093
|
+
return fallback;
|
|
6094
|
+
}
|
|
6095
|
+
const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
6096
|
+
if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {
|
|
6097
|
+
clearSettingsReadCache(pmRoot);
|
|
6098
|
+
return readSettingsWithMetadata(pmRoot);
|
|
6099
|
+
}
|
|
5675
6100
|
let parsed;
|
|
5676
6101
|
try {
|
|
5677
6102
|
parsed = JSON.parse(raw);
|
|
5678
6103
|
} catch {
|
|
5679
|
-
|
|
6104
|
+
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_json");
|
|
6105
|
+
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
6106
|
+
return fallback;
|
|
5680
6107
|
}
|
|
5681
6108
|
const validated = validateSettings(parsed);
|
|
5682
6109
|
if (!validated.success) {
|
|
5683
|
-
|
|
6110
|
+
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_schema");
|
|
6111
|
+
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
6112
|
+
return fallback;
|
|
5684
6113
|
}
|
|
5685
6114
|
try {
|
|
5686
6115
|
const mergedSettings = mergeSettings(validated.data);
|
|
6116
|
+
const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);
|
|
6117
|
+
trackedPathsForFailure = trackedPaths;
|
|
6118
|
+
const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
5687
6119
|
const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);
|
|
5688
6120
|
const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);
|
|
6121
|
+
const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
5689
6122
|
const settings = {
|
|
5690
6123
|
...mergedSettings,
|
|
5691
6124
|
item_types: {
|
|
@@ -5697,7 +6130,7 @@ async function readSettingsWithMetadata(pmRoot) {
|
|
|
5697
6130
|
schema: loadedSchemaSections.schema
|
|
5698
6131
|
};
|
|
5699
6132
|
attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));
|
|
5700
|
-
|
|
6133
|
+
const result = {
|
|
5701
6134
|
settings,
|
|
5702
6135
|
metadata: {
|
|
5703
6136
|
has_explicit_item_format: hasExplicitItemFormat(parsed)
|
|
@@ -5708,8 +6141,24 @@ async function readSettingsWithMetadata(pmRoot) {
|
|
|
5708
6141
|
...loadedSchemaSections.warnings
|
|
5709
6142
|
]
|
|
5710
6143
|
};
|
|
6144
|
+
if (schemaScaffold.created_paths.length === 0) {
|
|
6145
|
+
if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {
|
|
6146
|
+
clearSettingsReadCache(pmRoot);
|
|
6147
|
+
} else {
|
|
6148
|
+
setSettingsReadCacheEntry(pmRoot, {
|
|
6149
|
+
tracked_paths: trackedPaths,
|
|
6150
|
+
signatures: signaturesAfterSchemaLoad,
|
|
6151
|
+
value: cloneSettingsReadResult(result)
|
|
6152
|
+
});
|
|
6153
|
+
}
|
|
6154
|
+
} else {
|
|
6155
|
+
clearSettingsReadCache(pmRoot);
|
|
6156
|
+
}
|
|
6157
|
+
return result;
|
|
5711
6158
|
} catch {
|
|
5712
|
-
|
|
6159
|
+
const fallback = buildFallbackSettingsReadResult("settings_read_merge_failed");
|
|
6160
|
+
await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);
|
|
6161
|
+
return fallback;
|
|
5713
6162
|
}
|
|
5714
6163
|
}
|
|
5715
6164
|
async function readSettings(pmRoot) {
|
|
@@ -5720,11 +6169,15 @@ async function writeSettings(pmRoot, settings, op = SETTINGS_WRITE_OP) {
|
|
|
5720
6169
|
await writeFileAtomic(settingsPath, serializeSettings(settings, {
|
|
5721
6170
|
persist_source: getSettingsPersistSourceSnapshot(settings)
|
|
5722
6171
|
}));
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
|
|
6172
|
+
try {
|
|
6173
|
+
await runActiveOnWriteHooks({
|
|
6174
|
+
path: settingsPath,
|
|
6175
|
+
scope: "project",
|
|
6176
|
+
op
|
|
6177
|
+
});
|
|
6178
|
+
} finally {
|
|
6179
|
+
clearSettingsReadCache(pmRoot);
|
|
6180
|
+
}
|
|
5728
6181
|
}
|
|
5729
6182
|
|
|
5730
6183
|
export {
|
|
@@ -5782,6 +6235,10 @@ export {
|
|
|
5782
6235
|
coercePositiveInteger,
|
|
5783
6236
|
coerceNumberInRange,
|
|
5784
6237
|
asRecordOrNull,
|
|
6238
|
+
resolveFlagValueKind,
|
|
6239
|
+
flattenFlagListValue,
|
|
6240
|
+
levenshteinDistanceWithinLimit,
|
|
6241
|
+
normalizeItemFieldType,
|
|
5785
6242
|
parseUnknownExtensionCapabilityWarning,
|
|
5786
6243
|
parseLegacyExtensionCapabilityAliasWarning,
|
|
5787
6244
|
createEmptyExtensionRegistrationRegistry,
|
|
@@ -5859,6 +6316,6 @@ export {
|
|
|
5859
6316
|
readSettings,
|
|
5860
6317
|
writeSettings
|
|
5861
6318
|
};
|
|
5862
|
-
//# sourceMappingURL=chunk-
|
|
6319
|
+
//# sourceMappingURL=chunk-WNMRICXH.js.map
|
|
5863
6320
|
|
|
5864
|
-
//# debugId=
|
|
6321
|
+
//# debugId=c3981b80-9acf-59eb-b3e4-2434796a7689
|