@unbrained/pm-cli 2026.7.3 → 2026.7.5
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 +36 -0
- package/CONTRIBUTING.md +36 -7
- package/README.md +1 -9
- package/dist/cli/commands/calendar.d.ts +3 -2
- package/dist/cli/commands/calendar.js +5 -5
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/claim.js +17 -3
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.js +34 -16
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +231 -345
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/copy.js +3 -3
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.d.ts +9 -59
- package/dist/cli/commands/create.js +162 -132
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/bundled-catalog.d.ts +6 -0
- package/dist/cli/commands/extension/bundled-catalog.js +15 -2
- package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +6 -3
- package/dist/cli/commands/extension/describe.js +21 -9
- package/dist/cli/commands/extension/describe.js.map +1 -1
- package/dist/cli/commands/extension/doctor.d.ts +0 -4
- package/dist/cli/commands/extension/doctor.js +3 -3
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +59 -133
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension/shared.d.ts +2 -7
- package/dist/cli/commands/extension/shared.js +4 -10
- package/dist/cli/commands/extension/shared.js.map +1 -1
- package/dist/cli/commands/extension.js +33 -8
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +3 -3
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/history-compact.js +9 -18
- package/dist/cli/commands/history-compact.js.map +1 -1
- package/dist/cli/commands/history-repair.js +9 -19
- package/dist/cli/commands/history-repair.js.map +1 -1
- package/dist/cli/commands/init-agent-guidance.js +133 -97
- package/dist/cli/commands/init-agent-guidance.js.map +1 -1
- package/dist/cli/commands/init.js +3 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/item-filter-options.d.ts +2 -0
- package/dist/cli/commands/item-filter-options.js +2 -2
- package/dist/cli/commands/item-filter-options.js.map +1 -1
- package/dist/cli/commands/mutation-command-options.d.ts +78 -0
- package/dist/cli/commands/mutation-command-options.js +10 -0
- package/dist/cli/commands/mutation-command-options.js.map +1 -0
- package/dist/cli/commands/profile.js +3 -3
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/reindex.js +4 -4
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.js +3 -3
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.js +10 -10
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/shared-unset-fields.d.ts +19 -0
- package/dist/cli/commands/shared-unset-fields.js +31 -2
- package/dist/cli/commands/shared-unset-fields.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -59
- package/dist/cli/commands/update.js +29 -98
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.js +4 -4
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +107 -7
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/main.d.ts +6 -2
- package/dist/cli/main.js +33 -12
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +4 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/registration-helpers.js +12 -6
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-4XQIDNM5.js +18 -0
- package/dist/cli-bundle/chunks/{activity-5YWLSPGE.js → activity-YKAKZTZ4.js} +11 -9
- package/dist/cli-bundle/chunks/{aggregate-2V2M3JZU.js → aggregate-EQX2RGB7.js} +16 -13
- package/dist/cli-bundle/chunks/{aggregate-2V2M3JZU.js.map → aggregate-EQX2RGB7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{aggregate-EK7DXML7.js → aggregate-PEGZGJXD.js} +18 -15
- package/dist/cli-bundle/chunks/{aggregate-EK7DXML7.js.map → aggregate-PEGZGJXD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-EZESUVJT.js → append-CZGUZ45Q.js} +11 -8
- package/dist/cli-bundle/chunks/{append-EZESUVJT.js.map → append-CZGUZ45Q.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-JFG4WQMG.js → append-NSQBCXZJ.js} +13 -10
- package/dist/cli-bundle/chunks/{append-JFG4WQMG.js.map → append-NSQBCXZJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js +1413 -0
- package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NOIEVOK5.js → chunk-3PL6LEKP.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-NOIEVOK5.js.map → chunk-3PL6LEKP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6KRFL33E.js → chunk-3U3VEWK6.js} +277 -119
- package/dist/cli-bundle/chunks/chunk-3U3VEWK6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Z5F6XZXE.js → chunk-3Y4OESPP.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-Z5F6XZXE.js.map → chunk-3Y4OESPP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-HB4FAT3O.js → chunk-4LRVSBO6.js} +21 -15
- package/dist/cli-bundle/chunks/chunk-4LRVSBO6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-T3P7PMZP.js → chunk-4OFLJHX6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-T3P7PMZP.js.map → chunk-4OFLJHX6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-JPATY4SE.js → chunk-4QQ6PM7M.js} +45 -557
- package/dist/cli-bundle/chunks/chunk-4QQ6PM7M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6CDCWKSX.js → chunk-53BTLLAF.js} +68 -331
- package/dist/cli-bundle/chunks/chunk-53BTLLAF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4WB6S4YX.js → chunk-57C2RLW5.js} +277 -112
- package/dist/cli-bundle/chunks/chunk-57C2RLW5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PULUSQAV.js → chunk-5B3X4Y22.js} +52 -63
- package/dist/cli-bundle/chunks/{chunk-PULUSQAV.js.map → chunk-5B3X4Y22.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7LYO6S5A.js → chunk-5J2XPTAD.js} +10 -8
- package/dist/cli-bundle/chunks/{chunk-7LYO6S5A.js.map → chunk-5J2XPTAD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-QCDTQCMW.js → chunk-5JE6SMYS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MHRS5FUX.js → chunk-5JZ7APJU.js} +153 -108
- package/dist/cli-bundle/chunks/chunk-5JZ7APJU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KHVGM5CS.js → chunk-5VVUKE3U.js} +544 -2368
- package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RJH5VQHW.js → chunk-75U6M5ZD.js} +22 -16
- package/dist/cli-bundle/chunks/chunk-75U6M5ZD.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-7C2O74AE.js +23 -0
- package/dist/cli-bundle/chunks/chunk-7C2O74AE.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZFTKYWIF.js → chunk-7EQNAZX2.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-ZFTKYWIF.js.map → chunk-7EQNAZX2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Z4DGFQDH.js → chunk-7LQKVMPA.js} +14 -4
- package/dist/cli-bundle/chunks/chunk-7LQKVMPA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ERG65A2L.js → chunk-7MDXZAZS.js} +29 -7
- package/dist/cli-bundle/chunks/chunk-7MDXZAZS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OGLGI22K.js → chunk-7QH7DHUB.js} +74 -8
- package/dist/cli-bundle/chunks/chunk-7QH7DHUB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JBZ2NTKX.js → chunk-7WYXBPYQ.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-JBZ2NTKX.js.map → chunk-7WYXBPYQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js +150 -0
- package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-K5DT2YKM.js → chunk-ABRA3BHY.js} +18 -16
- package/dist/cli-bundle/chunks/{chunk-K5DT2YKM.js.map → chunk-ABRA3BHY.js.map} +2 -2
- package/dist/cli-bundle/chunks/chunk-B5KXLBSJ.js +47 -0
- package/dist/cli-bundle/chunks/chunk-B5KXLBSJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7CLLC75T.js → chunk-BFVHCAOO.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-7CLLC75T.js.map → chunk-BFVHCAOO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MDHWWBNZ.js → chunk-BVEUCSH2.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-MDHWWBNZ.js.map → chunk-BVEUCSH2.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js +160 -0
- package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-T4XBKJ3F.js → chunk-D3UCE7RW.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-T4XBKJ3F.js.map → chunk-D3UCE7RW.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js +275 -0
- package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js +634 -0
- package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AJHYQCBJ.js → chunk-DRBV5UC2.js} +8 -23
- package/dist/cli-bundle/chunks/chunk-DRBV5UC2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NZ7QIUP5.js → chunk-E2FUG6GD.js} +67 -351
- package/dist/cli-bundle/chunks/chunk-E2FUG6GD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4PFVUUYV.js → chunk-EEY54JMF.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-4PFVUUYV.js.map → chunk-EEY54JMF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-3W2HJKJX.js → chunk-EZFKWSC7.js} +94 -16
- package/dist/cli-bundle/chunks/{chunk-3W2HJKJX.js.map → chunk-EZFKWSC7.js.map} +4 -4
- package/dist/cli-bundle/chunks/{chunk-F6WNBITZ.js → chunk-FDBARR33.js} +40 -19
- package/dist/cli-bundle/chunks/{chunk-F6WNBITZ.js.map → chunk-FDBARR33.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WRYERRZX.js → chunk-FGQKEDE4.js} +36 -12
- package/dist/cli-bundle/chunks/chunk-FGQKEDE4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CXR3CMBQ.js → chunk-FJRKQREY.js} +10 -18
- package/dist/cli-bundle/chunks/chunk-FJRKQREY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QNNQAAZ5.js → chunk-FUM6UMY4.js} +10 -11
- package/dist/cli-bundle/chunks/{chunk-QNNQAAZ5.js.map → chunk-FUM6UMY4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-TQ6AX5SQ.js → chunk-GIWXVMZ3.js} +140 -334
- package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FZJM2TXF.js → chunk-HBYZDSK5.js} +19 -17
- package/dist/cli-bundle/chunks/{chunk-FZJM2TXF.js.map → chunk-HBYZDSK5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5IZUBZBR.js → chunk-HJE4JTKQ.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-5IZUBZBR.js.map → chunk-HJE4JTKQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YSDFIY7N.js → chunk-HK72NWAD.js} +89 -18
- package/dist/cli-bundle/chunks/chunk-HK72NWAD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LBE5QFMZ.js → chunk-IJ6CO3JV.js} +41 -20
- package/dist/cli-bundle/chunks/{chunk-LBE5QFMZ.js.map → chunk-IJ6CO3JV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YF746GTH.js → chunk-JFCVQXZX.js} +139 -326
- package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A3OQ7TFW.js → chunk-JLA7EVYV.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-A3OQ7TFW.js.map → chunk-JLA7EVYV.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-K32L7HZO.js +76 -0
- package/dist/cli-bundle/chunks/chunk-K32L7HZO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-32IUNTG4.js → chunk-K3AGVXSF.js} +37 -13
- package/dist/cli-bundle/chunks/chunk-K3AGVXSF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js +79 -0
- package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-KGHH652T.js +44 -0
- package/dist/cli-bundle/chunks/chunk-KGHH652T.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-KL22PY6L.js +915 -0
- package/dist/cli-bundle/chunks/chunk-KL22PY6L.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BI4R7HI2.js → chunk-KLG4ZULO.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-BI4R7HI2.js.map → chunk-KLG4ZULO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-XRYSCRZR.js → chunk-LEKT4K7I.js} +74 -8
- package/dist/cli-bundle/chunks/chunk-LEKT4K7I.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-X74F2GSM.js → chunk-MNZ7DRNC.js} +13 -10
- package/dist/cli-bundle/chunks/{contracts-X74F2GSM.js.map → chunk-MNZ7DRNC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4EXFFP7T.js → chunk-MTTXDAK4.js} +206 -147
- package/dist/cli-bundle/chunks/chunk-MTTXDAK4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KEZOIPCR.js → chunk-MZ7VNEVY.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-KEZOIPCR.js.map → chunk-MZ7VNEVY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5JIWFWOZ.js → chunk-N6DNM2FA.js} +2 -2
- package/dist/cli-bundle/chunks/{test-runs-QIR5MJPL.js → chunk-N7X4WP6L.js} +11 -8
- package/dist/cli-bundle/chunks/{test-runs-QIR5MJPL.js.map → chunk-N7X4WP6L.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-U3S2B7TA.js → chunk-NBFCNJ7Q.js} +206 -147
- package/dist/cli-bundle/chunks/chunk-NBFCNJ7Q.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GVJE5T7Q.js → chunk-NER3KUUS.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js +20 -0
- package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-OBA2WH65.js +918 -0
- package/dist/cli-bundle/chunks/chunk-OBA2WH65.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YPWUSH72.js → chunk-OESSOFJ4.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-YPWUSH72.js.map → chunk-OESSOFJ4.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js +238 -0
- package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FUFFPIYA.js → chunk-OWTIRHX4.js} +28 -6
- package/dist/cli-bundle/chunks/chunk-OWTIRHX4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Z7RPDF2Y.js → chunk-P3VRG72Q.js} +10 -8
- package/dist/cli-bundle/chunks/{chunk-Z7RPDF2Y.js.map → chunk-P3VRG72Q.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js +1423 -0
- package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-P5YORJRH.js +1977 -0
- package/dist/cli-bundle/chunks/chunk-P5YORJRH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-MEZZZBYX.js → chunk-PDXT6Q55.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EJ2OCBHF.js → chunk-PJ3A56YF.js} +46 -537
- package/dist/cli-bundle/chunks/chunk-PJ3A56YF.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-MG5VIGSK.js → chunk-PPAJG4GB.js} +13 -10
- package/dist/cli-bundle/chunks/{test-runs-MG5VIGSK.js.map → chunk-PPAJG4GB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-572FKBRL.js → chunk-PPE4YUQM.js} +1725 -1663
- package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ER4ME5U2.js → chunk-QHZO65XW.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-ER4ME5U2.js.map → chunk-QHZO65XW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-T6AXEBOP.js → chunk-R3ZBLGTC.js} +9 -10
- package/dist/cli-bundle/chunks/{chunk-T6AXEBOP.js.map → chunk-R3ZBLGTC.js.map} +2 -2
- package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js +624 -0
- package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YVKZ3ANP.js → chunk-RX3HQSYG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LOWVNZBZ.js → chunk-S4APD35C.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-FH2H3CBD.js → chunk-S5AYOUT5.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-FH2H3CBD.js.map → chunk-S5AYOUT5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SYE6WMV6.js → chunk-STPSZ2XY.js} +19 -744
- package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6NYJGMTY.js → chunk-T35XLYZF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P5L7Z2O6.js → chunk-T3ABIMGW.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-P5L7Z2O6.js.map → chunk-T3ABIMGW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SU2E4AWU.js → chunk-T3F4DF23.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-SU2E4AWU.js.map → chunk-T3F4DF23.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-T4MX77AK.js +272 -0
- package/dist/cli-bundle/chunks/chunk-T4MX77AK.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js +5354 -0
- package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ECU6MMTQ.js → chunk-TSPKZRRW.js} +50 -116
- package/dist/cli-bundle/chunks/chunk-TSPKZRRW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BE2SR6QL.js → chunk-TT42JUMF.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-UHKX7I75.js +165 -0
- package/dist/cli-bundle/chunks/chunk-UHKX7I75.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RAHINBVP.js → chunk-UI5BJ6DO.js} +1339 -1277
- package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-US3T3W5J.js +1932 -0
- package/dist/cli-bundle/chunks/chunk-US3T3W5J.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js +175 -0
- package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-B4O5S7I3.js → chunk-VUHVWI4C.js} +13 -3
- package/dist/cli-bundle/chunks/chunk-VUHVWI4C.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-L6ODXNUM.js → chunk-VZIYHZDX.js} +11 -8
- package/dist/cli-bundle/chunks/{contracts-L6ODXNUM.js.map → chunk-VZIYHZDX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-U5TR4N7J.js → chunk-WISPVC2E.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-U5TR4N7J.js.map → chunk-WISPVC2E.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js +5434 -0
- package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HQAF23Q2.js → chunk-XQCG2JGW.js} +17 -749
- package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-Y76TWC45.js +550 -0
- package/dist/cli-bundle/chunks/chunk-Y76TWC45.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-L4SLHV6G.js → chunk-YD5FML7K.js} +464 -2239
- package/dist/cli-bundle/chunks/chunk-YD5FML7K.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YSGTMDWC.js → chunk-YFIE7YK6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-YSGTMDWC.js.map → chunk-YFIE7YK6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WYOIIFSE.js → chunk-YMABYTNG.js} +49 -115
- package/dist/cli-bundle/chunks/chunk-YMABYTNG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SU3TB4NS.js → chunk-YOF5VPKM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WJA3PXW7.js → chunk-YPPVU5GX.js} +11 -9
- package/dist/cli-bundle/chunks/{chunk-WJA3PXW7.js.map → chunk-YPPVU5GX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GUYNUXQT.js → chunk-YQMMMONE.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-GUYNUXQT.js.map → chunk-YQMMMONE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AIKU3IIL.js → chunk-YSAH5FY5.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-AIKU3IIL.js.map → chunk-YSAH5FY5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KS6ATO47.js → chunk-YZIR4R3U.js} +153 -108
- package/dist/cli-bundle/chunks/chunk-YZIR4R3U.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LCWQP6NM.js → chunk-Z2CRRZYF.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-LCWQP6NM.js.map → chunk-Z2CRRZYF.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js +533 -0
- package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UMNQZS4H.js → chunk-ZCJAA3JK.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-UMNQZS4H.js.map → chunk-ZCJAA3JK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EQURFOMH.js → chunk-ZD34OFFQ.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-EQURFOMH.js.map → chunk-ZD34OFFQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-67LARBDL.js → chunk-ZJB3UV5U.js} +54 -58
- package/dist/cli-bundle/chunks/chunk-ZJB3UV5U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5E7N4T2Z.js → chunk-ZMD35NYG.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js +241 -0
- package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{claim-5GU7OE67.js → claim-4DROPSIS.js} +30 -13
- package/dist/cli-bundle/chunks/claim-4DROPSIS.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-2BGBGSVI.js → claim-VX54TV5U.js} +29 -12
- package/dist/cli-bundle/chunks/claim-VX54TV5U.js.map +7 -0
- package/dist/cli-bundle/chunks/{close-AFVKPR57.js → close-3YRR3XY6.js} +9 -7
- package/dist/cli-bundle/chunks/close-OB2Y4QP5.js +16 -0
- package/dist/cli-bundle/chunks/{close-many-JKUJMHLG.js → close-many-AP4MWU36.js} +21 -18
- package/dist/cli-bundle/chunks/{close-many-JKUJMHLG.js.map → close-many-AP4MWU36.js.map} +1 -1
- package/dist/cli-bundle/chunks/{close-many-7KLOSYLP.js → close-many-OMZIGZB4.js} +19 -16
- package/dist/cli-bundle/chunks/{close-many-7KLOSYLP.js.map → close-many-OMZIGZB4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-DNWHEBOS.js → comments-MIW5MZOX.js} +12 -9
- package/dist/cli-bundle/chunks/{comments-DNWHEBOS.js.map → comments-MIW5MZOX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-RW23R3VE.js → comments-SAG5LSKL.js} +14 -11
- package/dist/cli-bundle/chunks/{comments-RW23R3VE.js.map → comments-SAG5LSKL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-AUM5WBYA.js → config-DJJKZB5R.js} +20 -17
- package/dist/cli-bundle/chunks/{config-AUM5WBYA.js.map → config-DJJKZB5R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-OZWSA2NP.js → config-V57QD47V.js} +22 -19
- package/dist/cli-bundle/chunks/{config-OZWSA2NP.js.map → config-V57QD47V.js.map} +1 -1
- package/dist/cli-bundle/chunks/{context-PKCEHQY3.js → context-4OQGIPSO.js} +15 -12
- package/dist/cli-bundle/chunks/{context-OYXRGY7S.js → context-WLA6IAWE.js} +15 -12
- package/dist/cli-bundle/chunks/contracts-HXJLKCRI.js +12 -0
- package/dist/cli-bundle/chunks/contracts-OJEXMKVW.js +16 -0
- package/dist/cli-bundle/chunks/{copy-I4NCLBR4.js → copy-LEE6P6EM.js} +17 -14
- package/dist/cli-bundle/chunks/{copy-I4NCLBR4.js.map → copy-LEE6P6EM.js.map} +2 -2
- package/dist/cli-bundle/chunks/{copy-6XOR3HKN.js → copy-OTJOWFL6.js} +18 -15
- package/dist/cli-bundle/chunks/{copy-6XOR3HKN.js.map → copy-OTJOWFL6.js.map} +1 -1
- package/dist/cli-bundle/chunks/create-WKOZKPQR.js +30 -0
- package/dist/cli-bundle/chunks/{create-PM45M6PE.js → create-XWWQFQ6S.js} +14 -12
- package/dist/cli-bundle/chunks/{delete-7YXHYG67.js → delete-62JQTYT4.js} +10 -7
- package/dist/cli-bundle/chunks/{delete-7YXHYG67.js.map → delete-62JQTYT4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{delete-LPISP43T.js → delete-HQKGRNRZ.js} +12 -9
- package/dist/cli-bundle/chunks/{delete-LPISP43T.js.map → delete-HQKGRNRZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-WATKQDE3.js → deps-55FTG6Z5.js} +12 -9
- package/dist/cli-bundle/chunks/{deps-WATKQDE3.js.map → deps-55FTG6Z5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-N2T26FME.js → deps-L2FPIAD3.js} +10 -7
- package/dist/cli-bundle/chunks/{deps-N2T26FME.js.map → deps-L2FPIAD3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-6LQ3GLM7.js → docs-6CRCSVKK.js} +11 -9
- package/dist/cli-bundle/chunks/{docs-6LQ3GLM7.js.map → docs-6CRCSVKK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-Z3X6JZLT.js → docs-S6UTOTO5.js} +9 -7
- package/dist/cli-bundle/chunks/{docs-Z3X6JZLT.js.map → docs-S6UTOTO5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-6DCLG52D.js → eval-N6UHFWVO.js} +15 -11
- package/dist/cli-bundle/chunks/{eval-6DCLG52D.js.map → eval-N6UHFWVO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-Y3ZCUTHK.js → eval-PHOTWYHI.js} +17 -13
- package/dist/cli-bundle/chunks/{eval-Y3ZCUTHK.js.map → eval-PHOTWYHI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{extension-BNINIMT7.js → extension-NBAH62ML.js} +17 -11
- package/dist/cli-bundle/chunks/{extension-QWE4YYK5.js → extension-ZF6ZZPOU.js} +17 -11
- package/dist/cli-bundle/chunks/{files-FUYPSOFJ.js → files-6P57MRKL.js} +14 -11
- package/dist/cli-bundle/chunks/files-6P57MRKL.js.map +7 -0
- package/dist/cli-bundle/chunks/{files-6SGKHS6O.js → files-JPU3FNJ7.js} +15 -12
- package/dist/cli-bundle/chunks/files-JPU3FNJ7.js.map +1 -0
- package/dist/cli-bundle/chunks/{focus-2Q3K76G2.js → focus-LFZ6IDBR.js} +15 -11
- package/dist/cli-bundle/chunks/{focus-2Q3K76G2.js.map → focus-LFZ6IDBR.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-ATLBWXXD.js → focus-WNMYCVYA.js} +13 -9
- package/dist/cli-bundle/chunks/{focus-ATLBWXXD.js.map → focus-WNMYCVYA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-RUYEMNRF.js → gc-AETFKZ44.js} +10 -7
- package/dist/cli-bundle/chunks/{gc-RUYEMNRF.js.map → gc-AETFKZ44.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-TDWSDR66.js → gc-RLBP4QVN.js} +12 -9
- package/dist/cli-bundle/chunks/{gc-TDWSDR66.js.map → gc-RLBP4QVN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-LY6M2JIM.js → get-NH2MPBCI.js} +18 -15
- package/dist/cli-bundle/chunks/{get-LY6M2JIM.js.map → get-NH2MPBCI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-2WGLX74N.js → get-P4ZQXCPZ.js} +16 -13
- package/dist/cli-bundle/chunks/{get-2WGLX74N.js.map → get-P4ZQXCPZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-4RKHYS3T.js → health-3GVPMQBL.js} +36 -29
- package/dist/cli-bundle/chunks/{health-4RKHYS3T.js.map → health-3GVPMQBL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-TMFVNYRA.js → health-DNTM72GJ.js} +34 -27
- package/dist/cli-bundle/chunks/{health-TMFVNYRA.js.map → health-DNTM72GJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-RYKLC72X.js +20 -0
- package/dist/cli-bundle/chunks/{history-SGRRS72R.js → history-SGPYRAFT.js} +10 -8
- package/dist/cli-bundle/chunks/{history-compact-LOED43R3.js → history-compact-3F6VELO7.js} +26 -30
- package/dist/cli-bundle/chunks/history-compact-3F6VELO7.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-compact-V5DNAQHH.js → history-compact-656Y2TN4.js} +27 -31
- package/dist/cli-bundle/chunks/history-compact-656Y2TN4.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-4H3FCKF3.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-IRL7WJ3E.js → history-redact-54ICFKXM.js} +11 -9
- package/dist/cli-bundle/chunks/{history-repair-PGYQJMGD.js → history-repair-4N6SDVHK.js} +25 -30
- package/dist/cli-bundle/chunks/history-repair-4N6SDVHK.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-repair-4WVBVHFR.js → history-repair-EVTO6LIH.js} +26 -31
- package/dist/cli-bundle/chunks/history-repair-EVTO6LIH.js.map +1 -0
- package/dist/cli-bundle/chunks/init-RPIPQUNV.js +32 -0
- package/dist/cli-bundle/chunks/init-SKQAESQS.js +28 -0
- package/dist/cli-bundle/chunks/{learnings-4FJY7WIW.js → learnings-2HTPZNGZ.js} +10 -8
- package/dist/cli-bundle/chunks/{learnings-4FJY7WIW.js.map → learnings-2HTPZNGZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{learnings-4BHWFFUV.js → learnings-YBIHY3D6.js} +12 -10
- package/dist/cli-bundle/chunks/{learnings-4BHWFFUV.js.map → learnings-YBIHY3D6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{list-472TIOVK.js → list-64LHZ3HM.js} +10 -8
- package/dist/cli-bundle/chunks/{list-D7BF5CL2.js → list-7LXBTEKI.js} +10 -8
- package/dist/cli-bundle/chunks/{next-SFQZVX2B.js → next-7ODPAQ4U.js} +22 -18
- package/dist/cli-bundle/chunks/{next-SFQZVX2B.js.map → next-7ODPAQ4U.js.map} +1 -1
- package/dist/cli-bundle/chunks/{next-D5STGWI2.js → next-ODJUM4ZM.js} +24 -20
- package/dist/cli-bundle/chunks/{next-D5STGWI2.js.map → next-ODJUM4ZM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-6KNOSLIT.js → notes-72YXN5JX.js} +10 -8
- package/dist/cli-bundle/chunks/{notes-6KNOSLIT.js.map → notes-72YXN5JX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-W4UEICGF.js → notes-NJ7IQJX4.js} +12 -10
- package/dist/cli-bundle/chunks/{notes-W4UEICGF.js.map → notes-NJ7IQJX4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-MJQW5XK3.js → plan-R4NDQ27E.js} +18 -15
- package/dist/cli-bundle/chunks/{plan-MJQW5XK3.js.map → plan-R4NDQ27E.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-JO6V7BXO.js → plan-XWY5T67S.js} +20 -17
- package/dist/cli-bundle/chunks/{plan-JO6V7BXO.js.map → plan-XWY5T67S.js.map} +1 -1
- package/dist/cli-bundle/chunks/profile-XQWEQKS3.js +397 -0
- package/dist/cli-bundle/chunks/profile-XQWEQKS3.js.map +1 -0
- package/dist/cli-bundle/chunks/profile-YRDHLMRO.js +400 -0
- package/dist/cli-bundle/chunks/profile-YRDHLMRO.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-ELBHCCFI.js → register-list-query-5H66WFYF.js} +24 -21
- package/dist/cli-bundle/chunks/register-list-query-5H66WFYF.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-GAPQ6DM3.js → register-list-query-FB3FNDLZ.js} +25 -22
- package/dist/cli-bundle/chunks/{register-list-query-ELBHCCFI.js.map → register-list-query-FB3FNDLZ.js.map} +1 -7
- package/dist/cli-bundle/chunks/{register-mutation-SJWMVIJ2.js → register-mutation-UJO23C7R.js} +42 -39
- package/dist/cli-bundle/chunks/{register-mutation-SJWMVIJ2.js.map → register-mutation-UJO23C7R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-ROFE2YPC.js → register-mutation-Z2ETYHKS.js} +40 -37
- package/dist/cli-bundle/chunks/{register-mutation-ROFE2YPC.js.map → register-mutation-Z2ETYHKS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-MEKU3AKC.js → register-operations-A3XAM5J7.js} +39 -36
- package/dist/cli-bundle/chunks/{register-operations-MEKU3AKC.js.map → register-operations-A3XAM5J7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-IADFVH53.js → register-operations-SG7HBSUP.js} +37 -34
- package/dist/cli-bundle/chunks/{register-operations-IADFVH53.js.map → register-operations-SG7HBSUP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-AJWUSSQX.js → register-setup-I45OGJUV.js} +25 -19
- package/dist/cli-bundle/chunks/{register-setup-AJWUSSQX.js.map → register-setup-I45OGJUV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-3QJY43CY.js → register-setup-K6U3NVY5.js} +23 -17
- package/dist/cli-bundle/chunks/{register-setup-3QJY43CY.js.map → register-setup-K6U3NVY5.js.map} +1 -1
- package/dist/cli-bundle/chunks/restore-PXOFL6AM.js +19 -0
- package/dist/cli-bundle/chunks/{restore-44IHMMZZ.js → restore-YJ2ET6AT.js} +11 -9
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-TSBK4AY5.js → scheduling-shortcuts-SSC4MYWQ.js} +14 -12
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-TSBK4AY5.js.map → scheduling-shortcuts-SSC4MYWQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OLHNLAZY.js → scheduling-shortcuts-ULRG7MNP.js} +16 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OLHNLAZY.js.map → scheduling-shortcuts-ULRG7MNP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{schema-VBCELP5G.js → schema-2PUXCZ25.js} +10 -7
- package/dist/cli-bundle/chunks/{schema-IB2NZZWD.js → schema-Y6DXXK2F.js} +10 -7
- package/dist/cli-bundle/chunks/{search-7UBETML4.js → search-3S72CTD6.js} +13 -10
- package/dist/cli-bundle/chunks/{search-R227JOL6.js → search-WNUNBQXO.js} +13 -10
- package/dist/cli-bundle/chunks/{stats-FAG7COEH.js → stats-IJYTRQGV.js} +13 -10
- package/dist/cli-bundle/chunks/{stats-FAG7COEH.js.map → stats-IJYTRQGV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{stats-MCK7PLYS.js → stats-L2D5Y2O5.js} +15 -12
- package/dist/cli-bundle/chunks/{stats-MCK7PLYS.js.map → stats-L2D5Y2O5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{telemetry-DRPDZMAO.js → telemetry-L2CVOKVN.js} +11 -8
- package/dist/cli-bundle/chunks/{telemetry-DRPDZMAO.js.map → telemetry-L2CVOKVN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{telemetry-GVVUQSJQ.js → telemetry-QBYWQA76.js} +13 -10
- package/dist/cli-bundle/chunks/{telemetry-GVVUQSJQ.js.map → telemetry-QBYWQA76.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-QY44WAMR.js → test-DQ2QFJ7W.js} +21 -15
- package/dist/cli-bundle/chunks/test-W7QBLVJS.js +41 -0
- package/dist/cli-bundle/chunks/{test-all-USPJHXFR.js → test-all-636NTRTT.js} +26 -19
- package/dist/cli-bundle/chunks/{test-all-USPJHXFR.js.map → test-all-636NTRTT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-QD6QAEG7.js → test-all-DWYK3RG6.js} +24 -17
- package/dist/cli-bundle/chunks/{test-all-QD6QAEG7.js.map → test-all-DWYK3RG6.js.map} +1 -1
- package/dist/cli-bundle/chunks/test-runs-245OINZR.js +28 -0
- package/dist/cli-bundle/chunks/test-runs-245OINZR.js.map +1 -0
- package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js +24 -0
- package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js.map +7 -0
- package/dist/cli-bundle/chunks/update-SFLZPJXX.js +30 -0
- package/dist/cli-bundle/chunks/update-SFLZPJXX.js.map +1 -0
- package/dist/cli-bundle/chunks/update-SJZ6S77U.js +26 -0
- package/dist/cli-bundle/chunks/update-SJZ6S77U.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-many-RATAARHU.js → update-many-DC7X3EWM.js} +32 -29
- package/dist/cli-bundle/chunks/{update-many-RATAARHU.js.map → update-many-DC7X3EWM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-BEMTDA2X.js → update-many-SLLAMHT7.js} +34 -31
- package/dist/cli-bundle/chunks/{update-many-BEMTDA2X.js.map → update-many-SLLAMHT7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-VU46BLJZ.js → upgrade-HFFXLZJA.js} +19 -12
- package/dist/cli-bundle/chunks/{upgrade-VU46BLJZ.js.map → upgrade-HFFXLZJA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-NWMR3VQL.js → upgrade-UYQKM7RF.js} +21 -14
- package/dist/cli-bundle/chunks/{upgrade-NWMR3VQL.js.map → upgrade-UYQKM7RF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-NRY6MFXN.js → validate-PA4FDTOV.js} +35 -28
- package/dist/cli-bundle/chunks/validate-PA4FDTOV.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-GAJ6FUSI.js → validate-Z7L75YEJ.js} +35 -28
- package/dist/cli-bundle/chunks/validate-Z7L75YEJ.js.map +1 -0
- package/dist/cli-bundle/main.js +173 -57
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +247 -0
- package/dist/cli-bundle/sdk-runtime.js.map +7 -0
- package/dist/cli-bundle/sdk-testing.js +101 -0
- package/dist/cli-bundle/sdk-testing.js.map +7 -0
- package/dist/cli-bundle/sdk.js +787 -0
- package/dist/cli-bundle/sdk.js.map +7 -0
- package/dist/core/config/nested-settings.d.ts +4 -3
- package/dist/core/config/nested-settings.js +17 -6
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/extensions/activation-summary.d.ts +6 -0
- package/dist/core/extensions/activation-summary.js +10 -4
- package/dist/core/extensions/activation-summary.js.map +1 -1
- package/dist/core/extensions/capability-usage.d.ts +6 -0
- package/dist/core/extensions/capability-usage.js +10 -4
- package/dist/core/extensions/capability-usage.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +6 -2
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +3 -0
- package/dist/core/extensions/loader.js +11 -19
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/history/history-rewrite.d.ts +10 -0
- package/dist/core/history/history-rewrite.js +28 -4
- package/dist/core/history/history-rewrite.js.map +1 -1
- package/dist/core/item/parent-reference-policy.d.ts +9 -1
- package/dist/core/item/parent-reference-policy.js +28 -4
- package/dist/core/item/parent-reference-policy.js.map +1 -1
- package/dist/core/item/type-registry.d.ts +1 -0
- package/dist/core/item/type-registry.js +153 -177
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/lock/lock.d.ts +28 -1
- package/dist/core/lock/lock.js +254 -20
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/search/background-refresh.js +7 -19
- package/dist/core/search/background-refresh.js.map +1 -1
- package/dist/core/search/http-client.d.ts +0 -1
- package/dist/core/search/http-client.js +3 -3
- package/dist/core/search/http-client.js.map +1 -1
- package/dist/core/shared/constants.js +3 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +1 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/primitives.d.ts +12 -0
- package/dist/core/shared/primitives.js +29 -2
- package/dist/core/shared/primitives.js.map +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-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +6 -3
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +3 -3
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/validate/fix-planning.d.ts +0 -2
- package/dist/core/validate/fix-planning.js +3 -3
- package/dist/core/validate/fix-planning.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/flag-contracts.js +5 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +55 -94
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/errors.d.ts +21 -2
- package/dist/sdk/errors.js +8 -2
- package/dist/sdk/errors.js.map +1 -1
- package/dist/sdk/package-import-adapters.d.ts +90 -2
- package/dist/sdk/package-import-adapters.js +275 -3
- package/dist/sdk/package-import-adapters.js.map +1 -1
- package/dist/sdk/runtime.d.ts +1 -1
- package/dist/sdk/runtime.js +3 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/testing.js +41 -19
- package/dist/sdk/testing.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/ARCHITECTURE.md +27 -0
- package/docs/CONFIGURATION.md +3 -0
- package/docs/README.md +1 -0
- package/docs/SDK_PRIMITIVE_INVENTORY.md +55 -0
- package/docs/TESTING.md +5 -1
- package/docs/examples/ci/github-actions-pm-extension-gate.yml +5 -5
- package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +1 -1
- package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +1 -1
- package/package.json +14 -26
- package/packages/pm-beads/extensions/beads/package.json +3 -0
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +50 -41
- package/packages/pm-beads/extensions/beads/runtime.ts +106 -223
- package/packages/pm-calendar/extensions/calendar/package.json +3 -0
- package/packages/pm-calendar/extensions/calendar/runtime.ts +21 -18
- package/packages/pm-command-kit/extensions/command-kit/package.json +3 -0
- package/packages/pm-governance-audit/extensions/governance-audit/package.json +3 -0
- package/packages/pm-guide-shell/extensions/guide-shell/package.json +3 -0
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +9 -11
- package/packages/pm-kanban/extensions/kanban/package.json +3 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/package.json +3 -0
- package/packages/pm-search-advanced/extensions/search-advanced/package.json +3 -0
- package/packages/pm-templates/extensions/templates/package.json +3 -0
- package/packages/pm-todos/extensions/todos/package.json +3 -0
- package/packages/pm-todos/extensions/todos/runtime-loader.ts +62 -72
- package/packages/pm-todos/extensions/todos/runtime.ts +61 -257
- package/plugins/pm-claude/scripts/pm-mcp-server.mjs +73 -31
- package/plugins/pm-codex/scripts/pm-mcp-server.mjs +80 -34
- package/scripts/bundle-cli.mjs +12 -2
- package/scripts/install.ps1 +7 -7
- package/dist/cli-bundle/chunks/activity-BIML7K2D.js +0 -16
- package/dist/cli-bundle/chunks/chunk-32IUNTG4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4EXFFP7T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4WB6S4YX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-572FKBRL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-67LARBDL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6CDCWKSX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6KRFL33E.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AJHYQCBJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-B4O5S7I3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CXR3CMBQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ECU6MMTQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EJ2OCBHF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ERG65A2L.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FUFFPIYA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HB4FAT3O.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HQAF23Q2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JPATY4SE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KHVGM5CS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KS6ATO47.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-L4SLHV6G.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MHRS5FUX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NZ7QIUP5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OGLGI22K.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RAHINBVP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RJH5VQHW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SYE6WMV6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TQ6AX5SQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-U3S2B7TA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WRYERRZX.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-WYOIIFSE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XRYSCRZR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YF746GTH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YSDFIY7N.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-Z4DGFQDH.js.map +0 -1
- package/dist/cli-bundle/chunks/claim-2BGBGSVI.js.map +0 -7
- package/dist/cli-bundle/chunks/claim-5GU7OE67.js.map +0 -1
- package/dist/cli-bundle/chunks/close-6YODBUIV.js +0 -14
- package/dist/cli-bundle/chunks/create-Z7YCH3BE.js +0 -28
- package/dist/cli-bundle/chunks/files-6SGKHS6O.js.map +0 -1
- package/dist/cli-bundle/chunks/files-FUYPSOFJ.js.map +0 -7
- package/dist/cli-bundle/chunks/history-CGNQJXFE.js +0 -18
- package/dist/cli-bundle/chunks/history-compact-LOED43R3.js.map +0 -7
- package/dist/cli-bundle/chunks/history-compact-V5DNAQHH.js.map +0 -1
- package/dist/cli-bundle/chunks/history-redact-N3JK7VBW.js +0 -19
- package/dist/cli-bundle/chunks/history-repair-4WVBVHFR.js.map +0 -1
- package/dist/cli-bundle/chunks/history-repair-PGYQJMGD.js.map +0 -7
- package/dist/cli-bundle/chunks/init-4GESW7RM.js +0 -26
- package/dist/cli-bundle/chunks/init-XIDPABA4.js +0 -22
- package/dist/cli-bundle/chunks/profile-3TOTMUR4.js +0 -1243
- package/dist/cli-bundle/chunks/profile-3TOTMUR4.js.map +0 -7
- package/dist/cli-bundle/chunks/profile-WIQY2KCV.js +0 -1205
- package/dist/cli-bundle/chunks/profile-WIQY2KCV.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-EXHU34EU.js +0 -17
- package/dist/cli-bundle/chunks/test-SY76DZTO.js +0 -35
- package/dist/cli-bundle/chunks/update-A7EICML6.js +0 -24
- package/dist/cli-bundle/chunks/update-IKJZWLQC.js +0 -28
- package/dist/cli-bundle/chunks/validate-GAJ6FUSI.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-NRY6MFXN.js.map +0 -7
- /package/dist/cli-bundle/chunks/{activity-BIML7K2D.js.map → activity-4XQIDNM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-5YWLSPGE.js.map → activity-YKAKZTZ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QCDTQCMW.js.map → chunk-5JE6SMYS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5JIWFWOZ.js.map → chunk-N6DNM2FA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GVJE5T7Q.js.map → chunk-NER3KUUS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MEZZZBYX.js.map → chunk-PDXT6Q55.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YVKZ3ANP.js.map → chunk-RX3HQSYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LOWVNZBZ.js.map → chunk-S4APD35C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6NYJGMTY.js.map → chunk-T35XLYZF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BE2SR6QL.js.map → chunk-TT42JUMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SU3TB4NS.js.map → chunk-YOF5VPKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5E7N4T2Z.js.map → chunk-ZMD35NYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-AFVKPR57.js.map → close-3YRR3XY6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-6YODBUIV.js.map → close-OB2Y4QP5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-PKCEHQY3.js.map → context-4OQGIPSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-OYXRGY7S.js.map → context-WLA6IAWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-Z7YCH3BE.js.map → contracts-HXJLKCRI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-PM45M6PE.js.map → contracts-OJEXMKVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-BNINIMT7.js.map → create-WKOZKPQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-QWE4YYK5.js.map → create-XWWQFQ6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-CGNQJXFE.js.map → extension-NBAH62ML.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-SGRRS72R.js.map → extension-ZF6ZZPOU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-N3JK7VBW.js.map → history-RYKLC72X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-IRL7WJ3E.js.map → history-SGPYRAFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-XIDPABA4.js.map → history-redact-4H3FCKF3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-4GESW7RM.js.map → history-redact-54ICFKXM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-D7BF5CL2.js.map → init-RPIPQUNV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-472TIOVK.js.map → init-SKQAESQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-EXHU34EU.js.map → list-64LHZ3HM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-44IHMMZZ.js.map → list-7LXBTEKI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-VBCELP5G.js.map → restore-PXOFL6AM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-IB2NZZWD.js.map → restore-YJ2ET6AT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-R227JOL6.js.map → schema-2PUXCZ25.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-7UBETML4.js.map → schema-Y6DXXK2F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-QY44WAMR.js.map → search-3S72CTD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-SY76DZTO.js.map → search-WNUNBQXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-IKJZWLQC.js.map → test-DQ2QFJ7W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-A7EICML6.js.map → test-W7QBLVJS.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]="b82b3892-108d-51df-a033-47913481d9b1")}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";
|
|
@@ -153,6 +153,16 @@ function resolvePmCliVersion(metaUrl, fallbackRelativeSegments = []) {
|
|
|
153
153
|
return void 0;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
+
function resolveConfiguredPmPackageRoot(env = process.env, envName = "PM_CLI_PACKAGE_ROOT", metaUrl, fallbackRelativeSegments = []) {
|
|
157
|
+
const envRoot = env[envName];
|
|
158
|
+
if (typeof envRoot === "string" && envRoot.trim().length > 0) {
|
|
159
|
+
return path3.resolve(envRoot.trim());
|
|
160
|
+
}
|
|
161
|
+
if (metaUrl) {
|
|
162
|
+
return resolvePmPackageRootFromModule(metaUrl, fallbackRelativeSegments);
|
|
163
|
+
}
|
|
164
|
+
return process.cwd();
|
|
165
|
+
}
|
|
156
166
|
|
|
157
167
|
// dist/core/extensions/extension-types.js
|
|
158
168
|
var KNOWN_EXTENSION_CAPABILITIES = [
|
|
@@ -431,7 +441,8 @@ var SETTINGS_DEFAULTS = {
|
|
|
431
441
|
author_default: "",
|
|
432
442
|
item_format: "toon",
|
|
433
443
|
locks: {
|
|
434
|
-
ttl_seconds: 1800
|
|
444
|
+
ttl_seconds: 1800,
|
|
445
|
+
wait_ms: 3e3
|
|
435
446
|
},
|
|
436
447
|
checkpoints: {
|
|
437
448
|
retention_days: 14
|
|
@@ -963,116 +974,85 @@ var UPDATE_COMMAND_OPTION_ALIASES = {
|
|
|
963
974
|
"allow-audit-update": "allowAuditUpdate",
|
|
964
975
|
allow_audit_update: "allowAuditUpdate"
|
|
965
976
|
};
|
|
966
|
-
var
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
sprint: "--sprint",
|
|
1046
|
-
release: "--release",
|
|
1047
|
-
blockedBy: "--blocked-by",
|
|
1048
|
-
blockedReason: "--blocked-reason",
|
|
1049
|
-
unblockNote: "--unblock-note",
|
|
1050
|
-
reporter: "--reporter",
|
|
1051
|
-
severity: "--severity",
|
|
1052
|
-
environment: "--environment",
|
|
1053
|
-
reproSteps: "--repro-steps",
|
|
1054
|
-
resolution: "--resolution",
|
|
1055
|
-
expectedResult: "--expected-result",
|
|
1056
|
-
actualResult: "--actual-result",
|
|
1057
|
-
affectedVersion: "--affected-version",
|
|
1058
|
-
fixedVersion: "--fixed-version",
|
|
1059
|
-
component: "--component",
|
|
1060
|
-
regression: "--regression",
|
|
1061
|
-
customerImpact: "--customer-impact",
|
|
1062
|
-
comment: "--comment",
|
|
1063
|
-
note: "--note",
|
|
1064
|
-
learning: "--learning",
|
|
1065
|
-
file: "--file",
|
|
1066
|
-
test: "--test",
|
|
1067
|
-
doc: "--doc",
|
|
1068
|
-
reminder: "--reminder",
|
|
1069
|
-
event: "--event",
|
|
1070
|
-
typeOption: "--type-option",
|
|
1071
|
-
allowAuditUpdate: "--allow-audit-update",
|
|
1072
|
-
author: "--author",
|
|
1073
|
-
message: "--message",
|
|
1074
|
-
force: "--force"
|
|
1075
|
-
};
|
|
977
|
+
var COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [
|
|
978
|
+
["deadline", "--deadline"],
|
|
979
|
+
["estimatedMinutes", "--estimate/--estimated-minutes"],
|
|
980
|
+
["acceptanceCriteria", "--acceptance-criteria/--ac"],
|
|
981
|
+
["definitionOfReady", "--definition-of-ready"],
|
|
982
|
+
["order", "--order/--rank"],
|
|
983
|
+
["goal", "--goal"],
|
|
984
|
+
["objective", "--objective"],
|
|
985
|
+
["value", "--value"],
|
|
986
|
+
["impact", "--impact"],
|
|
987
|
+
["outcome", "--outcome"],
|
|
988
|
+
["whyNow", "--why-now"],
|
|
989
|
+
["assignee", "--assignee"],
|
|
990
|
+
["parent", "--parent"],
|
|
991
|
+
["reviewer", "--reviewer"],
|
|
992
|
+
["risk", "--risk"],
|
|
993
|
+
["confidence", "--confidence"],
|
|
994
|
+
["sprint", "--sprint"],
|
|
995
|
+
["release", "--release"],
|
|
996
|
+
["blockedBy", "--blocked-by"],
|
|
997
|
+
["blockedReason", "--blocked-reason"],
|
|
998
|
+
["unblockNote", "--unblock-note"],
|
|
999
|
+
["reporter", "--reporter"],
|
|
1000
|
+
["severity", "--severity"],
|
|
1001
|
+
["environment", "--environment"],
|
|
1002
|
+
["reproSteps", "--repro-steps"],
|
|
1003
|
+
["resolution", "--resolution"],
|
|
1004
|
+
["expectedResult", "--expected-result"],
|
|
1005
|
+
["actualResult", "--actual-result"],
|
|
1006
|
+
["affectedVersion", "--affected-version"],
|
|
1007
|
+
["fixedVersion", "--fixed-version"],
|
|
1008
|
+
["component", "--component"],
|
|
1009
|
+
["regression", "--regression"],
|
|
1010
|
+
["customerImpact", "--customer-impact"]
|
|
1011
|
+
];
|
|
1012
|
+
var LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES = [
|
|
1013
|
+
["comment", "--comment"],
|
|
1014
|
+
["note", "--note"],
|
|
1015
|
+
["learning", "--learning"],
|
|
1016
|
+
["file", "--file"],
|
|
1017
|
+
["test", "--test"],
|
|
1018
|
+
["doc", "--doc"],
|
|
1019
|
+
["reminder", "--reminder"],
|
|
1020
|
+
["event", "--event"],
|
|
1021
|
+
["typeOption", "--type-option"]
|
|
1022
|
+
];
|
|
1023
|
+
function commandOptionLabelMap(entries) {
|
|
1024
|
+
return Object.fromEntries(entries);
|
|
1025
|
+
}
|
|
1026
|
+
var CREATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([
|
|
1027
|
+
["title", "--title"],
|
|
1028
|
+
["description", "--description"],
|
|
1029
|
+
["type", "--type"],
|
|
1030
|
+
["status", "--status"],
|
|
1031
|
+
["priority", "--priority"],
|
|
1032
|
+
["tags", "--tags"],
|
|
1033
|
+
["body", "--body"],
|
|
1034
|
+
...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
|
|
1035
|
+
["author", "--author"],
|
|
1036
|
+
["message", "--message"],
|
|
1037
|
+
["dep", "--dep"],
|
|
1038
|
+
...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES
|
|
1039
|
+
]);
|
|
1040
|
+
var UPDATE_COMMAND_OPTION_FLAG_LABELS = commandOptionLabelMap([
|
|
1041
|
+
["title", "--title"],
|
|
1042
|
+
["description", "--description"],
|
|
1043
|
+
["body", "--body"],
|
|
1044
|
+
["status", "--status"],
|
|
1045
|
+
["closeReason", "--close-reason"],
|
|
1046
|
+
["priority", "--priority"],
|
|
1047
|
+
["type", "--type"],
|
|
1048
|
+
["tags", "--tags"],
|
|
1049
|
+
...COMMON_MUTATION_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
|
|
1050
|
+
...LINKED_RESOURCE_COMMAND_OPTION_FLAG_LABEL_ENTRIES,
|
|
1051
|
+
["allowAuditUpdate", "--allow-audit-update"],
|
|
1052
|
+
["author", "--author"],
|
|
1053
|
+
["message", "--message"],
|
|
1054
|
+
["force", "--force"]
|
|
1055
|
+
]);
|
|
1076
1056
|
function normalizeCommandOptionToken(value) {
|
|
1077
1057
|
return value.trim().replace(/^--+/, "").toLowerCase();
|
|
1078
1058
|
}
|
|
@@ -1217,6 +1197,27 @@ function resolveDefinitionOptions(normalizedDefinition, existing) {
|
|
|
1217
1197
|
function resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing) {
|
|
1218
1198
|
return normalizedDefinition.command_option_policies ? normalizedDefinition.command_option_policies : existing?.command_option_policies ? [...existing.command_option_policies] : [];
|
|
1219
1199
|
}
|
|
1200
|
+
function buildResolvedTypeDefinition(normalizedDefinition, existing) {
|
|
1201
|
+
const keepName = existing?.name ?? normalizedDefinition.name;
|
|
1202
|
+
const description = normalizedDefinition.description ?? existing?.description;
|
|
1203
|
+
const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
|
|
1204
|
+
const resolvedDefinition = {
|
|
1205
|
+
name: keepName,
|
|
1206
|
+
folder: normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName),
|
|
1207
|
+
aliases: normalizeItemTypeStringList([...existing?.aliases ?? [], ...normalizedDefinition.aliases ?? []]),
|
|
1208
|
+
required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),
|
|
1209
|
+
required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),
|
|
1210
|
+
options: resolveDefinitionOptions(normalizedDefinition, existing),
|
|
1211
|
+
command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing)
|
|
1212
|
+
};
|
|
1213
|
+
if (description) {
|
|
1214
|
+
resolvedDefinition.description = description;
|
|
1215
|
+
}
|
|
1216
|
+
if (defaultStatus) {
|
|
1217
|
+
resolvedDefinition.default_status = defaultStatus;
|
|
1218
|
+
}
|
|
1219
|
+
return resolvedDefinition;
|
|
1220
|
+
}
|
|
1220
1221
|
function applyTypeDefinitions(source, target) {
|
|
1221
1222
|
for (const rawDefinition of source) {
|
|
1222
1223
|
const normalizedDefinition = normalizeTypeDefinition(rawDefinition);
|
|
@@ -1225,25 +1226,7 @@ function applyTypeDefinitions(source, target) {
|
|
|
1225
1226
|
}
|
|
1226
1227
|
const lowerName = normalizedDefinition.name.toLowerCase();
|
|
1227
1228
|
const existing = target.get(lowerName);
|
|
1228
|
-
|
|
1229
|
-
const folder = normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName);
|
|
1230
|
-
const aliases = normalizeItemTypeStringList([
|
|
1231
|
-
...existing?.aliases ?? [],
|
|
1232
|
-
...normalizedDefinition.aliases ?? []
|
|
1233
|
-
]);
|
|
1234
|
-
const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
|
|
1235
|
-
const description = normalizedDefinition.description ?? existing?.description;
|
|
1236
|
-
target.set(lowerName, {
|
|
1237
|
-
name: keepName,
|
|
1238
|
-
...description ? { description } : {},
|
|
1239
|
-
...defaultStatus ? { default_status: defaultStatus } : {},
|
|
1240
|
-
folder,
|
|
1241
|
-
aliases,
|
|
1242
|
-
required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),
|
|
1243
|
-
required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),
|
|
1244
|
-
options: resolveDefinitionOptions(normalizedDefinition, existing),
|
|
1245
|
-
command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing)
|
|
1246
|
-
});
|
|
1229
|
+
target.set(lowerName, buildResolvedTypeDefinition(normalizedDefinition, existing));
|
|
1247
1230
|
}
|
|
1248
1231
|
}
|
|
1249
1232
|
function collectExtensionTypeDefinitions(registrations) {
|
|
@@ -1314,55 +1297,62 @@ function resolveTypeDefinition(typeName, registry) {
|
|
|
1314
1297
|
}
|
|
1315
1298
|
return registry.by_type[resolvedName];
|
|
1316
1299
|
}
|
|
1317
|
-
function
|
|
1318
|
-
const errors = [];
|
|
1319
|
-
const required = /* @__PURE__ */ new Set();
|
|
1320
|
-
const hidden = /* @__PURE__ */ new Set();
|
|
1321
|
-
const disabled = /* @__PURE__ */ new Set();
|
|
1300
|
+
function applyBaseRequiredCommandOptions(state, typeDefinition, command, baseRequiredOptions) {
|
|
1322
1301
|
for (const rawBase of baseRequiredOptions) {
|
|
1323
1302
|
const canonical = canonicalizeCommandOptionKey(command, rawBase);
|
|
1324
|
-
if (
|
|
1325
|
-
|
|
1303
|
+
if (canonical) {
|
|
1304
|
+
state.required.add(canonical);
|
|
1326
1305
|
continue;
|
|
1327
1306
|
}
|
|
1328
|
-
required.
|
|
1307
|
+
state.errors.push(`Unsupported base required option "${rawBase}" for command "${command}" on type "${typeDefinition.name}"`);
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
function applyBooleanPolicySet(target, option, enabled) {
|
|
1311
|
+
if (enabled) {
|
|
1312
|
+
target.add(option);
|
|
1313
|
+
return;
|
|
1314
|
+
}
|
|
1315
|
+
target.delete(option);
|
|
1316
|
+
}
|
|
1317
|
+
function applyCommandOptionPolicy(state, typeDefinition, command, policy) {
|
|
1318
|
+
const canonical = canonicalizeCommandOptionKey(command, policy.option);
|
|
1319
|
+
if (!canonical) {
|
|
1320
|
+
state.errors.push(`Unsupported command_option_policies option "${policy.option}" for command "${command}" on type "${typeDefinition.name}"`);
|
|
1321
|
+
return;
|
|
1322
|
+
}
|
|
1323
|
+
if (policy.required !== void 0) {
|
|
1324
|
+
applyBooleanPolicySet(state.required, canonical, policy.required);
|
|
1329
1325
|
}
|
|
1326
|
+
if (policy.visible !== void 0) {
|
|
1327
|
+
applyBooleanPolicySet(state.hidden, canonical, !policy.visible);
|
|
1328
|
+
}
|
|
1329
|
+
if (policy.enabled !== void 0) {
|
|
1330
|
+
applyBooleanPolicySet(state.disabled, canonical, !policy.enabled);
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
function applyCommandOptionPolicies(state, typeDefinition, command) {
|
|
1330
1334
|
for (const policy of typeDefinition.command_option_policies) {
|
|
1331
|
-
if (policy.command
|
|
1332
|
-
|
|
1333
|
-
}
|
|
1334
|
-
const canonical = canonicalizeCommandOptionKey(command, policy.option);
|
|
1335
|
-
if (!canonical) {
|
|
1336
|
-
errors.push(`Unsupported command_option_policies option "${policy.option}" for command "${command}" on type "${typeDefinition.name}"`);
|
|
1337
|
-
continue;
|
|
1338
|
-
}
|
|
1339
|
-
if (policy.required !== void 0) {
|
|
1340
|
-
if (policy.required) {
|
|
1341
|
-
required.add(canonical);
|
|
1342
|
-
} else {
|
|
1343
|
-
required.delete(canonical);
|
|
1344
|
-
}
|
|
1345
|
-
}
|
|
1346
|
-
if (policy.visible !== void 0) {
|
|
1347
|
-
if (policy.visible) {
|
|
1348
|
-
hidden.delete(canonical);
|
|
1349
|
-
} else {
|
|
1350
|
-
hidden.add(canonical);
|
|
1351
|
-
}
|
|
1352
|
-
}
|
|
1353
|
-
if (policy.enabled !== void 0) {
|
|
1354
|
-
if (policy.enabled) {
|
|
1355
|
-
disabled.delete(canonical);
|
|
1356
|
-
} else {
|
|
1357
|
-
disabled.add(canonical);
|
|
1358
|
-
}
|
|
1335
|
+
if (policy.command === command) {
|
|
1336
|
+
applyCommandOptionPolicy(state, typeDefinition, command, policy);
|
|
1359
1337
|
}
|
|
1360
1338
|
}
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1339
|
+
}
|
|
1340
|
+
function appendRequiredDisabledPolicyErrors(state, typeDefinition, command) {
|
|
1341
|
+
for (const option of state.required) {
|
|
1342
|
+
if (state.disabled.has(option)) {
|
|
1343
|
+
state.errors.push(`Option "${option}" cannot be both required and disabled for command "${command}" on type "${typeDefinition.name}"`);
|
|
1364
1344
|
}
|
|
1365
1345
|
}
|
|
1346
|
+
}
|
|
1347
|
+
function resolveCommandOptionPolicyState(typeDefinition, command, baseRequiredOptions) {
|
|
1348
|
+
const errors = [];
|
|
1349
|
+
const required = /* @__PURE__ */ new Set();
|
|
1350
|
+
const hidden = /* @__PURE__ */ new Set();
|
|
1351
|
+
const disabled = /* @__PURE__ */ new Set();
|
|
1352
|
+
const state = { required, hidden, disabled, errors };
|
|
1353
|
+
applyBaseRequiredCommandOptions(state, typeDefinition, command, baseRequiredOptions);
|
|
1354
|
+
applyCommandOptionPolicies(state, typeDefinition, command);
|
|
1355
|
+
appendRequiredDisabledPolicyErrors(state, typeDefinition, command);
|
|
1366
1356
|
return {
|
|
1367
1357
|
required: [...required],
|
|
1368
1358
|
hidden: [...hidden].sort((left, right) => left.localeCompare(right)),
|
|
@@ -1613,6 +1603,23 @@ function asRecordLoose(value) {
|
|
|
1613
1603
|
}
|
|
1614
1604
|
return value;
|
|
1615
1605
|
}
|
|
1606
|
+
function asPropertyRecord(value) {
|
|
1607
|
+
if (typeof value !== "object" && typeof value !== "function" || value === null) {
|
|
1608
|
+
return null;
|
|
1609
|
+
}
|
|
1610
|
+
return value;
|
|
1611
|
+
}
|
|
1612
|
+
function resolveActivatablePropertyRecord(value) {
|
|
1613
|
+
const moduleRecord = asPropertyRecord(value);
|
|
1614
|
+
if (!moduleRecord) {
|
|
1615
|
+
return null;
|
|
1616
|
+
}
|
|
1617
|
+
if (typeof moduleRecord.activate === "function") {
|
|
1618
|
+
return moduleRecord;
|
|
1619
|
+
}
|
|
1620
|
+
const defaultExport = asPropertyRecord(moduleRecord.default);
|
|
1621
|
+
return typeof defaultExport?.activate === "function" ? defaultExport : null;
|
|
1622
|
+
}
|
|
1616
1623
|
|
|
1617
1624
|
// dist/core/shared/levenshtein.js
|
|
1618
1625
|
function levenshteinDistanceWithinLimit(left, right, limit) {
|
|
@@ -1659,6 +1666,132 @@ function levenshteinDistanceWithinLimit(left, right, limit) {
|
|
|
1659
1666
|
return result <= limit ? result : null;
|
|
1660
1667
|
}
|
|
1661
1668
|
|
|
1669
|
+
// dist/core/extensions/extension-capability-aliases.js
|
|
1670
|
+
function normalizeNames(values) {
|
|
1671
|
+
return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort((a, b) => a.localeCompare(b));
|
|
1672
|
+
}
|
|
1673
|
+
function isKnownExtensionCapability(value) {
|
|
1674
|
+
return KNOWN_EXTENSION_CAPABILITIES.includes(value);
|
|
1675
|
+
}
|
|
1676
|
+
function normalizeKnownExtensionCapability(value) {
|
|
1677
|
+
const normalized = value.trim().toLowerCase();
|
|
1678
|
+
return isKnownExtensionCapability(normalized) ? normalized : null;
|
|
1679
|
+
}
|
|
1680
|
+
function collectUnknownExtensionCapabilities(capabilities) {
|
|
1681
|
+
return capabilities.filter((capability) => !isKnownExtensionCapability(capability));
|
|
1682
|
+
}
|
|
1683
|
+
function resolveLegacyExtensionCapabilityAlias(capability) {
|
|
1684
|
+
const normalized = capability.trim().toLowerCase();
|
|
1685
|
+
if (normalized.length === 0) {
|
|
1686
|
+
return null;
|
|
1687
|
+
}
|
|
1688
|
+
return EXTENSION_CAPABILITY_LEGACY_ALIASES[normalized] ?? null;
|
|
1689
|
+
}
|
|
1690
|
+
function normalizeManifestCapabilities(rawCapabilities) {
|
|
1691
|
+
const normalizedCapabilities = normalizeNames([...rawCapabilities].map((value) => value.toLowerCase()));
|
|
1692
|
+
const remappedCapabilities = [];
|
|
1693
|
+
const legacyAliases = [];
|
|
1694
|
+
for (const capability of normalizedCapabilities) {
|
|
1695
|
+
const legacyAliasTarget = resolveLegacyExtensionCapabilityAlias(capability);
|
|
1696
|
+
if (legacyAliasTarget) {
|
|
1697
|
+
remappedCapabilities.push(legacyAliasTarget);
|
|
1698
|
+
legacyAliases.push({
|
|
1699
|
+
alias: capability,
|
|
1700
|
+
target: legacyAliasTarget
|
|
1701
|
+
});
|
|
1702
|
+
continue;
|
|
1703
|
+
}
|
|
1704
|
+
remappedCapabilities.push(capability);
|
|
1705
|
+
}
|
|
1706
|
+
const dedupedLegacyAliases = [...new Map(legacyAliases.map((entry) => [`${entry.alias}>${entry.target}`, entry])).values()].sort((left, right) => left.alias.localeCompare(right.alias));
|
|
1707
|
+
return {
|
|
1708
|
+
capabilities: normalizeNames(remappedCapabilities),
|
|
1709
|
+
legacy_aliases: dedupedLegacyAliases
|
|
1710
|
+
};
|
|
1711
|
+
}
|
|
1712
|
+
function suggestKnownExtensionCapability(capability) {
|
|
1713
|
+
const normalized = capability.trim().toLowerCase();
|
|
1714
|
+
if (normalized.length === 0) {
|
|
1715
|
+
return null;
|
|
1716
|
+
}
|
|
1717
|
+
const legacyAlias = resolveLegacyExtensionCapabilityAlias(normalized);
|
|
1718
|
+
if (legacyAlias) {
|
|
1719
|
+
return legacyAlias;
|
|
1720
|
+
}
|
|
1721
|
+
const maxDistance = Math.max(1, Math.floor(normalized.length * 0.34));
|
|
1722
|
+
let bestMatch = null;
|
|
1723
|
+
let bestDistance = Number.POSITIVE_INFINITY;
|
|
1724
|
+
for (const candidate of KNOWN_EXTENSION_CAPABILITIES) {
|
|
1725
|
+
const distance = levenshteinDistanceWithinLimit(normalized, candidate, maxDistance);
|
|
1726
|
+
if (distance !== null && distance < bestDistance) {
|
|
1727
|
+
bestDistance = distance;
|
|
1728
|
+
bestMatch = candidate;
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1731
|
+
return bestMatch;
|
|
1732
|
+
}
|
|
1733
|
+
function formatUnknownExtensionCapabilityWarning(layer, name, capability) {
|
|
1734
|
+
const allowed = KNOWN_EXTENSION_CAPABILITIES.join(",");
|
|
1735
|
+
const suggested = suggestKnownExtensionCapability(capability) ?? "none";
|
|
1736
|
+
return `extension_capability_unknown:${layer}:${name}:${capability}:allowed=${allowed}:suggested=${suggested}`;
|
|
1737
|
+
}
|
|
1738
|
+
function formatLegacyExtensionCapabilityAliasWarning(layer, name, aliases) {
|
|
1739
|
+
const aliasesToken = aliases.map((entry) => `${entry.alias}>${entry.target}`).join(",");
|
|
1740
|
+
return `extension_capability_legacy_alias:${layer}:${name}:aliases=${aliasesToken}`;
|
|
1741
|
+
}
|
|
1742
|
+
function parseUnknownExtensionCapabilityWarning(warning) {
|
|
1743
|
+
const match = /^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(warning.trim());
|
|
1744
|
+
if (!match) {
|
|
1745
|
+
return null;
|
|
1746
|
+
}
|
|
1747
|
+
const [, layerRaw, name, capability, allowedRaw, suggestedRaw] = match;
|
|
1748
|
+
const layer = layerRaw;
|
|
1749
|
+
const allowed_capabilities = allowedRaw.split(",").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
1750
|
+
const legacyAlias = resolveLegacyExtensionCapabilityAlias(capability);
|
|
1751
|
+
const suggestedFromWarning = suggestedRaw === "none" ? void 0 : suggestedRaw;
|
|
1752
|
+
const suggested_capability = suggestedFromWarning ?? legacyAlias ?? void 0;
|
|
1753
|
+
const suggestion_source = suggested_capability ? legacyAlias === suggested_capability ? "legacy_alias" : "nearest_match" : void 0;
|
|
1754
|
+
return {
|
|
1755
|
+
layer,
|
|
1756
|
+
name,
|
|
1757
|
+
capability,
|
|
1758
|
+
allowed_capabilities,
|
|
1759
|
+
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
1760
|
+
suggested_capability,
|
|
1761
|
+
suggestion_source,
|
|
1762
|
+
legacy_alias_target: legacyAlias ?? void 0
|
|
1763
|
+
};
|
|
1764
|
+
}
|
|
1765
|
+
function parseLegacyExtensionCapabilityAliasWarning(warning) {
|
|
1766
|
+
const match = /^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(warning.trim());
|
|
1767
|
+
if (!match) {
|
|
1768
|
+
return [];
|
|
1769
|
+
}
|
|
1770
|
+
const [, layerRaw, name, aliasesRaw] = match;
|
|
1771
|
+
const layer = layerRaw;
|
|
1772
|
+
const allowedCapabilities = [...KNOWN_EXTENSION_CAPABILITIES];
|
|
1773
|
+
const parsed = [];
|
|
1774
|
+
for (const token of aliasesRaw.split(",")) {
|
|
1775
|
+
const [rawAlias, rawTarget] = token.split(">");
|
|
1776
|
+
const alias = rawAlias?.trim();
|
|
1777
|
+
const target = rawTarget?.trim().toLowerCase();
|
|
1778
|
+
if (!alias || !target || !isKnownExtensionCapability(target)) {
|
|
1779
|
+
continue;
|
|
1780
|
+
}
|
|
1781
|
+
parsed.push({
|
|
1782
|
+
layer,
|
|
1783
|
+
name,
|
|
1784
|
+
capability: alias,
|
|
1785
|
+
allowed_capabilities: allowedCapabilities,
|
|
1786
|
+
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
1787
|
+
suggested_capability: target,
|
|
1788
|
+
suggestion_source: "legacy_alias",
|
|
1789
|
+
legacy_alias_target: target
|
|
1790
|
+
});
|
|
1791
|
+
}
|
|
1792
|
+
return parsed;
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1662
1795
|
// dist/core/extensions/extension-registries.js
|
|
1663
1796
|
function createEmptyExtensionHookRegistry() {
|
|
1664
1797
|
return {
|
|
@@ -2290,170 +2423,44 @@ function evaluatePmMaxVersionBound(required, currentVersion, exceededMode) {
|
|
|
2290
2423
|
return { kind: "pm_max_version", status: "ok", allowed: true, required: declared, current: currentVersion };
|
|
2291
2424
|
}
|
|
2292
2425
|
|
|
2293
|
-
// dist/core/extensions/extension-
|
|
2294
|
-
function
|
|
2295
|
-
|
|
2426
|
+
// dist/core/extensions/extension-policy.js
|
|
2427
|
+
function normalizePolicyName(value) {
|
|
2428
|
+
if (typeof value !== "string") {
|
|
2429
|
+
return "";
|
|
2430
|
+
}
|
|
2431
|
+
return value.trim().toLowerCase();
|
|
2296
2432
|
}
|
|
2297
|
-
function
|
|
2298
|
-
return
|
|
2433
|
+
function normalizePolicyStringSet(values) {
|
|
2434
|
+
return new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0));
|
|
2299
2435
|
}
|
|
2300
|
-
function
|
|
2436
|
+
function normalizePolicySurfaceToken(value) {
|
|
2301
2437
|
const normalized = value.trim().toLowerCase();
|
|
2302
|
-
return isKnownExtensionCapability(normalized) ? normalized : null;
|
|
2303
|
-
}
|
|
2304
|
-
function collectUnknownExtensionCapabilities(capabilities) {
|
|
2305
|
-
return capabilities.filter((capability) => !isKnownExtensionCapability(capability));
|
|
2306
|
-
}
|
|
2307
|
-
function resolveLegacyExtensionCapabilityAlias(capability) {
|
|
2308
|
-
const normalized = capability.trim().toLowerCase();
|
|
2309
2438
|
if (normalized.length === 0) {
|
|
2310
|
-
return
|
|
2439
|
+
return "";
|
|
2311
2440
|
}
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
const normalizedCapabilities = normalizeNames([...rawCapabilities].map((value) => value.toLowerCase()));
|
|
2316
|
-
const remappedCapabilities = [];
|
|
2317
|
-
const legacyAliases = [];
|
|
2318
|
-
for (const capability of normalizedCapabilities) {
|
|
2319
|
-
const legacyAliasTarget = resolveLegacyExtensionCapabilityAlias(capability);
|
|
2320
|
-
if (legacyAliasTarget) {
|
|
2321
|
-
remappedCapabilities.push(legacyAliasTarget);
|
|
2322
|
-
legacyAliases.push({
|
|
2323
|
-
alias: capability,
|
|
2324
|
-
target: legacyAliasTarget
|
|
2325
|
-
});
|
|
2326
|
-
continue;
|
|
2327
|
-
}
|
|
2328
|
-
remappedCapabilities.push(capability);
|
|
2441
|
+
const segments = normalized.split(/[.:/]/).map((segment) => segment.replace(/[\s_-]+/g, "")).filter((segment) => segment.length > 0);
|
|
2442
|
+
if (segments.length === 0) {
|
|
2443
|
+
return "";
|
|
2329
2444
|
}
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
};
|
|
2445
|
+
if (segments.length === 1) {
|
|
2446
|
+
return segments[0];
|
|
2447
|
+
}
|
|
2448
|
+
return `${segments[0]}.${segments.slice(1).join("")}`;
|
|
2335
2449
|
}
|
|
2336
|
-
function
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2450
|
+
function normalizePolicySurfaceSet(values) {
|
|
2451
|
+
return new Set((values ?? []).map((value) => normalizePolicySurfaceToken(value)).filter((value) => value.length > 0));
|
|
2452
|
+
}
|
|
2453
|
+
function normalizePolicyMode(value) {
|
|
2454
|
+
const normalized = normalizePolicyName(value);
|
|
2455
|
+
if (KNOWN_EXTENSION_POLICY_MODES.includes(normalized)) {
|
|
2456
|
+
return normalized;
|
|
2340
2457
|
}
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
let bestDistance = Number.POSITIVE_INFINITY;
|
|
2348
|
-
for (const candidate of KNOWN_EXTENSION_CAPABILITIES) {
|
|
2349
|
-
const distance = levenshteinDistanceWithinLimit(normalized, candidate, maxDistance);
|
|
2350
|
-
if (distance !== null && distance < bestDistance) {
|
|
2351
|
-
bestDistance = distance;
|
|
2352
|
-
bestMatch = candidate;
|
|
2353
|
-
}
|
|
2354
|
-
}
|
|
2355
|
-
return bestMatch;
|
|
2356
|
-
}
|
|
2357
|
-
function formatUnknownExtensionCapabilityWarning(layer, name, capability) {
|
|
2358
|
-
const allowed = KNOWN_EXTENSION_CAPABILITIES.join(",");
|
|
2359
|
-
const suggested = suggestKnownExtensionCapability(capability) ?? "none";
|
|
2360
|
-
return `extension_capability_unknown:${layer}:${name}:${capability}:allowed=${allowed}:suggested=${suggested}`;
|
|
2361
|
-
}
|
|
2362
|
-
function formatLegacyExtensionCapabilityAliasWarning(layer, name, aliases) {
|
|
2363
|
-
const aliasesToken = aliases.map((entry) => `${entry.alias}>${entry.target}`).join(",");
|
|
2364
|
-
return `extension_capability_legacy_alias:${layer}:${name}:aliases=${aliasesToken}`;
|
|
2365
|
-
}
|
|
2366
|
-
function parseUnknownExtensionCapabilityWarning(warning) {
|
|
2367
|
-
const match = /^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(warning.trim());
|
|
2368
|
-
if (!match) {
|
|
2369
|
-
return null;
|
|
2370
|
-
}
|
|
2371
|
-
const [, layerRaw, name, capability, allowedRaw, suggestedRaw] = match;
|
|
2372
|
-
const layer = layerRaw;
|
|
2373
|
-
const allowed_capabilities = allowedRaw.split(",").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
2374
|
-
const legacyAlias = resolveLegacyExtensionCapabilityAlias(capability);
|
|
2375
|
-
const suggestedFromWarning = suggestedRaw === "none" ? void 0 : suggestedRaw;
|
|
2376
|
-
const suggested_capability = suggestedFromWarning ?? legacyAlias ?? void 0;
|
|
2377
|
-
const suggestion_source = suggested_capability ? legacyAlias === suggested_capability ? "legacy_alias" : "nearest_match" : void 0;
|
|
2378
|
-
return {
|
|
2379
|
-
layer,
|
|
2380
|
-
name,
|
|
2381
|
-
capability,
|
|
2382
|
-
allowed_capabilities,
|
|
2383
|
-
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
2384
|
-
suggested_capability,
|
|
2385
|
-
suggestion_source,
|
|
2386
|
-
legacy_alias_target: legacyAlias ?? void 0
|
|
2387
|
-
};
|
|
2388
|
-
}
|
|
2389
|
-
function parseLegacyExtensionCapabilityAliasWarning(warning) {
|
|
2390
|
-
const match = /^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(warning.trim());
|
|
2391
|
-
if (!match) {
|
|
2392
|
-
return [];
|
|
2393
|
-
}
|
|
2394
|
-
const [, layerRaw, name, aliasesRaw] = match;
|
|
2395
|
-
const layer = layerRaw;
|
|
2396
|
-
const allowedCapabilities = [...KNOWN_EXTENSION_CAPABILITIES];
|
|
2397
|
-
const parsed = [];
|
|
2398
|
-
for (const token of aliasesRaw.split(",")) {
|
|
2399
|
-
const [rawAlias, rawTarget] = token.split(">");
|
|
2400
|
-
const alias = rawAlias?.trim();
|
|
2401
|
-
const target = rawTarget?.trim().toLowerCase();
|
|
2402
|
-
if (!alias || !target || !isKnownExtensionCapability(target)) {
|
|
2403
|
-
continue;
|
|
2404
|
-
}
|
|
2405
|
-
parsed.push({
|
|
2406
|
-
layer,
|
|
2407
|
-
name,
|
|
2408
|
-
capability: alias,
|
|
2409
|
-
allowed_capabilities: allowedCapabilities,
|
|
2410
|
-
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
2411
|
-
suggested_capability: target,
|
|
2412
|
-
suggestion_source: "legacy_alias",
|
|
2413
|
-
legacy_alias_target: target
|
|
2414
|
-
});
|
|
2415
|
-
}
|
|
2416
|
-
return parsed;
|
|
2417
|
-
}
|
|
2418
|
-
|
|
2419
|
-
// dist/core/extensions/extension-policy.js
|
|
2420
|
-
function normalizePolicyName(value) {
|
|
2421
|
-
if (typeof value !== "string") {
|
|
2422
|
-
return "";
|
|
2423
|
-
}
|
|
2424
|
-
return value.trim().toLowerCase();
|
|
2425
|
-
}
|
|
2426
|
-
function normalizePolicyStringSet(values) {
|
|
2427
|
-
return new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0));
|
|
2428
|
-
}
|
|
2429
|
-
function normalizePolicySurfaceToken(value) {
|
|
2430
|
-
const normalized = value.trim().toLowerCase();
|
|
2431
|
-
if (normalized.length === 0) {
|
|
2432
|
-
return "";
|
|
2433
|
-
}
|
|
2434
|
-
const segments = normalized.split(/[.:/]/).map((segment) => segment.replace(/[\s_-]+/g, "")).filter((segment) => segment.length > 0);
|
|
2435
|
-
if (segments.length === 0) {
|
|
2436
|
-
return "";
|
|
2437
|
-
}
|
|
2438
|
-
if (segments.length === 1) {
|
|
2439
|
-
return segments[0];
|
|
2440
|
-
}
|
|
2441
|
-
return `${segments[0]}.${segments.slice(1).join("")}`;
|
|
2442
|
-
}
|
|
2443
|
-
function normalizePolicySurfaceSet(values) {
|
|
2444
|
-
return new Set((values ?? []).map((value) => normalizePolicySurfaceToken(value)).filter((value) => value.length > 0));
|
|
2445
|
-
}
|
|
2446
|
-
function normalizePolicyMode(value) {
|
|
2447
|
-
const normalized = normalizePolicyName(value);
|
|
2448
|
-
if (KNOWN_EXTENSION_POLICY_MODES.includes(normalized)) {
|
|
2449
|
-
return normalized;
|
|
2450
|
-
}
|
|
2451
|
-
return "off";
|
|
2452
|
-
}
|
|
2453
|
-
function normalizePolicyTrustMode(value) {
|
|
2454
|
-
const normalized = normalizePolicyName(value);
|
|
2455
|
-
if (KNOWN_EXTENSION_TRUST_MODES.includes(normalized)) {
|
|
2456
|
-
return normalized;
|
|
2458
|
+
return "off";
|
|
2459
|
+
}
|
|
2460
|
+
function normalizePolicyTrustMode(value) {
|
|
2461
|
+
const normalized = normalizePolicyName(value);
|
|
2462
|
+
if (KNOWN_EXTENSION_TRUST_MODES.includes(normalized)) {
|
|
2463
|
+
return normalized;
|
|
2457
2464
|
}
|
|
2458
2465
|
return "off";
|
|
2459
2466
|
}
|
|
@@ -3251,14 +3258,14 @@ function buildEffectiveExtensions(globalCandidates, projectCandidates) {
|
|
|
3251
3258
|
}
|
|
3252
3259
|
return effective;
|
|
3253
3260
|
}
|
|
3254
|
-
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled,
|
|
3261
|
+
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled, pmMaxVersionExceededMode) {
|
|
3255
3262
|
const diagnostics = [];
|
|
3256
3263
|
const warnings = [];
|
|
3257
3264
|
const candidates = [];
|
|
3258
3265
|
const directories = await listExtensionDirectories(extensionsRoot);
|
|
3259
3266
|
const managedSourcePackages = await readManagedExtensionSourcePackages(extensionsRoot);
|
|
3260
3267
|
for (const directory of directories) {
|
|
3261
|
-
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages,
|
|
3268
|
+
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode);
|
|
3262
3269
|
diagnostics.push(scanned.diagnostic);
|
|
3263
3270
|
warnings.push(...scanned.warnings);
|
|
3264
3271
|
if (scanned.candidate) {
|
|
@@ -3306,13 +3313,13 @@ function collectScannedExtensionWarnings(layer, manifest, entryWithinDirectory,
|
|
|
3306
3313
|
}
|
|
3307
3314
|
return extensionWarnings;
|
|
3308
3315
|
}
|
|
3309
|
-
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages,
|
|
3316
|
+
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode) {
|
|
3310
3317
|
const extensionDir = path5.join(extensionsRoot, directory);
|
|
3311
3318
|
const manifestPath = path5.join(extensionDir, "manifest.json");
|
|
3312
3319
|
if (!await pathExists(manifestPath)) {
|
|
3313
3320
|
return buildUnavailableExtensionScan(layer, directory, manifestPath, `extension_manifest_missing:${layer}:${directory}`);
|
|
3314
3321
|
}
|
|
3315
|
-
let manifest
|
|
3322
|
+
let manifest;
|
|
3316
3323
|
try {
|
|
3317
3324
|
const parsed = JSON.parse(await fs3.readFile(manifestPath, "utf8"));
|
|
3318
3325
|
manifest = parseManifest(parsed);
|
|
@@ -3328,7 +3335,7 @@ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled,
|
|
|
3328
3335
|
const entryWithinDirectory = entryWithinDirectoryByPath && entryExists ? await isCanonicalPathWithinDirectory(extensionDir, entryPath) : entryWithinDirectoryByPath;
|
|
3329
3336
|
const enabledForLoad = shouldEnable(manifest.name, enabled, disabled);
|
|
3330
3337
|
const pmVersionCompatibility = await evaluatePmMinVersionCompatibility(layer, manifest);
|
|
3331
|
-
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest,
|
|
3338
|
+
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest, pmMaxVersionExceededMode);
|
|
3332
3339
|
const extensionWarnings = collectScannedExtensionWarnings(layer, manifest, entryWithinDirectory, entryExists, pmVersionCompatibility, pmMaxVersionCompatibility);
|
|
3333
3340
|
const extensionReady = entryWithinDirectory && entryExists && pmVersionCompatibility.allowed && pmMaxVersionCompatibility.allowed;
|
|
3334
3341
|
const sourcePackage = managedSourcePackages.get(`directory:${directory}`) ?? managedSourcePackages.get(`name:${manifest.name}`);
|
|
@@ -3523,7 +3530,8 @@ async function loadExtensions(options) {
|
|
|
3523
3530
|
failed
|
|
3524
3531
|
};
|
|
3525
3532
|
}
|
|
3526
|
-
|
|
3533
|
+
const extensionsToLoad = typeof options.extensionFilter === "function" ? discovery.effective.filter(options.extensionFilter) : discovery.effective;
|
|
3534
|
+
for (const extension of extensionsToLoad) {
|
|
3527
3535
|
try {
|
|
3528
3536
|
const importHref = await resolveExtensionImportHref(extension, options);
|
|
3529
3537
|
const module = await import(importHref);
|
|
@@ -3548,6 +3556,8 @@ async function loadExtensions(options) {
|
|
|
3548
3556
|
failed
|
|
3549
3557
|
};
|
|
3550
3558
|
}
|
|
3559
|
+
var DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS = 5e3;
|
|
3560
|
+
var MAX_EXTENSION_DEACTIVATE_TIMEOUT_MS = 2147483647;
|
|
3551
3561
|
function toActivatableExtension(source) {
|
|
3552
3562
|
const activate = source.activate;
|
|
3553
3563
|
const activatable = {
|
|
@@ -3560,18 +3570,78 @@ function toActivatableExtension(source) {
|
|
|
3560
3570
|
return activatable;
|
|
3561
3571
|
}
|
|
3562
3572
|
function resolveActivatableExtension(module) {
|
|
3563
|
-
const
|
|
3564
|
-
|
|
3565
|
-
|
|
3573
|
+
const activatableRecord = resolveActivatablePropertyRecord(module);
|
|
3574
|
+
return activatableRecord ? toActivatableExtension(activatableRecord) : null;
|
|
3575
|
+
}
|
|
3576
|
+
async function deactivateExtensions(loadResult, activationResult, options = {}) {
|
|
3577
|
+
const timeoutMs = normalizeExtensionDeactivateTimeout(options?.deactivate_timeout_ms);
|
|
3578
|
+
const failedActivationKeys = new Set((activationResult?.failed ?? []).map((entry) => `${entry.layer}:${entry.name}`));
|
|
3579
|
+
const targets = [];
|
|
3580
|
+
for (const extension of loadResult.loaded) {
|
|
3581
|
+
if (failedActivationKeys.has(`${extension.layer}:${extension.name}`)) {
|
|
3582
|
+
continue;
|
|
3583
|
+
}
|
|
3584
|
+
const activatable = resolveActivatableExtension(extension.module);
|
|
3585
|
+
if (!activatable || typeof activatable.deactivate !== "function") {
|
|
3586
|
+
continue;
|
|
3587
|
+
}
|
|
3588
|
+
targets.push({ extension, deactivate: activatable.deactivate });
|
|
3566
3589
|
}
|
|
3567
|
-
|
|
3568
|
-
|
|
3590
|
+
const outcomes = await Promise.all(targets.map(async ({ extension, deactivate }) => {
|
|
3591
|
+
try {
|
|
3592
|
+
await runExtensionDeactivateWithTimeout(deactivate, timeoutMs);
|
|
3593
|
+
return { ok: true };
|
|
3594
|
+
} catch (error) {
|
|
3595
|
+
return { ok: false, layer: extension.layer, name: extension.name, error: formatUnknownError(error) };
|
|
3596
|
+
}
|
|
3597
|
+
}));
|
|
3598
|
+
const warnings = [];
|
|
3599
|
+
const failed = [];
|
|
3600
|
+
let deactivated = 0;
|
|
3601
|
+
for (const outcome of outcomes) {
|
|
3602
|
+
if (outcome.ok) {
|
|
3603
|
+
deactivated += 1;
|
|
3604
|
+
continue;
|
|
3605
|
+
}
|
|
3606
|
+
warnings.push(`extension_deactivate_failed:${outcome.layer}:${outcome.name}`);
|
|
3607
|
+
failed.push({ layer: outcome.layer, name: outcome.name, error: outcome.error });
|
|
3608
|
+
}
|
|
3609
|
+
return { deactivated, warnings, failed };
|
|
3610
|
+
}
|
|
3611
|
+
function normalizeExtensionDeactivateTimeout(rawTimeout) {
|
|
3612
|
+
if (typeof rawTimeout !== "number" || rawTimeout < 0) {
|
|
3613
|
+
return DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS;
|
|
3614
|
+
}
|
|
3615
|
+
if (rawTimeout === 0 || rawTimeout === Infinity) {
|
|
3616
|
+
return 0;
|
|
3569
3617
|
}
|
|
3570
|
-
|
|
3571
|
-
|
|
3572
|
-
|
|
3618
|
+
if (!Number.isFinite(rawTimeout)) {
|
|
3619
|
+
return DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS;
|
|
3620
|
+
}
|
|
3621
|
+
return Math.min(MAX_EXTENSION_DEACTIVATE_TIMEOUT_MS, Math.max(1, Math.floor(rawTimeout)));
|
|
3622
|
+
}
|
|
3623
|
+
async function runExtensionDeactivateWithTimeout(deactivate, timeoutMs) {
|
|
3624
|
+
if (timeoutMs === 0) {
|
|
3625
|
+
await deactivate();
|
|
3626
|
+
return;
|
|
3627
|
+
}
|
|
3628
|
+
let timeoutHandle;
|
|
3629
|
+
try {
|
|
3630
|
+
const deactivatePromise = Promise.resolve().then(() => deactivate());
|
|
3631
|
+
deactivatePromise.catch(() => {
|
|
3632
|
+
});
|
|
3633
|
+
await Promise.race([
|
|
3634
|
+
deactivatePromise,
|
|
3635
|
+
new Promise((_, reject) => {
|
|
3636
|
+
timeoutHandle = setTimeout(() => {
|
|
3637
|
+
reject(new Error(`extension deactivate timed out after ${timeoutMs}ms`));
|
|
3638
|
+
}, timeoutMs);
|
|
3639
|
+
timeoutHandle.unref?.();
|
|
3640
|
+
})
|
|
3641
|
+
]);
|
|
3642
|
+
} finally {
|
|
3643
|
+
clearTimeout(timeoutHandle);
|
|
3573
3644
|
}
|
|
3574
|
-
return null;
|
|
3575
3645
|
}
|
|
3576
3646
|
function isOutputRendererFormat(value) {
|
|
3577
3647
|
return value === "toon" || value === "json";
|
|
@@ -4726,6 +4796,17 @@ async function activateExtensions(loadResult) {
|
|
|
4726
4796
|
}
|
|
4727
4797
|
|
|
4728
4798
|
// dist/core/extensions/capability-usage.js
|
|
4799
|
+
var EXTENSION_CAPABILITY_REGISTRATION_SURFACES = {
|
|
4800
|
+
commands: ["registerCommand", "command override", "command handler"],
|
|
4801
|
+
renderers: ["registerRenderer"],
|
|
4802
|
+
hooks: ["hooks.beforeCommand", "hooks.afterCommand", "hooks.onWrite", "hooks.onRead", "hooks.onIndex"],
|
|
4803
|
+
schema: ["registerFlags", "registerItemFields", "registerItemTypes", "registerMigration", "registerProfile"],
|
|
4804
|
+
importers: ["registerImporter", "registerExporter"],
|
|
4805
|
+
search: ["registerSearchProvider", "registerVectorStoreAdapter"],
|
|
4806
|
+
parser: ["registerParser"],
|
|
4807
|
+
preflight: ["registerPreflight"],
|
|
4808
|
+
services: ["registerService"]
|
|
4809
|
+
};
|
|
4729
4810
|
var USAGE_KEY_SEPARATOR = ":";
|
|
4730
4811
|
function usageKey(layer, name) {
|
|
4731
4812
|
return `${layer}${USAGE_KEY_SEPARATOR}${normalizeExtensionName(name)}`;
|
|
@@ -4788,10 +4869,16 @@ function attributeCapabilityUsage(activation) {
|
|
|
4788
4869
|
}
|
|
4789
4870
|
function collectUsedExtensionCapabilities(activation, options = {}) {
|
|
4790
4871
|
const usage = attributeCapabilityUsage(activation);
|
|
4791
|
-
const
|
|
4872
|
+
const filters = /* @__PURE__ */ new Set();
|
|
4873
|
+
if (options.extensionName !== void 0) {
|
|
4874
|
+
filters.add(normalizeExtensionName(options.extensionName));
|
|
4875
|
+
}
|
|
4876
|
+
for (const name of options.extensionNames ?? []) {
|
|
4877
|
+
filters.add(normalizeExtensionName(name));
|
|
4878
|
+
}
|
|
4792
4879
|
const used = /* @__PURE__ */ new Set();
|
|
4793
4880
|
for (const [key, capabilities] of usage) {
|
|
4794
|
-
if (
|
|
4881
|
+
if (filters.size > 0 && !filters.has(usageKeyName(key))) {
|
|
4795
4882
|
continue;
|
|
4796
4883
|
}
|
|
4797
4884
|
for (const capability of capabilities) {
|
|
@@ -4816,247 +4903,6 @@ function reconcileExtensionCapabilityUsage(loaded, activation) {
|
|
|
4816
4903
|
return reconciliations;
|
|
4817
4904
|
}
|
|
4818
4905
|
|
|
4819
|
-
// dist/core/extensions/index.js
|
|
4820
|
-
var activeExtensionHooks = null;
|
|
4821
|
-
var activeExtensionCommands = null;
|
|
4822
|
-
var activeExtensionParsers = null;
|
|
4823
|
-
var activeExtensionPreflight = null;
|
|
4824
|
-
var activeExtensionServices = null;
|
|
4825
|
-
var activeExtensionRenderers = null;
|
|
4826
|
-
var activeExtensionRegistrations = null;
|
|
4827
|
-
var activeCommandContext = null;
|
|
4828
|
-
var activeCommandResult = void 0;
|
|
4829
|
-
var activeAfterCommandAffectedItems = [];
|
|
4830
|
-
var AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS = /* @__PURE__ */ new Set([
|
|
4831
|
-
"body",
|
|
4832
|
-
"comments",
|
|
4833
|
-
"dependencies",
|
|
4834
|
-
"docs",
|
|
4835
|
-
"events",
|
|
4836
|
-
"files",
|
|
4837
|
-
"learnings",
|
|
4838
|
-
"notes",
|
|
4839
|
-
"reminders",
|
|
4840
|
-
"test_runs",
|
|
4841
|
-
"tests"
|
|
4842
|
-
]);
|
|
4843
|
-
function setActiveExtensionHooks(hooks) {
|
|
4844
|
-
activeExtensionHooks = hooks;
|
|
4845
|
-
}
|
|
4846
|
-
function setActiveExtensionCommands(commands) {
|
|
4847
|
-
activeExtensionCommands = commands;
|
|
4848
|
-
}
|
|
4849
|
-
function setActiveExtensionParsers(parsers) {
|
|
4850
|
-
activeExtensionParsers = parsers;
|
|
4851
|
-
}
|
|
4852
|
-
function setActiveExtensionPreflight(preflight) {
|
|
4853
|
-
activeExtensionPreflight = preflight;
|
|
4854
|
-
}
|
|
4855
|
-
function setActiveExtensionServices(services) {
|
|
4856
|
-
activeExtensionServices = services;
|
|
4857
|
-
}
|
|
4858
|
-
function setActiveExtensionRenderers(renderers) {
|
|
4859
|
-
activeExtensionRenderers = renderers;
|
|
4860
|
-
}
|
|
4861
|
-
function setActiveExtensionRegistrations(registrations) {
|
|
4862
|
-
activeExtensionRegistrations = registrations;
|
|
4863
|
-
}
|
|
4864
|
-
function getActiveExtensionRegistrations() {
|
|
4865
|
-
return activeExtensionRegistrations;
|
|
4866
|
-
}
|
|
4867
|
-
function setActiveCommandContext(context) {
|
|
4868
|
-
activeCommandContext = context;
|
|
4869
|
-
}
|
|
4870
|
-
function setActiveCommandResult(result) {
|
|
4871
|
-
activeCommandResult = result;
|
|
4872
|
-
}
|
|
4873
|
-
function getActiveCommandResult() {
|
|
4874
|
-
return activeCommandResult;
|
|
4875
|
-
}
|
|
4876
|
-
function recordAfterCommandAffectedItem(item) {
|
|
4877
|
-
if (!item || (activeExtensionHooks?.afterCommand?.length ?? 0) === 0) {
|
|
4878
|
-
return;
|
|
4879
|
-
}
|
|
4880
|
-
activeAfterCommandAffectedItems.push(item);
|
|
4881
|
-
}
|
|
4882
|
-
function projectAfterCommandItemSnapshot(metadata, changedFields) {
|
|
4883
|
-
if (!metadata || !metadata.id) {
|
|
4884
|
-
return {};
|
|
4885
|
-
}
|
|
4886
|
-
const snapshot = {
|
|
4887
|
-
id: metadata.id,
|
|
4888
|
-
type: metadata.type,
|
|
4889
|
-
status: metadata.status
|
|
4890
|
-
};
|
|
4891
|
-
if (!Array.isArray(changedFields)) {
|
|
4892
|
-
return snapshot;
|
|
4893
|
-
}
|
|
4894
|
-
const source = metadata;
|
|
4895
|
-
for (const field of changedFields) {
|
|
4896
|
-
if (typeof field !== "string") {
|
|
4897
|
-
continue;
|
|
4898
|
-
}
|
|
4899
|
-
const actualField = field.startsWith("unset:") ? field.slice("unset:".length) : field;
|
|
4900
|
-
if (actualField === "id" || actualField === "type" || actualField === "status" || AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS.has(actualField)) {
|
|
4901
|
-
continue;
|
|
4902
|
-
}
|
|
4903
|
-
if (Object.hasOwn(source, actualField) && source[actualField] !== void 0) {
|
|
4904
|
-
snapshot[actualField] = source[actualField];
|
|
4905
|
-
}
|
|
4906
|
-
}
|
|
4907
|
-
return snapshot;
|
|
4908
|
-
}
|
|
4909
|
-
function consumeAfterCommandAffectedItems() {
|
|
4910
|
-
if (activeAfterCommandAffectedItems.length === 0) {
|
|
4911
|
-
return void 0;
|
|
4912
|
-
}
|
|
4913
|
-
const affected = activeAfterCommandAffectedItems;
|
|
4914
|
-
activeAfterCommandAffectedItems = [];
|
|
4915
|
-
return affected;
|
|
4916
|
-
}
|
|
4917
|
-
function clearActiveExtensionHooks() {
|
|
4918
|
-
activeExtensionHooks = null;
|
|
4919
|
-
activeExtensionCommands = null;
|
|
4920
|
-
activeExtensionParsers = null;
|
|
4921
|
-
activeExtensionPreflight = null;
|
|
4922
|
-
activeExtensionServices = null;
|
|
4923
|
-
activeExtensionRenderers = null;
|
|
4924
|
-
activeExtensionRegistrations = null;
|
|
4925
|
-
activeCommandContext = null;
|
|
4926
|
-
activeCommandResult = void 0;
|
|
4927
|
-
activeAfterCommandAffectedItems = [];
|
|
4928
|
-
}
|
|
4929
|
-
async function runActiveOnWriteHooks(context) {
|
|
4930
|
-
if (!activeExtensionHooks) {
|
|
4931
|
-
return [];
|
|
4932
|
-
}
|
|
4933
|
-
return runOnWriteHooks(activeExtensionHooks, context);
|
|
4934
|
-
}
|
|
4935
|
-
async function runActiveOnReadHooks(context) {
|
|
4936
|
-
if (!activeExtensionHooks) {
|
|
4937
|
-
return [];
|
|
4938
|
-
}
|
|
4939
|
-
return runOnReadHooks(activeExtensionHooks, context);
|
|
4940
|
-
}
|
|
4941
|
-
function hasActiveOnReadHooks() {
|
|
4942
|
-
return (activeExtensionHooks?.onRead?.length ?? 0) > 0;
|
|
4943
|
-
}
|
|
4944
|
-
async function runActiveOnIndexHooks(context) {
|
|
4945
|
-
if (!activeExtensionHooks) {
|
|
4946
|
-
return [];
|
|
4947
|
-
}
|
|
4948
|
-
return runOnIndexHooks(activeExtensionHooks, context);
|
|
4949
|
-
}
|
|
4950
|
-
function runActiveCommandOverride(result) {
|
|
4951
|
-
if (!activeExtensionCommands || !activeCommandContext) {
|
|
4952
|
-
return {
|
|
4953
|
-
overridden: false,
|
|
4954
|
-
result,
|
|
4955
|
-
warnings: []
|
|
4956
|
-
};
|
|
4957
|
-
}
|
|
4958
|
-
return runCommandOverride(activeExtensionCommands, {
|
|
4959
|
-
command: activeCommandContext.command,
|
|
4960
|
-
args: [...activeCommandContext.args],
|
|
4961
|
-
options: activeCommandContext.options ? { ...activeCommandContext.options } : {},
|
|
4962
|
-
global: activeCommandContext.global ? { ...activeCommandContext.global } : void 0,
|
|
4963
|
-
pm_root: activeCommandContext.pm_root,
|
|
4964
|
-
result
|
|
4965
|
-
});
|
|
4966
|
-
}
|
|
4967
|
-
async function runActiveCommandHandler(context) {
|
|
4968
|
-
if (!activeExtensionCommands) {
|
|
4969
|
-
return {
|
|
4970
|
-
handled: false,
|
|
4971
|
-
result: null,
|
|
4972
|
-
warnings: []
|
|
4973
|
-
};
|
|
4974
|
-
}
|
|
4975
|
-
return runCommandHandler(activeExtensionCommands, context);
|
|
4976
|
-
}
|
|
4977
|
-
async function runActiveParserOverride(context) {
|
|
4978
|
-
if (!activeExtensionParsers) {
|
|
4979
|
-
return {
|
|
4980
|
-
overridden: false,
|
|
4981
|
-
context: {
|
|
4982
|
-
command: context.command,
|
|
4983
|
-
args: [...context.args],
|
|
4984
|
-
options: { ...context.options },
|
|
4985
|
-
global: { ...context.global },
|
|
4986
|
-
pm_root: context.pm_root
|
|
4987
|
-
},
|
|
4988
|
-
warnings: []
|
|
4989
|
-
};
|
|
4990
|
-
}
|
|
4991
|
-
return runParserOverride(activeExtensionParsers, context);
|
|
4992
|
-
}
|
|
4993
|
-
async function runActivePreflightOverride(context) {
|
|
4994
|
-
if (!activeExtensionPreflight) {
|
|
4995
|
-
return {
|
|
4996
|
-
overridden: false,
|
|
4997
|
-
context: {
|
|
4998
|
-
command: context.command,
|
|
4999
|
-
args: [...context.args],
|
|
5000
|
-
options: { ...context.options },
|
|
5001
|
-
global: { ...context.global },
|
|
5002
|
-
pm_root: context.pm_root
|
|
5003
|
-
},
|
|
5004
|
-
decision: { ...context.decision },
|
|
5005
|
-
warnings: []
|
|
5006
|
-
};
|
|
5007
|
-
}
|
|
5008
|
-
return runPreflightOverride(activeExtensionPreflight, context);
|
|
5009
|
-
}
|
|
5010
|
-
function runActiveRendererOverride(format, result) {
|
|
5011
|
-
if (!activeExtensionRenderers) {
|
|
5012
|
-
return {
|
|
5013
|
-
overridden: false,
|
|
5014
|
-
rendered: null,
|
|
5015
|
-
warnings: []
|
|
5016
|
-
};
|
|
5017
|
-
}
|
|
5018
|
-
return runRendererOverride(activeExtensionRenderers, {
|
|
5019
|
-
format,
|
|
5020
|
-
command: activeCommandContext?.command,
|
|
5021
|
-
args: activeCommandContext ? [...activeCommandContext.args] : [],
|
|
5022
|
-
options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
|
|
5023
|
-
global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
|
|
5024
|
-
pm_root: activeCommandContext?.pm_root,
|
|
5025
|
-
result
|
|
5026
|
-
});
|
|
5027
|
-
}
|
|
5028
|
-
function buildServiceContext(service, payload) {
|
|
5029
|
-
return {
|
|
5030
|
-
service,
|
|
5031
|
-
command: activeCommandContext?.command,
|
|
5032
|
-
args: activeCommandContext ? [...activeCommandContext.args] : [],
|
|
5033
|
-
options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
|
|
5034
|
-
global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
|
|
5035
|
-
pm_root: activeCommandContext?.pm_root,
|
|
5036
|
-
payload
|
|
5037
|
-
};
|
|
5038
|
-
}
|
|
5039
|
-
async function runActiveServiceOverride(service, payload) {
|
|
5040
|
-
if (!activeExtensionServices) {
|
|
5041
|
-
return {
|
|
5042
|
-
handled: false,
|
|
5043
|
-
result: payload,
|
|
5044
|
-
warnings: []
|
|
5045
|
-
};
|
|
5046
|
-
}
|
|
5047
|
-
return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));
|
|
5048
|
-
}
|
|
5049
|
-
function runActiveServiceOverrideSync(service, payload) {
|
|
5050
|
-
if (!activeExtensionServices) {
|
|
5051
|
-
return {
|
|
5052
|
-
handled: false,
|
|
5053
|
-
result: payload,
|
|
5054
|
-
warnings: []
|
|
5055
|
-
};
|
|
5056
|
-
}
|
|
5057
|
-
return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));
|
|
5058
|
-
}
|
|
5059
|
-
|
|
5060
4906
|
// dist/core/schema/runtime-schema.js
|
|
5061
4907
|
import path6 from "node:path";
|
|
5062
4908
|
var DEFAULT_RUNTIME_SCHEMA_FILE_PATHS = Object.freeze({
|
|
@@ -5635,1622 +5481,6 @@ function statusIsTerminal(status, registry) {
|
|
|
5635
5481
|
return registry.terminal_statuses.has(normalized);
|
|
5636
5482
|
}
|
|
5637
5483
|
|
|
5638
|
-
// dist/core/shared/errors.js
|
|
5639
|
-
var PmCliError = class extends Error {
|
|
5640
|
-
exitCode;
|
|
5641
|
-
context;
|
|
5642
|
-
constructor(message, exitCode, context = {}) {
|
|
5643
|
-
super(message);
|
|
5644
|
-
this.name = "PmCliError";
|
|
5645
|
-
this.exitCode = exitCode;
|
|
5646
|
-
this.context = context;
|
|
5647
|
-
}
|
|
5648
|
-
};
|
|
5649
|
-
|
|
5650
|
-
// dist/core/shared/serialization.js
|
|
5651
|
-
import crypto2 from "node:crypto";
|
|
5652
|
-
function sortScalarValue(value) {
|
|
5653
|
-
if (value === null)
|
|
5654
|
-
return null;
|
|
5655
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
5656
|
-
return value;
|
|
5657
|
-
}
|
|
5658
|
-
if (typeof value === "bigint") {
|
|
5659
|
-
return value.toString();
|
|
5660
|
-
}
|
|
5661
|
-
if (value === void 0) {
|
|
5662
|
-
return "undefined";
|
|
5663
|
-
}
|
|
5664
|
-
if (typeof value === "symbol") {
|
|
5665
|
-
return value.toString();
|
|
5666
|
-
}
|
|
5667
|
-
if (typeof value === "function") {
|
|
5668
|
-
return `[function:${value.name || "anonymous"}]`;
|
|
5669
|
-
}
|
|
5670
|
-
return void 0;
|
|
5671
|
-
}
|
|
5672
|
-
function sortPlainObjectKeys(value) {
|
|
5673
|
-
const sortedKeys = Object.keys(value).sort();
|
|
5674
|
-
const result = {};
|
|
5675
|
-
for (const key of sortedKeys) {
|
|
5676
|
-
const nested = value[key];
|
|
5677
|
-
if (nested === void 0) {
|
|
5678
|
-
continue;
|
|
5679
|
-
}
|
|
5680
|
-
result[key] = sortObjectKeys(nested);
|
|
5681
|
-
}
|
|
5682
|
-
return result;
|
|
5683
|
-
}
|
|
5684
|
-
function sortObjectKeys(value) {
|
|
5685
|
-
const scalarValue = sortScalarValue(value);
|
|
5686
|
-
if (scalarValue !== void 0) {
|
|
5687
|
-
return scalarValue;
|
|
5688
|
-
}
|
|
5689
|
-
if (Array.isArray(value)) {
|
|
5690
|
-
return value.map((entry) => sortObjectKeys(entry));
|
|
5691
|
-
}
|
|
5692
|
-
if (value instanceof Date) {
|
|
5693
|
-
return value.toISOString();
|
|
5694
|
-
}
|
|
5695
|
-
const maybeJson = value;
|
|
5696
|
-
if (typeof maybeJson.toJSON === "function") {
|
|
5697
|
-
const normalized = maybeJson.toJSON();
|
|
5698
|
-
if (normalized !== value) {
|
|
5699
|
-
return sortObjectKeys(normalized);
|
|
5700
|
-
}
|
|
5701
|
-
}
|
|
5702
|
-
return sortPlainObjectKeys(value);
|
|
5703
|
-
}
|
|
5704
|
-
function stableStringify(value) {
|
|
5705
|
-
return JSON.stringify(sortObjectKeys(value));
|
|
5706
|
-
}
|
|
5707
|
-
function hasUnmatchedEquivalent(leftValue, rightValues, matchedIndexes, equals) {
|
|
5708
|
-
for (let index = 0; index < rightValues.length; index += 1) {
|
|
5709
|
-
if (matchedIndexes.has(index)) {
|
|
5710
|
-
continue;
|
|
5711
|
-
}
|
|
5712
|
-
if (equals(leftValue, rightValues[index])) {
|
|
5713
|
-
matchedIndexes.add(index);
|
|
5714
|
-
return true;
|
|
5715
|
-
}
|
|
5716
|
-
}
|
|
5717
|
-
return false;
|
|
5718
|
-
}
|
|
5719
|
-
function compareRegExpValues(left, right) {
|
|
5720
|
-
if (!(left instanceof RegExp || right instanceof RegExp)) {
|
|
5721
|
-
return void 0;
|
|
5722
|
-
}
|
|
5723
|
-
return left instanceof RegExp && right instanceof RegExp && left.toString() === right.toString();
|
|
5724
|
-
}
|
|
5725
|
-
function compareDateValues(left, right) {
|
|
5726
|
-
if (!(left instanceof Date || right instanceof Date)) {
|
|
5727
|
-
return void 0;
|
|
5728
|
-
}
|
|
5729
|
-
return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
|
|
5730
|
-
}
|
|
5731
|
-
function compareSetValues(left, right) {
|
|
5732
|
-
if (!(left instanceof Set || right instanceof Set)) {
|
|
5733
|
-
return void 0;
|
|
5734
|
-
}
|
|
5735
|
-
if (!(left instanceof Set && right instanceof Set) || left.size !== right.size) {
|
|
5736
|
-
return false;
|
|
5737
|
-
}
|
|
5738
|
-
const rightValues = [...right];
|
|
5739
|
-
const matched = /* @__PURE__ */ new Set();
|
|
5740
|
-
for (const leftValue of left) {
|
|
5741
|
-
if (!hasUnmatchedEquivalent(leftValue, rightValues, matched, stableValueEquals)) {
|
|
5742
|
-
return false;
|
|
5743
|
-
}
|
|
5744
|
-
}
|
|
5745
|
-
return true;
|
|
5746
|
-
}
|
|
5747
|
-
function compareMapValues(left, right) {
|
|
5748
|
-
if (!(left instanceof Map || right instanceof Map)) {
|
|
5749
|
-
return void 0;
|
|
5750
|
-
}
|
|
5751
|
-
if (!(left instanceof Map && right instanceof Map) || left.size !== right.size) {
|
|
5752
|
-
return false;
|
|
5753
|
-
}
|
|
5754
|
-
const rightEntries = [...right.entries()];
|
|
5755
|
-
const matched = /* @__PURE__ */ new Set();
|
|
5756
|
-
for (const [leftKey, leftValue] of left.entries()) {
|
|
5757
|
-
const leftEntry = [leftKey, leftValue];
|
|
5758
|
-
if (!hasUnmatchedEquivalent(leftEntry, rightEntries, matched, ([candidateKey, candidateValue], [rightKey, rightValue]) => stableValueEquals(candidateKey, rightKey) && stableValueEquals(candidateValue, rightValue))) {
|
|
5759
|
-
return false;
|
|
5760
|
-
}
|
|
5761
|
-
}
|
|
5762
|
-
return true;
|
|
5763
|
-
}
|
|
5764
|
-
function compareArrayValues(left, right) {
|
|
5765
|
-
if (!(Array.isArray(left) || Array.isArray(right))) {
|
|
5766
|
-
return void 0;
|
|
5767
|
-
}
|
|
5768
|
-
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
|
|
5769
|
-
return false;
|
|
5770
|
-
}
|
|
5771
|
-
return left.every((value, index) => stableValueEquals(value, right[index]));
|
|
5772
|
-
}
|
|
5773
|
-
function comparePlainObjectValues(left, right) {
|
|
5774
|
-
const leftKeys = Object.keys(left).sort((a, b) => a.localeCompare(b));
|
|
5775
|
-
const rightKeys = Object.keys(right).sort((a, b) => a.localeCompare(b));
|
|
5776
|
-
if (leftKeys.length !== rightKeys.length) {
|
|
5777
|
-
return false;
|
|
5778
|
-
}
|
|
5779
|
-
for (let index = 0; index < leftKeys.length; index += 1) {
|
|
5780
|
-
const leftKey = leftKeys[index];
|
|
5781
|
-
if (leftKey !== rightKeys[index]) {
|
|
5782
|
-
return false;
|
|
5783
|
-
}
|
|
5784
|
-
if (!stableValueEquals(left[leftKey], right[leftKey])) {
|
|
5785
|
-
return false;
|
|
5786
|
-
}
|
|
5787
|
-
}
|
|
5788
|
-
return true;
|
|
5789
|
-
}
|
|
5790
|
-
var SPECIALIZED_STABLE_VALUE_COMPARISONS = [
|
|
5791
|
-
compareRegExpValues,
|
|
5792
|
-
compareDateValues,
|
|
5793
|
-
compareSetValues,
|
|
5794
|
-
compareMapValues,
|
|
5795
|
-
compareArrayValues
|
|
5796
|
-
];
|
|
5797
|
-
function stableValueEquals(left, right) {
|
|
5798
|
-
if (Object.is(left, right)) {
|
|
5799
|
-
return true;
|
|
5800
|
-
}
|
|
5801
|
-
if (left === null || right === null || typeof left !== "object" || typeof right !== "object") {
|
|
5802
|
-
return false;
|
|
5803
|
-
}
|
|
5804
|
-
for (const compare of SPECIALIZED_STABLE_VALUE_COMPARISONS) {
|
|
5805
|
-
const result = compare(left, right);
|
|
5806
|
-
if (result !== void 0) {
|
|
5807
|
-
return result;
|
|
5808
|
-
}
|
|
5809
|
-
}
|
|
5810
|
-
return comparePlainObjectValues(left, right);
|
|
5811
|
-
}
|
|
5812
|
-
function sha256Hex(value) {
|
|
5813
|
-
return crypto2.createHash("sha256").update(value, "utf8").digest("hex");
|
|
5814
|
-
}
|
|
5815
|
-
function orderObject(value, keyOrder) {
|
|
5816
|
-
const ordered = {};
|
|
5817
|
-
for (const key of keyOrder) {
|
|
5818
|
-
const entry = value[key];
|
|
5819
|
-
if (entry !== void 0) {
|
|
5820
|
-
ordered[key] = entry;
|
|
5821
|
-
}
|
|
5822
|
-
}
|
|
5823
|
-
const unknownKeys = Object.keys(value).filter((key) => !keyOrder.includes(key)).sort((a, b) => a.localeCompare(b));
|
|
5824
|
-
for (const key of unknownKeys) {
|
|
5825
|
-
const entry = value[key];
|
|
5826
|
-
if (entry !== void 0) {
|
|
5827
|
-
ordered[key] = entry;
|
|
5828
|
-
}
|
|
5829
|
-
}
|
|
5830
|
-
return ordered;
|
|
5831
|
-
}
|
|
5832
|
-
|
|
5833
|
-
// dist/core/store/settings-validator.js
|
|
5834
|
-
var FAIL = { ok: false };
|
|
5835
|
-
var vString = (input) => typeof input === "string" ? { ok: true, value: input } : FAIL;
|
|
5836
|
-
var vBoolean = (input) => typeof input === "boolean" ? { ok: true, value: input } : FAIL;
|
|
5837
|
-
function vNumber(options = {}) {
|
|
5838
|
-
return (input) => {
|
|
5839
|
-
if (typeof input !== "number" || !Number.isFinite(input)) {
|
|
5840
|
-
return FAIL;
|
|
5841
|
-
}
|
|
5842
|
-
if (options.int && (!Number.isInteger(input) || !Number.isSafeInteger(input))) {
|
|
5843
|
-
return FAIL;
|
|
5844
|
-
}
|
|
5845
|
-
if (options.positive && input <= 0) {
|
|
5846
|
-
return FAIL;
|
|
5847
|
-
}
|
|
5848
|
-
return { ok: true, value: input };
|
|
5849
|
-
};
|
|
5850
|
-
}
|
|
5851
|
-
function vLiteral(...allowed) {
|
|
5852
|
-
return (input) => typeof input === "string" && allowed.includes(input) ? { ok: true, value: input } : FAIL;
|
|
5853
|
-
}
|
|
5854
|
-
function vArray(item) {
|
|
5855
|
-
return (input) => {
|
|
5856
|
-
if (!Array.isArray(input)) {
|
|
5857
|
-
return FAIL;
|
|
5858
|
-
}
|
|
5859
|
-
const value = [];
|
|
5860
|
-
for (const element of input) {
|
|
5861
|
-
const result = item(element);
|
|
5862
|
-
if (!result.ok) {
|
|
5863
|
-
return FAIL;
|
|
5864
|
-
}
|
|
5865
|
-
value.push(result.value);
|
|
5866
|
-
}
|
|
5867
|
-
return { ok: true, value };
|
|
5868
|
-
};
|
|
5869
|
-
}
|
|
5870
|
-
function vOptional(inner) {
|
|
5871
|
-
return (input) => input === void 0 ? { ok: true, value: void 0 } : inner(input);
|
|
5872
|
-
}
|
|
5873
|
-
function vRecordOf(valueCheck) {
|
|
5874
|
-
return (input) => {
|
|
5875
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
5876
|
-
return FAIL;
|
|
5877
|
-
}
|
|
5878
|
-
const value = {};
|
|
5879
|
-
for (const [key, raw] of Object.entries(input)) {
|
|
5880
|
-
const result = valueCheck(raw);
|
|
5881
|
-
if (!result.ok) {
|
|
5882
|
-
return FAIL;
|
|
5883
|
-
}
|
|
5884
|
-
value[key] = result.value;
|
|
5885
|
-
}
|
|
5886
|
-
return { ok: true, value };
|
|
5887
|
-
};
|
|
5888
|
-
}
|
|
5889
|
-
function vObject(shape) {
|
|
5890
|
-
return (input) => {
|
|
5891
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
5892
|
-
return FAIL;
|
|
5893
|
-
}
|
|
5894
|
-
const record = input;
|
|
5895
|
-
const value = {};
|
|
5896
|
-
for (const [key, check] of Object.entries(shape)) {
|
|
5897
|
-
const result = check(record[key]);
|
|
5898
|
-
if (!result.ok) {
|
|
5899
|
-
return FAIL;
|
|
5900
|
-
}
|
|
5901
|
-
if (result.value !== void 0) {
|
|
5902
|
-
value[key] = result.value;
|
|
5903
|
-
}
|
|
5904
|
-
}
|
|
5905
|
-
return { ok: true, value };
|
|
5906
|
-
};
|
|
5907
|
-
}
|
|
5908
|
-
var itemTypeOption = vObject({
|
|
5909
|
-
key: vString,
|
|
5910
|
-
values: vArray(vString),
|
|
5911
|
-
required: vOptional(vBoolean),
|
|
5912
|
-
aliases: vOptional(vArray(vString)),
|
|
5913
|
-
description: vOptional(vString)
|
|
5914
|
-
});
|
|
5915
|
-
var itemTypeCommandOptionPolicy = vObject({
|
|
5916
|
-
command: vLiteral("create", "update"),
|
|
5917
|
-
option: vString,
|
|
5918
|
-
required: vOptional(vBoolean),
|
|
5919
|
-
visible: vOptional(vBoolean),
|
|
5920
|
-
enabled: vOptional(vBoolean)
|
|
5921
|
-
});
|
|
5922
|
-
var itemTypeDefinition = vObject({
|
|
5923
|
-
name: vString,
|
|
5924
|
-
description: vOptional(vString),
|
|
5925
|
-
// Per-type create-time default status (config-driven); preserved so inline
|
|
5926
|
-
// settings.item_types.definitions behave identically to schema/types.json.
|
|
5927
|
-
default_status: vOptional(vString),
|
|
5928
|
-
folder: vOptional(vString),
|
|
5929
|
-
aliases: vOptional(vArray(vString)),
|
|
5930
|
-
required_create_fields: vOptional(vArray(vString)),
|
|
5931
|
-
required_create_repeatables: vOptional(vArray(vString)),
|
|
5932
|
-
options: vOptional(vArray(itemTypeOption)),
|
|
5933
|
-
command_option_policies: vOptional(vArray(itemTypeCommandOptionPolicy))
|
|
5934
|
-
});
|
|
5935
|
-
var runtimeStatusDefinition = vObject({
|
|
5936
|
-
id: vString,
|
|
5937
|
-
aliases: vOptional(vArray(vString)),
|
|
5938
|
-
roles: vOptional(vArray(vLiteral(...RUNTIME_STATUS_ROLE_VALUES))),
|
|
5939
|
-
description: vOptional(vString),
|
|
5940
|
-
order: vOptional(vNumber())
|
|
5941
|
-
});
|
|
5942
|
-
var runtimeFieldDefinition = vObject({
|
|
5943
|
-
key: vString,
|
|
5944
|
-
metadata_key: vOptional(vString),
|
|
5945
|
-
front_matter_key: vOptional(vString),
|
|
5946
|
-
cli_flag: vOptional(vString),
|
|
5947
|
-
cli_aliases: vOptional(vArray(vString)),
|
|
5948
|
-
description: vOptional(vString),
|
|
5949
|
-
type: vOptional(vLiteral(...RUNTIME_FIELD_TYPE_VALUES)),
|
|
5950
|
-
commands: vOptional(vArray(vLiteral(...RUNTIME_FIELD_COMMAND_VALUES))),
|
|
5951
|
-
repeatable: vOptional(vBoolean),
|
|
5952
|
-
required: vOptional(vBoolean),
|
|
5953
|
-
required_on_create: vOptional(vBoolean),
|
|
5954
|
-
required_types: vOptional(vArray(vString)),
|
|
5955
|
-
allow_unset: vOptional(vBoolean)
|
|
5956
|
-
});
|
|
5957
|
-
var statusTransitionPair = (input) => {
|
|
5958
|
-
if (!Array.isArray(input) || input.length !== 2) {
|
|
5959
|
-
return FAIL;
|
|
5960
|
-
}
|
|
5961
|
-
const [from, to] = input;
|
|
5962
|
-
if (typeof from !== "string" || typeof to !== "string") {
|
|
5963
|
-
return FAIL;
|
|
5964
|
-
}
|
|
5965
|
-
return { ok: true, value: [from, to] };
|
|
5966
|
-
};
|
|
5967
|
-
var typeWorkflowDefinition = vObject({
|
|
5968
|
-
type: vString,
|
|
5969
|
-
allowed_transitions: vArray(statusTransitionPair)
|
|
5970
|
-
});
|
|
5971
|
-
var runtimeSchemaSettings = vOptional(vObject({
|
|
5972
|
-
version: vOptional(vNumber({ int: true })),
|
|
5973
|
-
files: vOptional(vObject({
|
|
5974
|
-
types: vOptional(vString),
|
|
5975
|
-
statuses: vOptional(vString),
|
|
5976
|
-
fields: vOptional(vString),
|
|
5977
|
-
workflows: vOptional(vString)
|
|
5978
|
-
})),
|
|
5979
|
-
statuses: vOptional(vArray(runtimeStatusDefinition)),
|
|
5980
|
-
fields: vOptional(vArray(runtimeFieldDefinition)),
|
|
5981
|
-
workflow: vOptional(vObject({
|
|
5982
|
-
draft_status: vOptional(vString),
|
|
5983
|
-
open_status: vOptional(vString),
|
|
5984
|
-
in_progress_status: vOptional(vString),
|
|
5985
|
-
blocked_status: vOptional(vString),
|
|
5986
|
-
close_status: vOptional(vString),
|
|
5987
|
-
canceled_status: vOptional(vString)
|
|
5988
|
-
})),
|
|
5989
|
-
type_workflows: vOptional(vArray(typeWorkflowDefinition)),
|
|
5990
|
-
unknown_field_policy: vOptional(vLiteral(...RUNTIME_UNKNOWN_FIELD_POLICY_VALUES))
|
|
5991
|
-
}));
|
|
5992
|
-
var governanceSettings = vOptional(vObject({
|
|
5993
|
-
preset: vOptional(vLiteral(...GOVERNANCE_PRESET_VALUES)),
|
|
5994
|
-
ownership_enforcement: vOptional(vLiteral("none", "warn", "strict")),
|
|
5995
|
-
create_mode_default: vOptional(vLiteral("progressive", "strict")),
|
|
5996
|
-
close_validation_default: vOptional(vLiteral("off", "warn", "strict")),
|
|
5997
|
-
require_close_reason: vOptional(vBoolean),
|
|
5998
|
-
parent_reference: vOptional(vLiteral("warn", "strict_error")),
|
|
5999
|
-
metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
|
|
6000
|
-
force_required_for_stale_lock: vOptional(vBoolean),
|
|
6001
|
-
create_default_type: vOptional(vString),
|
|
6002
|
-
workflow_enforcement: vOptional(vLiteral("off", "warn", "strict"))
|
|
6003
|
-
}));
|
|
6004
|
-
var extensionPolicyOverride = vObject({
|
|
6005
|
-
name: vString,
|
|
6006
|
-
disabled: vOptional(vBoolean),
|
|
6007
|
-
require_trusted: vOptional(vBoolean),
|
|
6008
|
-
require_provenance: vOptional(vBoolean),
|
|
6009
|
-
sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
|
|
6010
|
-
allowed_capabilities: vOptional(vArray(vString)),
|
|
6011
|
-
blocked_capabilities: vOptional(vArray(vString)),
|
|
6012
|
-
allowed_surfaces: vOptional(vArray(vString)),
|
|
6013
|
-
blocked_surfaces: vOptional(vArray(vString)),
|
|
6014
|
-
allowed_commands: vOptional(vArray(vString)),
|
|
6015
|
-
blocked_commands: vOptional(vArray(vString)),
|
|
6016
|
-
allowed_actions: vOptional(vArray(vString)),
|
|
6017
|
-
blocked_actions: vOptional(vArray(vString)),
|
|
6018
|
-
allowed_services: vOptional(vArray(vString)),
|
|
6019
|
-
blocked_services: vOptional(vArray(vString))
|
|
6020
|
-
});
|
|
6021
|
-
var pmMaxVersionExceededModeLiteral = vLiteral("block", "warn");
|
|
6022
|
-
var pmMaxVersionExceededMode = (input) => typeof input === "string" ? pmMaxVersionExceededModeLiteral(input) : vObject({
|
|
6023
|
-
global: vOptional(pmMaxVersionExceededModeLiteral),
|
|
6024
|
-
project: vOptional(pmMaxVersionExceededModeLiteral)
|
|
6025
|
-
})(input);
|
|
6026
|
-
var extensionPolicy = vOptional(vObject({
|
|
6027
|
-
mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
6028
|
-
trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
6029
|
-
pm_max_version_exceeded_mode: vOptional(pmMaxVersionExceededMode),
|
|
6030
|
-
require_provenance: vOptional(vBoolean),
|
|
6031
|
-
trusted_extensions: vOptional(vArray(vString)),
|
|
6032
|
-
default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
|
|
6033
|
-
allowed_extensions: vOptional(vArray(vString)),
|
|
6034
|
-
blocked_extensions: vOptional(vArray(vString)),
|
|
6035
|
-
allowed_capabilities: vOptional(vArray(vString)),
|
|
6036
|
-
blocked_capabilities: vOptional(vArray(vString)),
|
|
6037
|
-
allowed_surfaces: vOptional(vArray(vString)),
|
|
6038
|
-
blocked_surfaces: vOptional(vArray(vString)),
|
|
6039
|
-
allowed_commands: vOptional(vArray(vString)),
|
|
6040
|
-
blocked_commands: vOptional(vArray(vString)),
|
|
6041
|
-
allowed_actions: vOptional(vArray(vString)),
|
|
6042
|
-
blocked_actions: vOptional(vArray(vString)),
|
|
6043
|
-
allowed_services: vOptional(vArray(vString)),
|
|
6044
|
-
blocked_services: vOptional(vArray(vString)),
|
|
6045
|
-
extension_overrides: vOptional(vArray(extensionPolicyOverride))
|
|
6046
|
-
}));
|
|
6047
|
-
var settingsCheck = vObject({
|
|
6048
|
-
version: vNumber({ int: true }),
|
|
6049
|
-
id_prefix: vString,
|
|
6050
|
-
author_default: vString,
|
|
6051
|
-
item_format: vOptional(vLiteral("toon", "json_markdown")),
|
|
6052
|
-
locks: vObject({ ttl_seconds: vNumber({ int: true }) }),
|
|
6053
|
-
checkpoints: vOptional(vObject({ retention_days: vOptional(vNumber({ int: true, positive: true })) })),
|
|
6054
|
-
output: vObject({ default_format: vLiteral("toon", "json") }),
|
|
6055
|
-
history: vOptional(vObject({
|
|
6056
|
-
missing_stream: vLiteral("auto_create", "strict_error"),
|
|
6057
|
-
compact_policy: vOptional(vObject({
|
|
6058
|
-
enabled: vOptional(vBoolean),
|
|
6059
|
-
max_entries: vOptional(vNumber({ int: true, positive: true })),
|
|
6060
|
-
trigger: vOptional(vLiteral("health_warn", "auto"))
|
|
6061
|
-
}))
|
|
6062
|
-
})),
|
|
6063
|
-
validation: vOptional(vObject({
|
|
6064
|
-
sprint_release_format: vLiteral("warn", "strict_error"),
|
|
6065
|
-
parent_reference: vOptional(vLiteral("warn", "strict_error")),
|
|
6066
|
-
metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
|
|
6067
|
-
metadata_required_fields: vOptional(vArray(vString)),
|
|
6068
|
-
lifecycle_stale_blocker_reason_patterns: vOptional(vArray(vString)),
|
|
6069
|
-
lifecycle_closure_like_blocked_reason_patterns: vOptional(vArray(vString)),
|
|
6070
|
-
lifecycle_closure_like_resolution_patterns: vOptional(vArray(vString)),
|
|
6071
|
-
lifecycle_closure_like_actual_result_patterns: vOptional(vArray(vString)),
|
|
6072
|
-
estimate_defaults_by_type: vOptional(vRecordOf(vNumber({ int: true, positive: true })))
|
|
6073
|
-
})),
|
|
6074
|
-
governance: governanceSettings,
|
|
6075
|
-
workflow: vOptional(vObject({ definition_of_done: vArray(vString) })),
|
|
6076
|
-
testing: vOptional(vObject({ record_results_to_items: vBoolean })),
|
|
6077
|
-
telemetry: vOptional(vObject({
|
|
6078
|
-
enabled: vBoolean,
|
|
6079
|
-
first_run_prompt_completed: vOptional(vBoolean),
|
|
6080
|
-
capture_level: vOptional(vLiteral("minimal", "redacted", "max")),
|
|
6081
|
-
endpoint: vOptional(vString),
|
|
6082
|
-
installation_id: vOptional(vString),
|
|
6083
|
-
retention_days: vOptional(vNumber({ int: true, positive: true }))
|
|
6084
|
-
})),
|
|
6085
|
-
agent_guidance: vOptional(vObject({
|
|
6086
|
-
prompt_completed: vOptional(vBoolean),
|
|
6087
|
-
declined: vOptional(vBoolean),
|
|
6088
|
-
declined_at: vOptional(vString),
|
|
6089
|
-
template_version: vOptional(vNumber({ int: true, positive: true })),
|
|
6090
|
-
last_checked_files: vOptional(vArray(vString))
|
|
6091
|
-
})),
|
|
6092
|
-
item_types: vOptional(vObject({ definitions: vArray(itemTypeDefinition) })),
|
|
6093
|
-
schema: runtimeSchemaSettings,
|
|
6094
|
-
context: vOptional(vObject({
|
|
6095
|
-
default_depth: vOptional(vLiteral("brief", "standard", "deep")),
|
|
6096
|
-
activity_limit: vOptional(vNumber({ int: true, positive: true })),
|
|
6097
|
-
stale_threshold_days: vOptional(vNumber({ int: true, positive: true })),
|
|
6098
|
-
sections: vOptional(vObject({
|
|
6099
|
-
hierarchy: vOptional(vBoolean),
|
|
6100
|
-
activity: vOptional(vBoolean),
|
|
6101
|
-
progress: vOptional(vBoolean),
|
|
6102
|
-
recently_created: vOptional(vBoolean),
|
|
6103
|
-
unparented: vOptional(vBoolean),
|
|
6104
|
-
blockers: vOptional(vBoolean),
|
|
6105
|
-
files: vOptional(vBoolean),
|
|
6106
|
-
workload: vOptional(vBoolean),
|
|
6107
|
-
staleness: vOptional(vBoolean),
|
|
6108
|
-
tests: vOptional(vBoolean)
|
|
6109
|
-
}))
|
|
6110
|
-
})),
|
|
6111
|
-
extensions: vObject({
|
|
6112
|
-
enabled: vArray(vString),
|
|
6113
|
-
disabled: vArray(vString),
|
|
6114
|
-
policy: extensionPolicy
|
|
6115
|
-
}),
|
|
6116
|
-
search: vObject({
|
|
6117
|
-
score_threshold: vNumber(),
|
|
6118
|
-
hybrid_semantic_weight: vOptional(vNumber()),
|
|
6119
|
-
max_results: vNumber({ int: true }),
|
|
6120
|
-
embedding_model: vString,
|
|
6121
|
-
embedding_corpus_max_characters: vOptional(vNumber()),
|
|
6122
|
-
embedding_batch_size: vNumber({ int: true }),
|
|
6123
|
-
embedding_timeout_ms: vOptional(vNumber({ int: true })),
|
|
6124
|
-
scanner_max_batch_retries: vNumber({ int: true }),
|
|
6125
|
-
provider: vOptional(vString),
|
|
6126
|
-
corpus_fields: vOptional(vArray(vString)),
|
|
6127
|
-
mutation_refresh_policy: vOptional(vLiteral("cache_only", "semantic_configured", "semantic_auto")),
|
|
6128
|
-
query_expansion: vOptional(vObject({
|
|
6129
|
-
enabled: vOptional(vBoolean),
|
|
6130
|
-
provider: vOptional(vString)
|
|
6131
|
-
})),
|
|
6132
|
-
rerank: vOptional(vObject({
|
|
6133
|
-
enabled: vOptional(vBoolean),
|
|
6134
|
-
model: vOptional(vString),
|
|
6135
|
-
top_k: vOptional(vNumber({ int: true, positive: true }))
|
|
6136
|
-
})),
|
|
6137
|
-
// pm-75k9: offline BM25 tuning. Unlike `search.tuning` (intentionally
|
|
6138
|
-
// stripped for legacy zod parity), bm25 is validated so it persists across
|
|
6139
|
-
// writeSettings round-trips — these knobs must survive to take effect.
|
|
6140
|
-
bm25: vOptional(vObject({
|
|
6141
|
-
k1: vOptional(vNumber()),
|
|
6142
|
-
b: vOptional(vNumber())
|
|
6143
|
-
}))
|
|
6144
|
-
}),
|
|
6145
|
-
providers: vObject({
|
|
6146
|
-
openai: vObject({ base_url: vString, api_key: vString, model: vString }),
|
|
6147
|
-
ollama: vObject({ base_url: vString, model: vString })
|
|
6148
|
-
}),
|
|
6149
|
-
vector_store: vObject({
|
|
6150
|
-
adapter: vOptional(vString),
|
|
6151
|
-
collection_name: vOptional(vString),
|
|
6152
|
-
qdrant: vObject({ url: vString, api_key: vString }),
|
|
6153
|
-
lancedb: vObject({ path: vString })
|
|
6154
|
-
})
|
|
6155
|
-
});
|
|
6156
|
-
function validateSettings(raw) {
|
|
6157
|
-
const result = settingsCheck(raw);
|
|
6158
|
-
if (!result.ok) {
|
|
6159
|
-
return { success: false };
|
|
6160
|
-
}
|
|
6161
|
-
return { success: true, data: result.value };
|
|
6162
|
-
}
|
|
6163
|
-
|
|
6164
|
-
// dist/core/validate/estimate-defaults.js
|
|
6165
|
-
var DEFAULT_ESTIMATE_MINUTES_BY_TYPE = {
|
|
6166
|
-
Epic: 2880,
|
|
6167
|
-
Feature: 480,
|
|
6168
|
-
Story: 480,
|
|
6169
|
-
Milestone: 2880,
|
|
6170
|
-
Task: 120,
|
|
6171
|
-
Issue: 60,
|
|
6172
|
-
Bug: 60,
|
|
6173
|
-
Chore: 30,
|
|
6174
|
-
Decision: 15,
|
|
6175
|
-
Plan: 120
|
|
6176
|
-
};
|
|
6177
|
-
var FALLBACK_ESTIMATE_MINUTES = 120;
|
|
6178
|
-
function isHonoredMinutes(value) {
|
|
6179
|
-
return typeof value === "number" && Number.isFinite(value) && value > 0;
|
|
6180
|
-
}
|
|
6181
|
-
function toLowercasedLookup(source) {
|
|
6182
|
-
const lookup = /* @__PURE__ */ new Map();
|
|
6183
|
-
for (const [key, value] of Object.entries(source)) {
|
|
6184
|
-
lookup.set(key.toLowerCase(), value);
|
|
6185
|
-
}
|
|
6186
|
-
return lookup;
|
|
6187
|
-
}
|
|
6188
|
-
var BUILTIN_LOWERCASED_LOOKUP = toLowercasedLookup(DEFAULT_ESTIMATE_MINUTES_BY_TYPE);
|
|
6189
|
-
var OVERRIDE_LOOKUP_CACHE = /* @__PURE__ */ new WeakMap();
|
|
6190
|
-
function lowercasedOverrideLookup(overrides) {
|
|
6191
|
-
const cached = OVERRIDE_LOOKUP_CACHE.get(overrides);
|
|
6192
|
-
if (cached) {
|
|
6193
|
-
return cached;
|
|
6194
|
-
}
|
|
6195
|
-
const lookup = toLowercasedLookup(overrides);
|
|
6196
|
-
OVERRIDE_LOOKUP_CACHE.set(overrides, lookup);
|
|
6197
|
-
return lookup;
|
|
6198
|
-
}
|
|
6199
|
-
function resolveEstimateDefaultMinutes(type, overrides) {
|
|
6200
|
-
const key = (type ?? "").trim().toLowerCase();
|
|
6201
|
-
if (key.length === 0) {
|
|
6202
|
-
return FALLBACK_ESTIMATE_MINUTES;
|
|
6203
|
-
}
|
|
6204
|
-
if (overrides) {
|
|
6205
|
-
const overrideValue = lowercasedOverrideLookup(overrides).get(key);
|
|
6206
|
-
if (isHonoredMinutes(overrideValue)) {
|
|
6207
|
-
return Math.floor(overrideValue);
|
|
6208
|
-
}
|
|
6209
|
-
}
|
|
6210
|
-
const builtinValue = BUILTIN_LOWERCASED_LOOKUP.get(key);
|
|
6211
|
-
if (isHonoredMinutes(builtinValue)) {
|
|
6212
|
-
return Math.floor(builtinValue);
|
|
6213
|
-
}
|
|
6214
|
-
return FALLBACK_ESTIMATE_MINUTES;
|
|
6215
|
-
}
|
|
6216
|
-
function normalizeEstimateDefaultOverrides(raw) {
|
|
6217
|
-
const normalized = {};
|
|
6218
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
|
|
6219
|
-
return normalized;
|
|
6220
|
-
}
|
|
6221
|
-
for (const [rawKey, rawValue] of Object.entries(raw)) {
|
|
6222
|
-
const key = rawKey.trim();
|
|
6223
|
-
if (key.length === 0 || !isHonoredMinutes(rawValue)) {
|
|
6224
|
-
continue;
|
|
6225
|
-
}
|
|
6226
|
-
normalized[key] = Math.floor(rawValue);
|
|
6227
|
-
}
|
|
6228
|
-
return normalized;
|
|
6229
|
-
}
|
|
6230
|
-
|
|
6231
|
-
// dist/core/store/settings-read-cache.js
|
|
6232
|
-
import { stat } from "node:fs/promises";
|
|
6233
|
-
var settingsReadCacheByRoot = /* @__PURE__ */ new Map();
|
|
6234
|
-
function normalizeTrackedPaths(paths) {
|
|
6235
|
-
return [...new Set(paths.map((pathValue) => pathValue.trim()).filter((pathValue) => pathValue.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6236
|
-
}
|
|
6237
|
-
async function readPathSignature(targetPath) {
|
|
6238
|
-
try {
|
|
6239
|
-
const targetStats = await stat(targetPath);
|
|
6240
|
-
return {
|
|
6241
|
-
path: targetPath,
|
|
6242
|
-
mtime_ms: targetStats.mtimeMs,
|
|
6243
|
-
size: targetStats.size
|
|
6244
|
-
};
|
|
6245
|
-
} catch {
|
|
6246
|
-
return {
|
|
6247
|
-
path: targetPath,
|
|
6248
|
-
mtime_ms: null,
|
|
6249
|
-
size: null
|
|
6250
|
-
};
|
|
6251
|
-
}
|
|
6252
|
-
}
|
|
6253
|
-
async function collectSettingsReadCacheSignatures(paths) {
|
|
6254
|
-
const normalizedPaths = normalizeTrackedPaths(paths);
|
|
6255
|
-
const signatures = await Promise.all(normalizedPaths.map((targetPath) => readPathSignature(targetPath)));
|
|
6256
|
-
signatures.sort((left, right) => left.path.localeCompare(right.path));
|
|
6257
|
-
return signatures;
|
|
6258
|
-
}
|
|
6259
|
-
function settingsReadCacheSignaturesEqual(left, right) {
|
|
6260
|
-
if (left.length !== right.length) {
|
|
6261
|
-
return false;
|
|
6262
|
-
}
|
|
6263
|
-
for (let index = 0; index < left.length; index += 1) {
|
|
6264
|
-
const leftEntry = left[index];
|
|
6265
|
-
const rightEntry = right[index];
|
|
6266
|
-
if (leftEntry.path !== rightEntry.path || leftEntry.mtime_ms !== rightEntry.mtime_ms || leftEntry.size !== rightEntry.size) {
|
|
6267
|
-
return false;
|
|
6268
|
-
}
|
|
6269
|
-
}
|
|
6270
|
-
return true;
|
|
6271
|
-
}
|
|
6272
|
-
function getSettingsReadCacheEntry(pmRoot) {
|
|
6273
|
-
return settingsReadCacheByRoot.get(pmRoot);
|
|
6274
|
-
}
|
|
6275
|
-
function setSettingsReadCacheEntry(pmRoot, entry) {
|
|
6276
|
-
const normalizedTrackedPaths = normalizeTrackedPaths(entry.tracked_paths);
|
|
6277
|
-
const normalizedSignatures = [...entry.signatures].map((signature) => ({
|
|
6278
|
-
path: signature.path,
|
|
6279
|
-
mtime_ms: signature.mtime_ms,
|
|
6280
|
-
size: signature.size
|
|
6281
|
-
})).sort((left, right) => left.path.localeCompare(right.path));
|
|
6282
|
-
settingsReadCacheByRoot.set(pmRoot, {
|
|
6283
|
-
tracked_paths: normalizedTrackedPaths,
|
|
6284
|
-
signatures: normalizedSignatures,
|
|
6285
|
-
value: entry.value
|
|
6286
|
-
});
|
|
6287
|
-
}
|
|
6288
|
-
function clearSettingsReadCache(pmRoot) {
|
|
6289
|
-
if (pmRoot) {
|
|
6290
|
-
settingsReadCacheByRoot.delete(pmRoot);
|
|
6291
|
-
return;
|
|
6292
|
-
}
|
|
6293
|
-
settingsReadCacheByRoot.clear();
|
|
6294
|
-
}
|
|
6295
|
-
|
|
6296
|
-
// dist/core/store/settings.js
|
|
6297
|
-
var SETTINGS_WRITE_OP = "settings:write";
|
|
6298
|
-
var SETTINGS_PERSIST_SOURCE_SYMBOL = /* @__PURE__ */ Symbol("pm.settings.persist_source");
|
|
6299
|
-
var MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;
|
|
6300
|
-
function resolveGovernanceKnobsFromPreset(preset) {
|
|
6301
|
-
return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);
|
|
6302
|
-
}
|
|
6303
|
-
function normalizeGovernancePreset(value) {
|
|
6304
|
-
if (value === "minimal" || value === "default" || value === "strict" || value === "custom") {
|
|
6305
|
-
return value;
|
|
6306
|
-
}
|
|
6307
|
-
return SETTINGS_DEFAULTS.governance.preset;
|
|
6308
|
-
}
|
|
6309
|
-
function withGovernanceExtras(base, governance) {
|
|
6310
|
-
const createDefaultType = typeof governance.create_default_type === "string" ? governance.create_default_type.trim() : void 0;
|
|
6311
|
-
if (createDefaultType && createDefaultType.length > 0) {
|
|
6312
|
-
base.create_default_type = createDefaultType;
|
|
6313
|
-
}
|
|
6314
|
-
if (governance.workflow_enforcement === "off" || governance.workflow_enforcement === "warn" || governance.workflow_enforcement === "strict") {
|
|
6315
|
-
base.workflow_enforcement = governance.workflow_enforcement;
|
|
6316
|
-
}
|
|
6317
|
-
if (governance.require_close_reason === false) {
|
|
6318
|
-
base.require_close_reason = false;
|
|
6319
|
-
}
|
|
6320
|
-
return base;
|
|
6321
|
-
}
|
|
6322
|
-
function normalizeGovernanceForPersist(governance) {
|
|
6323
|
-
if (governance.preset === "custom") {
|
|
6324
|
-
return withGovernanceExtras({
|
|
6325
|
-
preset: "custom",
|
|
6326
|
-
ownership_enforcement: governance.ownership_enforcement,
|
|
6327
|
-
create_mode_default: governance.create_mode_default,
|
|
6328
|
-
close_validation_default: governance.close_validation_default,
|
|
6329
|
-
parent_reference: governance.parent_reference,
|
|
6330
|
-
metadata_profile: governance.metadata_profile,
|
|
6331
|
-
force_required_for_stale_lock: governance.force_required_for_stale_lock
|
|
6332
|
-
}, governance);
|
|
6333
|
-
}
|
|
6334
|
-
return withGovernanceExtras({
|
|
6335
|
-
preset: governance.preset
|
|
6336
|
-
}, governance);
|
|
6337
|
-
}
|
|
6338
|
-
function resolveGovernanceExtras(rawGovernance) {
|
|
6339
|
-
const createDefaultType = typeof rawGovernance.create_default_type === "string" ? rawGovernance.create_default_type.trim() : void 0;
|
|
6340
|
-
const extras = {};
|
|
6341
|
-
if (createDefaultType && createDefaultType.length > 0) {
|
|
6342
|
-
extras.create_default_type = createDefaultType;
|
|
6343
|
-
}
|
|
6344
|
-
if (rawGovernance.workflow_enforcement === "off" || rawGovernance.workflow_enforcement === "warn" || rawGovernance.workflow_enforcement === "strict") {
|
|
6345
|
-
extras.workflow_enforcement = rawGovernance.workflow_enforcement;
|
|
6346
|
-
}
|
|
6347
|
-
if (typeof rawGovernance.require_close_reason === "boolean") {
|
|
6348
|
-
extras.require_close_reason = rawGovernance.require_close_reason;
|
|
6349
|
-
}
|
|
6350
|
-
return extras;
|
|
6351
|
-
}
|
|
6352
|
-
function resolveGovernanceKnobs(settings) {
|
|
6353
|
-
const rawGovernance = settings.governance ?? {};
|
|
6354
|
-
const preset = normalizeGovernancePreset(rawGovernance.preset);
|
|
6355
|
-
const extras = resolveGovernanceExtras(rawGovernance);
|
|
6356
|
-
if (preset === "custom") {
|
|
6357
|
-
const baseline2 = resolveGovernanceKnobsFromPreset("default");
|
|
6358
|
-
const requireCloseReason2 = extras.require_close_reason ?? baseline2.require_close_reason;
|
|
6359
|
-
return {
|
|
6360
|
-
preset,
|
|
6361
|
-
ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline2.ownership_enforcement,
|
|
6362
|
-
create_mode_default: rawGovernance.create_mode_default ?? baseline2.create_mode_default,
|
|
6363
|
-
close_validation_default: rawGovernance.close_validation_default ?? baseline2.close_validation_default,
|
|
6364
|
-
parent_reference: rawGovernance.parent_reference ?? baseline2.parent_reference,
|
|
6365
|
-
metadata_profile: rawGovernance.metadata_profile ?? baseline2.metadata_profile,
|
|
6366
|
-
force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline2.force_required_for_stale_lock,
|
|
6367
|
-
...extras,
|
|
6368
|
-
require_close_reason: requireCloseReason2
|
|
6369
|
-
};
|
|
6370
|
-
}
|
|
6371
|
-
const baseline = resolveGovernanceKnobsFromPreset(preset);
|
|
6372
|
-
const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;
|
|
6373
|
-
return {
|
|
6374
|
-
preset,
|
|
6375
|
-
...baseline,
|
|
6376
|
-
...extras,
|
|
6377
|
-
require_close_reason: requireCloseReason
|
|
6378
|
-
};
|
|
6379
|
-
}
|
|
6380
|
-
function cloneDefaults() {
|
|
6381
|
-
return structuredClone(SETTINGS_DEFAULTS);
|
|
6382
|
-
}
|
|
6383
|
-
function normalizeSearchMutationRefreshPolicy(value) {
|
|
6384
|
-
if (value === "cache_only" || value === "semantic_configured" || value === "semantic_auto") {
|
|
6385
|
-
return value;
|
|
6386
|
-
}
|
|
6387
|
-
return SETTINGS_DEFAULTS.search.mutation_refresh_policy;
|
|
6388
|
-
}
|
|
6389
|
-
function normalizeSearchQueryExpansionEnabled(value) {
|
|
6390
|
-
if (typeof value === "boolean") {
|
|
6391
|
-
return value;
|
|
6392
|
-
}
|
|
6393
|
-
return SETTINGS_DEFAULTS.search.query_expansion.enabled;
|
|
6394
|
-
}
|
|
6395
|
-
function normalizeSearchQueryExpansionProvider(value) {
|
|
6396
|
-
if (typeof value !== "string") {
|
|
6397
|
-
return SETTINGS_DEFAULTS.search.query_expansion.provider;
|
|
6398
|
-
}
|
|
6399
|
-
return value.trim();
|
|
6400
|
-
}
|
|
6401
|
-
function normalizeSearchRerankEnabled(value) {
|
|
6402
|
-
if (typeof value === "boolean") {
|
|
6403
|
-
return value;
|
|
6404
|
-
}
|
|
6405
|
-
return SETTINGS_DEFAULTS.search.rerank.enabled;
|
|
6406
|
-
}
|
|
6407
|
-
function normalizeSearchRerankModel(value) {
|
|
6408
|
-
if (typeof value !== "string") {
|
|
6409
|
-
return SETTINGS_DEFAULTS.search.rerank.model;
|
|
6410
|
-
}
|
|
6411
|
-
return value.trim();
|
|
6412
|
-
}
|
|
6413
|
-
function normalizeSearchRerankTopK(value) {
|
|
6414
|
-
if (typeof value === "number" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {
|
|
6415
|
-
return value;
|
|
6416
|
-
}
|
|
6417
|
-
return SETTINGS_DEFAULTS.search.rerank.top_k;
|
|
6418
|
-
}
|
|
6419
|
-
function normalizeVectorStoreCollectionName(value) {
|
|
6420
|
-
if (typeof value !== "string") {
|
|
6421
|
-
return SETTINGS_DEFAULTS.vector_store.collection_name;
|
|
6422
|
-
}
|
|
6423
|
-
const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, "_");
|
|
6424
|
-
const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);
|
|
6425
|
-
return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;
|
|
6426
|
-
}
|
|
6427
|
-
function buildSettingsPersistSourceSnapshot(parsedSettings, runtimeSettings) {
|
|
6428
|
-
const sourceSchema = parsedSettings.schema;
|
|
6429
|
-
const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : void 0;
|
|
6430
|
-
const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : void 0;
|
|
6431
|
-
const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : void 0;
|
|
6432
|
-
return {
|
|
6433
|
-
has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),
|
|
6434
|
-
source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),
|
|
6435
|
-
has_source_schema_statuses: sourceStatuses !== void 0,
|
|
6436
|
-
source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],
|
|
6437
|
-
has_source_schema_fields: sourceFields !== void 0,
|
|
6438
|
-
source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],
|
|
6439
|
-
has_source_schema_type_workflows: sourceTypeWorkflows !== void 0,
|
|
6440
|
-
source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],
|
|
6441
|
-
runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),
|
|
6442
|
-
runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),
|
|
6443
|
-
runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),
|
|
6444
|
-
runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? [])
|
|
6445
|
-
};
|
|
6446
|
-
}
|
|
6447
|
-
function attachSettingsPersistSourceSnapshot(settings, source) {
|
|
6448
|
-
Object.defineProperty(settings, SETTINGS_PERSIST_SOURCE_SYMBOL, {
|
|
6449
|
-
value: source,
|
|
6450
|
-
writable: true,
|
|
6451
|
-
configurable: true,
|
|
6452
|
-
enumerable: false
|
|
6453
|
-
});
|
|
6454
|
-
}
|
|
6455
|
-
function getSettingsPersistSourceSnapshot(settings) {
|
|
6456
|
-
const candidate = settings[SETTINGS_PERSIST_SOURCE_SYMBOL];
|
|
6457
|
-
if (!candidate || typeof candidate !== "object") {
|
|
6458
|
-
return void 0;
|
|
6459
|
-
}
|
|
6460
|
-
return candidate;
|
|
6461
|
-
}
|
|
6462
|
-
function cloneSettingsReadResult(result) {
|
|
6463
|
-
const clonedSettings = structuredClone(result.settings);
|
|
6464
|
-
const persistSource = getSettingsPersistSourceSnapshot(result.settings);
|
|
6465
|
-
if (persistSource) {
|
|
6466
|
-
attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));
|
|
6467
|
-
}
|
|
6468
|
-
return {
|
|
6469
|
-
settings: clonedSettings,
|
|
6470
|
-
metadata: {
|
|
6471
|
-
has_explicit_item_format: result.metadata.has_explicit_item_format
|
|
6472
|
-
},
|
|
6473
|
-
warnings: [...result.warnings]
|
|
6474
|
-
};
|
|
6475
|
-
}
|
|
6476
|
-
function resolveSettingsReadTrackedPaths(pmRoot, schema, settingsPath) {
|
|
6477
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(schema);
|
|
6478
|
-
return [
|
|
6479
|
-
settingsPath,
|
|
6480
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),
|
|
6481
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),
|
|
6482
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),
|
|
6483
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows)
|
|
6484
|
-
];
|
|
6485
|
-
}
|
|
6486
|
-
async function cacheSettingsReadResult(pmRoot, trackedPaths, result) {
|
|
6487
|
-
const signatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
6488
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
6489
|
-
tracked_paths: trackedPaths,
|
|
6490
|
-
signatures,
|
|
6491
|
-
value: cloneSettingsReadResult(result)
|
|
6492
|
-
});
|
|
6493
|
-
}
|
|
6494
|
-
async function cacheSettingsReadResultSafe(pmRoot, trackedPaths, result) {
|
|
6495
|
-
try {
|
|
6496
|
-
await cacheSettingsReadResult(pmRoot, trackedPaths, result);
|
|
6497
|
-
} catch {
|
|
6498
|
-
clearSettingsReadCache(pmRoot);
|
|
6499
|
-
}
|
|
6500
|
-
}
|
|
6501
|
-
function findSettingsReadCacheSignature(signatures, targetPath) {
|
|
6502
|
-
return signatures.find((signature) => signature.path === targetPath);
|
|
6503
|
-
}
|
|
6504
|
-
function selectedSettingsReadCacheSignaturesEqual(before, after, targetPaths) {
|
|
6505
|
-
for (const targetPath of targetPaths) {
|
|
6506
|
-
const beforeSignature = findSettingsReadCacheSignature(before, targetPath);
|
|
6507
|
-
const afterSignature = findSettingsReadCacheSignature(after, targetPath);
|
|
6508
|
-
if (!beforeSignature || !afterSignature || !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])) {
|
|
6509
|
-
return false;
|
|
6510
|
-
}
|
|
6511
|
-
}
|
|
6512
|
-
return true;
|
|
6513
|
-
}
|
|
6514
|
-
async function cacheSettingsReadResultIfStable(pmRoot, trackedPaths, result, stableSignatures, stablePaths) {
|
|
6515
|
-
try {
|
|
6516
|
-
const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
6517
|
-
if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {
|
|
6518
|
-
clearSettingsReadCache(pmRoot);
|
|
6519
|
-
return;
|
|
6520
|
-
}
|
|
6521
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
6522
|
-
tracked_paths: trackedPaths,
|
|
6523
|
-
signatures: currentSignatures,
|
|
6524
|
-
value: cloneSettingsReadResult(result)
|
|
6525
|
-
});
|
|
6526
|
-
} catch {
|
|
6527
|
-
clearSettingsReadCache(pmRoot);
|
|
6528
|
-
}
|
|
6529
|
-
}
|
|
6530
|
-
function resolvePersistedFileBackedSchemaSections(settings, source) {
|
|
6531
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
6532
|
-
const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);
|
|
6533
|
-
if (!source) {
|
|
6534
|
-
return {
|
|
6535
|
-
item_type_definitions: currentItemTypeDefinitions,
|
|
6536
|
-
schema_statuses: normalizedSchema.statuses,
|
|
6537
|
-
schema_fields: normalizedSchema.fields,
|
|
6538
|
-
schema_type_workflows: normalizedSchema.type_workflows
|
|
6539
|
-
};
|
|
6540
|
-
}
|
|
6541
|
-
const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];
|
|
6542
|
-
const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);
|
|
6543
|
-
const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);
|
|
6544
|
-
const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);
|
|
6545
|
-
const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);
|
|
6546
|
-
return {
|
|
6547
|
-
item_type_definitions: itemTypeDefinitionsUnchanged ? source.has_source_item_type_definitions ? normalizeItemTypeDefinitions(source.source_item_type_definitions) : [] : currentItemTypeDefinitions,
|
|
6548
|
-
schema_statuses: schemaStatusesUnchanged ? source.has_source_schema_statuses ? structuredClone(source.source_schema_statuses) : [] : normalizedSchema.statuses,
|
|
6549
|
-
schema_fields: schemaFieldsUnchanged ? source.has_source_schema_fields ? structuredClone(source.source_schema_fields) : [] : normalizedSchema.fields,
|
|
6550
|
-
schema_type_workflows: schemaTypeWorkflowsUnchanged ? source.has_source_schema_type_workflows ? structuredClone(source.source_schema_type_workflows) : void 0 : normalizedSchema.type_workflows
|
|
6551
|
-
};
|
|
6552
|
-
}
|
|
6553
|
-
function buildFallbackSettingsReadResult(warning) {
|
|
6554
|
-
return {
|
|
6555
|
-
settings: cloneDefaults(),
|
|
6556
|
-
metadata: {
|
|
6557
|
-
has_explicit_item_format: false
|
|
6558
|
-
},
|
|
6559
|
-
warnings: warning ? [warning] : []
|
|
6560
|
-
};
|
|
6561
|
-
}
|
|
6562
|
-
function hasExplicitItemFormat(raw) {
|
|
6563
|
-
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
6564
|
-
return false;
|
|
6565
|
-
}
|
|
6566
|
-
const itemFormat = raw.item_format;
|
|
6567
|
-
return itemFormat === "toon" || itemFormat === "json_markdown";
|
|
6568
|
-
}
|
|
6569
|
-
function normalizeStringList2(values) {
|
|
6570
|
-
return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6571
|
-
}
|
|
6572
|
-
function normalizeAgentGuidanceSettings(value) {
|
|
6573
|
-
const defaults = SETTINGS_DEFAULTS.agent_guidance;
|
|
6574
|
-
const templateVersion = value?.template_version;
|
|
6575
|
-
return {
|
|
6576
|
-
prompt_completed: value?.prompt_completed === true,
|
|
6577
|
-
declined: value?.declined === true,
|
|
6578
|
-
declined_at: typeof value?.declined_at === "string" ? value.declined_at : defaults.declined_at,
|
|
6579
|
-
template_version: typeof templateVersion === "number" && Number.isInteger(templateVersion) && templateVersion > 0 ? templateVersion : defaults.template_version,
|
|
6580
|
-
last_checked_files: normalizeStringList2(value?.last_checked_files ?? defaults.last_checked_files)
|
|
6581
|
-
};
|
|
6582
|
-
}
|
|
6583
|
-
function normalizeLowerStringList(values) {
|
|
6584
|
-
return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6585
|
-
}
|
|
6586
|
-
function normalizeExtensionPolicyMode(value) {
|
|
6587
|
-
if (value === "off" || value === "warn" || value === "enforce") {
|
|
6588
|
-
return value;
|
|
6589
|
-
}
|
|
6590
|
-
return SETTINGS_DEFAULTS.extensions.policy.mode;
|
|
6591
|
-
}
|
|
6592
|
-
function normalizeExtensionTrustMode(value) {
|
|
6593
|
-
if (value === "off" || value === "warn" || value === "enforce") {
|
|
6594
|
-
return value;
|
|
6595
|
-
}
|
|
6596
|
-
return SETTINGS_DEFAULTS.extensions.policy.trust_mode;
|
|
6597
|
-
}
|
|
6598
|
-
function normalizeExtensionSandboxProfile(value) {
|
|
6599
|
-
if (value === "none" || value === "restricted" || value === "strict") {
|
|
6600
|
-
return value;
|
|
6601
|
-
}
|
|
6602
|
-
return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;
|
|
6603
|
-
}
|
|
6604
|
-
function normalizeExtensionPolicyOverride(override) {
|
|
6605
|
-
const name = override.name.trim().toLowerCase();
|
|
6606
|
-
if (name.length === 0) {
|
|
6607
|
-
return null;
|
|
6608
|
-
}
|
|
6609
|
-
const normalized = {
|
|
6610
|
-
name
|
|
6611
|
-
};
|
|
6612
|
-
if (override.disabled === true) {
|
|
6613
|
-
normalized.disabled = true;
|
|
6614
|
-
}
|
|
6615
|
-
if (override.require_trusted === true) {
|
|
6616
|
-
normalized.require_trusted = true;
|
|
6617
|
-
}
|
|
6618
|
-
if (override.require_provenance === true) {
|
|
6619
|
-
normalized.require_provenance = true;
|
|
6620
|
-
}
|
|
6621
|
-
if (override.sandbox_profile !== void 0) {
|
|
6622
|
-
normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);
|
|
6623
|
-
}
|
|
6624
|
-
const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);
|
|
6625
|
-
const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);
|
|
6626
|
-
const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);
|
|
6627
|
-
const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);
|
|
6628
|
-
const allowedCommands = normalizeLowerStringList(override.allowed_commands);
|
|
6629
|
-
const blockedCommands = normalizeLowerStringList(override.blocked_commands);
|
|
6630
|
-
const allowedActions = normalizeLowerStringList(override.allowed_actions);
|
|
6631
|
-
const blockedActions = normalizeLowerStringList(override.blocked_actions);
|
|
6632
|
-
const allowedServices = normalizeLowerStringList(override.allowed_services);
|
|
6633
|
-
const blockedServices = normalizeLowerStringList(override.blocked_services);
|
|
6634
|
-
if (allowedCapabilities.length > 0) {
|
|
6635
|
-
normalized.allowed_capabilities = allowedCapabilities;
|
|
6636
|
-
}
|
|
6637
|
-
if (blockedCapabilities.length > 0) {
|
|
6638
|
-
normalized.blocked_capabilities = blockedCapabilities;
|
|
6639
|
-
}
|
|
6640
|
-
if (allowedSurfaces.length > 0) {
|
|
6641
|
-
normalized.allowed_surfaces = allowedSurfaces;
|
|
6642
|
-
}
|
|
6643
|
-
if (blockedSurfaces.length > 0) {
|
|
6644
|
-
normalized.blocked_surfaces = blockedSurfaces;
|
|
6645
|
-
}
|
|
6646
|
-
if (allowedCommands.length > 0) {
|
|
6647
|
-
normalized.allowed_commands = allowedCommands;
|
|
6648
|
-
}
|
|
6649
|
-
if (blockedCommands.length > 0) {
|
|
6650
|
-
normalized.blocked_commands = blockedCommands;
|
|
6651
|
-
}
|
|
6652
|
-
if (allowedActions.length > 0) {
|
|
6653
|
-
normalized.allowed_actions = allowedActions;
|
|
6654
|
-
}
|
|
6655
|
-
if (blockedActions.length > 0) {
|
|
6656
|
-
normalized.blocked_actions = blockedActions;
|
|
6657
|
-
}
|
|
6658
|
-
if (allowedServices.length > 0) {
|
|
6659
|
-
normalized.allowed_services = allowedServices;
|
|
6660
|
-
}
|
|
6661
|
-
if (blockedServices.length > 0) {
|
|
6662
|
-
normalized.blocked_services = blockedServices;
|
|
6663
|
-
}
|
|
6664
|
-
return normalized;
|
|
6665
|
-
}
|
|
6666
|
-
function normalizeExtensionPolicyOverrides(overrides) {
|
|
6667
|
-
const dedupedByName = /* @__PURE__ */ new Map();
|
|
6668
|
-
for (const override of overrides ?? []) {
|
|
6669
|
-
const normalized = normalizeExtensionPolicyOverride(override);
|
|
6670
|
-
if (!normalized) {
|
|
6671
|
-
continue;
|
|
6672
|
-
}
|
|
6673
|
-
dedupedByName.set(normalized.name, normalized);
|
|
6674
|
-
}
|
|
6675
|
-
return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
|
|
6676
|
-
}
|
|
6677
|
-
function normalizePmMaxVersionExceededModeValue2(value) {
|
|
6678
|
-
return value === "block" || value === "warn" ? value : void 0;
|
|
6679
|
-
}
|
|
6680
|
-
function normalizePmMaxVersionExceededModeSetting(value) {
|
|
6681
|
-
if (typeof value === "string") {
|
|
6682
|
-
return normalizePmMaxVersionExceededModeValue2(value);
|
|
6683
|
-
}
|
|
6684
|
-
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
6685
|
-
const global = normalizePmMaxVersionExceededModeValue2(value.global);
|
|
6686
|
-
const project = normalizePmMaxVersionExceededModeValue2(value.project);
|
|
6687
|
-
if (global === void 0 && project === void 0) {
|
|
6688
|
-
return void 0;
|
|
6689
|
-
}
|
|
6690
|
-
return {
|
|
6691
|
-
...global !== void 0 ? { global } : {},
|
|
6692
|
-
...project !== void 0 ? { project } : {}
|
|
6693
|
-
};
|
|
6694
|
-
}
|
|
6695
|
-
return void 0;
|
|
6696
|
-
}
|
|
6697
|
-
function normalizeExtensionPolicyList(policy, key) {
|
|
6698
|
-
return normalizeLowerStringList(policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key]);
|
|
6699
|
-
}
|
|
6700
|
-
function normalizeExtensionPolicySettings(policy) {
|
|
6701
|
-
const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
|
|
6702
|
-
return {
|
|
6703
|
-
mode: normalizeExtensionPolicyMode(policy?.mode),
|
|
6704
|
-
trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
|
|
6705
|
-
...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
|
|
6706
|
-
require_provenance: policy?.require_provenance === true,
|
|
6707
|
-
trusted_extensions: normalizeExtensionPolicyList(policy, "trusted_extensions"),
|
|
6708
|
-
default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
|
|
6709
|
-
allowed_extensions: normalizeExtensionPolicyList(policy, "allowed_extensions"),
|
|
6710
|
-
blocked_extensions: normalizeExtensionPolicyList(policy, "blocked_extensions"),
|
|
6711
|
-
allowed_capabilities: normalizeExtensionPolicyList(policy, "allowed_capabilities"),
|
|
6712
|
-
blocked_capabilities: normalizeExtensionPolicyList(policy, "blocked_capabilities"),
|
|
6713
|
-
allowed_surfaces: normalizeExtensionPolicyList(policy, "allowed_surfaces"),
|
|
6714
|
-
blocked_surfaces: normalizeExtensionPolicyList(policy, "blocked_surfaces"),
|
|
6715
|
-
allowed_commands: normalizeExtensionPolicyList(policy, "allowed_commands"),
|
|
6716
|
-
blocked_commands: normalizeExtensionPolicyList(policy, "blocked_commands"),
|
|
6717
|
-
allowed_actions: normalizeExtensionPolicyList(policy, "allowed_actions"),
|
|
6718
|
-
blocked_actions: normalizeExtensionPolicyList(policy, "blocked_actions"),
|
|
6719
|
-
allowed_services: normalizeExtensionPolicyList(policy, "allowed_services"),
|
|
6720
|
-
blocked_services: normalizeExtensionPolicyList(policy, "blocked_services"),
|
|
6721
|
-
extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? SETTINGS_DEFAULTS.extensions.policy.extension_overrides)
|
|
6722
|
-
};
|
|
6723
|
-
}
|
|
6724
|
-
function normalizeValidationMetadataRequiredFields(values) {
|
|
6725
|
-
const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll("-", "_")))].filter((value) => value.length > 0).sort((left, right) => left.localeCompare(right));
|
|
6726
|
-
return normalized.filter((value) => [
|
|
6727
|
-
"author",
|
|
6728
|
-
"acceptance_criteria",
|
|
6729
|
-
"estimated_minutes",
|
|
6730
|
-
"close_reason",
|
|
6731
|
-
"reviewer",
|
|
6732
|
-
"risk",
|
|
6733
|
-
"confidence",
|
|
6734
|
-
"sprint",
|
|
6735
|
-
"release"
|
|
6736
|
-
].includes(value));
|
|
6737
|
-
}
|
|
6738
|
-
function normalizeValidationPatternList(values) {
|
|
6739
|
-
return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6740
|
-
}
|
|
6741
|
-
function valueOrDefault(value, fallback) {
|
|
6742
|
-
return value === void 0 ? fallback : value;
|
|
6743
|
-
}
|
|
6744
|
-
function recordOrEmpty(value) {
|
|
6745
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : {};
|
|
6746
|
-
}
|
|
6747
|
-
function arrayOrEmpty(value) {
|
|
6748
|
-
return Array.isArray(value) ? value : [];
|
|
6749
|
-
}
|
|
6750
|
-
function buildValidationSettings(settings, defaults, governance) {
|
|
6751
|
-
return {
|
|
6752
|
-
...defaults.validation,
|
|
6753
|
-
...settings.validation,
|
|
6754
|
-
parent_reference: governance.parent_reference,
|
|
6755
|
-
metadata_profile: governance.metadata_profile,
|
|
6756
|
-
metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),
|
|
6757
|
-
lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_stale_blocker_reason_patterns ?? defaults.validation.lifecycle_stale_blocker_reason_patterns),
|
|
6758
|
-
lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? defaults.validation.lifecycle_closure_like_blocked_reason_patterns),
|
|
6759
|
-
lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_resolution_patterns ?? defaults.validation.lifecycle_closure_like_resolution_patterns),
|
|
6760
|
-
lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_actual_result_patterns ?? defaults.validation.lifecycle_closure_like_actual_result_patterns),
|
|
6761
|
-
estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type)
|
|
6762
|
-
};
|
|
6763
|
-
}
|
|
6764
|
-
function buildTelemetrySettings(settings, defaults) {
|
|
6765
|
-
return {
|
|
6766
|
-
enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,
|
|
6767
|
-
first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,
|
|
6768
|
-
capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,
|
|
6769
|
-
endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,
|
|
6770
|
-
installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,
|
|
6771
|
-
retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days
|
|
6772
|
-
};
|
|
6773
|
-
}
|
|
6774
|
-
function buildSearchSettings(settings, defaults) {
|
|
6775
|
-
return {
|
|
6776
|
-
...defaults.search,
|
|
6777
|
-
...settings.search,
|
|
6778
|
-
mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),
|
|
6779
|
-
query_expansion: {
|
|
6780
|
-
...defaults.search.query_expansion,
|
|
6781
|
-
...settings.search?.query_expansion,
|
|
6782
|
-
enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),
|
|
6783
|
-
provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider)
|
|
6784
|
-
},
|
|
6785
|
-
rerank: {
|
|
6786
|
-
...defaults.search.rerank,
|
|
6787
|
-
...settings.search?.rerank,
|
|
6788
|
-
enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),
|
|
6789
|
-
model: normalizeSearchRerankModel(settings.search?.rerank?.model),
|
|
6790
|
-
top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k)
|
|
6791
|
-
}
|
|
6792
|
-
};
|
|
6793
|
-
}
|
|
6794
|
-
function buildVectorStoreSettings(settings, defaults) {
|
|
6795
|
-
return {
|
|
6796
|
-
adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,
|
|
6797
|
-
collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),
|
|
6798
|
-
qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },
|
|
6799
|
-
lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb }
|
|
6800
|
-
};
|
|
6801
|
-
}
|
|
6802
|
-
function normalizeSettingsItemFormat(settings, defaults) {
|
|
6803
|
-
if (settings.item_format === "json_markdown") {
|
|
6804
|
-
return "toon";
|
|
6805
|
-
}
|
|
6806
|
-
return settings.item_format ?? defaults.item_format;
|
|
6807
|
-
}
|
|
6808
|
-
function buildContextSettings(settings, defaults) {
|
|
6809
|
-
return {
|
|
6810
|
-
default_depth: settings.context?.default_depth ?? defaults.context.default_depth,
|
|
6811
|
-
activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,
|
|
6812
|
-
stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,
|
|
6813
|
-
sections: {
|
|
6814
|
-
...defaults.context.sections,
|
|
6815
|
-
...settings.context?.sections
|
|
6816
|
-
}
|
|
6817
|
-
};
|
|
6818
|
-
}
|
|
6819
|
-
function buildProviderSettings(settings, defaults) {
|
|
6820
|
-
return {
|
|
6821
|
-
openai: { ...defaults.providers.openai, ...settings.providers.openai },
|
|
6822
|
-
ollama: { ...defaults.providers.ollama, ...settings.providers.ollama }
|
|
6823
|
-
};
|
|
6824
|
-
}
|
|
6825
|
-
function normalizeItemTypeDefinitions(definitions) {
|
|
6826
|
-
const normalized = (definitions ?? []).map((definition) => normalizeItemTypeDefinition(definition)).filter((definition) => definition !== null);
|
|
6827
|
-
const dedupedByName = /* @__PURE__ */ new Map();
|
|
6828
|
-
for (const definition of normalized) {
|
|
6829
|
-
dedupedByName.set(definition.name.toLowerCase(), definition);
|
|
6830
|
-
}
|
|
6831
|
-
return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
|
|
6832
|
-
}
|
|
6833
|
-
function mergeSettings(settings) {
|
|
6834
|
-
const defaults = cloneDefaults();
|
|
6835
|
-
const governance = resolveGovernanceKnobs({
|
|
6836
|
-
governance: settings.governance ?? { preset: "default" }
|
|
6837
|
-
});
|
|
6838
|
-
return {
|
|
6839
|
-
...defaults,
|
|
6840
|
-
...settings,
|
|
6841
|
-
item_format: normalizeSettingsItemFormat(settings, defaults),
|
|
6842
|
-
locks: { ...defaults.locks, ...settings.locks },
|
|
6843
|
-
checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },
|
|
6844
|
-
output: { ...defaults.output, ...settings.output },
|
|
6845
|
-
history: {
|
|
6846
|
-
...defaults.history,
|
|
6847
|
-
...settings.history,
|
|
6848
|
-
compact_policy: {
|
|
6849
|
-
...defaults.history.compact_policy,
|
|
6850
|
-
...settings.history?.compact_policy
|
|
6851
|
-
}
|
|
6852
|
-
},
|
|
6853
|
-
validation: buildValidationSettings(settings, defaults, governance),
|
|
6854
|
-
governance,
|
|
6855
|
-
workflow: {
|
|
6856
|
-
definition_of_done: [...settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done]
|
|
6857
|
-
},
|
|
6858
|
-
testing: {
|
|
6859
|
-
record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items
|
|
6860
|
-
},
|
|
6861
|
-
telemetry: buildTelemetrySettings(settings, defaults),
|
|
6862
|
-
agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),
|
|
6863
|
-
item_types: {
|
|
6864
|
-
definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions)
|
|
6865
|
-
},
|
|
6866
|
-
schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),
|
|
6867
|
-
context: buildContextSettings(settings, defaults),
|
|
6868
|
-
extensions: {
|
|
6869
|
-
enabled: [...settings.extensions.enabled],
|
|
6870
|
-
disabled: [...settings.extensions.disabled],
|
|
6871
|
-
policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy)
|
|
6872
|
-
},
|
|
6873
|
-
search: buildSearchSettings(settings, defaults),
|
|
6874
|
-
providers: buildProviderSettings(settings, defaults),
|
|
6875
|
-
vector_store: buildVectorStoreSettings(settings, defaults)
|
|
6876
|
-
};
|
|
6877
|
-
}
|
|
6878
|
-
function orderSerializedSettingsSections(ordered) {
|
|
6879
|
-
ordered.locks = orderObject(ordered.locks, ["ttl_seconds"]);
|
|
6880
|
-
ordered.checkpoints = orderObject(ordered.checkpoints, ["retention_days"]);
|
|
6881
|
-
ordered.output = orderObject(ordered.output, ["default_format"]);
|
|
6882
|
-
ordered.history = orderObject(ordered.history, ["missing_stream", "compact_policy"]);
|
|
6883
|
-
ordered.validation = orderObject(ordered.validation, [
|
|
6884
|
-
"sprint_release_format",
|
|
6885
|
-
"parent_reference",
|
|
6886
|
-
"metadata_profile",
|
|
6887
|
-
"metadata_required_fields",
|
|
6888
|
-
"lifecycle_stale_blocker_reason_patterns",
|
|
6889
|
-
"lifecycle_closure_like_blocked_reason_patterns",
|
|
6890
|
-
"lifecycle_closure_like_resolution_patterns",
|
|
6891
|
-
"lifecycle_closure_like_actual_result_patterns",
|
|
6892
|
-
"estimate_defaults_by_type"
|
|
6893
|
-
]);
|
|
6894
|
-
ordered.governance = orderObject(ordered.governance, [
|
|
6895
|
-
"preset",
|
|
6896
|
-
"ownership_enforcement",
|
|
6897
|
-
"create_mode_default",
|
|
6898
|
-
"close_validation_default",
|
|
6899
|
-
"require_close_reason",
|
|
6900
|
-
"parent_reference",
|
|
6901
|
-
"metadata_profile",
|
|
6902
|
-
"force_required_for_stale_lock",
|
|
6903
|
-
"create_default_type",
|
|
6904
|
-
"workflow_enforcement"
|
|
6905
|
-
]);
|
|
6906
|
-
ordered.workflow = orderObject(ordered.workflow, ["definition_of_done"]);
|
|
6907
|
-
ordered.testing = orderObject(ordered.testing, ["record_results_to_items"]);
|
|
6908
|
-
ordered.telemetry = orderObject(ordered.telemetry, [
|
|
6909
|
-
"enabled",
|
|
6910
|
-
"first_run_prompt_completed",
|
|
6911
|
-
"capture_level",
|
|
6912
|
-
"endpoint",
|
|
6913
|
-
"installation_id",
|
|
6914
|
-
"retention_days"
|
|
6915
|
-
]);
|
|
6916
|
-
ordered.agent_guidance = orderObject(ordered.agent_guidance, [
|
|
6917
|
-
"prompt_completed",
|
|
6918
|
-
"declined",
|
|
6919
|
-
"declined_at",
|
|
6920
|
-
"template_version",
|
|
6921
|
-
"last_checked_files"
|
|
6922
|
-
]);
|
|
6923
|
-
ordered.item_types = orderObject(ordered.item_types, ["definitions"]);
|
|
6924
|
-
ordered.schema = orderObject(ordered.schema, [
|
|
6925
|
-
"version",
|
|
6926
|
-
"files",
|
|
6927
|
-
"statuses",
|
|
6928
|
-
"fields",
|
|
6929
|
-
"workflow",
|
|
6930
|
-
"type_workflows",
|
|
6931
|
-
"unknown_field_policy"
|
|
6932
|
-
]);
|
|
6933
|
-
ordered.schema.files = orderObject(recordOrEmpty(ordered.schema.files), ["types", "statuses", "fields", "workflows"]);
|
|
6934
|
-
ordered.schema.workflow = orderObject(recordOrEmpty(ordered.schema.workflow), ["draft_status", "open_status", "in_progress_status", "blocked_status", "close_status", "canceled_status"]);
|
|
6935
|
-
ordered.context = orderObject(ordered.context, [
|
|
6936
|
-
"default_depth",
|
|
6937
|
-
"activity_limit",
|
|
6938
|
-
"stale_threshold_days",
|
|
6939
|
-
"sections"
|
|
6940
|
-
]);
|
|
6941
|
-
ordered.context.sections = orderObject(recordOrEmpty(ordered.context.sections), ["hierarchy", "activity", "progress", "blockers", "files", "workload", "staleness", "tests"]);
|
|
6942
|
-
ordered.extensions = orderObject(ordered.extensions, ["enabled", "disabled", "policy"]);
|
|
6943
|
-
ordered.extensions.policy = orderObject(recordOrEmpty(ordered.extensions.policy), [
|
|
6944
|
-
"mode",
|
|
6945
|
-
"trust_mode",
|
|
6946
|
-
"pm_max_version_exceeded_mode",
|
|
6947
|
-
"require_provenance",
|
|
6948
|
-
"trusted_extensions",
|
|
6949
|
-
"default_sandbox_profile",
|
|
6950
|
-
"allowed_extensions",
|
|
6951
|
-
"blocked_extensions",
|
|
6952
|
-
"allowed_capabilities",
|
|
6953
|
-
"blocked_capabilities",
|
|
6954
|
-
"allowed_surfaces",
|
|
6955
|
-
"blocked_surfaces",
|
|
6956
|
-
"allowed_commands",
|
|
6957
|
-
"blocked_commands",
|
|
6958
|
-
"allowed_actions",
|
|
6959
|
-
"blocked_actions",
|
|
6960
|
-
"allowed_services",
|
|
6961
|
-
"blocked_services",
|
|
6962
|
-
"extension_overrides"
|
|
6963
|
-
]);
|
|
6964
|
-
ordered.extensions.policy.extension_overrides = arrayOrEmpty(ordered.extensions.policy.extension_overrides).map((entry) => orderObject(recordOrEmpty(entry), [
|
|
6965
|
-
"name",
|
|
6966
|
-
"disabled",
|
|
6967
|
-
"require_trusted",
|
|
6968
|
-
"require_provenance",
|
|
6969
|
-
"sandbox_profile",
|
|
6970
|
-
"allowed_capabilities",
|
|
6971
|
-
"blocked_capabilities",
|
|
6972
|
-
"allowed_surfaces",
|
|
6973
|
-
"blocked_surfaces",
|
|
6974
|
-
"allowed_commands",
|
|
6975
|
-
"blocked_commands",
|
|
6976
|
-
"allowed_actions",
|
|
6977
|
-
"blocked_actions",
|
|
6978
|
-
"allowed_services",
|
|
6979
|
-
"blocked_services"
|
|
6980
|
-
]));
|
|
6981
|
-
ordered.search = orderObject(ordered.search, [
|
|
6982
|
-
"score_threshold",
|
|
6983
|
-
"hybrid_semantic_weight",
|
|
6984
|
-
"max_results",
|
|
6985
|
-
"embedding_model",
|
|
6986
|
-
"embedding_corpus_max_characters",
|
|
6987
|
-
"embedding_batch_size",
|
|
6988
|
-
"embedding_timeout_ms",
|
|
6989
|
-
"scanner_max_batch_retries",
|
|
6990
|
-
"provider",
|
|
6991
|
-
"mutation_refresh_policy",
|
|
6992
|
-
"query_expansion",
|
|
6993
|
-
"rerank"
|
|
6994
|
-
]);
|
|
6995
|
-
ordered.search.query_expansion = orderObject(recordOrEmpty(ordered.search.query_expansion), ["enabled", "provider"]);
|
|
6996
|
-
ordered.search.rerank = orderObject(recordOrEmpty(ordered.search.rerank), ["enabled", "model", "top_k"]);
|
|
6997
|
-
ordered.providers = orderObject(ordered.providers, ["openai", "ollama"]);
|
|
6998
|
-
ordered.providers.openai = orderObject(recordOrEmpty(ordered.providers.openai), ["base_url", "api_key", "model"]);
|
|
6999
|
-
ordered.providers.ollama = orderObject(recordOrEmpty(ordered.providers.ollama), ["base_url", "model"]);
|
|
7000
|
-
ordered.vector_store = orderObject(ordered.vector_store, [
|
|
7001
|
-
"adapter",
|
|
7002
|
-
"collection_name",
|
|
7003
|
-
"qdrant",
|
|
7004
|
-
"lancedb"
|
|
7005
|
-
]);
|
|
7006
|
-
ordered.vector_store.qdrant = orderObject(recordOrEmpty(ordered.vector_store.qdrant), ["url", "api_key"]);
|
|
7007
|
-
ordered.vector_store.lancedb = orderObject(recordOrEmpty(ordered.vector_store.lancedb), ["path"]);
|
|
7008
|
-
}
|
|
7009
|
-
function buildSerializeBaseSettings(settings) {
|
|
7010
|
-
return {
|
|
7011
|
-
...settings,
|
|
7012
|
-
locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),
|
|
7013
|
-
checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),
|
|
7014
|
-
output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),
|
|
7015
|
-
history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),
|
|
7016
|
-
validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),
|
|
7017
|
-
workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),
|
|
7018
|
-
testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),
|
|
7019
|
-
telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),
|
|
7020
|
-
agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),
|
|
7021
|
-
item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),
|
|
7022
|
-
schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),
|
|
7023
|
-
context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),
|
|
7024
|
-
extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),
|
|
7025
|
-
search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),
|
|
7026
|
-
providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),
|
|
7027
|
-
vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store)
|
|
7028
|
-
};
|
|
7029
|
-
}
|
|
7030
|
-
function buildSerializedValidationSettings(baseSettings, governance) {
|
|
7031
|
-
return {
|
|
7032
|
-
...baseSettings.validation,
|
|
7033
|
-
parent_reference: governance.parent_reference,
|
|
7034
|
-
metadata_profile: governance.metadata_profile,
|
|
7035
|
-
metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),
|
|
7036
|
-
lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns),
|
|
7037
|
-
lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns),
|
|
7038
|
-
lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_resolution_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns),
|
|
7039
|
-
lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns),
|
|
7040
|
-
estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type)
|
|
7041
|
-
};
|
|
7042
|
-
}
|
|
7043
|
-
function buildSerializedSearchSettings(baseSettings) {
|
|
7044
|
-
return {
|
|
7045
|
-
...SETTINGS_DEFAULTS.search,
|
|
7046
|
-
...baseSettings.search,
|
|
7047
|
-
mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),
|
|
7048
|
-
query_expansion: {
|
|
7049
|
-
...SETTINGS_DEFAULTS.search.query_expansion,
|
|
7050
|
-
...baseSettings.search?.query_expansion,
|
|
7051
|
-
enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),
|
|
7052
|
-
provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider)
|
|
7053
|
-
},
|
|
7054
|
-
rerank: {
|
|
7055
|
-
...SETTINGS_DEFAULTS.search.rerank,
|
|
7056
|
-
...baseSettings.search?.rerank,
|
|
7057
|
-
enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),
|
|
7058
|
-
model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),
|
|
7059
|
-
top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k)
|
|
7060
|
-
}
|
|
7061
|
-
};
|
|
7062
|
-
}
|
|
7063
|
-
function buildSerializedContextSettings(baseSettings) {
|
|
7064
|
-
return {
|
|
7065
|
-
default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,
|
|
7066
|
-
activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,
|
|
7067
|
-
stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,
|
|
7068
|
-
sections: {
|
|
7069
|
-
...SETTINGS_DEFAULTS.context.sections,
|
|
7070
|
-
...baseSettings.context?.sections
|
|
7071
|
-
}
|
|
7072
|
-
};
|
|
7073
|
-
}
|
|
7074
|
-
function buildSerializedVectorStoreSettings(baseSettings) {
|
|
7075
|
-
return {
|
|
7076
|
-
...baseSettings.vector_store,
|
|
7077
|
-
adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,
|
|
7078
|
-
collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),
|
|
7079
|
-
qdrant: { ...baseSettings.vector_store?.qdrant },
|
|
7080
|
-
lancedb: { ...baseSettings.vector_store?.lancedb }
|
|
7081
|
-
};
|
|
7082
|
-
}
|
|
7083
|
-
function buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections) {
|
|
7084
|
-
return {
|
|
7085
|
-
...baseSettings,
|
|
7086
|
-
item_format: "toon",
|
|
7087
|
-
validation: buildSerializedValidationSettings(baseSettings, governance),
|
|
7088
|
-
governance,
|
|
7089
|
-
agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),
|
|
7090
|
-
item_types: {
|
|
7091
|
-
definitions: persistedFileBackedSections.item_type_definitions
|
|
7092
|
-
},
|
|
7093
|
-
schema: {
|
|
7094
|
-
...normalizedSchema,
|
|
7095
|
-
statuses: persistedFileBackedSections.schema_statuses,
|
|
7096
|
-
fields: persistedFileBackedSections.schema_fields,
|
|
7097
|
-
type_workflows: persistedFileBackedSections.schema_type_workflows
|
|
7098
|
-
},
|
|
7099
|
-
search: buildSerializedSearchSettings(baseSettings),
|
|
7100
|
-
context: buildSerializedContextSettings(baseSettings),
|
|
7101
|
-
extensions: {
|
|
7102
|
-
enabled: normalizeStringList2(baseSettings.extensions?.enabled),
|
|
7103
|
-
disabled: normalizeStringList2(baseSettings.extensions?.disabled),
|
|
7104
|
-
policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy)
|
|
7105
|
-
},
|
|
7106
|
-
vector_store: buildSerializedVectorStoreSettings(baseSettings)
|
|
7107
|
-
};
|
|
7108
|
-
}
|
|
7109
|
-
function serializeSettings(settings, options = {}) {
|
|
7110
|
-
const baseSettings = buildSerializeBaseSettings(settings);
|
|
7111
|
-
const governance = resolveGovernanceKnobs(baseSettings);
|
|
7112
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);
|
|
7113
|
-
const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);
|
|
7114
|
-
const normalizedSettings = buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections);
|
|
7115
|
-
const ordered = orderObject({
|
|
7116
|
-
...normalizedSettings,
|
|
7117
|
-
governance: normalizeGovernanceForPersist(governance)
|
|
7118
|
-
}, [
|
|
7119
|
-
"version",
|
|
7120
|
-
"id_prefix",
|
|
7121
|
-
"author_default",
|
|
7122
|
-
"item_format",
|
|
7123
|
-
"locks",
|
|
7124
|
-
"checkpoints",
|
|
7125
|
-
"output",
|
|
7126
|
-
"history",
|
|
7127
|
-
"validation",
|
|
7128
|
-
"governance",
|
|
7129
|
-
"workflow",
|
|
7130
|
-
"testing",
|
|
7131
|
-
"telemetry",
|
|
7132
|
-
"agent_guidance",
|
|
7133
|
-
"item_types",
|
|
7134
|
-
"schema",
|
|
7135
|
-
"context",
|
|
7136
|
-
"extensions",
|
|
7137
|
-
"search",
|
|
7138
|
-
"providers",
|
|
7139
|
-
"vector_store"
|
|
7140
|
-
]);
|
|
7141
|
-
orderSerializedSettingsSections(ordered);
|
|
7142
|
-
return `${JSON.stringify(ordered, null, 2)}
|
|
7143
|
-
`;
|
|
7144
|
-
}
|
|
7145
|
-
async function readSettingsWithMetadata(pmRoot) {
|
|
7146
|
-
const settingsPath = getSettingsPath(pmRoot);
|
|
7147
|
-
let trackedPathsForFailure = [settingsPath];
|
|
7148
|
-
await runActiveOnReadHooks({
|
|
7149
|
-
path: settingsPath,
|
|
7150
|
-
scope: "project"
|
|
7151
|
-
});
|
|
7152
|
-
const cachedResult = getSettingsReadCacheEntry(pmRoot);
|
|
7153
|
-
if (cachedResult) {
|
|
7154
|
-
const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);
|
|
7155
|
-
if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {
|
|
7156
|
-
return cloneSettingsReadResult(cachedResult.value);
|
|
7157
|
-
}
|
|
7158
|
-
}
|
|
7159
|
-
const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
7160
|
-
const raw = await readFileIfExists(settingsPath);
|
|
7161
|
-
if (raw === null) {
|
|
7162
|
-
const fallback = buildFallbackSettingsReadResult();
|
|
7163
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);
|
|
7164
|
-
return fallback;
|
|
7165
|
-
}
|
|
7166
|
-
const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
7167
|
-
if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {
|
|
7168
|
-
clearSettingsReadCache(pmRoot);
|
|
7169
|
-
return readSettingsWithMetadata(pmRoot);
|
|
7170
|
-
}
|
|
7171
|
-
let parsed;
|
|
7172
|
-
try {
|
|
7173
|
-
parsed = JSON.parse(raw);
|
|
7174
|
-
} catch {
|
|
7175
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_json");
|
|
7176
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
7177
|
-
return fallback;
|
|
7178
|
-
}
|
|
7179
|
-
const validated = validateSettings(parsed);
|
|
7180
|
-
if (!validated.success) {
|
|
7181
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_schema");
|
|
7182
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
7183
|
-
return fallback;
|
|
7184
|
-
}
|
|
7185
|
-
try {
|
|
7186
|
-
const mergedSettings = mergeSettings(validated.data);
|
|
7187
|
-
const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);
|
|
7188
|
-
trackedPathsForFailure = trackedPaths;
|
|
7189
|
-
const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
7190
|
-
const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);
|
|
7191
|
-
const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);
|
|
7192
|
-
const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
7193
|
-
const settings = {
|
|
7194
|
-
...mergedSettings,
|
|
7195
|
-
item_types: {
|
|
7196
|
-
definitions: normalizeItemTypeDefinitions([
|
|
7197
|
-
...mergedSettings.item_types.definitions,
|
|
7198
|
-
...arrayOrEmpty(loadedSchemaSections.type_definitions_from_file)
|
|
7199
|
-
])
|
|
7200
|
-
},
|
|
7201
|
-
schema: loadedSchemaSections.schema
|
|
7202
|
-
};
|
|
7203
|
-
attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));
|
|
7204
|
-
const result = {
|
|
7205
|
-
settings,
|
|
7206
|
-
metadata: {
|
|
7207
|
-
has_explicit_item_format: hasExplicitItemFormat(parsed)
|
|
7208
|
-
},
|
|
7209
|
-
warnings: [
|
|
7210
|
-
...validated.data.item_format === "json_markdown" ? ["settings_item_format_legacy_json_markdown_coerced_to_toon"] : [],
|
|
7211
|
-
...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),
|
|
7212
|
-
...loadedSchemaSections.warnings
|
|
7213
|
-
]
|
|
7214
|
-
};
|
|
7215
|
-
if (schemaScaffold.created_paths.length === 0) {
|
|
7216
|
-
if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {
|
|
7217
|
-
clearSettingsReadCache(pmRoot);
|
|
7218
|
-
} else {
|
|
7219
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
7220
|
-
tracked_paths: trackedPaths,
|
|
7221
|
-
signatures: signaturesAfterSchemaLoad,
|
|
7222
|
-
value: cloneSettingsReadResult(result)
|
|
7223
|
-
});
|
|
7224
|
-
}
|
|
7225
|
-
} else {
|
|
7226
|
-
clearSettingsReadCache(pmRoot);
|
|
7227
|
-
}
|
|
7228
|
-
return result;
|
|
7229
|
-
} catch {
|
|
7230
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_merge_failed");
|
|
7231
|
-
await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);
|
|
7232
|
-
return fallback;
|
|
7233
|
-
}
|
|
7234
|
-
}
|
|
7235
|
-
async function readSettings(pmRoot) {
|
|
7236
|
-
return (await readSettingsWithMetadata(pmRoot)).settings;
|
|
7237
|
-
}
|
|
7238
|
-
async function writeSettings(pmRoot, settings, op = SETTINGS_WRITE_OP) {
|
|
7239
|
-
const settingsPath = getSettingsPath(pmRoot);
|
|
7240
|
-
await writeFileAtomic(settingsPath, serializeSettings(settings, {
|
|
7241
|
-
persist_source: getSettingsPersistSourceSnapshot(settings)
|
|
7242
|
-
}));
|
|
7243
|
-
try {
|
|
7244
|
-
await runActiveOnWriteHooks({
|
|
7245
|
-
path: settingsPath,
|
|
7246
|
-
scope: "project",
|
|
7247
|
-
op
|
|
7248
|
-
});
|
|
7249
|
-
} finally {
|
|
7250
|
-
clearSettingsReadCache(pmRoot);
|
|
7251
|
-
}
|
|
7252
|
-
}
|
|
7253
|
-
|
|
7254
5484
|
export {
|
|
7255
5485
|
ensureDir,
|
|
7256
5486
|
pathExists,
|
|
@@ -7261,13 +5491,17 @@ export {
|
|
|
7261
5491
|
isPathWithinDirectory,
|
|
7262
5492
|
resolvePmPackageRootFromModule,
|
|
7263
5493
|
resolvePmCliVersion,
|
|
5494
|
+
resolveConfiguredPmPackageRoot,
|
|
7264
5495
|
KNOWN_EXTENSION_CAPABILITIES,
|
|
5496
|
+
EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
5497
|
+
EXTENSION_CAPABILITY_LEGACY_ALIASES,
|
|
7265
5498
|
EXTENSION_CAPABILITY_CONTRACT,
|
|
7266
5499
|
KNOWN_EXTENSION_POLICY_MODES,
|
|
7267
5500
|
KNOWN_EXTENSION_TRUST_MODES,
|
|
7268
5501
|
KNOWN_EXTENSION_SANDBOX_PROFILES,
|
|
7269
5502
|
KNOWN_EXTENSION_POLICY_SURFACES,
|
|
7270
5503
|
KNOWN_EXTENSION_SERVICE_NAMES,
|
|
5504
|
+
createDefaultExtensionGovernancePolicy,
|
|
7271
5505
|
PM_DIRNAME,
|
|
7272
5506
|
CREATE_DIRECT_CLOSE_REASON_DEFAULT,
|
|
7273
5507
|
PM_CORE_REQUIRED_SUBDIRS,
|
|
@@ -7283,15 +5517,18 @@ export {
|
|
|
7283
5517
|
EXIT_CODE,
|
|
7284
5518
|
resolveTelemetryErrorCategory,
|
|
7285
5519
|
BUILTIN_ITEM_TYPE_VALUES,
|
|
5520
|
+
ITEM_TYPE_VALUES,
|
|
7286
5521
|
STATUS_VALUES,
|
|
7287
5522
|
RUNTIME_STATUS_ROLE_VALUES,
|
|
7288
5523
|
RUNTIME_FIELD_TYPE_VALUES,
|
|
7289
5524
|
RUNTIME_FIELD_COMMAND_VALUES,
|
|
5525
|
+
RUNTIME_UNKNOWN_FIELD_POLICY_VALUES,
|
|
7290
5526
|
DEPENDENCY_KIND_VALUES,
|
|
7291
5527
|
SCOPE_VALUES,
|
|
7292
5528
|
RISK_VALUES,
|
|
7293
5529
|
ISSUE_SEVERITY_VALUES,
|
|
7294
5530
|
CONFIDENCE_TEXT_VALUES,
|
|
5531
|
+
GOVERNANCE_PRESET_VALUES,
|
|
7295
5532
|
RECURRENCE_FREQUENCY_VALUES,
|
|
7296
5533
|
RECURRENCE_WEEKDAY_VALUES,
|
|
7297
5534
|
weekdayOrderIndex,
|
|
@@ -7301,6 +5538,8 @@ export {
|
|
|
7301
5538
|
PLAN_STEP_LINK_KIND_VALUES,
|
|
7302
5539
|
CONTEXT_DEPTH_VALUES,
|
|
7303
5540
|
CONTEXT_SECTION_VALUES,
|
|
5541
|
+
normalizeItemTypeDefinition,
|
|
5542
|
+
COMMON_MUTATION_COMMAND_OPTION_KEYS,
|
|
7304
5543
|
canonicalizeCommandOptionKey,
|
|
7305
5544
|
commandOptionFlagLabel,
|
|
7306
5545
|
toDefaultFolder,
|
|
@@ -7335,71 +5574,57 @@ export {
|
|
|
7335
5574
|
coercePositiveInteger,
|
|
7336
5575
|
coerceNumberInRange,
|
|
7337
5576
|
asRecordOrNull,
|
|
5577
|
+
asPropertyRecord,
|
|
5578
|
+
resolveActivatablePropertyRecord,
|
|
7338
5579
|
resolveFlagValueKind,
|
|
7339
5580
|
flattenFlagListValue,
|
|
7340
5581
|
levenshteinDistanceWithinLimit,
|
|
7341
5582
|
normalizeItemFieldType,
|
|
5583
|
+
evaluatePmMinVersionBound,
|
|
5584
|
+
evaluatePmMaxVersionBound,
|
|
5585
|
+
normalizeKnownExtensionCapability,
|
|
5586
|
+
resolveLegacyExtensionCapabilityAlias,
|
|
7342
5587
|
parseUnknownExtensionCapabilityWarning,
|
|
7343
5588
|
parseLegacyExtensionCapabilityAliasWarning,
|
|
5589
|
+
normalizeCommandName,
|
|
7344
5590
|
createEmptyExtensionRegistrationRegistry,
|
|
7345
5591
|
runBeforeCommandHooks,
|
|
7346
5592
|
runAfterCommandHooks,
|
|
5593
|
+
runOnWriteHooks,
|
|
5594
|
+
runOnReadHooks,
|
|
5595
|
+
runOnIndexHooks,
|
|
5596
|
+
runCommandHandler,
|
|
5597
|
+
runParserOverride,
|
|
5598
|
+
runPreflightOverride,
|
|
5599
|
+
runServiceOverrideSync,
|
|
5600
|
+
runServiceOverride,
|
|
5601
|
+
runCommandOverride,
|
|
5602
|
+
runRendererOverride,
|
|
5603
|
+
DEFAULT_EXTENSION_PRIORITY,
|
|
7347
5604
|
nextExtensionReloadToken,
|
|
5605
|
+
isCanonicalPathWithinDirectory,
|
|
7348
5606
|
resolveExtensionRoots,
|
|
7349
5607
|
discoverExtensions,
|
|
7350
5608
|
loadExtensions,
|
|
5609
|
+
deactivateExtensions,
|
|
7351
5610
|
activateExtensions,
|
|
5611
|
+
EXTENSION_CAPABILITY_REGISTRATION_SURFACES,
|
|
7352
5612
|
normalizeExtensionName,
|
|
7353
5613
|
collectUsedExtensionCapabilities,
|
|
7354
5614
|
reconcileExtensionCapabilityUsage,
|
|
7355
|
-
setActiveExtensionHooks,
|
|
7356
|
-
setActiveExtensionCommands,
|
|
7357
|
-
setActiveExtensionParsers,
|
|
7358
|
-
setActiveExtensionPreflight,
|
|
7359
|
-
setActiveExtensionServices,
|
|
7360
|
-
setActiveExtensionRenderers,
|
|
7361
|
-
setActiveExtensionRegistrations,
|
|
7362
|
-
getActiveExtensionRegistrations,
|
|
7363
|
-
setActiveCommandContext,
|
|
7364
|
-
setActiveCommandResult,
|
|
7365
|
-
getActiveCommandResult,
|
|
7366
|
-
recordAfterCommandAffectedItem,
|
|
7367
|
-
projectAfterCommandItemSnapshot,
|
|
7368
|
-
consumeAfterCommandAffectedItems,
|
|
7369
|
-
clearActiveExtensionHooks,
|
|
7370
|
-
runActiveOnWriteHooks,
|
|
7371
|
-
runActiveOnReadHooks,
|
|
7372
|
-
hasActiveOnReadHooks,
|
|
7373
|
-
runActiveOnIndexHooks,
|
|
7374
|
-
runActiveCommandOverride,
|
|
7375
|
-
runActiveCommandHandler,
|
|
7376
|
-
runActiveParserOverride,
|
|
7377
|
-
runActivePreflightOverride,
|
|
7378
|
-
runActiveRendererOverride,
|
|
7379
|
-
runActiveServiceOverride,
|
|
7380
|
-
runActiveServiceOverrideSync,
|
|
7381
5615
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
7382
5616
|
DEFAULT_RUNTIME_STATUS_DEFINITIONS,
|
|
7383
5617
|
normalizeRuntimeSchemaSettings,
|
|
7384
5618
|
filePathForSchemaSection,
|
|
7385
5619
|
resolveItemTypesFilePath,
|
|
7386
5620
|
ensureRuntimeSchemaFileScaffold,
|
|
5621
|
+
loadRuntimeSchemaFromOptionalFiles,
|
|
7387
5622
|
resolveRuntimeStatusRegistry,
|
|
7388
5623
|
normalizeStatusInputWithRegistry,
|
|
7389
5624
|
resolveRuntimeFieldRegistry,
|
|
7390
5625
|
runtimeFieldOptionTarget,
|
|
7391
|
-
statusIsTerminal
|
|
7392
|
-
PmCliError,
|
|
7393
|
-
stableStringify,
|
|
7394
|
-
stableValueEquals,
|
|
7395
|
-
sha256Hex,
|
|
7396
|
-
orderObject,
|
|
7397
|
-
resolveEstimateDefaultMinutes,
|
|
7398
|
-
resolveGovernanceKnobs,
|
|
7399
|
-
readSettingsWithMetadata,
|
|
7400
|
-
readSettings,
|
|
7401
|
-
writeSettings
|
|
5626
|
+
statusIsTerminal
|
|
7402
5627
|
};
|
|
7403
|
-
//# sourceMappingURL=chunk-
|
|
5628
|
+
//# sourceMappingURL=chunk-YD5FML7K.js.map
|
|
7404
5629
|
|
|
7405
|
-
//# debugId=
|
|
5630
|
+
//# debugId=b82b3892-108d-51df-a033-47913481d9b1
|