@unbrained/pm-cli 2026.7.4 → 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 +26 -0
- package/README.md +1 -5
- package/dist/cli/commands/calendar.d.ts +3 -2
- package/dist/cli/commands/calendar.js +4 -4
- 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/copy.js +3 -3
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.d.ts +7 -0
- package/dist/cli/commands/create.js +156 -110
- 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 +7 -2
- 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/profile.js +3 -3
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/reindex.js +3 -3
- 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/update.js +5 -3
- package/dist/cli/commands/update.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-bundle/chunks/activity-4XQIDNM5.js +18 -0
- package/dist/cli-bundle/chunks/{activity-OENQCYZD.js → activity-YKAKZTZ4.js} +11 -9
- package/dist/cli-bundle/chunks/{aggregate-EC4LWS3U.js → aggregate-EQX2RGB7.js} +16 -13
- package/dist/cli-bundle/chunks/{aggregate-EC4LWS3U.js.map → aggregate-EQX2RGB7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{aggregate-RCB3QJJE.js → aggregate-PEGZGJXD.js} +18 -15
- package/dist/cli-bundle/chunks/{aggregate-RCB3QJJE.js.map → aggregate-PEGZGJXD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-XLEKVVWB.js → append-CZGUZ45Q.js} +11 -8
- package/dist/cli-bundle/chunks/{append-XLEKVVWB.js.map → append-CZGUZ45Q.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-ADBOI3A6.js → append-NSQBCXZJ.js} +13 -10
- package/dist/cli-bundle/chunks/{append-ADBOI3A6.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-2LRMWMZ6.js → chunk-3PL6LEKP.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-2LRMWMZ6.js.map → chunk-3PL6LEKP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CN4OAA2G.js → chunk-3U3VEWK6.js} +277 -119
- package/dist/cli-bundle/chunks/chunk-3U3VEWK6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-EB4BBEZD.js → chunk-3Y4OESPP.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-EB4BBEZD.js.map → chunk-3Y4OESPP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-NHDR3UCW.js → chunk-4LRVSBO6.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-NHDR3UCW.js.map → chunk-4LRVSBO6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6YB7HG2J.js → chunk-4OFLJHX6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-6YB7HG2J.js.map → chunk-4OFLJHX6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SBNT6SLO.js → chunk-4QQ6PM7M.js} +45 -557
- package/dist/cli-bundle/chunks/chunk-4QQ6PM7M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-M34MVAOP.js → chunk-53BTLLAF.js} +16 -200
- package/dist/cli-bundle/chunks/chunk-53BTLLAF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UYLA5ROU.js → chunk-57C2RLW5.js} +277 -112
- package/dist/cli-bundle/chunks/chunk-57C2RLW5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-R7EMP4JG.js → chunk-5B3X4Y22.js} +52 -63
- package/dist/cli-bundle/chunks/{chunk-R7EMP4JG.js.map → chunk-5B3X4Y22.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XBIYI23P.js → chunk-5J2XPTAD.js} +10 -8
- package/dist/cli-bundle/chunks/{chunk-XBIYI23P.js.map → chunk-5J2XPTAD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4SHME4VR.js → chunk-5JE6SMYS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4KPQQ42D.js → chunk-5JZ7APJU.js} +18 -16
- package/dist/cli-bundle/chunks/{chunk-4KPQQ42D.js.map → chunk-5JZ7APJU.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-BDDYM4LH.js → chunk-5VVUKE3U.js} +424 -2228
- package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QFXFKYNQ.js → chunk-75U6M5ZD.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-QFXFKYNQ.js.map → chunk-75U6M5ZD.js.map} +1 -1
- 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-A222YWOQ.js → chunk-7EQNAZX2.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-A222YWOQ.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-EH23N5FX.js → chunk-7MDXZAZS.js} +29 -7
- package/dist/cli-bundle/chunks/chunk-7MDXZAZS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XQCWTSLO.js → chunk-7QH7DHUB.js} +74 -8
- package/dist/cli-bundle/chunks/chunk-7QH7DHUB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3C5T3ZEO.js → chunk-7WYXBPYQ.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-3C5T3ZEO.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-CQISNF3Z.js → chunk-ABRA3BHY.js} +18 -16
- package/dist/cli-bundle/chunks/{chunk-CQISNF3Z.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-Y2VSCQ77.js → chunk-BFVHCAOO.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-Y2VSCQ77.js.map → chunk-BFVHCAOO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-7ITQSEBL.js → chunk-BVEUCSH2.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-7ITQSEBL.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-HL742IBM.js → chunk-D3UCE7RW.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-HL742IBM.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-MZG6I2Q2.js → chunk-DRBV5UC2.js} +8 -23
- package/dist/cli-bundle/chunks/chunk-DRBV5UC2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DEIDJQZK.js → chunk-E2FUG6GD.js} +15 -220
- package/dist/cli-bundle/chunks/{chunk-DEIDJQZK.js.map → chunk-E2FUG6GD.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3MLQZI3H.js → chunk-EEY54JMF.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-3MLQZI3H.js.map → chunk-EEY54JMF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CQFZRLXQ.js → chunk-EZFKWSC7.js} +94 -16
- package/dist/cli-bundle/chunks/{chunk-CQFZRLXQ.js.map → chunk-EZFKWSC7.js.map} +4 -4
- package/dist/cli-bundle/chunks/{chunk-4PJYRA3V.js → chunk-FDBARR33.js} +17 -15
- package/dist/cli-bundle/chunks/{chunk-4PJYRA3V.js.map → chunk-FDBARR33.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NGDK3KEZ.js → chunk-FGQKEDE4.js} +36 -12
- package/dist/cli-bundle/chunks/chunk-FGQKEDE4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FMWQRMHS.js → chunk-FJRKQREY.js} +10 -18
- package/dist/cli-bundle/chunks/chunk-FJRKQREY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6QY2NA2M.js → chunk-FUM6UMY4.js} +10 -11
- package/dist/cli-bundle/chunks/{chunk-6QY2NA2M.js.map → chunk-FUM6UMY4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-UGDONITK.js → chunk-GIWXVMZ3.js} +140 -334
- package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OTSP6UEX.js → chunk-HBYZDSK5.js} +19 -17
- package/dist/cli-bundle/chunks/{chunk-OTSP6UEX.js.map → chunk-HBYZDSK5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-D2LDM35X.js → chunk-HJE4JTKQ.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-D2LDM35X.js.map → chunk-HJE4JTKQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AOP2EMK3.js → chunk-HK72NWAD.js} +89 -18
- package/dist/cli-bundle/chunks/chunk-HK72NWAD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2ONH3WG6.js → chunk-IJ6CO3JV.js} +18 -16
- package/dist/cli-bundle/chunks/{chunk-2ONH3WG6.js.map → chunk-IJ6CO3JV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-J4KNRDI3.js → chunk-JFCVQXZX.js} +139 -326
- package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-V655JQ5J.js → chunk-JLA7EVYV.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-V655JQ5J.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-WBWRQS32.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-JZJJEJBR.js → chunk-KLG4ZULO.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-JZJJEJBR.js.map → chunk-KLG4ZULO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KKHIQOTN.js → chunk-LEKT4K7I.js} +74 -8
- package/dist/cli-bundle/chunks/chunk-LEKT4K7I.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-CVBINC7C.js → chunk-MNZ7DRNC.js} +13 -10
- package/dist/cli-bundle/chunks/{contracts-CVBINC7C.js.map → chunk-MNZ7DRNC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-2VK677OA.js → chunk-MTTXDAK4.js} +176 -125
- package/dist/cli-bundle/chunks/chunk-MTTXDAK4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Q2266G4S.js → chunk-MZ7VNEVY.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-Q2266G4S.js.map → chunk-MZ7VNEVY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4EVY7CQN.js → chunk-N6DNM2FA.js} +2 -2
- package/dist/cli-bundle/chunks/{test-runs-5SLLV3XU.js → chunk-N7X4WP6L.js} +11 -8
- package/dist/cli-bundle/chunks/{test-runs-5SLLV3XU.js.map → chunk-N7X4WP6L.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AZMPKLIA.js → chunk-NBFCNJ7Q.js} +177 -126
- package/dist/cli-bundle/chunks/chunk-NBFCNJ7Q.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YZR7UMZ6.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-DJ5S2LDY.js → chunk-OESSOFJ4.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-DJ5S2LDY.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-TUV7SIWZ.js → chunk-OWTIRHX4.js} +28 -6
- package/dist/cli-bundle/chunks/chunk-OWTIRHX4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PV5JS7MP.js → chunk-P3VRG72Q.js} +10 -8
- package/dist/cli-bundle/chunks/{chunk-PV5JS7MP.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-WTXDLBSZ.js → chunk-PDXT6Q55.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YZWXMDNH.js → chunk-PJ3A56YF.js} +46 -537
- package/dist/cli-bundle/chunks/chunk-PJ3A56YF.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-L3WKLO67.js → chunk-PPAJG4GB.js} +13 -10
- package/dist/cli-bundle/chunks/{test-runs-L3WKLO67.js.map → chunk-PPAJG4GB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-LLQLLAKU.js → chunk-PPE4YUQM.js} +1670 -1573
- package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TO4KCIOT.js → chunk-QHZO65XW.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-TO4KCIOT.js.map → chunk-QHZO65XW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4OXNQHKQ.js → chunk-R3ZBLGTC.js} +9 -10
- package/dist/cli-bundle/chunks/{chunk-4OXNQHKQ.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-724VLYDJ.js → chunk-RX3HQSYG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PUVPC5DL.js → chunk-S4APD35C.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-T5RTYLZJ.js → chunk-S5AYOUT5.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-T5RTYLZJ.js.map → chunk-S5AYOUT5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-75VMARGO.js → chunk-STPSZ2XY.js} +19 -744
- package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A2W3XKAD.js → chunk-T35XLYZF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N2LOJUBB.js → chunk-T3ABIMGW.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-N2LOJUBB.js.map → chunk-T3ABIMGW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-FDNJMYZB.js → chunk-T3F4DF23.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-FDNJMYZB.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-XFO2NJY6.js → chunk-TSPKZRRW.js} +33 -28
- package/dist/cli-bundle/chunks/chunk-TSPKZRRW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZZWMJVW2.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-7745CXNI.js → chunk-UI5BJ6DO.js} +1231 -1134
- 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-NLCDIZAT.js → chunk-VZIYHZDX.js} +11 -8
- package/dist/cli-bundle/chunks/{contracts-NLCDIZAT.js.map → chunk-VZIYHZDX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-TGYDJEJH.js → chunk-WISPVC2E.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-TGYDJEJH.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-MTB4PRA3.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-SL2ANJSV.js → chunk-YD5FML7K.js} +418 -2173
- package/dist/cli-bundle/chunks/chunk-YD5FML7K.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NHKXOMZ5.js → chunk-YFIE7YK6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-NHKXOMZ5.js.map → chunk-YFIE7YK6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5FYY76HR.js → chunk-YMABYTNG.js} +32 -27
- package/dist/cli-bundle/chunks/chunk-YMABYTNG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-W5X3AHJN.js → chunk-YOF5VPKM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-M6PR5BC6.js → chunk-YPPVU5GX.js} +11 -9
- package/dist/cli-bundle/chunks/{chunk-M6PR5BC6.js.map → chunk-YPPVU5GX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZIEGTQCY.js → chunk-YQMMMONE.js} +6 -4
- package/dist/cli-bundle/chunks/{chunk-ZIEGTQCY.js.map → chunk-YQMMMONE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4IW7STMB.js → chunk-YSAH5FY5.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-4IW7STMB.js.map → chunk-YSAH5FY5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-JYLFF7GJ.js → chunk-YZIR4R3U.js} +16 -14
- package/dist/cli-bundle/chunks/{chunk-JYLFF7GJ.js.map → chunk-YZIR4R3U.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-7G5SUU6F.js → chunk-Z2CRRZYF.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-7G5SUU6F.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-WOOB7PV7.js → chunk-ZCJAA3JK.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-WOOB7PV7.js.map → chunk-ZCJAA3JK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WSDIALO4.js → chunk-ZD34OFFQ.js} +5 -3
- package/dist/cli-bundle/chunks/{chunk-WSDIALO4.js.map → chunk-ZD34OFFQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Q3XVLRCJ.js → chunk-ZJB3UV5U.js} +54 -58
- package/dist/cli-bundle/chunks/chunk-ZJB3UV5U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MZ4NH46V.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-D6L33A5Y.js → claim-4DROPSIS.js} +30 -13
- package/dist/cli-bundle/chunks/claim-4DROPSIS.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-YAFUTPVK.js → claim-VX54TV5U.js} +29 -12
- package/dist/cli-bundle/chunks/claim-VX54TV5U.js.map +7 -0
- package/dist/cli-bundle/chunks/{close-TGYXG7TV.js → close-3YRR3XY6.js} +9 -7
- package/dist/cli-bundle/chunks/close-OB2Y4QP5.js +16 -0
- package/dist/cli-bundle/chunks/{close-many-SNA6LNZH.js → close-many-AP4MWU36.js} +21 -18
- package/dist/cli-bundle/chunks/{close-many-SNA6LNZH.js.map → close-many-AP4MWU36.js.map} +1 -1
- package/dist/cli-bundle/chunks/{close-many-4QSWKCRU.js → close-many-OMZIGZB4.js} +19 -16
- package/dist/cli-bundle/chunks/{close-many-4QSWKCRU.js.map → close-many-OMZIGZB4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-QC6ARR5X.js → comments-MIW5MZOX.js} +12 -9
- package/dist/cli-bundle/chunks/{comments-QC6ARR5X.js.map → comments-MIW5MZOX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-ZHVYGUVC.js → comments-SAG5LSKL.js} +14 -11
- package/dist/cli-bundle/chunks/{comments-ZHVYGUVC.js.map → comments-SAG5LSKL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-O6W2EU2G.js → config-DJJKZB5R.js} +20 -17
- package/dist/cli-bundle/chunks/{config-O6W2EU2G.js.map → config-DJJKZB5R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-XQRFJXJP.js → config-V57QD47V.js} +22 -19
- package/dist/cli-bundle/chunks/{config-XQRFJXJP.js.map → config-V57QD47V.js.map} +1 -1
- package/dist/cli-bundle/chunks/{context-IHE3IXN5.js → context-4OQGIPSO.js} +15 -12
- package/dist/cli-bundle/chunks/{context-WSYWBEUL.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-7MUQC44A.js → copy-LEE6P6EM.js} +17 -14
- package/dist/cli-bundle/chunks/{copy-7MUQC44A.js.map → copy-LEE6P6EM.js.map} +2 -2
- package/dist/cli-bundle/chunks/{copy-ANWXDJVC.js → copy-OTJOWFL6.js} +18 -15
- package/dist/cli-bundle/chunks/{copy-ANWXDJVC.js.map → copy-OTJOWFL6.js.map} +1 -1
- package/dist/cli-bundle/chunks/create-WKOZKPQR.js +30 -0
- package/dist/cli-bundle/chunks/{create-JIA2IFCO.js → create-XWWQFQ6S.js} +14 -12
- package/dist/cli-bundle/chunks/{delete-5OLYWQIC.js → delete-62JQTYT4.js} +10 -7
- package/dist/cli-bundle/chunks/{delete-5OLYWQIC.js.map → delete-62JQTYT4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{delete-INHKCIRN.js → delete-HQKGRNRZ.js} +12 -9
- package/dist/cli-bundle/chunks/{delete-INHKCIRN.js.map → delete-HQKGRNRZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-IYEID3QX.js → deps-55FTG6Z5.js} +12 -9
- package/dist/cli-bundle/chunks/{deps-IYEID3QX.js.map → deps-55FTG6Z5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-CCSWGZW7.js → deps-L2FPIAD3.js} +10 -7
- package/dist/cli-bundle/chunks/{deps-CCSWGZW7.js.map → deps-L2FPIAD3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-PKO7OEIM.js → docs-6CRCSVKK.js} +11 -9
- package/dist/cli-bundle/chunks/{docs-PKO7OEIM.js.map → docs-6CRCSVKK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-3XZK22WF.js → docs-S6UTOTO5.js} +9 -7
- package/dist/cli-bundle/chunks/{docs-3XZK22WF.js.map → docs-S6UTOTO5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-5XYP6NMY.js → eval-N6UHFWVO.js} +15 -11
- package/dist/cli-bundle/chunks/{eval-5XYP6NMY.js.map → eval-N6UHFWVO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-O4WGQYDI.js → eval-PHOTWYHI.js} +17 -13
- package/dist/cli-bundle/chunks/{eval-O4WGQYDI.js.map → eval-PHOTWYHI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{extension-T7JNTAAA.js → extension-NBAH62ML.js} +17 -11
- package/dist/cli-bundle/chunks/{extension-PVGRRZZG.js → extension-ZF6ZZPOU.js} +17 -11
- package/dist/cli-bundle/chunks/{files-W7HH5EOD.js → files-6P57MRKL.js} +12 -9
- package/dist/cli-bundle/chunks/{files-W7HH5EOD.js.map → files-6P57MRKL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{files-7IU56S6R.js → files-JPU3FNJ7.js} +14 -11
- package/dist/cli-bundle/chunks/{files-7IU56S6R.js.map → files-JPU3FNJ7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-6FA5KYRY.js → focus-LFZ6IDBR.js} +15 -11
- package/dist/cli-bundle/chunks/{focus-6FA5KYRY.js.map → focus-LFZ6IDBR.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-CQ63JFDG.js → focus-WNMYCVYA.js} +13 -9
- package/dist/cli-bundle/chunks/{focus-CQ63JFDG.js.map → focus-WNMYCVYA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-3BG67KTO.js → gc-AETFKZ44.js} +10 -7
- package/dist/cli-bundle/chunks/{gc-3BG67KTO.js.map → gc-AETFKZ44.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-PEZYGNVB.js → gc-RLBP4QVN.js} +12 -9
- package/dist/cli-bundle/chunks/{gc-PEZYGNVB.js.map → gc-RLBP4QVN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-J6CSJ4SX.js → get-NH2MPBCI.js} +18 -15
- package/dist/cli-bundle/chunks/{get-J6CSJ4SX.js.map → get-NH2MPBCI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-KJTKGNEQ.js → get-P4ZQXCPZ.js} +16 -13
- package/dist/cli-bundle/chunks/{get-KJTKGNEQ.js.map → get-P4ZQXCPZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-32UQICEL.js → health-3GVPMQBL.js} +36 -29
- package/dist/cli-bundle/chunks/{health-32UQICEL.js.map → health-3GVPMQBL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-ZUZG5ULV.js → health-DNTM72GJ.js} +34 -27
- package/dist/cli-bundle/chunks/{health-ZUZG5ULV.js.map → health-DNTM72GJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-RYKLC72X.js +20 -0
- package/dist/cli-bundle/chunks/{history-W6QVR6FA.js → history-SGPYRAFT.js} +10 -8
- package/dist/cli-bundle/chunks/{history-compact-JQ6ZGYSJ.js → history-compact-3F6VELO7.js} +18 -15
- package/dist/cli-bundle/chunks/{history-compact-JQ6ZGYSJ.js.map → history-compact-3F6VELO7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-compact-F355EGL4.js → history-compact-656Y2TN4.js} +20 -17
- package/dist/cli-bundle/chunks/{history-compact-F355EGL4.js.map → history-compact-656Y2TN4.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-redact-4H3FCKF3.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-TUWOUYX5.js → history-redact-54ICFKXM.js} +11 -9
- package/dist/cli-bundle/chunks/{history-repair-ZKS3LKPV.js → history-repair-4N6SDVHK.js} +17 -14
- package/dist/cli-bundle/chunks/{history-repair-ZKS3LKPV.js.map → history-repair-4N6SDVHK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-repair-MPCAIKYE.js → history-repair-EVTO6LIH.js} +19 -16
- package/dist/cli-bundle/chunks/{history-repair-MPCAIKYE.js.map → history-repair-EVTO6LIH.js.map} +1 -1
- 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-EYC3OKS2.js → learnings-2HTPZNGZ.js} +10 -8
- package/dist/cli-bundle/chunks/{learnings-EYC3OKS2.js.map → learnings-2HTPZNGZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{learnings-HKJJUVTA.js → learnings-YBIHY3D6.js} +12 -10
- package/dist/cli-bundle/chunks/{learnings-HKJJUVTA.js.map → learnings-YBIHY3D6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{list-KN3TL5Y5.js → list-64LHZ3HM.js} +10 -8
- package/dist/cli-bundle/chunks/{list-HFD5737R.js → list-7LXBTEKI.js} +10 -8
- package/dist/cli-bundle/chunks/{next-DQUMFAHG.js → next-7ODPAQ4U.js} +22 -18
- package/dist/cli-bundle/chunks/{next-DQUMFAHG.js.map → next-7ODPAQ4U.js.map} +1 -1
- package/dist/cli-bundle/chunks/{next-JUEYC5HE.js → next-ODJUM4ZM.js} +24 -20
- package/dist/cli-bundle/chunks/{next-JUEYC5HE.js.map → next-ODJUM4ZM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-ZG6RLZXB.js → notes-72YXN5JX.js} +10 -8
- package/dist/cli-bundle/chunks/{notes-ZG6RLZXB.js.map → notes-72YXN5JX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-XATYT43P.js → notes-NJ7IQJX4.js} +12 -10
- package/dist/cli-bundle/chunks/{notes-XATYT43P.js.map → notes-NJ7IQJX4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-DVVLX7LK.js → plan-R4NDQ27E.js} +18 -15
- package/dist/cli-bundle/chunks/{plan-DVVLX7LK.js.map → plan-R4NDQ27E.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-5NWQL2DH.js → plan-XWY5T67S.js} +20 -17
- package/dist/cli-bundle/chunks/{plan-5NWQL2DH.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-WRS6ACUW.js → register-list-query-5H66WFYF.js} +22 -19
- package/dist/cli-bundle/chunks/{register-list-query-WRS6ACUW.js.map → register-list-query-5H66WFYF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-PNRAHNIQ.js → register-list-query-FB3FNDLZ.js} +24 -21
- package/dist/cli-bundle/chunks/{register-list-query-PNRAHNIQ.js.map → register-list-query-FB3FNDLZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-K2MNRWGI.js → register-mutation-UJO23C7R.js} +42 -39
- package/dist/cli-bundle/chunks/{register-mutation-K2MNRWGI.js.map → register-mutation-UJO23C7R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-ET6E4VLE.js → register-mutation-Z2ETYHKS.js} +40 -37
- package/dist/cli-bundle/chunks/{register-mutation-ET6E4VLE.js.map → register-mutation-Z2ETYHKS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-6DQRUTIX.js → register-operations-A3XAM5J7.js} +39 -36
- package/dist/cli-bundle/chunks/{register-operations-6DQRUTIX.js.map → register-operations-A3XAM5J7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-73UDWMVB.js → register-operations-SG7HBSUP.js} +37 -34
- package/dist/cli-bundle/chunks/{register-operations-73UDWMVB.js.map → register-operations-SG7HBSUP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-LYYCMQFV.js → register-setup-I45OGJUV.js} +25 -19
- package/dist/cli-bundle/chunks/{register-setup-LYYCMQFV.js.map → register-setup-I45OGJUV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-FXZJ2CEJ.js → register-setup-K6U3NVY5.js} +23 -17
- package/dist/cli-bundle/chunks/{register-setup-FXZJ2CEJ.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-R6YJHQK3.js → restore-YJ2ET6AT.js} +11 -9
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OGODPUBL.js → scheduling-shortcuts-SSC4MYWQ.js} +14 -12
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OGODPUBL.js.map → scheduling-shortcuts-SSC4MYWQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-LE4S7OI7.js → scheduling-shortcuts-ULRG7MNP.js} +16 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-LE4S7OI7.js.map → scheduling-shortcuts-ULRG7MNP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{schema-ICCD3HOP.js → schema-2PUXCZ25.js} +10 -7
- package/dist/cli-bundle/chunks/{schema-RHH23PQX.js → schema-Y6DXXK2F.js} +10 -7
- package/dist/cli-bundle/chunks/{search-Z2VGP2Q5.js → search-3S72CTD6.js} +13 -10
- package/dist/cli-bundle/chunks/{search-HDDKOPFE.js → search-WNUNBQXO.js} +13 -10
- package/dist/cli-bundle/chunks/{stats-ETFP37MB.js → stats-IJYTRQGV.js} +13 -10
- package/dist/cli-bundle/chunks/{stats-ETFP37MB.js.map → stats-IJYTRQGV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{stats-DHMRXHOB.js → stats-L2D5Y2O5.js} +15 -12
- package/dist/cli-bundle/chunks/{stats-DHMRXHOB.js.map → stats-L2D5Y2O5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{telemetry-ZRBM22QD.js → telemetry-L2CVOKVN.js} +11 -8
- package/dist/cli-bundle/chunks/{telemetry-ZRBM22QD.js.map → telemetry-L2CVOKVN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{telemetry-NUZNKDCP.js → telemetry-QBYWQA76.js} +13 -10
- package/dist/cli-bundle/chunks/{telemetry-NUZNKDCP.js.map → telemetry-QBYWQA76.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-XNKTIP4Y.js → test-DQ2QFJ7W.js} +21 -15
- package/dist/cli-bundle/chunks/test-W7QBLVJS.js +41 -0
- package/dist/cli-bundle/chunks/{test-all-APCBSXQI.js → test-all-636NTRTT.js} +26 -19
- package/dist/cli-bundle/chunks/{test-all-APCBSXQI.js.map → test-all-636NTRTT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-KIK3OYBY.js → test-all-DWYK3RG6.js} +24 -17
- package/dist/cli-bundle/chunks/{test-all-KIK3OYBY.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-XGTJ7QIU.js → update-many-DC7X3EWM.js} +32 -29
- package/dist/cli-bundle/chunks/{update-many-XGTJ7QIU.js.map → update-many-DC7X3EWM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-GFCQG6ZQ.js → update-many-SLLAMHT7.js} +34 -31
- package/dist/cli-bundle/chunks/{update-many-GFCQG6ZQ.js.map → update-many-SLLAMHT7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-KJ3JGELR.js → upgrade-HFFXLZJA.js} +19 -12
- package/dist/cli-bundle/chunks/{upgrade-KJ3JGELR.js.map → upgrade-HFFXLZJA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-RBRQ7PQU.js → upgrade-UYQKM7RF.js} +21 -14
- package/dist/cli-bundle/chunks/{upgrade-RBRQ7PQU.js.map → upgrade-UYQKM7RF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-EW6TGC7R.js → validate-PA4FDTOV.js} +34 -27
- package/dist/cli-bundle/chunks/{validate-EW6TGC7R.js.map → validate-PA4FDTOV.js.map} +2 -2
- package/dist/cli-bundle/chunks/{validate-T6PR5WAL.js → validate-Z7L75YEJ.js} +35 -28
- package/dist/cli-bundle/chunks/{validate-T6PR5WAL.js.map → validate-Z7L75YEJ.js.map} +1 -1
- 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 +5 -0
- 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.js +3 -3
- 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/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 +3 -2
- package/dist/sdk/cli-contracts/flag-contracts.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.js +3 -3
- package/dist/sdk/package-import-adapters.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 +11 -24
- package/packages/pm-beads/extensions/beads/package.json +3 -0
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +24 -2
- package/packages/pm-calendar/extensions/calendar/package.json +3 -0
- 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-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 +21 -3
- package/scripts/bundle-cli.mjs +12 -2
- package/dist/cli-bundle/chunks/activity-IDS5GSYG.js +0 -16
- package/dist/cli-bundle/chunks/chunk-2VK677OA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5FYY76HR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-75VMARGO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7745CXNI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AOP2EMK3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AZMPKLIA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-B4O5S7I3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BDDYM4LH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CN4OAA2G.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EH23N5FX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FMWQRMHS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-J4KNRDI3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KKHIQOTN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LLQLLAKU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-M34MVAOP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MTB4PRA3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MZG6I2Q2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NGDK3KEZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Q3XVLRCJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SBNT6SLO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SL2ANJSV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TUV7SIWZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UGDONITK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UYLA5ROU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WBWRQS32.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XFO2NJY6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XQCWTSLO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YZWXMDNH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-Z4DGFQDH.js.map +0 -1
- package/dist/cli-bundle/chunks/claim-D6L33A5Y.js.map +0 -1
- package/dist/cli-bundle/chunks/claim-YAFUTPVK.js.map +0 -7
- package/dist/cli-bundle/chunks/close-KLDLHAOP.js +0 -14
- package/dist/cli-bundle/chunks/create-AJ6HUR5W.js +0 -28
- package/dist/cli-bundle/chunks/history-IOH6FKG7.js +0 -18
- package/dist/cli-bundle/chunks/history-redact-VVDOARNO.js +0 -19
- package/dist/cli-bundle/chunks/init-CZLEEE6Q.js +0 -22
- package/dist/cli-bundle/chunks/init-MAA6UMNQ.js +0 -26
- package/dist/cli-bundle/chunks/profile-54DZ4CLB.js +0 -1205
- package/dist/cli-bundle/chunks/profile-54DZ4CLB.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-PLIQVEOY.js +0 -1243
- package/dist/cli-bundle/chunks/profile-PLIQVEOY.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-L27TMMCF.js +0 -17
- package/dist/cli-bundle/chunks/test-H36PM746.js +0 -35
- package/dist/cli-bundle/chunks/update-RQKI3AMW.js +0 -24
- package/dist/cli-bundle/chunks/update-ZM7NJWHY.js +0 -28
- /package/dist/cli-bundle/chunks/{activity-IDS5GSYG.js.map → activity-4XQIDNM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-OENQCYZD.js.map → activity-YKAKZTZ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4SHME4VR.js.map → chunk-5JE6SMYS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4EVY7CQN.js.map → chunk-N6DNM2FA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YZR7UMZ6.js.map → chunk-NER3KUUS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WTXDLBSZ.js.map → chunk-PDXT6Q55.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-724VLYDJ.js.map → chunk-RX3HQSYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PUVPC5DL.js.map → chunk-S4APD35C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A2W3XKAD.js.map → chunk-T35XLYZF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZZWMJVW2.js.map → chunk-TT42JUMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W5X3AHJN.js.map → chunk-YOF5VPKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MZ4NH46V.js.map → chunk-ZMD35NYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-TGYXG7TV.js.map → close-3YRR3XY6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-KLDLHAOP.js.map → close-OB2Y4QP5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-IHE3IXN5.js.map → context-4OQGIPSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-WSYWBEUL.js.map → context-WLA6IAWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-AJ6HUR5W.js.map → contracts-HXJLKCRI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-JIA2IFCO.js.map → contracts-OJEXMKVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-T7JNTAAA.js.map → create-WKOZKPQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-PVGRRZZG.js.map → create-XWWQFQ6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-IOH6FKG7.js.map → extension-NBAH62ML.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-W6QVR6FA.js.map → extension-ZF6ZZPOU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-VVDOARNO.js.map → history-RYKLC72X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-TUWOUYX5.js.map → history-SGPYRAFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-CZLEEE6Q.js.map → history-redact-4H3FCKF3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-MAA6UMNQ.js.map → history-redact-54ICFKXM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-HFD5737R.js.map → init-RPIPQUNV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-KN3TL5Y5.js.map → init-SKQAESQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-L27TMMCF.js.map → list-64LHZ3HM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-R6YJHQK3.js.map → list-7LXBTEKI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-ICCD3HOP.js.map → restore-PXOFL6AM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-RHH23PQX.js.map → restore-YJ2ET6AT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-HDDKOPFE.js.map → schema-2PUXCZ25.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-Z2VGP2Q5.js.map → schema-Y6DXXK2F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-XNKTIP4Y.js.map → search-3S72CTD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-H36PM746.js.map → search-WNUNBQXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-ZM7NJWHY.js.map → test-DQ2QFJ7W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-RQKI3AMW.js.map → test-W7QBLVJS.js.map} +0 -0
|
@@ -172,12 +172,22 @@ function resolvePmCliVersion(metaUrl, fallbackRelativeSegments = []) {
|
|
|
172
172
|
return void 0;
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
+
function resolveConfiguredPmPackageRoot(env = process.env, envName = "PM_CLI_PACKAGE_ROOT", metaUrl, fallbackRelativeSegments = []) {
|
|
176
|
+
const envRoot = env[envName];
|
|
177
|
+
if (typeof envRoot === "string" && envRoot.trim().length > 0) {
|
|
178
|
+
return path3.resolve(envRoot.trim());
|
|
179
|
+
}
|
|
180
|
+
if (metaUrl) {
|
|
181
|
+
return resolvePmPackageRootFromModule(metaUrl, fallbackRelativeSegments);
|
|
182
|
+
}
|
|
183
|
+
return process.cwd();
|
|
184
|
+
}
|
|
175
185
|
|
|
176
186
|
// dist/core/extensions/extension-types.js
|
|
177
187
|
!(function() {
|
|
178
188
|
try {
|
|
179
189
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
180
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
190
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "0fdb02e4-60e7-5f4c-9f06-d2ec2f03f792");
|
|
181
191
|
} catch (e2) {
|
|
182
192
|
}
|
|
183
193
|
})();
|
|
@@ -265,7 +275,7 @@ function createDefaultExtensionGovernancePolicy() {
|
|
|
265
275
|
!(function() {
|
|
266
276
|
try {
|
|
267
277
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
268
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
278
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "3a76b425-d6cd-5ba4-a77f-bd95a7deb473");
|
|
269
279
|
} catch (e2) {
|
|
270
280
|
}
|
|
271
281
|
})();
|
|
@@ -464,7 +474,8 @@ var SETTINGS_DEFAULTS = {
|
|
|
464
474
|
author_default: "",
|
|
465
475
|
item_format: "toon",
|
|
466
476
|
locks: {
|
|
467
|
-
ttl_seconds: 1800
|
|
477
|
+
ttl_seconds: 1800,
|
|
478
|
+
wait_ms: 3e3
|
|
468
479
|
},
|
|
469
480
|
checkpoints: {
|
|
470
481
|
retention_days: 14
|
|
@@ -667,7 +678,7 @@ function resolveTelemetryErrorCategory(errorCode) {
|
|
|
667
678
|
!(function() {
|
|
668
679
|
try {
|
|
669
680
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
670
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
681
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "6e5bac32-d895-5fce-9fc0-9c0615399b61");
|
|
671
682
|
} catch (e2) {
|
|
672
683
|
}
|
|
673
684
|
})();
|
|
@@ -1611,7 +1622,7 @@ function getTestRunResultPath(pmRoot, runId) {
|
|
|
1611
1622
|
!(function() {
|
|
1612
1623
|
try {
|
|
1613
1624
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1614
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
1625
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f9d3b558-3b10-5f06-a2d1-7ceb16119586");
|
|
1615
1626
|
} catch (e2) {
|
|
1616
1627
|
}
|
|
1617
1628
|
})();
|
|
@@ -1669,6 +1680,23 @@ function asRecordLoose(value) {
|
|
|
1669
1680
|
}
|
|
1670
1681
|
return value;
|
|
1671
1682
|
}
|
|
1683
|
+
function asPropertyRecord(value) {
|
|
1684
|
+
if (typeof value !== "object" && typeof value !== "function" || value === null) {
|
|
1685
|
+
return null;
|
|
1686
|
+
}
|
|
1687
|
+
return value;
|
|
1688
|
+
}
|
|
1689
|
+
function resolveActivatablePropertyRecord(value) {
|
|
1690
|
+
const moduleRecord = asPropertyRecord(value);
|
|
1691
|
+
if (!moduleRecord) {
|
|
1692
|
+
return null;
|
|
1693
|
+
}
|
|
1694
|
+
if (typeof moduleRecord.activate === "function") {
|
|
1695
|
+
return moduleRecord;
|
|
1696
|
+
}
|
|
1697
|
+
const defaultExport = asPropertyRecord(moduleRecord.default);
|
|
1698
|
+
return typeof defaultExport?.activate === "function" ? defaultExport : null;
|
|
1699
|
+
}
|
|
1672
1700
|
|
|
1673
1701
|
// dist/core/shared/levenshtein.js
|
|
1674
1702
|
!(function() {
|
|
@@ -1722,6 +1750,139 @@ function levenshteinDistanceWithinLimit(left, right, limit) {
|
|
|
1722
1750
|
return result <= limit ? result : null;
|
|
1723
1751
|
}
|
|
1724
1752
|
|
|
1753
|
+
// dist/core/extensions/extension-capability-aliases.js
|
|
1754
|
+
!(function() {
|
|
1755
|
+
try {
|
|
1756
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1757
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "5723464e-1f10-5a39-96a9-787c0052a036");
|
|
1758
|
+
} catch (e2) {
|
|
1759
|
+
}
|
|
1760
|
+
})();
|
|
1761
|
+
function normalizeNames(values) {
|
|
1762
|
+
return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort((a, b) => a.localeCompare(b));
|
|
1763
|
+
}
|
|
1764
|
+
function isKnownExtensionCapability(value) {
|
|
1765
|
+
return KNOWN_EXTENSION_CAPABILITIES.includes(value);
|
|
1766
|
+
}
|
|
1767
|
+
function normalizeKnownExtensionCapability(value) {
|
|
1768
|
+
const normalized = value.trim().toLowerCase();
|
|
1769
|
+
return isKnownExtensionCapability(normalized) ? normalized : null;
|
|
1770
|
+
}
|
|
1771
|
+
function collectUnknownExtensionCapabilities(capabilities) {
|
|
1772
|
+
return capabilities.filter((capability) => !isKnownExtensionCapability(capability));
|
|
1773
|
+
}
|
|
1774
|
+
function resolveLegacyExtensionCapabilityAlias(capability) {
|
|
1775
|
+
const normalized = capability.trim().toLowerCase();
|
|
1776
|
+
if (normalized.length === 0) {
|
|
1777
|
+
return null;
|
|
1778
|
+
}
|
|
1779
|
+
return EXTENSION_CAPABILITY_LEGACY_ALIASES[normalized] ?? null;
|
|
1780
|
+
}
|
|
1781
|
+
function normalizeManifestCapabilities(rawCapabilities) {
|
|
1782
|
+
const normalizedCapabilities = normalizeNames([...rawCapabilities].map((value) => value.toLowerCase()));
|
|
1783
|
+
const remappedCapabilities = [];
|
|
1784
|
+
const legacyAliases = [];
|
|
1785
|
+
for (const capability of normalizedCapabilities) {
|
|
1786
|
+
const legacyAliasTarget = resolveLegacyExtensionCapabilityAlias(capability);
|
|
1787
|
+
if (legacyAliasTarget) {
|
|
1788
|
+
remappedCapabilities.push(legacyAliasTarget);
|
|
1789
|
+
legacyAliases.push({
|
|
1790
|
+
alias: capability,
|
|
1791
|
+
target: legacyAliasTarget
|
|
1792
|
+
});
|
|
1793
|
+
continue;
|
|
1794
|
+
}
|
|
1795
|
+
remappedCapabilities.push(capability);
|
|
1796
|
+
}
|
|
1797
|
+
const dedupedLegacyAliases = [...new Map(legacyAliases.map((entry) => [`${entry.alias}>${entry.target}`, entry])).values()].sort((left, right) => left.alias.localeCompare(right.alias));
|
|
1798
|
+
return {
|
|
1799
|
+
capabilities: normalizeNames(remappedCapabilities),
|
|
1800
|
+
legacy_aliases: dedupedLegacyAliases
|
|
1801
|
+
};
|
|
1802
|
+
}
|
|
1803
|
+
function suggestKnownExtensionCapability(capability) {
|
|
1804
|
+
const normalized = capability.trim().toLowerCase();
|
|
1805
|
+
if (normalized.length === 0) {
|
|
1806
|
+
return null;
|
|
1807
|
+
}
|
|
1808
|
+
const legacyAlias = resolveLegacyExtensionCapabilityAlias(normalized);
|
|
1809
|
+
if (legacyAlias) {
|
|
1810
|
+
return legacyAlias;
|
|
1811
|
+
}
|
|
1812
|
+
const maxDistance = Math.max(1, Math.floor(normalized.length * 0.34));
|
|
1813
|
+
let bestMatch = null;
|
|
1814
|
+
let bestDistance = Number.POSITIVE_INFINITY;
|
|
1815
|
+
for (const candidate of KNOWN_EXTENSION_CAPABILITIES) {
|
|
1816
|
+
const distance = levenshteinDistanceWithinLimit(normalized, candidate, maxDistance);
|
|
1817
|
+
if (distance !== null && distance < bestDistance) {
|
|
1818
|
+
bestDistance = distance;
|
|
1819
|
+
bestMatch = candidate;
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
return bestMatch;
|
|
1823
|
+
}
|
|
1824
|
+
function formatUnknownExtensionCapabilityWarning(layer, name, capability) {
|
|
1825
|
+
const allowed = KNOWN_EXTENSION_CAPABILITIES.join(",");
|
|
1826
|
+
const suggested = suggestKnownExtensionCapability(capability) ?? "none";
|
|
1827
|
+
return `extension_capability_unknown:${layer}:${name}:${capability}:allowed=${allowed}:suggested=${suggested}`;
|
|
1828
|
+
}
|
|
1829
|
+
function formatLegacyExtensionCapabilityAliasWarning(layer, name, aliases) {
|
|
1830
|
+
const aliasesToken = aliases.map((entry) => `${entry.alias}>${entry.target}`).join(",");
|
|
1831
|
+
return `extension_capability_legacy_alias:${layer}:${name}:aliases=${aliasesToken}`;
|
|
1832
|
+
}
|
|
1833
|
+
function parseUnknownExtensionCapabilityWarning(warning) {
|
|
1834
|
+
const match = /^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(warning.trim());
|
|
1835
|
+
if (!match) {
|
|
1836
|
+
return null;
|
|
1837
|
+
}
|
|
1838
|
+
const [, layerRaw, name, capability, allowedRaw, suggestedRaw] = match;
|
|
1839
|
+
const layer = layerRaw;
|
|
1840
|
+
const allowed_capabilities = allowedRaw.split(",").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
1841
|
+
const legacyAlias = resolveLegacyExtensionCapabilityAlias(capability);
|
|
1842
|
+
const suggestedFromWarning = suggestedRaw === "none" ? void 0 : suggestedRaw;
|
|
1843
|
+
const suggested_capability = suggestedFromWarning ?? legacyAlias ?? void 0;
|
|
1844
|
+
const suggestion_source = suggested_capability ? legacyAlias === suggested_capability ? "legacy_alias" : "nearest_match" : void 0;
|
|
1845
|
+
return {
|
|
1846
|
+
layer,
|
|
1847
|
+
name,
|
|
1848
|
+
capability,
|
|
1849
|
+
allowed_capabilities,
|
|
1850
|
+
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
1851
|
+
suggested_capability,
|
|
1852
|
+
suggestion_source,
|
|
1853
|
+
legacy_alias_target: legacyAlias ?? void 0
|
|
1854
|
+
};
|
|
1855
|
+
}
|
|
1856
|
+
function parseLegacyExtensionCapabilityAliasWarning(warning) {
|
|
1857
|
+
const match = /^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(warning.trim());
|
|
1858
|
+
if (!match) {
|
|
1859
|
+
return [];
|
|
1860
|
+
}
|
|
1861
|
+
const [, layerRaw, name, aliasesRaw] = match;
|
|
1862
|
+
const layer = layerRaw;
|
|
1863
|
+
const allowedCapabilities = [...KNOWN_EXTENSION_CAPABILITIES];
|
|
1864
|
+
const parsed = [];
|
|
1865
|
+
for (const token of aliasesRaw.split(",")) {
|
|
1866
|
+
const [rawAlias, rawTarget] = token.split(">");
|
|
1867
|
+
const alias = rawAlias?.trim();
|
|
1868
|
+
const target = rawTarget?.trim().toLowerCase();
|
|
1869
|
+
if (!alias || !target || !isKnownExtensionCapability(target)) {
|
|
1870
|
+
continue;
|
|
1871
|
+
}
|
|
1872
|
+
parsed.push({
|
|
1873
|
+
layer,
|
|
1874
|
+
name,
|
|
1875
|
+
capability: alias,
|
|
1876
|
+
allowed_capabilities: allowedCapabilities,
|
|
1877
|
+
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
1878
|
+
suggested_capability: target,
|
|
1879
|
+
suggestion_source: "legacy_alias",
|
|
1880
|
+
legacy_alias_target: target
|
|
1881
|
+
});
|
|
1882
|
+
}
|
|
1883
|
+
return parsed;
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1725
1886
|
// dist/core/extensions/extension-registries.js
|
|
1726
1887
|
!(function() {
|
|
1727
1888
|
try {
|
|
@@ -2395,213 +2556,80 @@ function evaluatePmMaxVersionBound(required, currentVersion, exceededMode) {
|
|
|
2395
2556
|
return { kind: "pm_max_version", status: "ok", allowed: true, required: declared, current: currentVersion };
|
|
2396
2557
|
}
|
|
2397
2558
|
|
|
2398
|
-
// dist/core/extensions/extension-
|
|
2559
|
+
// dist/core/extensions/extension-policy.js
|
|
2399
2560
|
!(function() {
|
|
2400
2561
|
try {
|
|
2401
2562
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
2402
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
2563
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "dbc43b74-6872-52c3-859a-64fe84c02b5b");
|
|
2403
2564
|
} catch (e2) {
|
|
2404
2565
|
}
|
|
2405
2566
|
})();
|
|
2406
|
-
function
|
|
2407
|
-
|
|
2567
|
+
function normalizePolicyName(value) {
|
|
2568
|
+
if (typeof value !== "string") {
|
|
2569
|
+
return "";
|
|
2570
|
+
}
|
|
2571
|
+
return value.trim().toLowerCase();
|
|
2408
2572
|
}
|
|
2409
|
-
function
|
|
2410
|
-
return
|
|
2573
|
+
function normalizePolicyStringSet(values) {
|
|
2574
|
+
return new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0));
|
|
2411
2575
|
}
|
|
2412
|
-
function
|
|
2576
|
+
function normalizePolicySurfaceToken(value) {
|
|
2413
2577
|
const normalized = value.trim().toLowerCase();
|
|
2414
|
-
|
|
2578
|
+
if (normalized.length === 0) {
|
|
2579
|
+
return "";
|
|
2580
|
+
}
|
|
2581
|
+
const segments = normalized.split(/[.:/]/).map((segment) => segment.replace(/[\s_-]+/g, "")).filter((segment) => segment.length > 0);
|
|
2582
|
+
if (segments.length === 0) {
|
|
2583
|
+
return "";
|
|
2584
|
+
}
|
|
2585
|
+
if (segments.length === 1) {
|
|
2586
|
+
return segments[0];
|
|
2587
|
+
}
|
|
2588
|
+
return `${segments[0]}.${segments.slice(1).join("")}`;
|
|
2415
2589
|
}
|
|
2416
|
-
function
|
|
2417
|
-
return
|
|
2590
|
+
function normalizePolicySurfaceSet(values) {
|
|
2591
|
+
return new Set((values ?? []).map((value) => normalizePolicySurfaceToken(value)).filter((value) => value.length > 0));
|
|
2418
2592
|
}
|
|
2419
|
-
function
|
|
2420
|
-
const normalized =
|
|
2421
|
-
if (normalized
|
|
2422
|
-
return
|
|
2593
|
+
function normalizePolicyMode(value) {
|
|
2594
|
+
const normalized = normalizePolicyName(value);
|
|
2595
|
+
if (KNOWN_EXTENSION_POLICY_MODES.includes(normalized)) {
|
|
2596
|
+
return normalized;
|
|
2423
2597
|
}
|
|
2424
|
-
return
|
|
2598
|
+
return "off";
|
|
2425
2599
|
}
|
|
2426
|
-
function
|
|
2427
|
-
const
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
for (const capability of normalizedCapabilities) {
|
|
2431
|
-
const legacyAliasTarget = resolveLegacyExtensionCapabilityAlias(capability);
|
|
2432
|
-
if (legacyAliasTarget) {
|
|
2433
|
-
remappedCapabilities.push(legacyAliasTarget);
|
|
2434
|
-
legacyAliases.push({
|
|
2435
|
-
alias: capability,
|
|
2436
|
-
target: legacyAliasTarget
|
|
2437
|
-
});
|
|
2438
|
-
continue;
|
|
2439
|
-
}
|
|
2440
|
-
remappedCapabilities.push(capability);
|
|
2600
|
+
function normalizePolicyTrustMode(value) {
|
|
2601
|
+
const normalized = normalizePolicyName(value);
|
|
2602
|
+
if (KNOWN_EXTENSION_TRUST_MODES.includes(normalized)) {
|
|
2603
|
+
return normalized;
|
|
2441
2604
|
}
|
|
2442
|
-
|
|
2443
|
-
return {
|
|
2444
|
-
capabilities: normalizeNames(remappedCapabilities),
|
|
2445
|
-
legacy_aliases: dedupedLegacyAliases
|
|
2446
|
-
};
|
|
2605
|
+
return "off";
|
|
2447
2606
|
}
|
|
2448
|
-
function
|
|
2449
|
-
const normalized =
|
|
2450
|
-
if (normalized
|
|
2451
|
-
return
|
|
2607
|
+
function normalizePolicySandboxProfile(value) {
|
|
2608
|
+
const normalized = normalizePolicyName(value);
|
|
2609
|
+
if (KNOWN_EXTENSION_SANDBOX_PROFILES.includes(normalized)) {
|
|
2610
|
+
return normalized;
|
|
2452
2611
|
}
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2612
|
+
return "none";
|
|
2613
|
+
}
|
|
2614
|
+
function normalizePmMaxVersionExceededModeValue(value) {
|
|
2615
|
+
if (typeof value !== "string") {
|
|
2616
|
+
return void 0;
|
|
2456
2617
|
}
|
|
2457
|
-
const
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
bestMatch = candidate;
|
|
2465
|
-
}
|
|
2618
|
+
const normalized = value.trim().toLowerCase();
|
|
2619
|
+
return KNOWN_PM_MAX_VERSION_EXCEEDED_MODES.includes(normalized) ? normalized : void 0;
|
|
2620
|
+
}
|
|
2621
|
+
function normalizePmMaxVersionExceededMode(value) {
|
|
2622
|
+
if (typeof value === "string") {
|
|
2623
|
+
const mode = normalizePmMaxVersionExceededModeValue(value) ?? "block";
|
|
2624
|
+
return { global: mode, project: mode };
|
|
2466
2625
|
}
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
}
|
|
2474
|
-
function formatLegacyExtensionCapabilityAliasWarning(layer, name, aliases) {
|
|
2475
|
-
const aliasesToken = aliases.map((entry) => `${entry.alias}>${entry.target}`).join(",");
|
|
2476
|
-
return `extension_capability_legacy_alias:${layer}:${name}:aliases=${aliasesToken}`;
|
|
2477
|
-
}
|
|
2478
|
-
function parseUnknownExtensionCapabilityWarning(warning) {
|
|
2479
|
-
const match = /^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(warning.trim());
|
|
2480
|
-
if (!match) {
|
|
2481
|
-
return null;
|
|
2482
|
-
}
|
|
2483
|
-
const [, layerRaw, name, capability, allowedRaw, suggestedRaw] = match;
|
|
2484
|
-
const layer = layerRaw;
|
|
2485
|
-
const allowed_capabilities = allowedRaw.split(",").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
2486
|
-
const legacyAlias = resolveLegacyExtensionCapabilityAlias(capability);
|
|
2487
|
-
const suggestedFromWarning = suggestedRaw === "none" ? void 0 : suggestedRaw;
|
|
2488
|
-
const suggested_capability = suggestedFromWarning ?? legacyAlias ?? void 0;
|
|
2489
|
-
const suggestion_source = suggested_capability ? legacyAlias === suggested_capability ? "legacy_alias" : "nearest_match" : void 0;
|
|
2490
|
-
return {
|
|
2491
|
-
layer,
|
|
2492
|
-
name,
|
|
2493
|
-
capability,
|
|
2494
|
-
allowed_capabilities,
|
|
2495
|
-
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
2496
|
-
suggested_capability,
|
|
2497
|
-
suggestion_source,
|
|
2498
|
-
legacy_alias_target: legacyAlias ?? void 0
|
|
2499
|
-
};
|
|
2500
|
-
}
|
|
2501
|
-
function parseLegacyExtensionCapabilityAliasWarning(warning) {
|
|
2502
|
-
const match = /^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(warning.trim());
|
|
2503
|
-
if (!match) {
|
|
2504
|
-
return [];
|
|
2505
|
-
}
|
|
2506
|
-
const [, layerRaw, name, aliasesRaw] = match;
|
|
2507
|
-
const layer = layerRaw;
|
|
2508
|
-
const allowedCapabilities = [...KNOWN_EXTENSION_CAPABILITIES];
|
|
2509
|
-
const parsed = [];
|
|
2510
|
-
for (const token of aliasesRaw.split(",")) {
|
|
2511
|
-
const [rawAlias, rawTarget] = token.split(">");
|
|
2512
|
-
const alias = rawAlias?.trim();
|
|
2513
|
-
const target = rawTarget?.trim().toLowerCase();
|
|
2514
|
-
if (!alias || !target || !isKnownExtensionCapability(target)) {
|
|
2515
|
-
continue;
|
|
2516
|
-
}
|
|
2517
|
-
parsed.push({
|
|
2518
|
-
layer,
|
|
2519
|
-
name,
|
|
2520
|
-
capability: alias,
|
|
2521
|
-
allowed_capabilities: allowedCapabilities,
|
|
2522
|
-
capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
2523
|
-
suggested_capability: target,
|
|
2524
|
-
suggestion_source: "legacy_alias",
|
|
2525
|
-
legacy_alias_target: target
|
|
2526
|
-
});
|
|
2527
|
-
}
|
|
2528
|
-
return parsed;
|
|
2529
|
-
}
|
|
2530
|
-
|
|
2531
|
-
// dist/core/extensions/extension-policy.js
|
|
2532
|
-
!(function() {
|
|
2533
|
-
try {
|
|
2534
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
2535
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "dbc43b74-6872-52c3-859a-64fe84c02b5b");
|
|
2536
|
-
} catch (e2) {
|
|
2537
|
-
}
|
|
2538
|
-
})();
|
|
2539
|
-
function normalizePolicyName(value) {
|
|
2540
|
-
if (typeof value !== "string") {
|
|
2541
|
-
return "";
|
|
2542
|
-
}
|
|
2543
|
-
return value.trim().toLowerCase();
|
|
2544
|
-
}
|
|
2545
|
-
function normalizePolicyStringSet(values) {
|
|
2546
|
-
return new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0));
|
|
2547
|
-
}
|
|
2548
|
-
function normalizePolicySurfaceToken(value) {
|
|
2549
|
-
const normalized = value.trim().toLowerCase();
|
|
2550
|
-
if (normalized.length === 0) {
|
|
2551
|
-
return "";
|
|
2552
|
-
}
|
|
2553
|
-
const segments = normalized.split(/[.:/]/).map((segment) => segment.replace(/[\s_-]+/g, "")).filter((segment) => segment.length > 0);
|
|
2554
|
-
if (segments.length === 0) {
|
|
2555
|
-
return "";
|
|
2556
|
-
}
|
|
2557
|
-
if (segments.length === 1) {
|
|
2558
|
-
return segments[0];
|
|
2559
|
-
}
|
|
2560
|
-
return `${segments[0]}.${segments.slice(1).join("")}`;
|
|
2561
|
-
}
|
|
2562
|
-
function normalizePolicySurfaceSet(values) {
|
|
2563
|
-
return new Set((values ?? []).map((value) => normalizePolicySurfaceToken(value)).filter((value) => value.length > 0));
|
|
2564
|
-
}
|
|
2565
|
-
function normalizePolicyMode(value) {
|
|
2566
|
-
const normalized = normalizePolicyName(value);
|
|
2567
|
-
if (KNOWN_EXTENSION_POLICY_MODES.includes(normalized)) {
|
|
2568
|
-
return normalized;
|
|
2569
|
-
}
|
|
2570
|
-
return "off";
|
|
2571
|
-
}
|
|
2572
|
-
function normalizePolicyTrustMode(value) {
|
|
2573
|
-
const normalized = normalizePolicyName(value);
|
|
2574
|
-
if (KNOWN_EXTENSION_TRUST_MODES.includes(normalized)) {
|
|
2575
|
-
return normalized;
|
|
2576
|
-
}
|
|
2577
|
-
return "off";
|
|
2578
|
-
}
|
|
2579
|
-
function normalizePolicySandboxProfile(value) {
|
|
2580
|
-
const normalized = normalizePolicyName(value);
|
|
2581
|
-
if (KNOWN_EXTENSION_SANDBOX_PROFILES.includes(normalized)) {
|
|
2582
|
-
return normalized;
|
|
2583
|
-
}
|
|
2584
|
-
return "none";
|
|
2585
|
-
}
|
|
2586
|
-
function normalizePmMaxVersionExceededModeValue(value) {
|
|
2587
|
-
if (typeof value !== "string") {
|
|
2588
|
-
return void 0;
|
|
2589
|
-
}
|
|
2590
|
-
const normalized = value.trim().toLowerCase();
|
|
2591
|
-
return KNOWN_PM_MAX_VERSION_EXCEEDED_MODES.includes(normalized) ? normalized : void 0;
|
|
2592
|
-
}
|
|
2593
|
-
function normalizePmMaxVersionExceededMode(value) {
|
|
2594
|
-
if (typeof value === "string") {
|
|
2595
|
-
const mode = normalizePmMaxVersionExceededModeValue(value) ?? "block";
|
|
2596
|
-
return { global: mode, project: mode };
|
|
2597
|
-
}
|
|
2598
|
-
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
2599
|
-
return {
|
|
2600
|
-
global: normalizePmMaxVersionExceededModeValue(value.global) ?? "block",
|
|
2601
|
-
project: normalizePmMaxVersionExceededModeValue(value.project) ?? "block"
|
|
2602
|
-
};
|
|
2603
|
-
}
|
|
2604
|
-
return { global: "block", project: "block" };
|
|
2626
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
2627
|
+
return {
|
|
2628
|
+
global: normalizePmMaxVersionExceededModeValue(value.global) ?? "block",
|
|
2629
|
+
project: normalizePmMaxVersionExceededModeValue(value.project) ?? "block"
|
|
2630
|
+
};
|
|
2631
|
+
}
|
|
2632
|
+
return { global: "block", project: "block" };
|
|
2605
2633
|
}
|
|
2606
2634
|
function serializePmMaxVersionExceededMode(mode) {
|
|
2607
2635
|
return mode.global === mode.project ? mode.global : { global: mode.global, project: mode.project };
|
|
@@ -3002,7 +3030,7 @@ function evaluateExtensionPolicyForRegistration(policy, extension, surface, meth
|
|
|
3002
3030
|
!(function() {
|
|
3003
3031
|
try {
|
|
3004
3032
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
3005
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
3033
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "07458218-1762-56b2-932e-adfacc4fa916");
|
|
3006
3034
|
} catch (e2) {
|
|
3007
3035
|
}
|
|
3008
3036
|
})();
|
|
@@ -3377,14 +3405,14 @@ function buildEffectiveExtensions(globalCandidates, projectCandidates) {
|
|
|
3377
3405
|
}
|
|
3378
3406
|
return effective;
|
|
3379
3407
|
}
|
|
3380
|
-
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled,
|
|
3408
|
+
async function scanExtensionLayer(layer, extensionsRoot, enabled, disabled, pmMaxVersionExceededMode) {
|
|
3381
3409
|
const diagnostics = [];
|
|
3382
3410
|
const warnings = [];
|
|
3383
3411
|
const candidates = [];
|
|
3384
3412
|
const directories = await listExtensionDirectories(extensionsRoot);
|
|
3385
3413
|
const managedSourcePackages = await readManagedExtensionSourcePackages(extensionsRoot);
|
|
3386
3414
|
for (const directory of directories) {
|
|
3387
|
-
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages,
|
|
3415
|
+
const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode);
|
|
3388
3416
|
diagnostics.push(scanned.diagnostic);
|
|
3389
3417
|
warnings.push(...scanned.warnings);
|
|
3390
3418
|
if (scanned.candidate) {
|
|
@@ -3432,13 +3460,13 @@ function collectScannedExtensionWarnings(layer, manifest, entryWithinDirectory,
|
|
|
3432
3460
|
}
|
|
3433
3461
|
return extensionWarnings;
|
|
3434
3462
|
}
|
|
3435
|
-
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages,
|
|
3463
|
+
async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled, managedSourcePackages, pmMaxVersionExceededMode) {
|
|
3436
3464
|
const extensionDir = path5.join(extensionsRoot, directory);
|
|
3437
3465
|
const manifestPath = path5.join(extensionDir, "manifest.json");
|
|
3438
3466
|
if (!await pathExists(manifestPath)) {
|
|
3439
3467
|
return buildUnavailableExtensionScan(layer, directory, manifestPath, `extension_manifest_missing:${layer}:${directory}`);
|
|
3440
3468
|
}
|
|
3441
|
-
let manifest
|
|
3469
|
+
let manifest;
|
|
3442
3470
|
try {
|
|
3443
3471
|
const parsed = JSON.parse(await fs3.readFile(manifestPath, "utf8"));
|
|
3444
3472
|
manifest = parseManifest(parsed);
|
|
@@ -3454,7 +3482,7 @@ async function scanExtensionDirectory(layer, extensionsRoot, directory, enabled,
|
|
|
3454
3482
|
const entryWithinDirectory = entryWithinDirectoryByPath && entryExists ? await isCanonicalPathWithinDirectory(extensionDir, entryPath) : entryWithinDirectoryByPath;
|
|
3455
3483
|
const enabledForLoad = shouldEnable(manifest.name, enabled, disabled);
|
|
3456
3484
|
const pmVersionCompatibility = await evaluatePmMinVersionCompatibility(layer, manifest);
|
|
3457
|
-
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest,
|
|
3485
|
+
const pmMaxVersionCompatibility = await evaluatePmMaxVersionCompatibility(layer, manifest, pmMaxVersionExceededMode);
|
|
3458
3486
|
const extensionWarnings = collectScannedExtensionWarnings(layer, manifest, entryWithinDirectory, entryExists, pmVersionCompatibility, pmMaxVersionCompatibility);
|
|
3459
3487
|
const extensionReady = entryWithinDirectory && entryExists && pmVersionCompatibility.allowed && pmMaxVersionCompatibility.allowed;
|
|
3460
3488
|
const sourcePackage = managedSourcePackages.get(`directory:${directory}`) ?? managedSourcePackages.get(`name:${manifest.name}`);
|
|
@@ -3649,7 +3677,8 @@ async function loadExtensions(options) {
|
|
|
3649
3677
|
failed
|
|
3650
3678
|
};
|
|
3651
3679
|
}
|
|
3652
|
-
|
|
3680
|
+
const extensionsToLoad = typeof options.extensionFilter === "function" ? discovery.effective.filter(options.extensionFilter) : discovery.effective;
|
|
3681
|
+
for (const extension of extensionsToLoad) {
|
|
3653
3682
|
try {
|
|
3654
3683
|
const importHref = await resolveExtensionImportHref(extension, options);
|
|
3655
3684
|
const module = await import(importHref);
|
|
@@ -3674,6 +3703,8 @@ async function loadExtensions(options) {
|
|
|
3674
3703
|
failed
|
|
3675
3704
|
};
|
|
3676
3705
|
}
|
|
3706
|
+
var DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS = 5e3;
|
|
3707
|
+
var MAX_EXTENSION_DEACTIVATE_TIMEOUT_MS = 2147483647;
|
|
3677
3708
|
function toActivatableExtension(source) {
|
|
3678
3709
|
const activate = source.activate;
|
|
3679
3710
|
const activatable = {
|
|
@@ -3686,18 +3717,78 @@ function toActivatableExtension(source) {
|
|
|
3686
3717
|
return activatable;
|
|
3687
3718
|
}
|
|
3688
3719
|
function resolveActivatableExtension(module) {
|
|
3689
|
-
const
|
|
3690
|
-
|
|
3691
|
-
|
|
3720
|
+
const activatableRecord = resolveActivatablePropertyRecord(module);
|
|
3721
|
+
return activatableRecord ? toActivatableExtension(activatableRecord) : null;
|
|
3722
|
+
}
|
|
3723
|
+
async function deactivateExtensions(loadResult, activationResult, options = {}) {
|
|
3724
|
+
const timeoutMs = normalizeExtensionDeactivateTimeout(options?.deactivate_timeout_ms);
|
|
3725
|
+
const failedActivationKeys = new Set((activationResult?.failed ?? []).map((entry) => `${entry.layer}:${entry.name}`));
|
|
3726
|
+
const targets = [];
|
|
3727
|
+
for (const extension of loadResult.loaded) {
|
|
3728
|
+
if (failedActivationKeys.has(`${extension.layer}:${extension.name}`)) {
|
|
3729
|
+
continue;
|
|
3730
|
+
}
|
|
3731
|
+
const activatable = resolveActivatableExtension(extension.module);
|
|
3732
|
+
if (!activatable || typeof activatable.deactivate !== "function") {
|
|
3733
|
+
continue;
|
|
3734
|
+
}
|
|
3735
|
+
targets.push({ extension, deactivate: activatable.deactivate });
|
|
3692
3736
|
}
|
|
3693
|
-
|
|
3694
|
-
|
|
3737
|
+
const outcomes = await Promise.all(targets.map(async ({ extension, deactivate }) => {
|
|
3738
|
+
try {
|
|
3739
|
+
await runExtensionDeactivateWithTimeout(deactivate, timeoutMs);
|
|
3740
|
+
return { ok: true };
|
|
3741
|
+
} catch (error) {
|
|
3742
|
+
return { ok: false, layer: extension.layer, name: extension.name, error: formatUnknownError(error) };
|
|
3743
|
+
}
|
|
3744
|
+
}));
|
|
3745
|
+
const warnings = [];
|
|
3746
|
+
const failed = [];
|
|
3747
|
+
let deactivated = 0;
|
|
3748
|
+
for (const outcome of outcomes) {
|
|
3749
|
+
if (outcome.ok) {
|
|
3750
|
+
deactivated += 1;
|
|
3751
|
+
continue;
|
|
3752
|
+
}
|
|
3753
|
+
warnings.push(`extension_deactivate_failed:${outcome.layer}:${outcome.name}`);
|
|
3754
|
+
failed.push({ layer: outcome.layer, name: outcome.name, error: outcome.error });
|
|
3695
3755
|
}
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3756
|
+
return { deactivated, warnings, failed };
|
|
3757
|
+
}
|
|
3758
|
+
function normalizeExtensionDeactivateTimeout(rawTimeout) {
|
|
3759
|
+
if (typeof rawTimeout !== "number" || rawTimeout < 0) {
|
|
3760
|
+
return DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS;
|
|
3761
|
+
}
|
|
3762
|
+
if (rawTimeout === 0 || rawTimeout === Infinity) {
|
|
3763
|
+
return 0;
|
|
3764
|
+
}
|
|
3765
|
+
if (!Number.isFinite(rawTimeout)) {
|
|
3766
|
+
return DEFAULT_EXTENSION_DEACTIVATE_TIMEOUT_MS;
|
|
3767
|
+
}
|
|
3768
|
+
return Math.min(MAX_EXTENSION_DEACTIVATE_TIMEOUT_MS, Math.max(1, Math.floor(rawTimeout)));
|
|
3769
|
+
}
|
|
3770
|
+
async function runExtensionDeactivateWithTimeout(deactivate, timeoutMs) {
|
|
3771
|
+
if (timeoutMs === 0) {
|
|
3772
|
+
await deactivate();
|
|
3773
|
+
return;
|
|
3774
|
+
}
|
|
3775
|
+
let timeoutHandle;
|
|
3776
|
+
try {
|
|
3777
|
+
const deactivatePromise = Promise.resolve().then(() => deactivate());
|
|
3778
|
+
deactivatePromise.catch(() => {
|
|
3779
|
+
});
|
|
3780
|
+
await Promise.race([
|
|
3781
|
+
deactivatePromise,
|
|
3782
|
+
new Promise((_, reject) => {
|
|
3783
|
+
timeoutHandle = setTimeout(() => {
|
|
3784
|
+
reject(new Error(`extension deactivate timed out after ${timeoutMs}ms`));
|
|
3785
|
+
}, timeoutMs);
|
|
3786
|
+
timeoutHandle.unref?.();
|
|
3787
|
+
})
|
|
3788
|
+
]);
|
|
3789
|
+
} finally {
|
|
3790
|
+
clearTimeout(timeoutHandle);
|
|
3699
3791
|
}
|
|
3700
|
-
return null;
|
|
3701
3792
|
}
|
|
3702
3793
|
function isOutputRendererFormat(value) {
|
|
3703
3794
|
return value === "toon" || value === "json";
|
|
@@ -4855,10 +4946,21 @@ async function activateExtensions(loadResult) {
|
|
|
4855
4946
|
!(function() {
|
|
4856
4947
|
try {
|
|
4857
4948
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
4858
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
4949
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "4e149e81-498e-561d-8c32-c3f3aec2e2d2");
|
|
4859
4950
|
} catch (e2) {
|
|
4860
4951
|
}
|
|
4861
4952
|
})();
|
|
4953
|
+
var EXTENSION_CAPABILITY_REGISTRATION_SURFACES = {
|
|
4954
|
+
commands: ["registerCommand", "command override", "command handler"],
|
|
4955
|
+
renderers: ["registerRenderer"],
|
|
4956
|
+
hooks: ["hooks.beforeCommand", "hooks.afterCommand", "hooks.onWrite", "hooks.onRead", "hooks.onIndex"],
|
|
4957
|
+
schema: ["registerFlags", "registerItemFields", "registerItemTypes", "registerMigration", "registerProfile"],
|
|
4958
|
+
importers: ["registerImporter", "registerExporter"],
|
|
4959
|
+
search: ["registerSearchProvider", "registerVectorStoreAdapter"],
|
|
4960
|
+
parser: ["registerParser"],
|
|
4961
|
+
preflight: ["registerPreflight"],
|
|
4962
|
+
services: ["registerService"]
|
|
4963
|
+
};
|
|
4862
4964
|
var USAGE_KEY_SEPARATOR = ":";
|
|
4863
4965
|
function usageKey(layer, name) {
|
|
4864
4966
|
return `${layer}${USAGE_KEY_SEPARATOR}${normalizeExtensionName(name)}`;
|
|
@@ -4921,10 +5023,16 @@ function attributeCapabilityUsage(activation) {
|
|
|
4921
5023
|
}
|
|
4922
5024
|
function collectUsedExtensionCapabilities(activation, options = {}) {
|
|
4923
5025
|
const usage = attributeCapabilityUsage(activation);
|
|
4924
|
-
const
|
|
5026
|
+
const filters = /* @__PURE__ */ new Set();
|
|
5027
|
+
if (options.extensionName !== void 0) {
|
|
5028
|
+
filters.add(normalizeExtensionName(options.extensionName));
|
|
5029
|
+
}
|
|
5030
|
+
for (const name of options.extensionNames ?? []) {
|
|
5031
|
+
filters.add(normalizeExtensionName(name));
|
|
5032
|
+
}
|
|
4925
5033
|
const used = /* @__PURE__ */ new Set();
|
|
4926
5034
|
for (const [key, capabilities] of usage) {
|
|
4927
|
-
if (
|
|
5035
|
+
if (filters.size > 0 && !filters.has(usageKeyName(key))) {
|
|
4928
5036
|
continue;
|
|
4929
5037
|
}
|
|
4930
5038
|
for (const capability of capabilities) {
|
|
@@ -4949,342 +5057,94 @@ function reconcileExtensionCapabilityUsage(loaded, activation) {
|
|
|
4949
5057
|
return reconciliations;
|
|
4950
5058
|
}
|
|
4951
5059
|
|
|
4952
|
-
// dist/core/
|
|
5060
|
+
// dist/core/schema/runtime-schema.js
|
|
5061
|
+
import path6 from "node:path";
|
|
4953
5062
|
!(function() {
|
|
4954
5063
|
try {
|
|
4955
5064
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
4956
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
5065
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "917b7841-d25b-594e-9c0e-dbecbf1a3fbe");
|
|
4957
5066
|
} catch (e2) {
|
|
4958
5067
|
}
|
|
4959
5068
|
})();
|
|
4960
|
-
var
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
var
|
|
4967
|
-
var
|
|
4968
|
-
var
|
|
4969
|
-
var
|
|
4970
|
-
var
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
"
|
|
4976
|
-
"files",
|
|
4977
|
-
"learnings",
|
|
4978
|
-
"notes",
|
|
4979
|
-
"reminders",
|
|
4980
|
-
"test_runs",
|
|
4981
|
-
"tests"
|
|
4982
|
-
]);
|
|
4983
|
-
function setActiveExtensionHooks(hooks) {
|
|
4984
|
-
activeExtensionHooks = hooks;
|
|
4985
|
-
}
|
|
4986
|
-
function setActiveExtensionCommands(commands) {
|
|
4987
|
-
activeExtensionCommands = commands;
|
|
4988
|
-
}
|
|
4989
|
-
function setActiveExtensionParsers(parsers) {
|
|
4990
|
-
activeExtensionParsers = parsers;
|
|
5069
|
+
var DEFAULT_RUNTIME_SCHEMA_FILE_PATHS = Object.freeze({
|
|
5070
|
+
types: "schema/types.json",
|
|
5071
|
+
statuses: "schema/statuses.json",
|
|
5072
|
+
fields: "schema/fields.json",
|
|
5073
|
+
workflows: "schema/workflows.json"
|
|
5074
|
+
});
|
|
5075
|
+
var DEFAULT_RUNTIME_WORKFLOW = DEFAULT_WORKFLOW_DEFINITION;
|
|
5076
|
+
var DEFAULT_RUNTIME_STATUS_DEFINITIONS = DEFAULT_STATUS_DEFINITIONS;
|
|
5077
|
+
var DEFAULT_RUNTIME_FIELD_COMMANDS = ["create", "update"];
|
|
5078
|
+
var RUNTIME_STATUS_ROLE_SET = new Set(RUNTIME_STATUS_ROLE_VALUES);
|
|
5079
|
+
var RUNTIME_FIELD_TYPE_SET = new Set(RUNTIME_FIELD_TYPE_VALUES);
|
|
5080
|
+
var RUNTIME_FIELD_COMMAND_SET = new Set(RUNTIME_FIELD_COMMAND_VALUES);
|
|
5081
|
+
var RUNTIME_UNKNOWN_FIELD_POLICY_SET = new Set(RUNTIME_UNKNOWN_FIELD_POLICY_VALUES);
|
|
5082
|
+
function normalizeStringList(values) {
|
|
5083
|
+
const candidates = Array.isArray(values) ? values : [];
|
|
5084
|
+
return [...new Set(candidates.map((value) => typeof value === "string" ? value.trim() : "").filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
4991
5085
|
}
|
|
4992
|
-
function
|
|
4993
|
-
|
|
5086
|
+
function normalizeStatusToken(value) {
|
|
5087
|
+
return typeof value === "string" ? value.trim().toLowerCase().replaceAll(/[\s-]+/g, "_") : "";
|
|
4994
5088
|
}
|
|
4995
|
-
function
|
|
4996
|
-
|
|
5089
|
+
function normalizeStatusId(value) {
|
|
5090
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
5091
|
+
return void 0;
|
|
5092
|
+
}
|
|
5093
|
+
const normalized = normalizeStatusToken(value);
|
|
5094
|
+
return normalized.length > 0 ? normalized : void 0;
|
|
4997
5095
|
}
|
|
4998
|
-
function
|
|
4999
|
-
|
|
5096
|
+
function stripFlagPrefix(value) {
|
|
5097
|
+
return value.startsWith("--") ? value.slice(2) : value;
|
|
5000
5098
|
}
|
|
5001
|
-
function
|
|
5002
|
-
|
|
5099
|
+
function normalizeCliToken(value) {
|
|
5100
|
+
return typeof value === "string" ? stripFlagPrefix(value.trim().toLowerCase().replaceAll(/[\s_]+/g, "-")) : "";
|
|
5003
5101
|
}
|
|
5004
|
-
function
|
|
5005
|
-
return
|
|
5102
|
+
function keyToDefaultCliFlag(value) {
|
|
5103
|
+
return value.replaceAll("_", "-");
|
|
5006
5104
|
}
|
|
5007
|
-
function
|
|
5008
|
-
|
|
5105
|
+
function toCamelCase(input) {
|
|
5106
|
+
const segments = input.replaceAll(/[^A-Za-z0-9]+/g, " ").trim().split(/\s+/).filter((segment) => segment.length > 0).map((segment) => segment.toLowerCase());
|
|
5107
|
+
if (segments.length === 0) {
|
|
5108
|
+
return input;
|
|
5109
|
+
}
|
|
5110
|
+
const [first, ...rest] = segments;
|
|
5111
|
+
return `${first}${rest.map((segment) => `${segment.slice(0, 1).toUpperCase()}${segment.slice(1)}`).join("")}`;
|
|
5009
5112
|
}
|
|
5010
|
-
function
|
|
5011
|
-
|
|
5113
|
+
function normalizeRuntimeStatusDefinition(definition, fallbackOrder) {
|
|
5114
|
+
const id = normalizeStatusId(definition.id);
|
|
5115
|
+
if (!id) {
|
|
5116
|
+
return null;
|
|
5117
|
+
}
|
|
5118
|
+
const aliases = normalizeStringList(definition.aliases).map((value) => normalizeStatusToken(value)).filter((value) => value !== id);
|
|
5119
|
+
const roles = normalizeStringList(definition.roles).filter((value) => RUNTIME_STATUS_ROLE_SET.has(value));
|
|
5120
|
+
const description = definition.description?.trim();
|
|
5121
|
+
const order = typeof definition.order === "number" && Number.isFinite(definition.order) ? definition.order : fallbackOrder;
|
|
5122
|
+
return {
|
|
5123
|
+
id,
|
|
5124
|
+
aliases,
|
|
5125
|
+
roles,
|
|
5126
|
+
description: description && description.length > 0 ? description : void 0,
|
|
5127
|
+
order
|
|
5128
|
+
};
|
|
5012
5129
|
}
|
|
5013
|
-
function
|
|
5014
|
-
return
|
|
5130
|
+
function normalizeRuntimeWorkflow(workflow) {
|
|
5131
|
+
return {
|
|
5132
|
+
draft_status: normalizeStatusId(workflow?.draft_status),
|
|
5133
|
+
open_status: normalizeStatusId(workflow?.open_status),
|
|
5134
|
+
in_progress_status: normalizeStatusId(workflow?.in_progress_status),
|
|
5135
|
+
blocked_status: normalizeStatusId(workflow?.blocked_status),
|
|
5136
|
+
close_status: normalizeStatusId(workflow?.close_status),
|
|
5137
|
+
canceled_status: normalizeStatusId(workflow?.canceled_status)
|
|
5138
|
+
};
|
|
5015
5139
|
}
|
|
5016
|
-
function
|
|
5017
|
-
if (!
|
|
5140
|
+
function appendTypeWorkflowPair(record, pair) {
|
|
5141
|
+
if (!Array.isArray(pair) || pair.length !== 2) {
|
|
5018
5142
|
return;
|
|
5019
5143
|
}
|
|
5020
|
-
|
|
5021
|
-
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
return {};
|
|
5025
|
-
}
|
|
5026
|
-
const snapshot = {
|
|
5027
|
-
id: metadata.id,
|
|
5028
|
-
type: metadata.type,
|
|
5029
|
-
status: metadata.status
|
|
5030
|
-
};
|
|
5031
|
-
if (!Array.isArray(changedFields)) {
|
|
5032
|
-
return snapshot;
|
|
5033
|
-
}
|
|
5034
|
-
const source = metadata;
|
|
5035
|
-
for (const field of changedFields) {
|
|
5036
|
-
if (typeof field !== "string") {
|
|
5037
|
-
continue;
|
|
5038
|
-
}
|
|
5039
|
-
const actualField = field.startsWith("unset:") ? field.slice("unset:".length) : field;
|
|
5040
|
-
if (actualField === "id" || actualField === "type" || actualField === "status" || AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS.has(actualField)) {
|
|
5041
|
-
continue;
|
|
5042
|
-
}
|
|
5043
|
-
if (Object.hasOwn(source, actualField) && source[actualField] !== void 0) {
|
|
5044
|
-
snapshot[actualField] = source[actualField];
|
|
5045
|
-
}
|
|
5046
|
-
}
|
|
5047
|
-
return snapshot;
|
|
5048
|
-
}
|
|
5049
|
-
function consumeAfterCommandAffectedItems() {
|
|
5050
|
-
if (activeAfterCommandAffectedItems.length === 0) {
|
|
5051
|
-
return void 0;
|
|
5052
|
-
}
|
|
5053
|
-
const affected = activeAfterCommandAffectedItems;
|
|
5054
|
-
activeAfterCommandAffectedItems = [];
|
|
5055
|
-
return affected;
|
|
5056
|
-
}
|
|
5057
|
-
function clearActiveExtensionHooks() {
|
|
5058
|
-
activeExtensionHooks = null;
|
|
5059
|
-
activeExtensionCommands = null;
|
|
5060
|
-
activeExtensionParsers = null;
|
|
5061
|
-
activeExtensionPreflight = null;
|
|
5062
|
-
activeExtensionServices = null;
|
|
5063
|
-
activeExtensionRenderers = null;
|
|
5064
|
-
activeExtensionRegistrations = null;
|
|
5065
|
-
activeCommandContext = null;
|
|
5066
|
-
activeCommandResult = void 0;
|
|
5067
|
-
activeAfterCommandAffectedItems = [];
|
|
5068
|
-
}
|
|
5069
|
-
async function runActiveOnWriteHooks(context) {
|
|
5070
|
-
if (!activeExtensionHooks) {
|
|
5071
|
-
return [];
|
|
5072
|
-
}
|
|
5073
|
-
return runOnWriteHooks(activeExtensionHooks, context);
|
|
5074
|
-
}
|
|
5075
|
-
async function runActiveOnReadHooks(context) {
|
|
5076
|
-
if (!activeExtensionHooks) {
|
|
5077
|
-
return [];
|
|
5078
|
-
}
|
|
5079
|
-
return runOnReadHooks(activeExtensionHooks, context);
|
|
5080
|
-
}
|
|
5081
|
-
function hasActiveOnReadHooks() {
|
|
5082
|
-
return (activeExtensionHooks?.onRead?.length ?? 0) > 0;
|
|
5083
|
-
}
|
|
5084
|
-
async function runActiveOnIndexHooks(context) {
|
|
5085
|
-
if (!activeExtensionHooks) {
|
|
5086
|
-
return [];
|
|
5087
|
-
}
|
|
5088
|
-
return runOnIndexHooks(activeExtensionHooks, context);
|
|
5089
|
-
}
|
|
5090
|
-
function runActiveCommandOverride(result) {
|
|
5091
|
-
if (!activeExtensionCommands || !activeCommandContext) {
|
|
5092
|
-
return {
|
|
5093
|
-
overridden: false,
|
|
5094
|
-
result,
|
|
5095
|
-
warnings: []
|
|
5096
|
-
};
|
|
5097
|
-
}
|
|
5098
|
-
return runCommandOverride(activeExtensionCommands, {
|
|
5099
|
-
command: activeCommandContext.command,
|
|
5100
|
-
args: [...activeCommandContext.args],
|
|
5101
|
-
options: activeCommandContext.options ? { ...activeCommandContext.options } : {},
|
|
5102
|
-
global: activeCommandContext.global ? { ...activeCommandContext.global } : void 0,
|
|
5103
|
-
pm_root: activeCommandContext.pm_root,
|
|
5104
|
-
result
|
|
5105
|
-
});
|
|
5106
|
-
}
|
|
5107
|
-
async function runActiveCommandHandler(context) {
|
|
5108
|
-
if (!activeExtensionCommands) {
|
|
5109
|
-
return {
|
|
5110
|
-
handled: false,
|
|
5111
|
-
result: null,
|
|
5112
|
-
warnings: []
|
|
5113
|
-
};
|
|
5114
|
-
}
|
|
5115
|
-
return runCommandHandler(activeExtensionCommands, context);
|
|
5116
|
-
}
|
|
5117
|
-
async function runActiveParserOverride(context) {
|
|
5118
|
-
if (!activeExtensionParsers) {
|
|
5119
|
-
return {
|
|
5120
|
-
overridden: false,
|
|
5121
|
-
context: {
|
|
5122
|
-
command: context.command,
|
|
5123
|
-
args: [...context.args],
|
|
5124
|
-
options: { ...context.options },
|
|
5125
|
-
global: { ...context.global },
|
|
5126
|
-
pm_root: context.pm_root
|
|
5127
|
-
},
|
|
5128
|
-
warnings: []
|
|
5129
|
-
};
|
|
5130
|
-
}
|
|
5131
|
-
return runParserOverride(activeExtensionParsers, context);
|
|
5132
|
-
}
|
|
5133
|
-
async function runActivePreflightOverride(context) {
|
|
5134
|
-
if (!activeExtensionPreflight) {
|
|
5135
|
-
return {
|
|
5136
|
-
overridden: false,
|
|
5137
|
-
context: {
|
|
5138
|
-
command: context.command,
|
|
5139
|
-
args: [...context.args],
|
|
5140
|
-
options: { ...context.options },
|
|
5141
|
-
global: { ...context.global },
|
|
5142
|
-
pm_root: context.pm_root
|
|
5143
|
-
},
|
|
5144
|
-
decision: { ...context.decision },
|
|
5145
|
-
warnings: []
|
|
5146
|
-
};
|
|
5147
|
-
}
|
|
5148
|
-
return runPreflightOverride(activeExtensionPreflight, context);
|
|
5149
|
-
}
|
|
5150
|
-
function runActiveRendererOverride(format, result) {
|
|
5151
|
-
if (!activeExtensionRenderers) {
|
|
5152
|
-
return {
|
|
5153
|
-
overridden: false,
|
|
5154
|
-
rendered: null,
|
|
5155
|
-
warnings: []
|
|
5156
|
-
};
|
|
5157
|
-
}
|
|
5158
|
-
return runRendererOverride(activeExtensionRenderers, {
|
|
5159
|
-
format,
|
|
5160
|
-
command: activeCommandContext?.command,
|
|
5161
|
-
args: activeCommandContext ? [...activeCommandContext.args] : [],
|
|
5162
|
-
options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
|
|
5163
|
-
global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
|
|
5164
|
-
pm_root: activeCommandContext?.pm_root,
|
|
5165
|
-
result
|
|
5166
|
-
});
|
|
5167
|
-
}
|
|
5168
|
-
function buildServiceContext(service, payload) {
|
|
5169
|
-
return {
|
|
5170
|
-
service,
|
|
5171
|
-
command: activeCommandContext?.command,
|
|
5172
|
-
args: activeCommandContext ? [...activeCommandContext.args] : [],
|
|
5173
|
-
options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
|
|
5174
|
-
global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
|
|
5175
|
-
pm_root: activeCommandContext?.pm_root,
|
|
5176
|
-
payload
|
|
5177
|
-
};
|
|
5178
|
-
}
|
|
5179
|
-
async function runActiveServiceOverride(service, payload) {
|
|
5180
|
-
if (!activeExtensionServices) {
|
|
5181
|
-
return {
|
|
5182
|
-
handled: false,
|
|
5183
|
-
result: payload,
|
|
5184
|
-
warnings: []
|
|
5185
|
-
};
|
|
5186
|
-
}
|
|
5187
|
-
return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));
|
|
5188
|
-
}
|
|
5189
|
-
function runActiveServiceOverrideSync(service, payload) {
|
|
5190
|
-
if (!activeExtensionServices) {
|
|
5191
|
-
return {
|
|
5192
|
-
handled: false,
|
|
5193
|
-
result: payload,
|
|
5194
|
-
warnings: []
|
|
5195
|
-
};
|
|
5196
|
-
}
|
|
5197
|
-
return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));
|
|
5198
|
-
}
|
|
5199
|
-
|
|
5200
|
-
// dist/core/schema/runtime-schema.js
|
|
5201
|
-
import path6 from "node:path";
|
|
5202
|
-
!(function() {
|
|
5203
|
-
try {
|
|
5204
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5205
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "917b7841-d25b-594e-9c0e-dbecbf1a3fbe");
|
|
5206
|
-
} catch (e2) {
|
|
5207
|
-
}
|
|
5208
|
-
})();
|
|
5209
|
-
var DEFAULT_RUNTIME_SCHEMA_FILE_PATHS = Object.freeze({
|
|
5210
|
-
types: "schema/types.json",
|
|
5211
|
-
statuses: "schema/statuses.json",
|
|
5212
|
-
fields: "schema/fields.json",
|
|
5213
|
-
workflows: "schema/workflows.json"
|
|
5214
|
-
});
|
|
5215
|
-
var DEFAULT_RUNTIME_WORKFLOW = DEFAULT_WORKFLOW_DEFINITION;
|
|
5216
|
-
var DEFAULT_RUNTIME_STATUS_DEFINITIONS = DEFAULT_STATUS_DEFINITIONS;
|
|
5217
|
-
var DEFAULT_RUNTIME_FIELD_COMMANDS = ["create", "update"];
|
|
5218
|
-
var RUNTIME_STATUS_ROLE_SET = new Set(RUNTIME_STATUS_ROLE_VALUES);
|
|
5219
|
-
var RUNTIME_FIELD_TYPE_SET = new Set(RUNTIME_FIELD_TYPE_VALUES);
|
|
5220
|
-
var RUNTIME_FIELD_COMMAND_SET = new Set(RUNTIME_FIELD_COMMAND_VALUES);
|
|
5221
|
-
var RUNTIME_UNKNOWN_FIELD_POLICY_SET = new Set(RUNTIME_UNKNOWN_FIELD_POLICY_VALUES);
|
|
5222
|
-
function normalizeStringList(values) {
|
|
5223
|
-
const candidates = Array.isArray(values) ? values : [];
|
|
5224
|
-
return [...new Set(candidates.map((value) => typeof value === "string" ? value.trim() : "").filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
5225
|
-
}
|
|
5226
|
-
function normalizeStatusToken(value) {
|
|
5227
|
-
return typeof value === "string" ? value.trim().toLowerCase().replaceAll(/[\s-]+/g, "_") : "";
|
|
5228
|
-
}
|
|
5229
|
-
function normalizeStatusId(value) {
|
|
5230
|
-
if (typeof value !== "string" || value.length === 0) {
|
|
5231
|
-
return void 0;
|
|
5232
|
-
}
|
|
5233
|
-
const normalized = normalizeStatusToken(value);
|
|
5234
|
-
return normalized.length > 0 ? normalized : void 0;
|
|
5235
|
-
}
|
|
5236
|
-
function stripFlagPrefix(value) {
|
|
5237
|
-
return value.startsWith("--") ? value.slice(2) : value;
|
|
5238
|
-
}
|
|
5239
|
-
function normalizeCliToken(value) {
|
|
5240
|
-
return typeof value === "string" ? stripFlagPrefix(value.trim().toLowerCase().replaceAll(/[\s_]+/g, "-")) : "";
|
|
5241
|
-
}
|
|
5242
|
-
function keyToDefaultCliFlag(value) {
|
|
5243
|
-
return value.replaceAll("_", "-");
|
|
5244
|
-
}
|
|
5245
|
-
function toCamelCase(input) {
|
|
5246
|
-
const segments = input.replaceAll(/[^A-Za-z0-9]+/g, " ").trim().split(/\s+/).filter((segment) => segment.length > 0).map((segment) => segment.toLowerCase());
|
|
5247
|
-
if (segments.length === 0) {
|
|
5248
|
-
return input;
|
|
5249
|
-
}
|
|
5250
|
-
const [first, ...rest] = segments;
|
|
5251
|
-
return `${first}${rest.map((segment) => `${segment.slice(0, 1).toUpperCase()}${segment.slice(1)}`).join("")}`;
|
|
5252
|
-
}
|
|
5253
|
-
function normalizeRuntimeStatusDefinition(definition, fallbackOrder) {
|
|
5254
|
-
const id = normalizeStatusId(definition.id);
|
|
5255
|
-
if (!id) {
|
|
5256
|
-
return null;
|
|
5257
|
-
}
|
|
5258
|
-
const aliases = normalizeStringList(definition.aliases).map((value) => normalizeStatusToken(value)).filter((value) => value !== id);
|
|
5259
|
-
const roles = normalizeStringList(definition.roles).filter((value) => RUNTIME_STATUS_ROLE_SET.has(value));
|
|
5260
|
-
const description = definition.description?.trim();
|
|
5261
|
-
const order = typeof definition.order === "number" && Number.isFinite(definition.order) ? definition.order : fallbackOrder;
|
|
5262
|
-
return {
|
|
5263
|
-
id,
|
|
5264
|
-
aliases,
|
|
5265
|
-
roles,
|
|
5266
|
-
description: description && description.length > 0 ? description : void 0,
|
|
5267
|
-
order
|
|
5268
|
-
};
|
|
5269
|
-
}
|
|
5270
|
-
function normalizeRuntimeWorkflow(workflow) {
|
|
5271
|
-
return {
|
|
5272
|
-
draft_status: normalizeStatusId(workflow?.draft_status),
|
|
5273
|
-
open_status: normalizeStatusId(workflow?.open_status),
|
|
5274
|
-
in_progress_status: normalizeStatusId(workflow?.in_progress_status),
|
|
5275
|
-
blocked_status: normalizeStatusId(workflow?.blocked_status),
|
|
5276
|
-
close_status: normalizeStatusId(workflow?.close_status),
|
|
5277
|
-
canceled_status: normalizeStatusId(workflow?.canceled_status)
|
|
5278
|
-
};
|
|
5279
|
-
}
|
|
5280
|
-
function appendTypeWorkflowPair(record, pair) {
|
|
5281
|
-
if (!Array.isArray(pair) || pair.length !== 2) {
|
|
5282
|
-
return;
|
|
5283
|
-
}
|
|
5284
|
-
const from = normalizeStatusToken(pair[0]);
|
|
5285
|
-
const to = normalizeStatusToken(pair[1]);
|
|
5286
|
-
if (from.length === 0 || to.length === 0) {
|
|
5287
|
-
return;
|
|
5144
|
+
const from = normalizeStatusToken(pair[0]);
|
|
5145
|
+
const to = normalizeStatusToken(pair[1]);
|
|
5146
|
+
if (from.length === 0 || to.length === 0) {
|
|
5147
|
+
return;
|
|
5288
5148
|
}
|
|
5289
5149
|
if (record.pairs.some((candidate) => candidate[0] === from && candidate[1] === to)) {
|
|
5290
5150
|
return;
|
|
@@ -5782,1664 +5642,6 @@ function statusIsTerminal(status, registry) {
|
|
|
5782
5642
|
return registry.terminal_statuses.has(normalized);
|
|
5783
5643
|
}
|
|
5784
5644
|
|
|
5785
|
-
// dist/core/shared/errors.js
|
|
5786
|
-
!(function() {
|
|
5787
|
-
try {
|
|
5788
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5789
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "45a4107c-5ef6-5d5c-9798-6df69f0edec3");
|
|
5790
|
-
} catch (e2) {
|
|
5791
|
-
}
|
|
5792
|
-
})();
|
|
5793
|
-
var PmCliError = class extends Error {
|
|
5794
|
-
exitCode;
|
|
5795
|
-
context;
|
|
5796
|
-
constructor(message, exitCode, context = {}) {
|
|
5797
|
-
super(message);
|
|
5798
|
-
this.name = "PmCliError";
|
|
5799
|
-
this.exitCode = exitCode;
|
|
5800
|
-
this.context = context;
|
|
5801
|
-
}
|
|
5802
|
-
};
|
|
5803
|
-
|
|
5804
|
-
// dist/core/shared/serialization.js
|
|
5805
|
-
import crypto2 from "node:crypto";
|
|
5806
|
-
!(function() {
|
|
5807
|
-
try {
|
|
5808
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5809
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "54cbe570-d9f5-5515-8d0c-0fce0e06fe03");
|
|
5810
|
-
} catch (e2) {
|
|
5811
|
-
}
|
|
5812
|
-
})();
|
|
5813
|
-
function sortScalarValue(value) {
|
|
5814
|
-
if (value === null)
|
|
5815
|
-
return null;
|
|
5816
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
5817
|
-
return value;
|
|
5818
|
-
}
|
|
5819
|
-
if (typeof value === "bigint") {
|
|
5820
|
-
return value.toString();
|
|
5821
|
-
}
|
|
5822
|
-
if (value === void 0) {
|
|
5823
|
-
return "undefined";
|
|
5824
|
-
}
|
|
5825
|
-
if (typeof value === "symbol") {
|
|
5826
|
-
return value.toString();
|
|
5827
|
-
}
|
|
5828
|
-
if (typeof value === "function") {
|
|
5829
|
-
return `[function:${value.name || "anonymous"}]`;
|
|
5830
|
-
}
|
|
5831
|
-
return void 0;
|
|
5832
|
-
}
|
|
5833
|
-
function sortPlainObjectKeys(value) {
|
|
5834
|
-
const sortedKeys = Object.keys(value).sort();
|
|
5835
|
-
const result = {};
|
|
5836
|
-
for (const key of sortedKeys) {
|
|
5837
|
-
const nested = value[key];
|
|
5838
|
-
if (nested === void 0) {
|
|
5839
|
-
continue;
|
|
5840
|
-
}
|
|
5841
|
-
result[key] = sortObjectKeys(nested);
|
|
5842
|
-
}
|
|
5843
|
-
return result;
|
|
5844
|
-
}
|
|
5845
|
-
function sortObjectKeys(value) {
|
|
5846
|
-
const scalarValue = sortScalarValue(value);
|
|
5847
|
-
if (scalarValue !== void 0) {
|
|
5848
|
-
return scalarValue;
|
|
5849
|
-
}
|
|
5850
|
-
if (Array.isArray(value)) {
|
|
5851
|
-
return value.map((entry) => sortObjectKeys(entry));
|
|
5852
|
-
}
|
|
5853
|
-
if (value instanceof Date) {
|
|
5854
|
-
return value.toISOString();
|
|
5855
|
-
}
|
|
5856
|
-
const maybeJson = value;
|
|
5857
|
-
if (typeof maybeJson.toJSON === "function") {
|
|
5858
|
-
const normalized = maybeJson.toJSON();
|
|
5859
|
-
if (normalized !== value) {
|
|
5860
|
-
return sortObjectKeys(normalized);
|
|
5861
|
-
}
|
|
5862
|
-
}
|
|
5863
|
-
return sortPlainObjectKeys(value);
|
|
5864
|
-
}
|
|
5865
|
-
function stableStringify(value) {
|
|
5866
|
-
return JSON.stringify(sortObjectKeys(value));
|
|
5867
|
-
}
|
|
5868
|
-
function hasUnmatchedEquivalent(leftValue, rightValues, matchedIndexes, equals) {
|
|
5869
|
-
for (let index = 0; index < rightValues.length; index += 1) {
|
|
5870
|
-
if (matchedIndexes.has(index)) {
|
|
5871
|
-
continue;
|
|
5872
|
-
}
|
|
5873
|
-
if (equals(leftValue, rightValues[index])) {
|
|
5874
|
-
matchedIndexes.add(index);
|
|
5875
|
-
return true;
|
|
5876
|
-
}
|
|
5877
|
-
}
|
|
5878
|
-
return false;
|
|
5879
|
-
}
|
|
5880
|
-
function compareRegExpValues(left, right) {
|
|
5881
|
-
if (!(left instanceof RegExp || right instanceof RegExp)) {
|
|
5882
|
-
return void 0;
|
|
5883
|
-
}
|
|
5884
|
-
return left instanceof RegExp && right instanceof RegExp && left.toString() === right.toString();
|
|
5885
|
-
}
|
|
5886
|
-
function compareDateValues(left, right) {
|
|
5887
|
-
if (!(left instanceof Date || right instanceof Date)) {
|
|
5888
|
-
return void 0;
|
|
5889
|
-
}
|
|
5890
|
-
return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
|
|
5891
|
-
}
|
|
5892
|
-
function compareSetValues(left, right) {
|
|
5893
|
-
if (!(left instanceof Set || right instanceof Set)) {
|
|
5894
|
-
return void 0;
|
|
5895
|
-
}
|
|
5896
|
-
if (!(left instanceof Set && right instanceof Set) || left.size !== right.size) {
|
|
5897
|
-
return false;
|
|
5898
|
-
}
|
|
5899
|
-
const rightValues = [...right];
|
|
5900
|
-
const matched = /* @__PURE__ */ new Set();
|
|
5901
|
-
for (const leftValue of left) {
|
|
5902
|
-
if (!hasUnmatchedEquivalent(leftValue, rightValues, matched, stableValueEquals)) {
|
|
5903
|
-
return false;
|
|
5904
|
-
}
|
|
5905
|
-
}
|
|
5906
|
-
return true;
|
|
5907
|
-
}
|
|
5908
|
-
function compareMapValues(left, right) {
|
|
5909
|
-
if (!(left instanceof Map || right instanceof Map)) {
|
|
5910
|
-
return void 0;
|
|
5911
|
-
}
|
|
5912
|
-
if (!(left instanceof Map && right instanceof Map) || left.size !== right.size) {
|
|
5913
|
-
return false;
|
|
5914
|
-
}
|
|
5915
|
-
const rightEntries = [...right.entries()];
|
|
5916
|
-
const matched = /* @__PURE__ */ new Set();
|
|
5917
|
-
for (const [leftKey, leftValue] of left.entries()) {
|
|
5918
|
-
const leftEntry = [leftKey, leftValue];
|
|
5919
|
-
if (!hasUnmatchedEquivalent(leftEntry, rightEntries, matched, ([candidateKey, candidateValue], [rightKey, rightValue]) => stableValueEquals(candidateKey, rightKey) && stableValueEquals(candidateValue, rightValue))) {
|
|
5920
|
-
return false;
|
|
5921
|
-
}
|
|
5922
|
-
}
|
|
5923
|
-
return true;
|
|
5924
|
-
}
|
|
5925
|
-
function compareArrayValues(left, right) {
|
|
5926
|
-
if (!(Array.isArray(left) || Array.isArray(right))) {
|
|
5927
|
-
return void 0;
|
|
5928
|
-
}
|
|
5929
|
-
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
|
|
5930
|
-
return false;
|
|
5931
|
-
}
|
|
5932
|
-
return left.every((value, index) => stableValueEquals(value, right[index]));
|
|
5933
|
-
}
|
|
5934
|
-
function comparePlainObjectValues(left, right) {
|
|
5935
|
-
const leftKeys = Object.keys(left).sort((a, b) => a.localeCompare(b));
|
|
5936
|
-
const rightKeys = Object.keys(right).sort((a, b) => a.localeCompare(b));
|
|
5937
|
-
if (leftKeys.length !== rightKeys.length) {
|
|
5938
|
-
return false;
|
|
5939
|
-
}
|
|
5940
|
-
for (let index = 0; index < leftKeys.length; index += 1) {
|
|
5941
|
-
const leftKey = leftKeys[index];
|
|
5942
|
-
if (leftKey !== rightKeys[index]) {
|
|
5943
|
-
return false;
|
|
5944
|
-
}
|
|
5945
|
-
if (!stableValueEquals(left[leftKey], right[leftKey])) {
|
|
5946
|
-
return false;
|
|
5947
|
-
}
|
|
5948
|
-
}
|
|
5949
|
-
return true;
|
|
5950
|
-
}
|
|
5951
|
-
var SPECIALIZED_STABLE_VALUE_COMPARISONS = [
|
|
5952
|
-
compareRegExpValues,
|
|
5953
|
-
compareDateValues,
|
|
5954
|
-
compareSetValues,
|
|
5955
|
-
compareMapValues,
|
|
5956
|
-
compareArrayValues
|
|
5957
|
-
];
|
|
5958
|
-
function stableValueEquals(left, right) {
|
|
5959
|
-
if (Object.is(left, right)) {
|
|
5960
|
-
return true;
|
|
5961
|
-
}
|
|
5962
|
-
if (left === null || right === null || typeof left !== "object" || typeof right !== "object") {
|
|
5963
|
-
return false;
|
|
5964
|
-
}
|
|
5965
|
-
for (const compare of SPECIALIZED_STABLE_VALUE_COMPARISONS) {
|
|
5966
|
-
const result = compare(left, right);
|
|
5967
|
-
if (result !== void 0) {
|
|
5968
|
-
return result;
|
|
5969
|
-
}
|
|
5970
|
-
}
|
|
5971
|
-
return comparePlainObjectValues(left, right);
|
|
5972
|
-
}
|
|
5973
|
-
function sha256Hex(value) {
|
|
5974
|
-
return crypto2.createHash("sha256").update(value, "utf8").digest("hex");
|
|
5975
|
-
}
|
|
5976
|
-
function orderObject(value, keyOrder) {
|
|
5977
|
-
const ordered = {};
|
|
5978
|
-
for (const key of keyOrder) {
|
|
5979
|
-
const entry = value[key];
|
|
5980
|
-
if (entry !== void 0) {
|
|
5981
|
-
ordered[key] = entry;
|
|
5982
|
-
}
|
|
5983
|
-
}
|
|
5984
|
-
const unknownKeys = Object.keys(value).filter((key) => !keyOrder.includes(key)).sort((a, b) => a.localeCompare(b));
|
|
5985
|
-
for (const key of unknownKeys) {
|
|
5986
|
-
const entry = value[key];
|
|
5987
|
-
if (entry !== void 0) {
|
|
5988
|
-
ordered[key] = entry;
|
|
5989
|
-
}
|
|
5990
|
-
}
|
|
5991
|
-
return ordered;
|
|
5992
|
-
}
|
|
5993
|
-
|
|
5994
|
-
// dist/core/store/settings-validator.js
|
|
5995
|
-
!(function() {
|
|
5996
|
-
try {
|
|
5997
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5998
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "31c04c84-ab93-5423-8425-f01cdbc48a9f");
|
|
5999
|
-
} catch (e2) {
|
|
6000
|
-
}
|
|
6001
|
-
})();
|
|
6002
|
-
var FAIL = { ok: false };
|
|
6003
|
-
var vString = (input) => typeof input === "string" ? { ok: true, value: input } : FAIL;
|
|
6004
|
-
var vBoolean = (input) => typeof input === "boolean" ? { ok: true, value: input } : FAIL;
|
|
6005
|
-
function vNumber(options = {}) {
|
|
6006
|
-
return (input) => {
|
|
6007
|
-
if (typeof input !== "number" || !Number.isFinite(input)) {
|
|
6008
|
-
return FAIL;
|
|
6009
|
-
}
|
|
6010
|
-
if (options.int && (!Number.isInteger(input) || !Number.isSafeInteger(input))) {
|
|
6011
|
-
return FAIL;
|
|
6012
|
-
}
|
|
6013
|
-
if (options.positive && input <= 0) {
|
|
6014
|
-
return FAIL;
|
|
6015
|
-
}
|
|
6016
|
-
return { ok: true, value: input };
|
|
6017
|
-
};
|
|
6018
|
-
}
|
|
6019
|
-
function vLiteral(...allowed) {
|
|
6020
|
-
return (input) => typeof input === "string" && allowed.includes(input) ? { ok: true, value: input } : FAIL;
|
|
6021
|
-
}
|
|
6022
|
-
function vArray(item) {
|
|
6023
|
-
return (input) => {
|
|
6024
|
-
if (!Array.isArray(input)) {
|
|
6025
|
-
return FAIL;
|
|
6026
|
-
}
|
|
6027
|
-
const value = [];
|
|
6028
|
-
for (const element of input) {
|
|
6029
|
-
const result = item(element);
|
|
6030
|
-
if (!result.ok) {
|
|
6031
|
-
return FAIL;
|
|
6032
|
-
}
|
|
6033
|
-
value.push(result.value);
|
|
6034
|
-
}
|
|
6035
|
-
return { ok: true, value };
|
|
6036
|
-
};
|
|
6037
|
-
}
|
|
6038
|
-
function vOptional(inner) {
|
|
6039
|
-
return (input) => input === void 0 ? { ok: true, value: void 0 } : inner(input);
|
|
6040
|
-
}
|
|
6041
|
-
function vRecordOf(valueCheck) {
|
|
6042
|
-
return (input) => {
|
|
6043
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
6044
|
-
return FAIL;
|
|
6045
|
-
}
|
|
6046
|
-
const value = {};
|
|
6047
|
-
for (const [key, raw] of Object.entries(input)) {
|
|
6048
|
-
const result = valueCheck(raw);
|
|
6049
|
-
if (!result.ok) {
|
|
6050
|
-
return FAIL;
|
|
6051
|
-
}
|
|
6052
|
-
value[key] = result.value;
|
|
6053
|
-
}
|
|
6054
|
-
return { ok: true, value };
|
|
6055
|
-
};
|
|
6056
|
-
}
|
|
6057
|
-
function vObject(shape) {
|
|
6058
|
-
return (input) => {
|
|
6059
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
6060
|
-
return FAIL;
|
|
6061
|
-
}
|
|
6062
|
-
const record = input;
|
|
6063
|
-
const value = {};
|
|
6064
|
-
for (const [key, check] of Object.entries(shape)) {
|
|
6065
|
-
const result = check(record[key]);
|
|
6066
|
-
if (!result.ok) {
|
|
6067
|
-
return FAIL;
|
|
6068
|
-
}
|
|
6069
|
-
if (result.value !== void 0) {
|
|
6070
|
-
value[key] = result.value;
|
|
6071
|
-
}
|
|
6072
|
-
}
|
|
6073
|
-
return { ok: true, value };
|
|
6074
|
-
};
|
|
6075
|
-
}
|
|
6076
|
-
var itemTypeOption = vObject({
|
|
6077
|
-
key: vString,
|
|
6078
|
-
values: vArray(vString),
|
|
6079
|
-
required: vOptional(vBoolean),
|
|
6080
|
-
aliases: vOptional(vArray(vString)),
|
|
6081
|
-
description: vOptional(vString)
|
|
6082
|
-
});
|
|
6083
|
-
var itemTypeCommandOptionPolicy = vObject({
|
|
6084
|
-
command: vLiteral("create", "update"),
|
|
6085
|
-
option: vString,
|
|
6086
|
-
required: vOptional(vBoolean),
|
|
6087
|
-
visible: vOptional(vBoolean),
|
|
6088
|
-
enabled: vOptional(vBoolean)
|
|
6089
|
-
});
|
|
6090
|
-
var itemTypeDefinition = vObject({
|
|
6091
|
-
name: vString,
|
|
6092
|
-
description: vOptional(vString),
|
|
6093
|
-
// Per-type create-time default status (config-driven); preserved so inline
|
|
6094
|
-
// settings.item_types.definitions behave identically to schema/types.json.
|
|
6095
|
-
default_status: vOptional(vString),
|
|
6096
|
-
folder: vOptional(vString),
|
|
6097
|
-
aliases: vOptional(vArray(vString)),
|
|
6098
|
-
required_create_fields: vOptional(vArray(vString)),
|
|
6099
|
-
required_create_repeatables: vOptional(vArray(vString)),
|
|
6100
|
-
options: vOptional(vArray(itemTypeOption)),
|
|
6101
|
-
command_option_policies: vOptional(vArray(itemTypeCommandOptionPolicy))
|
|
6102
|
-
});
|
|
6103
|
-
var runtimeStatusDefinition = vObject({
|
|
6104
|
-
id: vString,
|
|
6105
|
-
aliases: vOptional(vArray(vString)),
|
|
6106
|
-
roles: vOptional(vArray(vLiteral(...RUNTIME_STATUS_ROLE_VALUES))),
|
|
6107
|
-
description: vOptional(vString),
|
|
6108
|
-
order: vOptional(vNumber())
|
|
6109
|
-
});
|
|
6110
|
-
var runtimeFieldDefinition = vObject({
|
|
6111
|
-
key: vString,
|
|
6112
|
-
metadata_key: vOptional(vString),
|
|
6113
|
-
front_matter_key: vOptional(vString),
|
|
6114
|
-
cli_flag: vOptional(vString),
|
|
6115
|
-
cli_aliases: vOptional(vArray(vString)),
|
|
6116
|
-
description: vOptional(vString),
|
|
6117
|
-
type: vOptional(vLiteral(...RUNTIME_FIELD_TYPE_VALUES)),
|
|
6118
|
-
commands: vOptional(vArray(vLiteral(...RUNTIME_FIELD_COMMAND_VALUES))),
|
|
6119
|
-
repeatable: vOptional(vBoolean),
|
|
6120
|
-
required: vOptional(vBoolean),
|
|
6121
|
-
required_on_create: vOptional(vBoolean),
|
|
6122
|
-
required_types: vOptional(vArray(vString)),
|
|
6123
|
-
allow_unset: vOptional(vBoolean)
|
|
6124
|
-
});
|
|
6125
|
-
var statusTransitionPair = (input) => {
|
|
6126
|
-
if (!Array.isArray(input) || input.length !== 2) {
|
|
6127
|
-
return FAIL;
|
|
6128
|
-
}
|
|
6129
|
-
const [from, to] = input;
|
|
6130
|
-
if (typeof from !== "string" || typeof to !== "string") {
|
|
6131
|
-
return FAIL;
|
|
6132
|
-
}
|
|
6133
|
-
return { ok: true, value: [from, to] };
|
|
6134
|
-
};
|
|
6135
|
-
var typeWorkflowDefinition = vObject({
|
|
6136
|
-
type: vString,
|
|
6137
|
-
allowed_transitions: vArray(statusTransitionPair)
|
|
6138
|
-
});
|
|
6139
|
-
var runtimeSchemaSettings = vOptional(vObject({
|
|
6140
|
-
version: vOptional(vNumber({ int: true })),
|
|
6141
|
-
files: vOptional(vObject({
|
|
6142
|
-
types: vOptional(vString),
|
|
6143
|
-
statuses: vOptional(vString),
|
|
6144
|
-
fields: vOptional(vString),
|
|
6145
|
-
workflows: vOptional(vString)
|
|
6146
|
-
})),
|
|
6147
|
-
statuses: vOptional(vArray(runtimeStatusDefinition)),
|
|
6148
|
-
fields: vOptional(vArray(runtimeFieldDefinition)),
|
|
6149
|
-
workflow: vOptional(vObject({
|
|
6150
|
-
draft_status: vOptional(vString),
|
|
6151
|
-
open_status: vOptional(vString),
|
|
6152
|
-
in_progress_status: vOptional(vString),
|
|
6153
|
-
blocked_status: vOptional(vString),
|
|
6154
|
-
close_status: vOptional(vString),
|
|
6155
|
-
canceled_status: vOptional(vString)
|
|
6156
|
-
})),
|
|
6157
|
-
type_workflows: vOptional(vArray(typeWorkflowDefinition)),
|
|
6158
|
-
unknown_field_policy: vOptional(vLiteral(...RUNTIME_UNKNOWN_FIELD_POLICY_VALUES))
|
|
6159
|
-
}));
|
|
6160
|
-
var governanceSettings = vOptional(vObject({
|
|
6161
|
-
preset: vOptional(vLiteral(...GOVERNANCE_PRESET_VALUES)),
|
|
6162
|
-
ownership_enforcement: vOptional(vLiteral("none", "warn", "strict")),
|
|
6163
|
-
create_mode_default: vOptional(vLiteral("progressive", "strict")),
|
|
6164
|
-
close_validation_default: vOptional(vLiteral("off", "warn", "strict")),
|
|
6165
|
-
require_close_reason: vOptional(vBoolean),
|
|
6166
|
-
parent_reference: vOptional(vLiteral("warn", "strict_error")),
|
|
6167
|
-
metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
|
|
6168
|
-
force_required_for_stale_lock: vOptional(vBoolean),
|
|
6169
|
-
create_default_type: vOptional(vString),
|
|
6170
|
-
workflow_enforcement: vOptional(vLiteral("off", "warn", "strict"))
|
|
6171
|
-
}));
|
|
6172
|
-
var extensionPolicyOverride = vObject({
|
|
6173
|
-
name: vString,
|
|
6174
|
-
disabled: vOptional(vBoolean),
|
|
6175
|
-
require_trusted: vOptional(vBoolean),
|
|
6176
|
-
require_provenance: vOptional(vBoolean),
|
|
6177
|
-
sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
|
|
6178
|
-
allowed_capabilities: vOptional(vArray(vString)),
|
|
6179
|
-
blocked_capabilities: vOptional(vArray(vString)),
|
|
6180
|
-
allowed_surfaces: vOptional(vArray(vString)),
|
|
6181
|
-
blocked_surfaces: vOptional(vArray(vString)),
|
|
6182
|
-
allowed_commands: vOptional(vArray(vString)),
|
|
6183
|
-
blocked_commands: vOptional(vArray(vString)),
|
|
6184
|
-
allowed_actions: vOptional(vArray(vString)),
|
|
6185
|
-
blocked_actions: vOptional(vArray(vString)),
|
|
6186
|
-
allowed_services: vOptional(vArray(vString)),
|
|
6187
|
-
blocked_services: vOptional(vArray(vString))
|
|
6188
|
-
});
|
|
6189
|
-
var pmMaxVersionExceededModeLiteral = vLiteral("block", "warn");
|
|
6190
|
-
var pmMaxVersionExceededMode = (input) => typeof input === "string" ? pmMaxVersionExceededModeLiteral(input) : vObject({
|
|
6191
|
-
global: vOptional(pmMaxVersionExceededModeLiteral),
|
|
6192
|
-
project: vOptional(pmMaxVersionExceededModeLiteral)
|
|
6193
|
-
})(input);
|
|
6194
|
-
var extensionPolicy = vOptional(vObject({
|
|
6195
|
-
mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
6196
|
-
trust_mode: vOptional(vLiteral("off", "warn", "enforce")),
|
|
6197
|
-
pm_max_version_exceeded_mode: vOptional(pmMaxVersionExceededMode),
|
|
6198
|
-
require_provenance: vOptional(vBoolean),
|
|
6199
|
-
trusted_extensions: vOptional(vArray(vString)),
|
|
6200
|
-
default_sandbox_profile: vOptional(vLiteral("none", "restricted", "strict")),
|
|
6201
|
-
allowed_extensions: vOptional(vArray(vString)),
|
|
6202
|
-
blocked_extensions: vOptional(vArray(vString)),
|
|
6203
|
-
allowed_capabilities: vOptional(vArray(vString)),
|
|
6204
|
-
blocked_capabilities: vOptional(vArray(vString)),
|
|
6205
|
-
allowed_surfaces: vOptional(vArray(vString)),
|
|
6206
|
-
blocked_surfaces: vOptional(vArray(vString)),
|
|
6207
|
-
allowed_commands: vOptional(vArray(vString)),
|
|
6208
|
-
blocked_commands: vOptional(vArray(vString)),
|
|
6209
|
-
allowed_actions: vOptional(vArray(vString)),
|
|
6210
|
-
blocked_actions: vOptional(vArray(vString)),
|
|
6211
|
-
allowed_services: vOptional(vArray(vString)),
|
|
6212
|
-
blocked_services: vOptional(vArray(vString)),
|
|
6213
|
-
extension_overrides: vOptional(vArray(extensionPolicyOverride))
|
|
6214
|
-
}));
|
|
6215
|
-
var settingsCheck = vObject({
|
|
6216
|
-
version: vNumber({ int: true }),
|
|
6217
|
-
id_prefix: vString,
|
|
6218
|
-
author_default: vString,
|
|
6219
|
-
item_format: vOptional(vLiteral("toon", "json_markdown")),
|
|
6220
|
-
locks: vObject({ ttl_seconds: vNumber({ int: true }) }),
|
|
6221
|
-
checkpoints: vOptional(vObject({ retention_days: vOptional(vNumber({ int: true, positive: true })) })),
|
|
6222
|
-
output: vObject({ default_format: vLiteral("toon", "json") }),
|
|
6223
|
-
history: vOptional(vObject({
|
|
6224
|
-
missing_stream: vLiteral("auto_create", "strict_error"),
|
|
6225
|
-
compact_policy: vOptional(vObject({
|
|
6226
|
-
enabled: vOptional(vBoolean),
|
|
6227
|
-
max_entries: vOptional(vNumber({ int: true, positive: true })),
|
|
6228
|
-
trigger: vOptional(vLiteral("health_warn", "auto"))
|
|
6229
|
-
}))
|
|
6230
|
-
})),
|
|
6231
|
-
validation: vOptional(vObject({
|
|
6232
|
-
sprint_release_format: vLiteral("warn", "strict_error"),
|
|
6233
|
-
parent_reference: vOptional(vLiteral("warn", "strict_error")),
|
|
6234
|
-
metadata_profile: vOptional(vLiteral("core", "strict", "custom")),
|
|
6235
|
-
metadata_required_fields: vOptional(vArray(vString)),
|
|
6236
|
-
lifecycle_stale_blocker_reason_patterns: vOptional(vArray(vString)),
|
|
6237
|
-
lifecycle_closure_like_blocked_reason_patterns: vOptional(vArray(vString)),
|
|
6238
|
-
lifecycle_closure_like_resolution_patterns: vOptional(vArray(vString)),
|
|
6239
|
-
lifecycle_closure_like_actual_result_patterns: vOptional(vArray(vString)),
|
|
6240
|
-
estimate_defaults_by_type: vOptional(vRecordOf(vNumber({ int: true, positive: true })))
|
|
6241
|
-
})),
|
|
6242
|
-
governance: governanceSettings,
|
|
6243
|
-
workflow: vOptional(vObject({ definition_of_done: vArray(vString) })),
|
|
6244
|
-
testing: vOptional(vObject({ record_results_to_items: vBoolean })),
|
|
6245
|
-
telemetry: vOptional(vObject({
|
|
6246
|
-
enabled: vBoolean,
|
|
6247
|
-
first_run_prompt_completed: vOptional(vBoolean),
|
|
6248
|
-
capture_level: vOptional(vLiteral("minimal", "redacted", "max")),
|
|
6249
|
-
endpoint: vOptional(vString),
|
|
6250
|
-
installation_id: vOptional(vString),
|
|
6251
|
-
retention_days: vOptional(vNumber({ int: true, positive: true }))
|
|
6252
|
-
})),
|
|
6253
|
-
agent_guidance: vOptional(vObject({
|
|
6254
|
-
prompt_completed: vOptional(vBoolean),
|
|
6255
|
-
declined: vOptional(vBoolean),
|
|
6256
|
-
declined_at: vOptional(vString),
|
|
6257
|
-
template_version: vOptional(vNumber({ int: true, positive: true })),
|
|
6258
|
-
last_checked_files: vOptional(vArray(vString))
|
|
6259
|
-
})),
|
|
6260
|
-
item_types: vOptional(vObject({ definitions: vArray(itemTypeDefinition) })),
|
|
6261
|
-
schema: runtimeSchemaSettings,
|
|
6262
|
-
context: vOptional(vObject({
|
|
6263
|
-
default_depth: vOptional(vLiteral("brief", "standard", "deep")),
|
|
6264
|
-
activity_limit: vOptional(vNumber({ int: true, positive: true })),
|
|
6265
|
-
stale_threshold_days: vOptional(vNumber({ int: true, positive: true })),
|
|
6266
|
-
sections: vOptional(vObject({
|
|
6267
|
-
hierarchy: vOptional(vBoolean),
|
|
6268
|
-
activity: vOptional(vBoolean),
|
|
6269
|
-
progress: vOptional(vBoolean),
|
|
6270
|
-
recently_created: vOptional(vBoolean),
|
|
6271
|
-
unparented: vOptional(vBoolean),
|
|
6272
|
-
blockers: vOptional(vBoolean),
|
|
6273
|
-
files: vOptional(vBoolean),
|
|
6274
|
-
workload: vOptional(vBoolean),
|
|
6275
|
-
staleness: vOptional(vBoolean),
|
|
6276
|
-
tests: vOptional(vBoolean)
|
|
6277
|
-
}))
|
|
6278
|
-
})),
|
|
6279
|
-
extensions: vObject({
|
|
6280
|
-
enabled: vArray(vString),
|
|
6281
|
-
disabled: vArray(vString),
|
|
6282
|
-
policy: extensionPolicy
|
|
6283
|
-
}),
|
|
6284
|
-
search: vObject({
|
|
6285
|
-
score_threshold: vNumber(),
|
|
6286
|
-
hybrid_semantic_weight: vOptional(vNumber()),
|
|
6287
|
-
max_results: vNumber({ int: true }),
|
|
6288
|
-
embedding_model: vString,
|
|
6289
|
-
embedding_corpus_max_characters: vOptional(vNumber()),
|
|
6290
|
-
embedding_batch_size: vNumber({ int: true }),
|
|
6291
|
-
embedding_timeout_ms: vOptional(vNumber({ int: true })),
|
|
6292
|
-
scanner_max_batch_retries: vNumber({ int: true }),
|
|
6293
|
-
provider: vOptional(vString),
|
|
6294
|
-
corpus_fields: vOptional(vArray(vString)),
|
|
6295
|
-
mutation_refresh_policy: vOptional(vLiteral("cache_only", "semantic_configured", "semantic_auto")),
|
|
6296
|
-
query_expansion: vOptional(vObject({
|
|
6297
|
-
enabled: vOptional(vBoolean),
|
|
6298
|
-
provider: vOptional(vString)
|
|
6299
|
-
})),
|
|
6300
|
-
rerank: vOptional(vObject({
|
|
6301
|
-
enabled: vOptional(vBoolean),
|
|
6302
|
-
model: vOptional(vString),
|
|
6303
|
-
top_k: vOptional(vNumber({ int: true, positive: true }))
|
|
6304
|
-
})),
|
|
6305
|
-
// pm-75k9: offline BM25 tuning. Unlike `search.tuning` (intentionally
|
|
6306
|
-
// stripped for legacy zod parity), bm25 is validated so it persists across
|
|
6307
|
-
// writeSettings round-trips — these knobs must survive to take effect.
|
|
6308
|
-
bm25: vOptional(vObject({
|
|
6309
|
-
k1: vOptional(vNumber()),
|
|
6310
|
-
b: vOptional(vNumber())
|
|
6311
|
-
}))
|
|
6312
|
-
}),
|
|
6313
|
-
providers: vObject({
|
|
6314
|
-
openai: vObject({ base_url: vString, api_key: vString, model: vString }),
|
|
6315
|
-
ollama: vObject({ base_url: vString, model: vString })
|
|
6316
|
-
}),
|
|
6317
|
-
vector_store: vObject({
|
|
6318
|
-
adapter: vOptional(vString),
|
|
6319
|
-
collection_name: vOptional(vString),
|
|
6320
|
-
qdrant: vObject({ url: vString, api_key: vString }),
|
|
6321
|
-
lancedb: vObject({ path: vString })
|
|
6322
|
-
})
|
|
6323
|
-
});
|
|
6324
|
-
function validateSettings(raw) {
|
|
6325
|
-
const result = settingsCheck(raw);
|
|
6326
|
-
if (!result.ok) {
|
|
6327
|
-
return { success: false };
|
|
6328
|
-
}
|
|
6329
|
-
return { success: true, data: result.value };
|
|
6330
|
-
}
|
|
6331
|
-
|
|
6332
|
-
// dist/core/validate/estimate-defaults.js
|
|
6333
|
-
!(function() {
|
|
6334
|
-
try {
|
|
6335
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
6336
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "33f2ca4e-022c-5fc2-9938-a3fb389c1b93");
|
|
6337
|
-
} catch (e2) {
|
|
6338
|
-
}
|
|
6339
|
-
})();
|
|
6340
|
-
var DEFAULT_ESTIMATE_MINUTES_BY_TYPE = {
|
|
6341
|
-
Epic: 2880,
|
|
6342
|
-
Feature: 480,
|
|
6343
|
-
Story: 480,
|
|
6344
|
-
Milestone: 2880,
|
|
6345
|
-
Task: 120,
|
|
6346
|
-
Issue: 60,
|
|
6347
|
-
Bug: 60,
|
|
6348
|
-
Chore: 30,
|
|
6349
|
-
Decision: 15,
|
|
6350
|
-
Plan: 120
|
|
6351
|
-
};
|
|
6352
|
-
var FALLBACK_ESTIMATE_MINUTES = 120;
|
|
6353
|
-
function isHonoredMinutes(value) {
|
|
6354
|
-
return typeof value === "number" && Number.isFinite(value) && value > 0;
|
|
6355
|
-
}
|
|
6356
|
-
function toLowercasedLookup(source) {
|
|
6357
|
-
const lookup = /* @__PURE__ */ new Map();
|
|
6358
|
-
for (const [key, value] of Object.entries(source)) {
|
|
6359
|
-
lookup.set(key.toLowerCase(), value);
|
|
6360
|
-
}
|
|
6361
|
-
return lookup;
|
|
6362
|
-
}
|
|
6363
|
-
var BUILTIN_LOWERCASED_LOOKUP = toLowercasedLookup(DEFAULT_ESTIMATE_MINUTES_BY_TYPE);
|
|
6364
|
-
var OVERRIDE_LOOKUP_CACHE = /* @__PURE__ */ new WeakMap();
|
|
6365
|
-
function lowercasedOverrideLookup(overrides) {
|
|
6366
|
-
const cached = OVERRIDE_LOOKUP_CACHE.get(overrides);
|
|
6367
|
-
if (cached) {
|
|
6368
|
-
return cached;
|
|
6369
|
-
}
|
|
6370
|
-
const lookup = toLowercasedLookup(overrides);
|
|
6371
|
-
OVERRIDE_LOOKUP_CACHE.set(overrides, lookup);
|
|
6372
|
-
return lookup;
|
|
6373
|
-
}
|
|
6374
|
-
function resolveEstimateDefaultMinutes(type, overrides) {
|
|
6375
|
-
const key = (type ?? "").trim().toLowerCase();
|
|
6376
|
-
if (key.length === 0) {
|
|
6377
|
-
return FALLBACK_ESTIMATE_MINUTES;
|
|
6378
|
-
}
|
|
6379
|
-
if (overrides) {
|
|
6380
|
-
const overrideValue = lowercasedOverrideLookup(overrides).get(key);
|
|
6381
|
-
if (isHonoredMinutes(overrideValue)) {
|
|
6382
|
-
return Math.floor(overrideValue);
|
|
6383
|
-
}
|
|
6384
|
-
}
|
|
6385
|
-
const builtinValue = BUILTIN_LOWERCASED_LOOKUP.get(key);
|
|
6386
|
-
if (isHonoredMinutes(builtinValue)) {
|
|
6387
|
-
return Math.floor(builtinValue);
|
|
6388
|
-
}
|
|
6389
|
-
return FALLBACK_ESTIMATE_MINUTES;
|
|
6390
|
-
}
|
|
6391
|
-
function normalizeEstimateDefaultOverrides(raw) {
|
|
6392
|
-
const normalized = {};
|
|
6393
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
|
|
6394
|
-
return normalized;
|
|
6395
|
-
}
|
|
6396
|
-
for (const [rawKey, rawValue] of Object.entries(raw)) {
|
|
6397
|
-
const key = rawKey.trim();
|
|
6398
|
-
if (key.length === 0 || !isHonoredMinutes(rawValue)) {
|
|
6399
|
-
continue;
|
|
6400
|
-
}
|
|
6401
|
-
normalized[key] = Math.floor(rawValue);
|
|
6402
|
-
}
|
|
6403
|
-
return normalized;
|
|
6404
|
-
}
|
|
6405
|
-
|
|
6406
|
-
// dist/core/store/settings-read-cache.js
|
|
6407
|
-
import { stat } from "node:fs/promises";
|
|
6408
|
-
!(function() {
|
|
6409
|
-
try {
|
|
6410
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
6411
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "406f2d48-4969-5666-9e95-c71103f541c5");
|
|
6412
|
-
} catch (e2) {
|
|
6413
|
-
}
|
|
6414
|
-
})();
|
|
6415
|
-
var settingsReadCacheByRoot = /* @__PURE__ */ new Map();
|
|
6416
|
-
function normalizeTrackedPaths(paths) {
|
|
6417
|
-
return [...new Set(paths.map((pathValue) => pathValue.trim()).filter((pathValue) => pathValue.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6418
|
-
}
|
|
6419
|
-
async function readPathSignature(targetPath) {
|
|
6420
|
-
try {
|
|
6421
|
-
const targetStats = await stat(targetPath);
|
|
6422
|
-
return {
|
|
6423
|
-
path: targetPath,
|
|
6424
|
-
mtime_ms: targetStats.mtimeMs,
|
|
6425
|
-
size: targetStats.size
|
|
6426
|
-
};
|
|
6427
|
-
} catch {
|
|
6428
|
-
return {
|
|
6429
|
-
path: targetPath,
|
|
6430
|
-
mtime_ms: null,
|
|
6431
|
-
size: null
|
|
6432
|
-
};
|
|
6433
|
-
}
|
|
6434
|
-
}
|
|
6435
|
-
async function collectSettingsReadCacheSignatures(paths) {
|
|
6436
|
-
const normalizedPaths = normalizeTrackedPaths(paths);
|
|
6437
|
-
const signatures = await Promise.all(normalizedPaths.map((targetPath) => readPathSignature(targetPath)));
|
|
6438
|
-
signatures.sort((left, right) => left.path.localeCompare(right.path));
|
|
6439
|
-
return signatures;
|
|
6440
|
-
}
|
|
6441
|
-
function settingsReadCacheSignaturesEqual(left, right) {
|
|
6442
|
-
if (left.length !== right.length) {
|
|
6443
|
-
return false;
|
|
6444
|
-
}
|
|
6445
|
-
for (let index = 0; index < left.length; index += 1) {
|
|
6446
|
-
const leftEntry = left[index];
|
|
6447
|
-
const rightEntry = right[index];
|
|
6448
|
-
if (leftEntry.path !== rightEntry.path || leftEntry.mtime_ms !== rightEntry.mtime_ms || leftEntry.size !== rightEntry.size) {
|
|
6449
|
-
return false;
|
|
6450
|
-
}
|
|
6451
|
-
}
|
|
6452
|
-
return true;
|
|
6453
|
-
}
|
|
6454
|
-
function getSettingsReadCacheEntry(pmRoot) {
|
|
6455
|
-
return settingsReadCacheByRoot.get(pmRoot);
|
|
6456
|
-
}
|
|
6457
|
-
function setSettingsReadCacheEntry(pmRoot, entry) {
|
|
6458
|
-
const normalizedTrackedPaths = normalizeTrackedPaths(entry.tracked_paths);
|
|
6459
|
-
const normalizedSignatures = [...entry.signatures].map((signature) => ({
|
|
6460
|
-
path: signature.path,
|
|
6461
|
-
mtime_ms: signature.mtime_ms,
|
|
6462
|
-
size: signature.size
|
|
6463
|
-
})).sort((left, right) => left.path.localeCompare(right.path));
|
|
6464
|
-
settingsReadCacheByRoot.set(pmRoot, {
|
|
6465
|
-
tracked_paths: normalizedTrackedPaths,
|
|
6466
|
-
signatures: normalizedSignatures,
|
|
6467
|
-
value: entry.value
|
|
6468
|
-
});
|
|
6469
|
-
}
|
|
6470
|
-
function clearSettingsReadCache(pmRoot) {
|
|
6471
|
-
if (pmRoot) {
|
|
6472
|
-
settingsReadCacheByRoot.delete(pmRoot);
|
|
6473
|
-
return;
|
|
6474
|
-
}
|
|
6475
|
-
settingsReadCacheByRoot.clear();
|
|
6476
|
-
}
|
|
6477
|
-
|
|
6478
|
-
// dist/core/store/settings.js
|
|
6479
|
-
!(function() {
|
|
6480
|
-
try {
|
|
6481
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
6482
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "4232868d-1e9d-51a3-abbe-3d9a3d1acae1");
|
|
6483
|
-
} catch (e2) {
|
|
6484
|
-
}
|
|
6485
|
-
})();
|
|
6486
|
-
var SETTINGS_WRITE_OP = "settings:write";
|
|
6487
|
-
var SETTINGS_PERSIST_SOURCE_SYMBOL = /* @__PURE__ */ Symbol("pm.settings.persist_source");
|
|
6488
|
-
var MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;
|
|
6489
|
-
function resolveGovernanceKnobsFromPreset(preset) {
|
|
6490
|
-
return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);
|
|
6491
|
-
}
|
|
6492
|
-
function normalizeGovernancePreset(value) {
|
|
6493
|
-
if (value === "minimal" || value === "default" || value === "strict" || value === "custom") {
|
|
6494
|
-
return value;
|
|
6495
|
-
}
|
|
6496
|
-
return SETTINGS_DEFAULTS.governance.preset;
|
|
6497
|
-
}
|
|
6498
|
-
function withGovernanceExtras(base, governance) {
|
|
6499
|
-
const createDefaultType = typeof governance.create_default_type === "string" ? governance.create_default_type.trim() : void 0;
|
|
6500
|
-
if (createDefaultType && createDefaultType.length > 0) {
|
|
6501
|
-
base.create_default_type = createDefaultType;
|
|
6502
|
-
}
|
|
6503
|
-
if (governance.workflow_enforcement === "off" || governance.workflow_enforcement === "warn" || governance.workflow_enforcement === "strict") {
|
|
6504
|
-
base.workflow_enforcement = governance.workflow_enforcement;
|
|
6505
|
-
}
|
|
6506
|
-
if (governance.require_close_reason === false) {
|
|
6507
|
-
base.require_close_reason = false;
|
|
6508
|
-
}
|
|
6509
|
-
return base;
|
|
6510
|
-
}
|
|
6511
|
-
function normalizeGovernanceForPersist(governance) {
|
|
6512
|
-
if (governance.preset === "custom") {
|
|
6513
|
-
return withGovernanceExtras({
|
|
6514
|
-
preset: "custom",
|
|
6515
|
-
ownership_enforcement: governance.ownership_enforcement,
|
|
6516
|
-
create_mode_default: governance.create_mode_default,
|
|
6517
|
-
close_validation_default: governance.close_validation_default,
|
|
6518
|
-
parent_reference: governance.parent_reference,
|
|
6519
|
-
metadata_profile: governance.metadata_profile,
|
|
6520
|
-
force_required_for_stale_lock: governance.force_required_for_stale_lock
|
|
6521
|
-
}, governance);
|
|
6522
|
-
}
|
|
6523
|
-
return withGovernanceExtras({
|
|
6524
|
-
preset: governance.preset
|
|
6525
|
-
}, governance);
|
|
6526
|
-
}
|
|
6527
|
-
function resolveGovernanceExtras(rawGovernance) {
|
|
6528
|
-
const createDefaultType = typeof rawGovernance.create_default_type === "string" ? rawGovernance.create_default_type.trim() : void 0;
|
|
6529
|
-
const extras = {};
|
|
6530
|
-
if (createDefaultType && createDefaultType.length > 0) {
|
|
6531
|
-
extras.create_default_type = createDefaultType;
|
|
6532
|
-
}
|
|
6533
|
-
if (rawGovernance.workflow_enforcement === "off" || rawGovernance.workflow_enforcement === "warn" || rawGovernance.workflow_enforcement === "strict") {
|
|
6534
|
-
extras.workflow_enforcement = rawGovernance.workflow_enforcement;
|
|
6535
|
-
}
|
|
6536
|
-
if (typeof rawGovernance.require_close_reason === "boolean") {
|
|
6537
|
-
extras.require_close_reason = rawGovernance.require_close_reason;
|
|
6538
|
-
}
|
|
6539
|
-
return extras;
|
|
6540
|
-
}
|
|
6541
|
-
function resolveGovernanceKnobs(settings) {
|
|
6542
|
-
const rawGovernance = settings.governance ?? {};
|
|
6543
|
-
const preset = normalizeGovernancePreset(rawGovernance.preset);
|
|
6544
|
-
const extras = resolveGovernanceExtras(rawGovernance);
|
|
6545
|
-
if (preset === "custom") {
|
|
6546
|
-
const baseline2 = resolveGovernanceKnobsFromPreset("default");
|
|
6547
|
-
const requireCloseReason2 = extras.require_close_reason ?? baseline2.require_close_reason;
|
|
6548
|
-
return {
|
|
6549
|
-
preset,
|
|
6550
|
-
ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline2.ownership_enforcement,
|
|
6551
|
-
create_mode_default: rawGovernance.create_mode_default ?? baseline2.create_mode_default,
|
|
6552
|
-
close_validation_default: rawGovernance.close_validation_default ?? baseline2.close_validation_default,
|
|
6553
|
-
parent_reference: rawGovernance.parent_reference ?? baseline2.parent_reference,
|
|
6554
|
-
metadata_profile: rawGovernance.metadata_profile ?? baseline2.metadata_profile,
|
|
6555
|
-
force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline2.force_required_for_stale_lock,
|
|
6556
|
-
...extras,
|
|
6557
|
-
require_close_reason: requireCloseReason2
|
|
6558
|
-
};
|
|
6559
|
-
}
|
|
6560
|
-
const baseline = resolveGovernanceKnobsFromPreset(preset);
|
|
6561
|
-
const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;
|
|
6562
|
-
return {
|
|
6563
|
-
preset,
|
|
6564
|
-
...baseline,
|
|
6565
|
-
...extras,
|
|
6566
|
-
require_close_reason: requireCloseReason
|
|
6567
|
-
};
|
|
6568
|
-
}
|
|
6569
|
-
function cloneDefaults() {
|
|
6570
|
-
return structuredClone(SETTINGS_DEFAULTS);
|
|
6571
|
-
}
|
|
6572
|
-
function normalizeSearchMutationRefreshPolicy(value) {
|
|
6573
|
-
if (value === "cache_only" || value === "semantic_configured" || value === "semantic_auto") {
|
|
6574
|
-
return value;
|
|
6575
|
-
}
|
|
6576
|
-
return SETTINGS_DEFAULTS.search.mutation_refresh_policy;
|
|
6577
|
-
}
|
|
6578
|
-
function normalizeSearchQueryExpansionEnabled(value) {
|
|
6579
|
-
if (typeof value === "boolean") {
|
|
6580
|
-
return value;
|
|
6581
|
-
}
|
|
6582
|
-
return SETTINGS_DEFAULTS.search.query_expansion.enabled;
|
|
6583
|
-
}
|
|
6584
|
-
function normalizeSearchQueryExpansionProvider(value) {
|
|
6585
|
-
if (typeof value !== "string") {
|
|
6586
|
-
return SETTINGS_DEFAULTS.search.query_expansion.provider;
|
|
6587
|
-
}
|
|
6588
|
-
return value.trim();
|
|
6589
|
-
}
|
|
6590
|
-
function normalizeSearchRerankEnabled(value) {
|
|
6591
|
-
if (typeof value === "boolean") {
|
|
6592
|
-
return value;
|
|
6593
|
-
}
|
|
6594
|
-
return SETTINGS_DEFAULTS.search.rerank.enabled;
|
|
6595
|
-
}
|
|
6596
|
-
function normalizeSearchRerankModel(value) {
|
|
6597
|
-
if (typeof value !== "string") {
|
|
6598
|
-
return SETTINGS_DEFAULTS.search.rerank.model;
|
|
6599
|
-
}
|
|
6600
|
-
return value.trim();
|
|
6601
|
-
}
|
|
6602
|
-
function normalizeSearchRerankTopK(value) {
|
|
6603
|
-
if (typeof value === "number" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {
|
|
6604
|
-
return value;
|
|
6605
|
-
}
|
|
6606
|
-
return SETTINGS_DEFAULTS.search.rerank.top_k;
|
|
6607
|
-
}
|
|
6608
|
-
function normalizeVectorStoreCollectionName(value) {
|
|
6609
|
-
if (typeof value !== "string") {
|
|
6610
|
-
return SETTINGS_DEFAULTS.vector_store.collection_name;
|
|
6611
|
-
}
|
|
6612
|
-
const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, "_");
|
|
6613
|
-
const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);
|
|
6614
|
-
return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;
|
|
6615
|
-
}
|
|
6616
|
-
function buildSettingsPersistSourceSnapshot(parsedSettings, runtimeSettings) {
|
|
6617
|
-
const sourceSchema = parsedSettings.schema;
|
|
6618
|
-
const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : void 0;
|
|
6619
|
-
const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : void 0;
|
|
6620
|
-
const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : void 0;
|
|
6621
|
-
return {
|
|
6622
|
-
has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),
|
|
6623
|
-
source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),
|
|
6624
|
-
has_source_schema_statuses: sourceStatuses !== void 0,
|
|
6625
|
-
source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],
|
|
6626
|
-
has_source_schema_fields: sourceFields !== void 0,
|
|
6627
|
-
source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],
|
|
6628
|
-
has_source_schema_type_workflows: sourceTypeWorkflows !== void 0,
|
|
6629
|
-
source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],
|
|
6630
|
-
runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),
|
|
6631
|
-
runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),
|
|
6632
|
-
runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),
|
|
6633
|
-
runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? [])
|
|
6634
|
-
};
|
|
6635
|
-
}
|
|
6636
|
-
function attachSettingsPersistSourceSnapshot(settings, source) {
|
|
6637
|
-
Object.defineProperty(settings, SETTINGS_PERSIST_SOURCE_SYMBOL, {
|
|
6638
|
-
value: source,
|
|
6639
|
-
writable: true,
|
|
6640
|
-
configurable: true,
|
|
6641
|
-
enumerable: false
|
|
6642
|
-
});
|
|
6643
|
-
}
|
|
6644
|
-
function getSettingsPersistSourceSnapshot(settings) {
|
|
6645
|
-
const candidate = settings[SETTINGS_PERSIST_SOURCE_SYMBOL];
|
|
6646
|
-
if (!candidate || typeof candidate !== "object") {
|
|
6647
|
-
return void 0;
|
|
6648
|
-
}
|
|
6649
|
-
return candidate;
|
|
6650
|
-
}
|
|
6651
|
-
function cloneSettingsReadResult(result) {
|
|
6652
|
-
const clonedSettings = structuredClone(result.settings);
|
|
6653
|
-
const persistSource = getSettingsPersistSourceSnapshot(result.settings);
|
|
6654
|
-
if (persistSource) {
|
|
6655
|
-
attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));
|
|
6656
|
-
}
|
|
6657
|
-
return {
|
|
6658
|
-
settings: clonedSettings,
|
|
6659
|
-
metadata: {
|
|
6660
|
-
has_explicit_item_format: result.metadata.has_explicit_item_format
|
|
6661
|
-
},
|
|
6662
|
-
warnings: [...result.warnings]
|
|
6663
|
-
};
|
|
6664
|
-
}
|
|
6665
|
-
function resolveSettingsReadTrackedPaths(pmRoot, schema, settingsPath) {
|
|
6666
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(schema);
|
|
6667
|
-
return [
|
|
6668
|
-
settingsPath,
|
|
6669
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),
|
|
6670
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),
|
|
6671
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),
|
|
6672
|
-
filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows)
|
|
6673
|
-
];
|
|
6674
|
-
}
|
|
6675
|
-
async function cacheSettingsReadResult(pmRoot, trackedPaths, result) {
|
|
6676
|
-
const signatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
6677
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
6678
|
-
tracked_paths: trackedPaths,
|
|
6679
|
-
signatures,
|
|
6680
|
-
value: cloneSettingsReadResult(result)
|
|
6681
|
-
});
|
|
6682
|
-
}
|
|
6683
|
-
async function cacheSettingsReadResultSafe(pmRoot, trackedPaths, result) {
|
|
6684
|
-
try {
|
|
6685
|
-
await cacheSettingsReadResult(pmRoot, trackedPaths, result);
|
|
6686
|
-
} catch {
|
|
6687
|
-
clearSettingsReadCache(pmRoot);
|
|
6688
|
-
}
|
|
6689
|
-
}
|
|
6690
|
-
function findSettingsReadCacheSignature(signatures, targetPath) {
|
|
6691
|
-
return signatures.find((signature) => signature.path === targetPath);
|
|
6692
|
-
}
|
|
6693
|
-
function selectedSettingsReadCacheSignaturesEqual(before, after, targetPaths) {
|
|
6694
|
-
for (const targetPath of targetPaths) {
|
|
6695
|
-
const beforeSignature = findSettingsReadCacheSignature(before, targetPath);
|
|
6696
|
-
const afterSignature = findSettingsReadCacheSignature(after, targetPath);
|
|
6697
|
-
if (!beforeSignature || !afterSignature || !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])) {
|
|
6698
|
-
return false;
|
|
6699
|
-
}
|
|
6700
|
-
}
|
|
6701
|
-
return true;
|
|
6702
|
-
}
|
|
6703
|
-
async function cacheSettingsReadResultIfStable(pmRoot, trackedPaths, result, stableSignatures, stablePaths) {
|
|
6704
|
-
try {
|
|
6705
|
-
const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
6706
|
-
if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {
|
|
6707
|
-
clearSettingsReadCache(pmRoot);
|
|
6708
|
-
return;
|
|
6709
|
-
}
|
|
6710
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
6711
|
-
tracked_paths: trackedPaths,
|
|
6712
|
-
signatures: currentSignatures,
|
|
6713
|
-
value: cloneSettingsReadResult(result)
|
|
6714
|
-
});
|
|
6715
|
-
} catch {
|
|
6716
|
-
clearSettingsReadCache(pmRoot);
|
|
6717
|
-
}
|
|
6718
|
-
}
|
|
6719
|
-
function resolvePersistedFileBackedSchemaSections(settings, source) {
|
|
6720
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
6721
|
-
const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);
|
|
6722
|
-
if (!source) {
|
|
6723
|
-
return {
|
|
6724
|
-
item_type_definitions: currentItemTypeDefinitions,
|
|
6725
|
-
schema_statuses: normalizedSchema.statuses,
|
|
6726
|
-
schema_fields: normalizedSchema.fields,
|
|
6727
|
-
schema_type_workflows: normalizedSchema.type_workflows
|
|
6728
|
-
};
|
|
6729
|
-
}
|
|
6730
|
-
const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];
|
|
6731
|
-
const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);
|
|
6732
|
-
const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);
|
|
6733
|
-
const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);
|
|
6734
|
-
const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);
|
|
6735
|
-
return {
|
|
6736
|
-
item_type_definitions: itemTypeDefinitionsUnchanged ? source.has_source_item_type_definitions ? normalizeItemTypeDefinitions(source.source_item_type_definitions) : [] : currentItemTypeDefinitions,
|
|
6737
|
-
schema_statuses: schemaStatusesUnchanged ? source.has_source_schema_statuses ? structuredClone(source.source_schema_statuses) : [] : normalizedSchema.statuses,
|
|
6738
|
-
schema_fields: schemaFieldsUnchanged ? source.has_source_schema_fields ? structuredClone(source.source_schema_fields) : [] : normalizedSchema.fields,
|
|
6739
|
-
schema_type_workflows: schemaTypeWorkflowsUnchanged ? source.has_source_schema_type_workflows ? structuredClone(source.source_schema_type_workflows) : void 0 : normalizedSchema.type_workflows
|
|
6740
|
-
};
|
|
6741
|
-
}
|
|
6742
|
-
function buildFallbackSettingsReadResult(warning) {
|
|
6743
|
-
return {
|
|
6744
|
-
settings: cloneDefaults(),
|
|
6745
|
-
metadata: {
|
|
6746
|
-
has_explicit_item_format: false
|
|
6747
|
-
},
|
|
6748
|
-
warnings: warning ? [warning] : []
|
|
6749
|
-
};
|
|
6750
|
-
}
|
|
6751
|
-
function hasExplicitItemFormat(raw) {
|
|
6752
|
-
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
6753
|
-
return false;
|
|
6754
|
-
}
|
|
6755
|
-
const itemFormat = raw.item_format;
|
|
6756
|
-
return itemFormat === "toon" || itemFormat === "json_markdown";
|
|
6757
|
-
}
|
|
6758
|
-
function normalizeStringList2(values) {
|
|
6759
|
-
return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6760
|
-
}
|
|
6761
|
-
function normalizeAgentGuidanceSettings(value) {
|
|
6762
|
-
const defaults = SETTINGS_DEFAULTS.agent_guidance;
|
|
6763
|
-
const templateVersion = value?.template_version;
|
|
6764
|
-
return {
|
|
6765
|
-
prompt_completed: value?.prompt_completed === true,
|
|
6766
|
-
declined: value?.declined === true,
|
|
6767
|
-
declined_at: typeof value?.declined_at === "string" ? value.declined_at : defaults.declined_at,
|
|
6768
|
-
template_version: typeof templateVersion === "number" && Number.isInteger(templateVersion) && templateVersion > 0 ? templateVersion : defaults.template_version,
|
|
6769
|
-
last_checked_files: normalizeStringList2(value?.last_checked_files ?? defaults.last_checked_files)
|
|
6770
|
-
};
|
|
6771
|
-
}
|
|
6772
|
-
function normalizeLowerStringList(values) {
|
|
6773
|
-
return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6774
|
-
}
|
|
6775
|
-
function normalizeExtensionPolicyMode(value) {
|
|
6776
|
-
if (value === "off" || value === "warn" || value === "enforce") {
|
|
6777
|
-
return value;
|
|
6778
|
-
}
|
|
6779
|
-
return SETTINGS_DEFAULTS.extensions.policy.mode;
|
|
6780
|
-
}
|
|
6781
|
-
function normalizeExtensionTrustMode(value) {
|
|
6782
|
-
if (value === "off" || value === "warn" || value === "enforce") {
|
|
6783
|
-
return value;
|
|
6784
|
-
}
|
|
6785
|
-
return SETTINGS_DEFAULTS.extensions.policy.trust_mode;
|
|
6786
|
-
}
|
|
6787
|
-
function normalizeExtensionSandboxProfile(value) {
|
|
6788
|
-
if (value === "none" || value === "restricted" || value === "strict") {
|
|
6789
|
-
return value;
|
|
6790
|
-
}
|
|
6791
|
-
return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;
|
|
6792
|
-
}
|
|
6793
|
-
function normalizeExtensionPolicyOverride(override) {
|
|
6794
|
-
const name = override.name.trim().toLowerCase();
|
|
6795
|
-
if (name.length === 0) {
|
|
6796
|
-
return null;
|
|
6797
|
-
}
|
|
6798
|
-
const normalized = {
|
|
6799
|
-
name
|
|
6800
|
-
};
|
|
6801
|
-
if (override.disabled === true) {
|
|
6802
|
-
normalized.disabled = true;
|
|
6803
|
-
}
|
|
6804
|
-
if (override.require_trusted === true) {
|
|
6805
|
-
normalized.require_trusted = true;
|
|
6806
|
-
}
|
|
6807
|
-
if (override.require_provenance === true) {
|
|
6808
|
-
normalized.require_provenance = true;
|
|
6809
|
-
}
|
|
6810
|
-
if (override.sandbox_profile !== void 0) {
|
|
6811
|
-
normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);
|
|
6812
|
-
}
|
|
6813
|
-
const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);
|
|
6814
|
-
const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);
|
|
6815
|
-
const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);
|
|
6816
|
-
const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);
|
|
6817
|
-
const allowedCommands = normalizeLowerStringList(override.allowed_commands);
|
|
6818
|
-
const blockedCommands = normalizeLowerStringList(override.blocked_commands);
|
|
6819
|
-
const allowedActions = normalizeLowerStringList(override.allowed_actions);
|
|
6820
|
-
const blockedActions = normalizeLowerStringList(override.blocked_actions);
|
|
6821
|
-
const allowedServices = normalizeLowerStringList(override.allowed_services);
|
|
6822
|
-
const blockedServices = normalizeLowerStringList(override.blocked_services);
|
|
6823
|
-
if (allowedCapabilities.length > 0) {
|
|
6824
|
-
normalized.allowed_capabilities = allowedCapabilities;
|
|
6825
|
-
}
|
|
6826
|
-
if (blockedCapabilities.length > 0) {
|
|
6827
|
-
normalized.blocked_capabilities = blockedCapabilities;
|
|
6828
|
-
}
|
|
6829
|
-
if (allowedSurfaces.length > 0) {
|
|
6830
|
-
normalized.allowed_surfaces = allowedSurfaces;
|
|
6831
|
-
}
|
|
6832
|
-
if (blockedSurfaces.length > 0) {
|
|
6833
|
-
normalized.blocked_surfaces = blockedSurfaces;
|
|
6834
|
-
}
|
|
6835
|
-
if (allowedCommands.length > 0) {
|
|
6836
|
-
normalized.allowed_commands = allowedCommands;
|
|
6837
|
-
}
|
|
6838
|
-
if (blockedCommands.length > 0) {
|
|
6839
|
-
normalized.blocked_commands = blockedCommands;
|
|
6840
|
-
}
|
|
6841
|
-
if (allowedActions.length > 0) {
|
|
6842
|
-
normalized.allowed_actions = allowedActions;
|
|
6843
|
-
}
|
|
6844
|
-
if (blockedActions.length > 0) {
|
|
6845
|
-
normalized.blocked_actions = blockedActions;
|
|
6846
|
-
}
|
|
6847
|
-
if (allowedServices.length > 0) {
|
|
6848
|
-
normalized.allowed_services = allowedServices;
|
|
6849
|
-
}
|
|
6850
|
-
if (blockedServices.length > 0) {
|
|
6851
|
-
normalized.blocked_services = blockedServices;
|
|
6852
|
-
}
|
|
6853
|
-
return normalized;
|
|
6854
|
-
}
|
|
6855
|
-
function normalizeExtensionPolicyOverrides(overrides) {
|
|
6856
|
-
const dedupedByName = /* @__PURE__ */ new Map();
|
|
6857
|
-
for (const override of overrides ?? []) {
|
|
6858
|
-
const normalized = normalizeExtensionPolicyOverride(override);
|
|
6859
|
-
if (!normalized) {
|
|
6860
|
-
continue;
|
|
6861
|
-
}
|
|
6862
|
-
dedupedByName.set(normalized.name, normalized);
|
|
6863
|
-
}
|
|
6864
|
-
return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
|
|
6865
|
-
}
|
|
6866
|
-
function normalizePmMaxVersionExceededModeValue2(value) {
|
|
6867
|
-
return value === "block" || value === "warn" ? value : void 0;
|
|
6868
|
-
}
|
|
6869
|
-
function normalizePmMaxVersionExceededModeSetting(value) {
|
|
6870
|
-
if (typeof value === "string") {
|
|
6871
|
-
return normalizePmMaxVersionExceededModeValue2(value);
|
|
6872
|
-
}
|
|
6873
|
-
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
6874
|
-
const global2 = normalizePmMaxVersionExceededModeValue2(value.global);
|
|
6875
|
-
const project = normalizePmMaxVersionExceededModeValue2(value.project);
|
|
6876
|
-
if (global2 === void 0 && project === void 0) {
|
|
6877
|
-
return void 0;
|
|
6878
|
-
}
|
|
6879
|
-
return {
|
|
6880
|
-
...global2 !== void 0 ? { global: global2 } : {},
|
|
6881
|
-
...project !== void 0 ? { project } : {}
|
|
6882
|
-
};
|
|
6883
|
-
}
|
|
6884
|
-
return void 0;
|
|
6885
|
-
}
|
|
6886
|
-
function normalizeExtensionPolicyList(policy, key) {
|
|
6887
|
-
return normalizeLowerStringList(policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key]);
|
|
6888
|
-
}
|
|
6889
|
-
function normalizeExtensionPolicySettings(policy) {
|
|
6890
|
-
const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
|
|
6891
|
-
return {
|
|
6892
|
-
mode: normalizeExtensionPolicyMode(policy?.mode),
|
|
6893
|
-
trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
|
|
6894
|
-
...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
|
|
6895
|
-
require_provenance: policy?.require_provenance === true,
|
|
6896
|
-
trusted_extensions: normalizeExtensionPolicyList(policy, "trusted_extensions"),
|
|
6897
|
-
default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
|
|
6898
|
-
allowed_extensions: normalizeExtensionPolicyList(policy, "allowed_extensions"),
|
|
6899
|
-
blocked_extensions: normalizeExtensionPolicyList(policy, "blocked_extensions"),
|
|
6900
|
-
allowed_capabilities: normalizeExtensionPolicyList(policy, "allowed_capabilities"),
|
|
6901
|
-
blocked_capabilities: normalizeExtensionPolicyList(policy, "blocked_capabilities"),
|
|
6902
|
-
allowed_surfaces: normalizeExtensionPolicyList(policy, "allowed_surfaces"),
|
|
6903
|
-
blocked_surfaces: normalizeExtensionPolicyList(policy, "blocked_surfaces"),
|
|
6904
|
-
allowed_commands: normalizeExtensionPolicyList(policy, "allowed_commands"),
|
|
6905
|
-
blocked_commands: normalizeExtensionPolicyList(policy, "blocked_commands"),
|
|
6906
|
-
allowed_actions: normalizeExtensionPolicyList(policy, "allowed_actions"),
|
|
6907
|
-
blocked_actions: normalizeExtensionPolicyList(policy, "blocked_actions"),
|
|
6908
|
-
allowed_services: normalizeExtensionPolicyList(policy, "allowed_services"),
|
|
6909
|
-
blocked_services: normalizeExtensionPolicyList(policy, "blocked_services"),
|
|
6910
|
-
extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? SETTINGS_DEFAULTS.extensions.policy.extension_overrides)
|
|
6911
|
-
};
|
|
6912
|
-
}
|
|
6913
|
-
function normalizeValidationMetadataRequiredFields(values) {
|
|
6914
|
-
const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll("-", "_")))].filter((value) => value.length > 0).sort((left, right) => left.localeCompare(right));
|
|
6915
|
-
return normalized.filter((value) => [
|
|
6916
|
-
"author",
|
|
6917
|
-
"acceptance_criteria",
|
|
6918
|
-
"estimated_minutes",
|
|
6919
|
-
"close_reason",
|
|
6920
|
-
"reviewer",
|
|
6921
|
-
"risk",
|
|
6922
|
-
"confidence",
|
|
6923
|
-
"sprint",
|
|
6924
|
-
"release"
|
|
6925
|
-
].includes(value));
|
|
6926
|
-
}
|
|
6927
|
-
function normalizeValidationPatternList(values) {
|
|
6928
|
-
return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
|
|
6929
|
-
}
|
|
6930
|
-
function valueOrDefault(value, fallback) {
|
|
6931
|
-
return value === void 0 ? fallback : value;
|
|
6932
|
-
}
|
|
6933
|
-
function recordOrEmpty(value) {
|
|
6934
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : {};
|
|
6935
|
-
}
|
|
6936
|
-
function arrayOrEmpty(value) {
|
|
6937
|
-
return Array.isArray(value) ? value : [];
|
|
6938
|
-
}
|
|
6939
|
-
function buildValidationSettings(settings, defaults, governance) {
|
|
6940
|
-
return {
|
|
6941
|
-
...defaults.validation,
|
|
6942
|
-
...settings.validation,
|
|
6943
|
-
parent_reference: governance.parent_reference,
|
|
6944
|
-
metadata_profile: governance.metadata_profile,
|
|
6945
|
-
metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),
|
|
6946
|
-
lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_stale_blocker_reason_patterns ?? defaults.validation.lifecycle_stale_blocker_reason_patterns),
|
|
6947
|
-
lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? defaults.validation.lifecycle_closure_like_blocked_reason_patterns),
|
|
6948
|
-
lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_resolution_patterns ?? defaults.validation.lifecycle_closure_like_resolution_patterns),
|
|
6949
|
-
lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_actual_result_patterns ?? defaults.validation.lifecycle_closure_like_actual_result_patterns),
|
|
6950
|
-
estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type)
|
|
6951
|
-
};
|
|
6952
|
-
}
|
|
6953
|
-
function buildTelemetrySettings(settings, defaults) {
|
|
6954
|
-
return {
|
|
6955
|
-
enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,
|
|
6956
|
-
first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,
|
|
6957
|
-
capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,
|
|
6958
|
-
endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,
|
|
6959
|
-
installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,
|
|
6960
|
-
retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days
|
|
6961
|
-
};
|
|
6962
|
-
}
|
|
6963
|
-
function buildSearchSettings(settings, defaults) {
|
|
6964
|
-
return {
|
|
6965
|
-
...defaults.search,
|
|
6966
|
-
...settings.search,
|
|
6967
|
-
mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),
|
|
6968
|
-
query_expansion: {
|
|
6969
|
-
...defaults.search.query_expansion,
|
|
6970
|
-
...settings.search?.query_expansion,
|
|
6971
|
-
enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),
|
|
6972
|
-
provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider)
|
|
6973
|
-
},
|
|
6974
|
-
rerank: {
|
|
6975
|
-
...defaults.search.rerank,
|
|
6976
|
-
...settings.search?.rerank,
|
|
6977
|
-
enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),
|
|
6978
|
-
model: normalizeSearchRerankModel(settings.search?.rerank?.model),
|
|
6979
|
-
top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k)
|
|
6980
|
-
}
|
|
6981
|
-
};
|
|
6982
|
-
}
|
|
6983
|
-
function buildVectorStoreSettings(settings, defaults) {
|
|
6984
|
-
return {
|
|
6985
|
-
adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,
|
|
6986
|
-
collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),
|
|
6987
|
-
qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },
|
|
6988
|
-
lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb }
|
|
6989
|
-
};
|
|
6990
|
-
}
|
|
6991
|
-
function normalizeSettingsItemFormat(settings, defaults) {
|
|
6992
|
-
if (settings.item_format === "json_markdown") {
|
|
6993
|
-
return "toon";
|
|
6994
|
-
}
|
|
6995
|
-
return settings.item_format ?? defaults.item_format;
|
|
6996
|
-
}
|
|
6997
|
-
function buildContextSettings(settings, defaults) {
|
|
6998
|
-
return {
|
|
6999
|
-
default_depth: settings.context?.default_depth ?? defaults.context.default_depth,
|
|
7000
|
-
activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,
|
|
7001
|
-
stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,
|
|
7002
|
-
sections: {
|
|
7003
|
-
...defaults.context.sections,
|
|
7004
|
-
...settings.context?.sections
|
|
7005
|
-
}
|
|
7006
|
-
};
|
|
7007
|
-
}
|
|
7008
|
-
function buildProviderSettings(settings, defaults) {
|
|
7009
|
-
return {
|
|
7010
|
-
openai: { ...defaults.providers.openai, ...settings.providers.openai },
|
|
7011
|
-
ollama: { ...defaults.providers.ollama, ...settings.providers.ollama }
|
|
7012
|
-
};
|
|
7013
|
-
}
|
|
7014
|
-
function normalizeItemTypeDefinitions(definitions) {
|
|
7015
|
-
const normalized = (definitions ?? []).map((definition) => normalizeItemTypeDefinition(definition)).filter((definition) => definition !== null);
|
|
7016
|
-
const dedupedByName = /* @__PURE__ */ new Map();
|
|
7017
|
-
for (const definition of normalized) {
|
|
7018
|
-
dedupedByName.set(definition.name.toLowerCase(), definition);
|
|
7019
|
-
}
|
|
7020
|
-
return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));
|
|
7021
|
-
}
|
|
7022
|
-
function mergeSettings(settings) {
|
|
7023
|
-
const defaults = cloneDefaults();
|
|
7024
|
-
const governance = resolveGovernanceKnobs({
|
|
7025
|
-
governance: settings.governance ?? { preset: "default" }
|
|
7026
|
-
});
|
|
7027
|
-
return {
|
|
7028
|
-
...defaults,
|
|
7029
|
-
...settings,
|
|
7030
|
-
item_format: normalizeSettingsItemFormat(settings, defaults),
|
|
7031
|
-
locks: { ...defaults.locks, ...settings.locks },
|
|
7032
|
-
checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },
|
|
7033
|
-
output: { ...defaults.output, ...settings.output },
|
|
7034
|
-
history: {
|
|
7035
|
-
...defaults.history,
|
|
7036
|
-
...settings.history,
|
|
7037
|
-
compact_policy: {
|
|
7038
|
-
...defaults.history.compact_policy,
|
|
7039
|
-
...settings.history?.compact_policy
|
|
7040
|
-
}
|
|
7041
|
-
},
|
|
7042
|
-
validation: buildValidationSettings(settings, defaults, governance),
|
|
7043
|
-
governance,
|
|
7044
|
-
workflow: {
|
|
7045
|
-
definition_of_done: [...settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done]
|
|
7046
|
-
},
|
|
7047
|
-
testing: {
|
|
7048
|
-
record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items
|
|
7049
|
-
},
|
|
7050
|
-
telemetry: buildTelemetrySettings(settings, defaults),
|
|
7051
|
-
agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),
|
|
7052
|
-
item_types: {
|
|
7053
|
-
definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions)
|
|
7054
|
-
},
|
|
7055
|
-
schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),
|
|
7056
|
-
context: buildContextSettings(settings, defaults),
|
|
7057
|
-
extensions: {
|
|
7058
|
-
enabled: [...settings.extensions.enabled],
|
|
7059
|
-
disabled: [...settings.extensions.disabled],
|
|
7060
|
-
policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy)
|
|
7061
|
-
},
|
|
7062
|
-
search: buildSearchSettings(settings, defaults),
|
|
7063
|
-
providers: buildProviderSettings(settings, defaults),
|
|
7064
|
-
vector_store: buildVectorStoreSettings(settings, defaults)
|
|
7065
|
-
};
|
|
7066
|
-
}
|
|
7067
|
-
function orderSerializedSettingsSections(ordered) {
|
|
7068
|
-
ordered.locks = orderObject(ordered.locks, ["ttl_seconds"]);
|
|
7069
|
-
ordered.checkpoints = orderObject(ordered.checkpoints, ["retention_days"]);
|
|
7070
|
-
ordered.output = orderObject(ordered.output, ["default_format"]);
|
|
7071
|
-
ordered.history = orderObject(ordered.history, ["missing_stream", "compact_policy"]);
|
|
7072
|
-
ordered.validation = orderObject(ordered.validation, [
|
|
7073
|
-
"sprint_release_format",
|
|
7074
|
-
"parent_reference",
|
|
7075
|
-
"metadata_profile",
|
|
7076
|
-
"metadata_required_fields",
|
|
7077
|
-
"lifecycle_stale_blocker_reason_patterns",
|
|
7078
|
-
"lifecycle_closure_like_blocked_reason_patterns",
|
|
7079
|
-
"lifecycle_closure_like_resolution_patterns",
|
|
7080
|
-
"lifecycle_closure_like_actual_result_patterns",
|
|
7081
|
-
"estimate_defaults_by_type"
|
|
7082
|
-
]);
|
|
7083
|
-
ordered.governance = orderObject(ordered.governance, [
|
|
7084
|
-
"preset",
|
|
7085
|
-
"ownership_enforcement",
|
|
7086
|
-
"create_mode_default",
|
|
7087
|
-
"close_validation_default",
|
|
7088
|
-
"require_close_reason",
|
|
7089
|
-
"parent_reference",
|
|
7090
|
-
"metadata_profile",
|
|
7091
|
-
"force_required_for_stale_lock",
|
|
7092
|
-
"create_default_type",
|
|
7093
|
-
"workflow_enforcement"
|
|
7094
|
-
]);
|
|
7095
|
-
ordered.workflow = orderObject(ordered.workflow, ["definition_of_done"]);
|
|
7096
|
-
ordered.testing = orderObject(ordered.testing, ["record_results_to_items"]);
|
|
7097
|
-
ordered.telemetry = orderObject(ordered.telemetry, [
|
|
7098
|
-
"enabled",
|
|
7099
|
-
"first_run_prompt_completed",
|
|
7100
|
-
"capture_level",
|
|
7101
|
-
"endpoint",
|
|
7102
|
-
"installation_id",
|
|
7103
|
-
"retention_days"
|
|
7104
|
-
]);
|
|
7105
|
-
ordered.agent_guidance = orderObject(ordered.agent_guidance, [
|
|
7106
|
-
"prompt_completed",
|
|
7107
|
-
"declined",
|
|
7108
|
-
"declined_at",
|
|
7109
|
-
"template_version",
|
|
7110
|
-
"last_checked_files"
|
|
7111
|
-
]);
|
|
7112
|
-
ordered.item_types = orderObject(ordered.item_types, ["definitions"]);
|
|
7113
|
-
ordered.schema = orderObject(ordered.schema, [
|
|
7114
|
-
"version",
|
|
7115
|
-
"files",
|
|
7116
|
-
"statuses",
|
|
7117
|
-
"fields",
|
|
7118
|
-
"workflow",
|
|
7119
|
-
"type_workflows",
|
|
7120
|
-
"unknown_field_policy"
|
|
7121
|
-
]);
|
|
7122
|
-
ordered.schema.files = orderObject(recordOrEmpty(ordered.schema.files), ["types", "statuses", "fields", "workflows"]);
|
|
7123
|
-
ordered.schema.workflow = orderObject(recordOrEmpty(ordered.schema.workflow), ["draft_status", "open_status", "in_progress_status", "blocked_status", "close_status", "canceled_status"]);
|
|
7124
|
-
ordered.context = orderObject(ordered.context, [
|
|
7125
|
-
"default_depth",
|
|
7126
|
-
"activity_limit",
|
|
7127
|
-
"stale_threshold_days",
|
|
7128
|
-
"sections"
|
|
7129
|
-
]);
|
|
7130
|
-
ordered.context.sections = orderObject(recordOrEmpty(ordered.context.sections), ["hierarchy", "activity", "progress", "blockers", "files", "workload", "staleness", "tests"]);
|
|
7131
|
-
ordered.extensions = orderObject(ordered.extensions, ["enabled", "disabled", "policy"]);
|
|
7132
|
-
ordered.extensions.policy = orderObject(recordOrEmpty(ordered.extensions.policy), [
|
|
7133
|
-
"mode",
|
|
7134
|
-
"trust_mode",
|
|
7135
|
-
"pm_max_version_exceeded_mode",
|
|
7136
|
-
"require_provenance",
|
|
7137
|
-
"trusted_extensions",
|
|
7138
|
-
"default_sandbox_profile",
|
|
7139
|
-
"allowed_extensions",
|
|
7140
|
-
"blocked_extensions",
|
|
7141
|
-
"allowed_capabilities",
|
|
7142
|
-
"blocked_capabilities",
|
|
7143
|
-
"allowed_surfaces",
|
|
7144
|
-
"blocked_surfaces",
|
|
7145
|
-
"allowed_commands",
|
|
7146
|
-
"blocked_commands",
|
|
7147
|
-
"allowed_actions",
|
|
7148
|
-
"blocked_actions",
|
|
7149
|
-
"allowed_services",
|
|
7150
|
-
"blocked_services",
|
|
7151
|
-
"extension_overrides"
|
|
7152
|
-
]);
|
|
7153
|
-
ordered.extensions.policy.extension_overrides = arrayOrEmpty(ordered.extensions.policy.extension_overrides).map((entry) => orderObject(recordOrEmpty(entry), [
|
|
7154
|
-
"name",
|
|
7155
|
-
"disabled",
|
|
7156
|
-
"require_trusted",
|
|
7157
|
-
"require_provenance",
|
|
7158
|
-
"sandbox_profile",
|
|
7159
|
-
"allowed_capabilities",
|
|
7160
|
-
"blocked_capabilities",
|
|
7161
|
-
"allowed_surfaces",
|
|
7162
|
-
"blocked_surfaces",
|
|
7163
|
-
"allowed_commands",
|
|
7164
|
-
"blocked_commands",
|
|
7165
|
-
"allowed_actions",
|
|
7166
|
-
"blocked_actions",
|
|
7167
|
-
"allowed_services",
|
|
7168
|
-
"blocked_services"
|
|
7169
|
-
]));
|
|
7170
|
-
ordered.search = orderObject(ordered.search, [
|
|
7171
|
-
"score_threshold",
|
|
7172
|
-
"hybrid_semantic_weight",
|
|
7173
|
-
"max_results",
|
|
7174
|
-
"embedding_model",
|
|
7175
|
-
"embedding_corpus_max_characters",
|
|
7176
|
-
"embedding_batch_size",
|
|
7177
|
-
"embedding_timeout_ms",
|
|
7178
|
-
"scanner_max_batch_retries",
|
|
7179
|
-
"provider",
|
|
7180
|
-
"mutation_refresh_policy",
|
|
7181
|
-
"query_expansion",
|
|
7182
|
-
"rerank"
|
|
7183
|
-
]);
|
|
7184
|
-
ordered.search.query_expansion = orderObject(recordOrEmpty(ordered.search.query_expansion), ["enabled", "provider"]);
|
|
7185
|
-
ordered.search.rerank = orderObject(recordOrEmpty(ordered.search.rerank), ["enabled", "model", "top_k"]);
|
|
7186
|
-
ordered.providers = orderObject(ordered.providers, ["openai", "ollama"]);
|
|
7187
|
-
ordered.providers.openai = orderObject(recordOrEmpty(ordered.providers.openai), ["base_url", "api_key", "model"]);
|
|
7188
|
-
ordered.providers.ollama = orderObject(recordOrEmpty(ordered.providers.ollama), ["base_url", "model"]);
|
|
7189
|
-
ordered.vector_store = orderObject(ordered.vector_store, [
|
|
7190
|
-
"adapter",
|
|
7191
|
-
"collection_name",
|
|
7192
|
-
"qdrant",
|
|
7193
|
-
"lancedb"
|
|
7194
|
-
]);
|
|
7195
|
-
ordered.vector_store.qdrant = orderObject(recordOrEmpty(ordered.vector_store.qdrant), ["url", "api_key"]);
|
|
7196
|
-
ordered.vector_store.lancedb = orderObject(recordOrEmpty(ordered.vector_store.lancedb), ["path"]);
|
|
7197
|
-
}
|
|
7198
|
-
function buildSerializeBaseSettings(settings) {
|
|
7199
|
-
return {
|
|
7200
|
-
...settings,
|
|
7201
|
-
locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),
|
|
7202
|
-
checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),
|
|
7203
|
-
output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),
|
|
7204
|
-
history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),
|
|
7205
|
-
validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),
|
|
7206
|
-
workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),
|
|
7207
|
-
testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),
|
|
7208
|
-
telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),
|
|
7209
|
-
agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),
|
|
7210
|
-
item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),
|
|
7211
|
-
schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),
|
|
7212
|
-
context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),
|
|
7213
|
-
extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),
|
|
7214
|
-
search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),
|
|
7215
|
-
providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),
|
|
7216
|
-
vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store)
|
|
7217
|
-
};
|
|
7218
|
-
}
|
|
7219
|
-
function buildSerializedValidationSettings(baseSettings, governance) {
|
|
7220
|
-
return {
|
|
7221
|
-
...baseSettings.validation,
|
|
7222
|
-
parent_reference: governance.parent_reference,
|
|
7223
|
-
metadata_profile: governance.metadata_profile,
|
|
7224
|
-
metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),
|
|
7225
|
-
lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns),
|
|
7226
|
-
lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns),
|
|
7227
|
-
lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_resolution_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns),
|
|
7228
|
-
lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns),
|
|
7229
|
-
estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type)
|
|
7230
|
-
};
|
|
7231
|
-
}
|
|
7232
|
-
function buildSerializedSearchSettings(baseSettings) {
|
|
7233
|
-
return {
|
|
7234
|
-
...SETTINGS_DEFAULTS.search,
|
|
7235
|
-
...baseSettings.search,
|
|
7236
|
-
mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),
|
|
7237
|
-
query_expansion: {
|
|
7238
|
-
...SETTINGS_DEFAULTS.search.query_expansion,
|
|
7239
|
-
...baseSettings.search?.query_expansion,
|
|
7240
|
-
enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),
|
|
7241
|
-
provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider)
|
|
7242
|
-
},
|
|
7243
|
-
rerank: {
|
|
7244
|
-
...SETTINGS_DEFAULTS.search.rerank,
|
|
7245
|
-
...baseSettings.search?.rerank,
|
|
7246
|
-
enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),
|
|
7247
|
-
model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),
|
|
7248
|
-
top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k)
|
|
7249
|
-
}
|
|
7250
|
-
};
|
|
7251
|
-
}
|
|
7252
|
-
function buildSerializedContextSettings(baseSettings) {
|
|
7253
|
-
return {
|
|
7254
|
-
default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,
|
|
7255
|
-
activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,
|
|
7256
|
-
stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,
|
|
7257
|
-
sections: {
|
|
7258
|
-
...SETTINGS_DEFAULTS.context.sections,
|
|
7259
|
-
...baseSettings.context?.sections
|
|
7260
|
-
}
|
|
7261
|
-
};
|
|
7262
|
-
}
|
|
7263
|
-
function buildSerializedVectorStoreSettings(baseSettings) {
|
|
7264
|
-
return {
|
|
7265
|
-
...baseSettings.vector_store,
|
|
7266
|
-
adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,
|
|
7267
|
-
collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),
|
|
7268
|
-
qdrant: { ...baseSettings.vector_store?.qdrant },
|
|
7269
|
-
lancedb: { ...baseSettings.vector_store?.lancedb }
|
|
7270
|
-
};
|
|
7271
|
-
}
|
|
7272
|
-
function buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections) {
|
|
7273
|
-
return {
|
|
7274
|
-
...baseSettings,
|
|
7275
|
-
item_format: "toon",
|
|
7276
|
-
validation: buildSerializedValidationSettings(baseSettings, governance),
|
|
7277
|
-
governance,
|
|
7278
|
-
agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),
|
|
7279
|
-
item_types: {
|
|
7280
|
-
definitions: persistedFileBackedSections.item_type_definitions
|
|
7281
|
-
},
|
|
7282
|
-
schema: {
|
|
7283
|
-
...normalizedSchema,
|
|
7284
|
-
statuses: persistedFileBackedSections.schema_statuses,
|
|
7285
|
-
fields: persistedFileBackedSections.schema_fields,
|
|
7286
|
-
type_workflows: persistedFileBackedSections.schema_type_workflows
|
|
7287
|
-
},
|
|
7288
|
-
search: buildSerializedSearchSettings(baseSettings),
|
|
7289
|
-
context: buildSerializedContextSettings(baseSettings),
|
|
7290
|
-
extensions: {
|
|
7291
|
-
enabled: normalizeStringList2(baseSettings.extensions?.enabled),
|
|
7292
|
-
disabled: normalizeStringList2(baseSettings.extensions?.disabled),
|
|
7293
|
-
policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy)
|
|
7294
|
-
},
|
|
7295
|
-
vector_store: buildSerializedVectorStoreSettings(baseSettings)
|
|
7296
|
-
};
|
|
7297
|
-
}
|
|
7298
|
-
function serializeSettings(settings, options = {}) {
|
|
7299
|
-
const baseSettings = buildSerializeBaseSettings(settings);
|
|
7300
|
-
const governance = resolveGovernanceKnobs(baseSettings);
|
|
7301
|
-
const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);
|
|
7302
|
-
const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);
|
|
7303
|
-
const normalizedSettings = buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections);
|
|
7304
|
-
const ordered = orderObject({
|
|
7305
|
-
...normalizedSettings,
|
|
7306
|
-
governance: normalizeGovernanceForPersist(governance)
|
|
7307
|
-
}, [
|
|
7308
|
-
"version",
|
|
7309
|
-
"id_prefix",
|
|
7310
|
-
"author_default",
|
|
7311
|
-
"item_format",
|
|
7312
|
-
"locks",
|
|
7313
|
-
"checkpoints",
|
|
7314
|
-
"output",
|
|
7315
|
-
"history",
|
|
7316
|
-
"validation",
|
|
7317
|
-
"governance",
|
|
7318
|
-
"workflow",
|
|
7319
|
-
"testing",
|
|
7320
|
-
"telemetry",
|
|
7321
|
-
"agent_guidance",
|
|
7322
|
-
"item_types",
|
|
7323
|
-
"schema",
|
|
7324
|
-
"context",
|
|
7325
|
-
"extensions",
|
|
7326
|
-
"search",
|
|
7327
|
-
"providers",
|
|
7328
|
-
"vector_store"
|
|
7329
|
-
]);
|
|
7330
|
-
orderSerializedSettingsSections(ordered);
|
|
7331
|
-
return `${JSON.stringify(ordered, null, 2)}
|
|
7332
|
-
`;
|
|
7333
|
-
}
|
|
7334
|
-
async function readSettingsWithMetadata(pmRoot) {
|
|
7335
|
-
const settingsPath = getSettingsPath(pmRoot);
|
|
7336
|
-
let trackedPathsForFailure = [settingsPath];
|
|
7337
|
-
await runActiveOnReadHooks({
|
|
7338
|
-
path: settingsPath,
|
|
7339
|
-
scope: "project"
|
|
7340
|
-
});
|
|
7341
|
-
const cachedResult = getSettingsReadCacheEntry(pmRoot);
|
|
7342
|
-
if (cachedResult) {
|
|
7343
|
-
const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);
|
|
7344
|
-
if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {
|
|
7345
|
-
return cloneSettingsReadResult(cachedResult.value);
|
|
7346
|
-
}
|
|
7347
|
-
}
|
|
7348
|
-
const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
7349
|
-
const raw = await readFileIfExists(settingsPath);
|
|
7350
|
-
if (raw === null) {
|
|
7351
|
-
const fallback = buildFallbackSettingsReadResult();
|
|
7352
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);
|
|
7353
|
-
return fallback;
|
|
7354
|
-
}
|
|
7355
|
-
const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);
|
|
7356
|
-
if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {
|
|
7357
|
-
clearSettingsReadCache(pmRoot);
|
|
7358
|
-
return readSettingsWithMetadata(pmRoot);
|
|
7359
|
-
}
|
|
7360
|
-
let parsed;
|
|
7361
|
-
try {
|
|
7362
|
-
parsed = JSON.parse(raw);
|
|
7363
|
-
} catch {
|
|
7364
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_json");
|
|
7365
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
7366
|
-
return fallback;
|
|
7367
|
-
}
|
|
7368
|
-
const validated = validateSettings(parsed);
|
|
7369
|
-
if (!validated.success) {
|
|
7370
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_invalid_schema");
|
|
7371
|
-
await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);
|
|
7372
|
-
return fallback;
|
|
7373
|
-
}
|
|
7374
|
-
try {
|
|
7375
|
-
const mergedSettings = mergeSettings(validated.data);
|
|
7376
|
-
const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);
|
|
7377
|
-
trackedPathsForFailure = trackedPaths;
|
|
7378
|
-
const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
7379
|
-
const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);
|
|
7380
|
-
const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);
|
|
7381
|
-
const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);
|
|
7382
|
-
const settings = {
|
|
7383
|
-
...mergedSettings,
|
|
7384
|
-
item_types: {
|
|
7385
|
-
definitions: normalizeItemTypeDefinitions([
|
|
7386
|
-
...mergedSettings.item_types.definitions,
|
|
7387
|
-
...arrayOrEmpty(loadedSchemaSections.type_definitions_from_file)
|
|
7388
|
-
])
|
|
7389
|
-
},
|
|
7390
|
-
schema: loadedSchemaSections.schema
|
|
7391
|
-
};
|
|
7392
|
-
attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));
|
|
7393
|
-
const result = {
|
|
7394
|
-
settings,
|
|
7395
|
-
metadata: {
|
|
7396
|
-
has_explicit_item_format: hasExplicitItemFormat(parsed)
|
|
7397
|
-
},
|
|
7398
|
-
warnings: [
|
|
7399
|
-
...validated.data.item_format === "json_markdown" ? ["settings_item_format_legacy_json_markdown_coerced_to_toon"] : [],
|
|
7400
|
-
...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),
|
|
7401
|
-
...loadedSchemaSections.warnings
|
|
7402
|
-
]
|
|
7403
|
-
};
|
|
7404
|
-
if (schemaScaffold.created_paths.length === 0) {
|
|
7405
|
-
if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {
|
|
7406
|
-
clearSettingsReadCache(pmRoot);
|
|
7407
|
-
} else {
|
|
7408
|
-
setSettingsReadCacheEntry(pmRoot, {
|
|
7409
|
-
tracked_paths: trackedPaths,
|
|
7410
|
-
signatures: signaturesAfterSchemaLoad,
|
|
7411
|
-
value: cloneSettingsReadResult(result)
|
|
7412
|
-
});
|
|
7413
|
-
}
|
|
7414
|
-
} else {
|
|
7415
|
-
clearSettingsReadCache(pmRoot);
|
|
7416
|
-
}
|
|
7417
|
-
return result;
|
|
7418
|
-
} catch {
|
|
7419
|
-
const fallback = buildFallbackSettingsReadResult("settings_read_merge_failed");
|
|
7420
|
-
await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);
|
|
7421
|
-
return fallback;
|
|
7422
|
-
}
|
|
7423
|
-
}
|
|
7424
|
-
async function readSettings(pmRoot) {
|
|
7425
|
-
return (await readSettingsWithMetadata(pmRoot)).settings;
|
|
7426
|
-
}
|
|
7427
|
-
async function writeSettings(pmRoot, settings, op = SETTINGS_WRITE_OP) {
|
|
7428
|
-
const settingsPath = getSettingsPath(pmRoot);
|
|
7429
|
-
await writeFileAtomic(settingsPath, serializeSettings(settings, {
|
|
7430
|
-
persist_source: getSettingsPersistSourceSnapshot(settings)
|
|
7431
|
-
}));
|
|
7432
|
-
try {
|
|
7433
|
-
await runActiveOnWriteHooks({
|
|
7434
|
-
path: settingsPath,
|
|
7435
|
-
scope: "project",
|
|
7436
|
-
op
|
|
7437
|
-
});
|
|
7438
|
-
} finally {
|
|
7439
|
-
clearSettingsReadCache(pmRoot);
|
|
7440
|
-
}
|
|
7441
|
-
}
|
|
7442
|
-
|
|
7443
5645
|
export {
|
|
7444
5646
|
ensureDir,
|
|
7445
5647
|
pathExists,
|
|
@@ -7450,13 +5652,17 @@ export {
|
|
|
7450
5652
|
isPathWithinDirectory,
|
|
7451
5653
|
resolvePmPackageRootFromModule,
|
|
7452
5654
|
resolvePmCliVersion,
|
|
5655
|
+
resolveConfiguredPmPackageRoot,
|
|
7453
5656
|
KNOWN_EXTENSION_CAPABILITIES,
|
|
5657
|
+
EXTENSION_CAPABILITY_CONTRACT_VERSION,
|
|
5658
|
+
EXTENSION_CAPABILITY_LEGACY_ALIASES,
|
|
7454
5659
|
EXTENSION_CAPABILITY_CONTRACT,
|
|
7455
5660
|
KNOWN_EXTENSION_POLICY_MODES,
|
|
7456
5661
|
KNOWN_EXTENSION_TRUST_MODES,
|
|
7457
5662
|
KNOWN_EXTENSION_SANDBOX_PROFILES,
|
|
7458
5663
|
KNOWN_EXTENSION_POLICY_SURFACES,
|
|
7459
5664
|
KNOWN_EXTENSION_SERVICE_NAMES,
|
|
5665
|
+
createDefaultExtensionGovernancePolicy,
|
|
7460
5666
|
PM_DIRNAME,
|
|
7461
5667
|
CREATE_DIRECT_CLOSE_REASON_DEFAULT,
|
|
7462
5668
|
PM_CORE_REQUIRED_SUBDIRS,
|
|
@@ -7472,15 +5678,18 @@ export {
|
|
|
7472
5678
|
EXIT_CODE,
|
|
7473
5679
|
resolveTelemetryErrorCategory,
|
|
7474
5680
|
BUILTIN_ITEM_TYPE_VALUES,
|
|
5681
|
+
ITEM_TYPE_VALUES,
|
|
7475
5682
|
STATUS_VALUES,
|
|
7476
5683
|
RUNTIME_STATUS_ROLE_VALUES,
|
|
7477
5684
|
RUNTIME_FIELD_TYPE_VALUES,
|
|
7478
5685
|
RUNTIME_FIELD_COMMAND_VALUES,
|
|
5686
|
+
RUNTIME_UNKNOWN_FIELD_POLICY_VALUES,
|
|
7479
5687
|
DEPENDENCY_KIND_VALUES,
|
|
7480
5688
|
SCOPE_VALUES,
|
|
7481
5689
|
RISK_VALUES,
|
|
7482
5690
|
ISSUE_SEVERITY_VALUES,
|
|
7483
5691
|
CONFIDENCE_TEXT_VALUES,
|
|
5692
|
+
GOVERNANCE_PRESET_VALUES,
|
|
7484
5693
|
RECURRENCE_FREQUENCY_VALUES,
|
|
7485
5694
|
RECURRENCE_WEEKDAY_VALUES,
|
|
7486
5695
|
weekdayOrderIndex,
|
|
@@ -7490,6 +5699,7 @@ export {
|
|
|
7490
5699
|
PLAN_STEP_LINK_KIND_VALUES,
|
|
7491
5700
|
CONTEXT_DEPTH_VALUES,
|
|
7492
5701
|
CONTEXT_SECTION_VALUES,
|
|
5702
|
+
normalizeItemTypeDefinition,
|
|
7493
5703
|
COMMON_MUTATION_COMMAND_OPTION_KEYS,
|
|
7494
5704
|
canonicalizeCommandOptionKey,
|
|
7495
5705
|
commandOptionFlagLabel,
|
|
@@ -7525,69 +5735,55 @@ export {
|
|
|
7525
5735
|
coercePositiveInteger,
|
|
7526
5736
|
coerceNumberInRange,
|
|
7527
5737
|
asRecordOrNull,
|
|
5738
|
+
asPropertyRecord,
|
|
5739
|
+
resolveActivatablePropertyRecord,
|
|
7528
5740
|
resolveFlagValueKind,
|
|
7529
5741
|
flattenFlagListValue,
|
|
7530
5742
|
levenshteinDistanceWithinLimit,
|
|
7531
5743
|
normalizeItemFieldType,
|
|
5744
|
+
evaluatePmMinVersionBound,
|
|
5745
|
+
evaluatePmMaxVersionBound,
|
|
5746
|
+
normalizeKnownExtensionCapability,
|
|
5747
|
+
resolveLegacyExtensionCapabilityAlias,
|
|
7532
5748
|
parseUnknownExtensionCapabilityWarning,
|
|
7533
5749
|
parseLegacyExtensionCapabilityAliasWarning,
|
|
5750
|
+
normalizeCommandName,
|
|
7534
5751
|
createEmptyExtensionRegistrationRegistry,
|
|
7535
5752
|
runBeforeCommandHooks,
|
|
7536
5753
|
runAfterCommandHooks,
|
|
5754
|
+
runOnWriteHooks,
|
|
5755
|
+
runOnReadHooks,
|
|
5756
|
+
runOnIndexHooks,
|
|
5757
|
+
runCommandHandler,
|
|
5758
|
+
runParserOverride,
|
|
5759
|
+
runPreflightOverride,
|
|
5760
|
+
runServiceOverrideSync,
|
|
5761
|
+
runServiceOverride,
|
|
5762
|
+
runCommandOverride,
|
|
5763
|
+
runRendererOverride,
|
|
5764
|
+
DEFAULT_EXTENSION_PRIORITY,
|
|
7537
5765
|
nextExtensionReloadToken,
|
|
5766
|
+
isCanonicalPathWithinDirectory,
|
|
7538
5767
|
resolveExtensionRoots,
|
|
7539
5768
|
discoverExtensions,
|
|
7540
5769
|
loadExtensions,
|
|
5770
|
+
deactivateExtensions,
|
|
7541
5771
|
activateExtensions,
|
|
5772
|
+
EXTENSION_CAPABILITY_REGISTRATION_SURFACES,
|
|
7542
5773
|
normalizeExtensionName,
|
|
7543
5774
|
collectUsedExtensionCapabilities,
|
|
7544
5775
|
reconcileExtensionCapabilityUsage,
|
|
7545
|
-
setActiveExtensionHooks,
|
|
7546
|
-
setActiveExtensionCommands,
|
|
7547
|
-
setActiveExtensionParsers,
|
|
7548
|
-
setActiveExtensionPreflight,
|
|
7549
|
-
setActiveExtensionServices,
|
|
7550
|
-
setActiveExtensionRenderers,
|
|
7551
|
-
setActiveExtensionRegistrations,
|
|
7552
|
-
getActiveExtensionRegistrations,
|
|
7553
|
-
setActiveCommandContext,
|
|
7554
|
-
setActiveCommandResult,
|
|
7555
|
-
getActiveCommandResult,
|
|
7556
|
-
recordAfterCommandAffectedItem,
|
|
7557
|
-
projectAfterCommandItemSnapshot,
|
|
7558
|
-
consumeAfterCommandAffectedItems,
|
|
7559
|
-
clearActiveExtensionHooks,
|
|
7560
|
-
runActiveOnWriteHooks,
|
|
7561
|
-
runActiveOnReadHooks,
|
|
7562
|
-
hasActiveOnReadHooks,
|
|
7563
|
-
runActiveOnIndexHooks,
|
|
7564
|
-
runActiveCommandOverride,
|
|
7565
|
-
runActiveCommandHandler,
|
|
7566
|
-
runActiveParserOverride,
|
|
7567
|
-
runActivePreflightOverride,
|
|
7568
|
-
runActiveRendererOverride,
|
|
7569
|
-
runActiveServiceOverride,
|
|
7570
|
-
runActiveServiceOverrideSync,
|
|
7571
5776
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
7572
5777
|
DEFAULT_RUNTIME_STATUS_DEFINITIONS,
|
|
7573
5778
|
normalizeRuntimeSchemaSettings,
|
|
7574
5779
|
filePathForSchemaSection,
|
|
7575
5780
|
resolveItemTypesFilePath,
|
|
7576
5781
|
ensureRuntimeSchemaFileScaffold,
|
|
5782
|
+
loadRuntimeSchemaFromOptionalFiles,
|
|
7577
5783
|
resolveRuntimeStatusRegistry,
|
|
7578
5784
|
normalizeStatusInputWithRegistry,
|
|
7579
5785
|
resolveRuntimeFieldRegistry,
|
|
7580
5786
|
runtimeFieldOptionTarget,
|
|
7581
|
-
statusIsTerminal
|
|
7582
|
-
PmCliError,
|
|
7583
|
-
stableStringify,
|
|
7584
|
-
stableValueEquals,
|
|
7585
|
-
sha256Hex,
|
|
7586
|
-
orderObject,
|
|
7587
|
-
resolveEstimateDefaultMinutes,
|
|
7588
|
-
resolveGovernanceKnobs,
|
|
7589
|
-
readSettingsWithMetadata,
|
|
7590
|
-
readSettings,
|
|
7591
|
-
writeSettings
|
|
5787
|
+
statusIsTerminal
|
|
7592
5788
|
};
|
|
7593
|
-
//# sourceMappingURL=chunk-
|
|
5789
|
+
//# sourceMappingURL=chunk-5VVUKE3U.js.map
|