@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sources":["core/store/settings.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/store/settings\n *\n * Reads and writes tracker storage with format-aware helpers for Settings.\n */\nimport { validateSettings, type ParsedSettings } from \"./settings-validator.js\";\nimport { runActiveOnReadHooks, runActiveOnWriteHooks } from \"../extensions/index.js\";\nimport { GOVERNANCE_PRESET_DEFAULTS, SETTINGS_DEFAULTS } from \"../shared/constants.js\";\nimport { readFileIfExists, writeFileAtomic } from \"../fs/fs-utils.js\";\nimport {\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,\n ensureRuntimeSchemaFileScaffold,\n filePathForSchemaSection,\n loadRuntimeSchemaFromOptionalFiles,\n normalizeRuntimeSchemaSettings,\n} from \"../schema/runtime-schema.js\";\nimport { getSettingsPath } from \"./paths.js\";\nimport { orderObject, stableValueEquals } from \"../shared/serialization.js\";\nimport { normalizeItemTypeDefinition } from \"../item/item-type-definition.js\";\nimport { normalizeEstimateDefaultOverrides } from \"../validate/estimate-defaults.js\";\nimport {\n clearSettingsReadCache,\n collectSettingsReadCacheSignatures,\n getSettingsReadCacheEntry,\n setSettingsReadCacheEntry,\n settingsReadCacheSignaturesEqual,\n} from \"./settings-read-cache.js\";\nimport type {\n ExtensionGovernancePolicy,\n PmMaxVersionExceededMode,\n PmMaxVersionExceededModeSetting,\n} from \"../extensions/extension-types.js\";\nimport type {\n ExtensionSandboxProfile,\n ExtensionPolicyMode,\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ExtensionTrustMode,\n GovernanceSettings,\n ItemTypeDefinition,\n PmSettings,\n GovernancePreset,\n SearchMutationRefreshPolicy,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\n\nconst SETTINGS_WRITE_OP = \"settings:write\";\nconst SETTINGS_PERSIST_SOURCE_SYMBOL = Symbol(\"pm.settings.persist_source\");\nconst MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;\n\ninterface SettingsPersistSourceSnapshot {\n has_source_item_type_definitions: boolean;\n source_item_type_definitions: ItemTypeDefinition[];\n has_source_schema_statuses: boolean;\n source_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n has_source_schema_fields: boolean;\n source_schema_fields: PmSettings[\"schema\"][\"fields\"];\n has_source_schema_type_workflows: boolean;\n source_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n runtime_item_type_definitions: ItemTypeDefinition[];\n runtime_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n runtime_schema_fields: PmSettings[\"schema\"][\"fields\"];\n runtime_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/**\n * Documents the settings read metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadMetadata {\n has_explicit_item_format: boolean;\n}\n\n/**\n * Documents the settings read result payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadResult {\n settings: PmSettings;\n metadata: SettingsReadMetadata;\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(preset: Exclude<GovernancePreset, \"custom\">): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(value: GovernancePreset | undefined): GovernancePreset {\n if (value === \"minimal\" || value === \"default\" || value === \"strict\" || value === \"custom\") {\n return value;\n }\n return SETTINGS_DEFAULTS.governance.preset;\n}\n\n// `create_default_type` and `workflow_enforcement` are orthogonal to the\n// governance preset (they tune create/update behavior, not the preset knobs),\n// so they must survive a write regardless of preset — otherwise a project on a\n// non-custom preset would silently drop them on every settings write.\nfunction withGovernanceExtras(\n base: Partial<GovernanceSettings> & { preset: GovernancePreset },\n governance: GovernanceSettings,\n): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n const createDefaultType =\n typeof governance.create_default_type === \"string\" ? governance.create_default_type.trim() : undefined;\n if (createDefaultType && createDefaultType.length > 0) {\n base.create_default_type = createDefaultType;\n }\n if (\n governance.workflow_enforcement === \"off\" ||\n governance.workflow_enforcement === \"warn\" ||\n governance.workflow_enforcement === \"strict\"\n ) {\n base.workflow_enforcement = governance.workflow_enforcement;\n }\n if (governance.require_close_reason === false) {\n base.require_close_reason = false;\n }\n return base;\n}\n\nfunction normalizeGovernanceForPersist(governance: GovernanceSettings): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n if (governance.preset === \"custom\") {\n return withGovernanceExtras(\n {\n preset: \"custom\",\n ownership_enforcement: governance.ownership_enforcement,\n create_mode_default: governance.create_mode_default,\n close_validation_default: governance.close_validation_default,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n force_required_for_stale_lock: governance.force_required_for_stale_lock,\n },\n governance,\n );\n }\n return withGovernanceExtras(\n {\n preset: governance.preset,\n },\n governance,\n );\n}\n\n// Preset-orthogonal knobs that must be carried through resolve from the raw\n// governance regardless of preset (see normalizeGovernanceForPersist).\nfunction resolveGovernanceExtras(\n rawGovernance: Partial<GovernanceSettings>,\n): Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\" ? rawGovernance.create_default_type.trim() : undefined;\n const extras: Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> =\n {};\n if (createDefaultType && createDefaultType.length > 0) {\n extras.create_default_type = createDefaultType;\n }\n if (\n rawGovernance.workflow_enforcement === \"off\" ||\n rawGovernance.workflow_enforcement === \"warn\" ||\n rawGovernance.workflow_enforcement === \"strict\"\n ) {\n extras.workflow_enforcement = rawGovernance.workflow_enforcement;\n }\n if (typeof rawGovernance.require_close_reason === \"boolean\") {\n extras.require_close_reason = rawGovernance.require_close_reason;\n }\n return extras;\n}\n\n/**\n * Implements resolve governance knobs for the public runtime surface of this module.\n */\nexport function resolveGovernanceKnobs(\n settings: Pick<PmSettings, \"governance\"> | { governance?: Partial<GovernanceSettings> },\n): GovernanceSettings {\n const rawGovernance = settings.governance ?? {};\n const preset = normalizeGovernancePreset(rawGovernance.preset);\n const extras = resolveGovernanceExtras(rawGovernance);\n if (preset === \"custom\") {\n const baseline = resolveGovernanceKnobsFromPreset(\"default\");\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default: rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default: rawGovernance.close_validation_default ?? baseline.close_validation_default,\n parent_reference: rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile: rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ...baseline,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n}\n\nfunction cloneDefaults(): PmSettings {\n return structuredClone(SETTINGS_DEFAULTS);\n}\n\nfunction normalizeSearchMutationRefreshPolicy(value: unknown): SearchMutationRefreshPolicy {\n if (value === \"cache_only\" || value === \"semantic_configured\" || value === \"semantic_auto\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.mutation_refresh_policy;\n}\n\nfunction normalizeSearchQueryExpansionEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.query_expansion.enabled;\n}\n\nfunction normalizeSearchQueryExpansionProvider(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.query_expansion.provider;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.enabled;\n}\n\nfunction normalizeSearchRerankModel(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.rerank.model;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankTopK(value: unknown): number {\n if (typeof value === \"number\" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.top_k;\n}\n\nfunction normalizeVectorStoreCollectionName(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.vector_store.collection_name;\n }\n const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, \"_\");\n const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);\n return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;\n}\n\nfunction buildSettingsPersistSourceSnapshot(\n parsedSettings: ParsedSettings,\n runtimeSettings: PmSettings,\n): SettingsPersistSourceSnapshot {\n const sourceSchema = parsedSettings.schema;\n const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),\n source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],\n has_source_schema_fields: sourceFields !== undefined,\n source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],\n has_source_schema_type_workflows: sourceTypeWorkflows !== undefined,\n source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? []),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(settings: PmSettings, source: SettingsPersistSourceSnapshot): void {\n Object.defineProperty(settings as unknown as Record<PropertyKey, unknown>, SETTINGS_PERSIST_SOURCE_SYMBOL, {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n });\n}\n\nfunction getSettingsPersistSourceSnapshot(settings: PmSettings): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[SETTINGS_PERSIST_SOURCE_SYMBOL];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(result: SettingsReadResult): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));\n }\n return {\n settings: clonedSettings,\n metadata: {\n has_explicit_item_format: result.metadata.has_explicit_item_format,\n },\n warnings: [...result.warnings],\n };\n}\n\nfunction resolveSettingsReadTrackedPaths(pmRoot: string, schema: PmSettings[\"schema\"], settingsPath: string): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows),\n ];\n}\n\nasync function cacheSettingsReadResult(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n const signatures = await collectSettingsReadCacheSignatures(trackedPaths);\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures,\n value: cloneSettingsReadResult(result),\n });\n}\n\nasync function cacheSettingsReadResultSafe(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<ReturnType<typeof collectSettingsReadCacheSignatures>>;\n\nfunction findSettingsReadCacheSignature(signatures: SettingsReadCacheSignatures, targetPath: string) {\n return signatures.find((signature) => signature.path === targetPath);\n}\n\nfunction selectedSettingsReadCacheSignaturesEqual(\n before: SettingsReadCacheSignatures,\n after: SettingsReadCacheSignatures,\n targetPaths: string[],\n): boolean {\n for (const targetPath of targetPaths) {\n const beforeSignature = findSettingsReadCacheSignature(before, targetPath);\n const afterSignature = findSettingsReadCacheSignature(after, targetPath);\n if (\n !beforeSignature ||\n !afterSignature ||\n !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])\n ) {\n return false;\n }\n }\n return true;\n}\n\nasync function cacheSettingsReadResultIfStable(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n stableSignatures: SettingsReadCacheSignatures,\n stablePaths: string[],\n): Promise<void> {\n try {\n const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);\n if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {\n clearSettingsReadCache(pmRoot);\n return;\n }\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: currentSignatures,\n value: cloneSettingsReadResult(result),\n });\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nfunction resolvePersistedFileBackedSchemaSections(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot | undefined,\n): {\n item_type_definitions: ItemTypeDefinition[];\n schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n schema_fields: PmSettings[\"schema\"][\"fields\"];\n schema_type_workflows: PmSettings[\"schema\"][\"type_workflows\"];\n} {\n const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);\n const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);\n if (!source) {\n return {\n item_type_definitions: currentItemTypeDefinitions,\n schema_statuses: normalizedSchema.statuses,\n schema_fields: normalizedSchema.fields,\n schema_type_workflows: normalizedSchema.type_workflows,\n };\n }\n\n const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];\n const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);\n const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);\n const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);\n const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);\n\n return {\n item_type_definitions: itemTypeDefinitionsUnchanged\n ? source.has_source_item_type_definitions\n ? normalizeItemTypeDefinitions(source.source_item_type_definitions)\n : []\n : currentItemTypeDefinitions,\n schema_statuses: schemaStatusesUnchanged\n ? source.has_source_schema_statuses\n ? structuredClone(source.source_schema_statuses)\n : []\n : normalizedSchema.statuses,\n schema_fields: schemaFieldsUnchanged\n ? source.has_source_schema_fields\n ? structuredClone(source.source_schema_fields)\n : []\n : normalizedSchema.fields,\n schema_type_workflows: schemaTypeWorkflowsUnchanged\n ? source.has_source_schema_type_workflows\n ? structuredClone(source.source_schema_type_workflows)\n : undefined\n : normalizedSchema.type_workflows,\n };\n}\n\nfunction buildFallbackSettingsReadResult(warning?: string): SettingsReadResult {\n return {\n settings: cloneDefaults(),\n metadata: {\n has_explicit_item_format: false,\n },\n warnings: warning ? [warning] : [],\n };\n}\n\nfunction hasExplicitItemFormat(raw: unknown): boolean {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return false;\n }\n const itemFormat = (raw as Record<string, unknown>).item_format;\n return itemFormat === \"toon\" || itemFormat === \"json_markdown\";\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n );\n}\n\nfunction normalizeAgentGuidanceSettings(\n value: Partial<PmSettings[\"agent_guidance\"]> | undefined,\n): PmSettings[\"agent_guidance\"] {\n const defaults = SETTINGS_DEFAULTS.agent_guidance;\n const templateVersion = value?.template_version;\n return {\n prompt_completed: value?.prompt_completed === true,\n declined: value?.declined === true,\n declined_at: typeof value?.declined_at === \"string\" ? value.declined_at : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" && Number.isInteger(templateVersion) && templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(value?.last_checked_files ?? defaults.last_checked_files),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeExtensionPolicyMode(value: ExtensionPolicyMode | undefined): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(value: ExtensionTrustMode | undefined): ExtensionTrustMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.trust_mode;\n}\n\nfunction normalizeExtensionSandboxProfile(value: ExtensionSandboxProfile | undefined): ExtensionSandboxProfile {\n if (value === \"none\" || value === \"restricted\" || value === \"strict\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;\n}\n\nfunction normalizeExtensionPolicyOverride(\n override: ExtensionPolicyOverrideSettings,\n): ExtensionPolicyOverrideSettings | null {\n const name = override.name.trim().toLowerCase();\n if (name.length === 0) {\n return null;\n }\n const normalized: ExtensionPolicyOverrideSettings = {\n name,\n };\n if (override.disabled === true) {\n normalized.disabled = true;\n }\n if (override.require_trusted === true) {\n normalized.require_trusted = true;\n }\n if (override.require_provenance === true) {\n normalized.require_provenance = true;\n }\n if (override.sandbox_profile !== undefined) {\n normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);\n }\n const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);\n const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);\n const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);\n const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);\n const allowedCommands = normalizeLowerStringList(override.allowed_commands);\n const blockedCommands = normalizeLowerStringList(override.blocked_commands);\n const allowedActions = normalizeLowerStringList(override.allowed_actions);\n const blockedActions = normalizeLowerStringList(override.blocked_actions);\n const allowedServices = normalizeLowerStringList(override.allowed_services);\n const blockedServices = normalizeLowerStringList(override.blocked_services);\n if (allowedCapabilities.length > 0) {\n normalized.allowed_capabilities = allowedCapabilities;\n }\n if (blockedCapabilities.length > 0) {\n normalized.blocked_capabilities = blockedCapabilities;\n }\n if (allowedSurfaces.length > 0) {\n normalized.allowed_surfaces = allowedSurfaces;\n }\n if (blockedSurfaces.length > 0) {\n normalized.blocked_surfaces = blockedSurfaces;\n }\n if (allowedCommands.length > 0) {\n normalized.allowed_commands = allowedCommands;\n }\n if (blockedCommands.length > 0) {\n normalized.blocked_commands = blockedCommands;\n }\n if (allowedActions.length > 0) {\n normalized.allowed_actions = allowedActions;\n }\n if (blockedActions.length > 0) {\n normalized.blocked_actions = blockedActions;\n }\n if (allowedServices.length > 0) {\n normalized.allowed_services = allowedServices;\n }\n if (blockedServices.length > 0) {\n normalized.blocked_services = blockedServices;\n }\n return normalized;\n}\n\nfunction normalizeExtensionPolicyOverrides(\n overrides: ExtensionPolicyOverrideSettings[] | undefined,\n): ExtensionPolicyOverrideSettings[] {\n const dedupedByName = new Map<string, ExtensionPolicyOverrideSettings>();\n for (const override of overrides ?? []) {\n const normalized = normalizeExtensionPolicyOverride(override);\n if (!normalized) {\n continue;\n }\n dedupedByName.set(normalized.name, normalized);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/**\n * Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer\n * override object) through settings normalization. Unset/invalid values are\n * omitted so existing settings.json files round-trip byte-identically and the\n * loader applies its safe default (\"block\").\n */\nfunction normalizePmMaxVersionExceededModeSetting(\n value: PmMaxVersionExceededModeSetting | undefined,\n): PmMaxVersionExceededModeSetting | undefined {\n if (typeof value === \"string\") {\n return normalizePmMaxVersionExceededModeValue(value);\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n const global = normalizePmMaxVersionExceededModeValue(value.global);\n const project = normalizePmMaxVersionExceededModeValue(value.project);\n if (global === undefined && project === undefined) {\n return undefined;\n }\n return {\n ...(global !== undefined ? { global } : {}),\n ...(project !== undefined ? { project } : {}),\n };\n }\n return undefined;\n}\n\ntype ExtensionPolicyListKey =\n | \"trusted_extensions\"\n | \"allowed_extensions\"\n | \"blocked_extensions\"\n | \"allowed_capabilities\"\n | \"blocked_capabilities\"\n | \"allowed_surfaces\"\n | \"blocked_surfaces\"\n | \"allowed_commands\"\n | \"blocked_commands\"\n | \"allowed_actions\"\n | \"blocked_actions\"\n | \"allowed_services\"\n | \"blocked_services\";\n\nfunction normalizeExtensionPolicyList(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n key: ExtensionPolicyListKey,\n): string[] {\n return normalizeLowerStringList(policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key]);\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode } : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeExtensionPolicyList(policy, \"trusted_extensions\"),\n default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),\n allowed_extensions: normalizeExtensionPolicyList(policy, \"allowed_extensions\"),\n blocked_extensions: normalizeExtensionPolicyList(policy, \"blocked_extensions\"),\n allowed_capabilities: normalizeExtensionPolicyList(policy, \"allowed_capabilities\"),\n blocked_capabilities: normalizeExtensionPolicyList(policy, \"blocked_capabilities\"),\n allowed_surfaces: normalizeExtensionPolicyList(policy, \"allowed_surfaces\"),\n blocked_surfaces: normalizeExtensionPolicyList(policy, \"blocked_surfaces\"),\n allowed_commands: normalizeExtensionPolicyList(policy, \"allowed_commands\"),\n blocked_commands: normalizeExtensionPolicyList(policy, \"blocked_commands\"),\n allowed_actions: normalizeExtensionPolicyList(policy, \"allowed_actions\"),\n blocked_actions: normalizeExtensionPolicyList(policy, \"blocked_actions\"),\n allowed_services: normalizeExtensionPolicyList(policy, \"allowed_services\"),\n blocked_services: normalizeExtensionPolicyList(policy, \"blocked_services\"),\n extension_overrides: normalizeExtensionPolicyOverrides(\n policy?.extension_overrides ?? SETTINGS_DEFAULTS.extensions.policy.extension_overrides,\n ),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(values: string[] | undefined): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll(\"-\", \"_\")))]\n .filter((value) => value.length > 0)\n .sort((left, right) => left.localeCompare(right));\n return normalized.filter((value): value is ValidateMetadataRequiredField =>\n [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n ].includes(value),\n );\n}\n\nfunction normalizeValidationPatternList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction valueOrDefault<T>(value: T | undefined, fallback: T): T {\n return value === undefined ? fallback : value;\n}\n\nfunction recordOrEmpty(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\nfunction buildValidationSettings(settings: ParsedSettings, defaults: PmSettings, governance: GovernanceSettings): PmSettings[\"validation\"] {\n return {\n ...defaults.validation,\n ...settings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_stale_blocker_reason_patterns ??\n defaults.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n defaults.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_resolution_patterns ??\n defaults.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_actual_result_patterns ??\n defaults.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type),\n };\n}\n\nfunction buildTelemetrySettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"telemetry\"] {\n return {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,\n capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n };\n}\n\nfunction buildSearchSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"search\"] {\n return {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...settings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider),\n },\n rerank: {\n ...defaults.search.rerank,\n ...settings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(settings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildVectorStoreSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"vector_store\"] {\n return {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),\n qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },\n lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb },\n };\n}\n\nfunction normalizeSettingsItemFormat(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"item_format\"] {\n if (settings.item_format === \"json_markdown\") {\n return \"toon\";\n }\n return settings.item_format ?? defaults.item_format;\n}\n\nfunction buildContextSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"context\"] {\n return {\n default_depth: settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...settings.context?.sections,\n },\n };\n}\n\nfunction buildProviderSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"providers\"] {\n return {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n };\n}\n\n/**\n * Implements normalize item type definitions for the public runtime surface of this module.\n */\nexport function normalizeItemTypeDefinitions(definitions: ItemTypeDefinition[] | undefined): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter((definition): definition is ItemTypeDefinition => definition !== null);\n const dedupedByName = new Map<string, ItemTypeDefinition>();\n for (const definition of normalized) {\n dedupedByName.set(definition.name.toLowerCase(), definition);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mergeSettings(settings: ParsedSettings): PmSettings {\n const defaults = cloneDefaults();\n const governance = resolveGovernanceKnobs({\n governance: settings.governance ?? { preset: \"default\" },\n });\n return {\n ...defaults,\n ...settings,\n item_format: normalizeSettingsItemFormat(settings, defaults),\n locks: { ...defaults.locks, ...settings.locks },\n checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },\n output: { ...defaults.output, ...settings.output },\n history: {\n ...defaults.history,\n ...settings.history,\n compact_policy: {\n ...defaults.history.compact_policy,\n ...settings.history?.compact_policy,\n },\n },\n validation: buildValidationSettings(settings, defaults, governance),\n governance,\n workflow: {\n definition_of_done: [...(settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done)],\n },\n testing: {\n record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items,\n },\n telemetry: buildTelemetrySettings(settings, defaults),\n agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),\n item_types: {\n definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions),\n },\n schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),\n context: buildContextSettings(settings, defaults),\n extensions: {\n enabled: [...settings.extensions.enabled],\n disabled: [...settings.extensions.disabled],\n policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy),\n },\n search: buildSearchSettings(settings, defaults),\n providers: buildProviderSettings(settings, defaults),\n vector_store: buildVectorStoreSettings(settings, defaults),\n };\n}\n\nfunction orderSerializedSettingsSections(ordered: Record<string, unknown>): void {\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\"ttl_seconds\"]);\n ordered.checkpoints = orderObject(ordered.checkpoints as Record<string, unknown>, [\"retention_days\"]);\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\"default_format\"]);\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\"missing_stream\", \"compact_policy\"]);\n ordered.validation = orderObject(ordered.validation as Record<string, unknown>, [\n \"sprint_release_format\",\n \"parent_reference\",\n \"metadata_profile\",\n \"metadata_required_fields\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"estimate_defaults_by_type\",\n ]);\n ordered.governance = orderObject(ordered.governance as Record<string, unknown>, [\n \"preset\",\n \"ownership_enforcement\",\n \"create_mode_default\",\n \"close_validation_default\",\n \"require_close_reason\",\n \"parent_reference\",\n \"metadata_profile\",\n \"force_required_for_stale_lock\",\n \"create_default_type\",\n \"workflow_enforcement\",\n ]);\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\"definition_of_done\"]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\"record_results_to_items\"]);\n ordered.telemetry = orderObject(ordered.telemetry as Record<string, unknown>, [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ]);\n ordered.agent_guidance = orderObject(ordered.agent_guidance as Record<string, unknown>, [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ]);\n ordered.item_types = orderObject(ordered.item_types as Record<string, unknown>, [\"definitions\"]);\n ordered.schema = orderObject(ordered.schema as Record<string, unknown>, [\n \"version\",\n \"files\",\n \"statuses\",\n \"fields\",\n \"workflow\",\n \"type_workflows\",\n \"unknown_field_policy\",\n ]);\n (ordered.schema as Record<string, unknown>).files = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).files),\n [\"types\", \"statuses\", \"fields\", \"workflows\"],\n );\n (ordered.schema as Record<string, unknown>).workflow = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).workflow),\n [\"draft_status\", \"open_status\", \"in_progress_status\", \"blocked_status\", \"close_status\", \"canceled_status\"],\n );\n ordered.context = orderObject(ordered.context as Record<string, unknown>, [\n \"default_depth\",\n \"activity_limit\",\n \"stale_threshold_days\",\n \"sections\",\n ]);\n (ordered.context as Record<string, unknown>).sections = orderObject(\n recordOrEmpty((ordered.context as Record<string, unknown>).sections),\n [\"hierarchy\", \"activity\", \"progress\", \"blockers\", \"files\", \"workload\", \"staleness\", \"tests\"],\n );\n ordered.extensions = orderObject(ordered.extensions as Record<string, unknown>, [\"enabled\", \"disabled\", \"policy\"]);\n (ordered.extensions as Record<string, unknown>).policy = orderObject(\n recordOrEmpty((ordered.extensions as Record<string, unknown>).policy),\n [\n \"mode\",\n \"trust_mode\",\n \"pm_max_version_exceeded_mode\",\n \"require_provenance\",\n \"trusted_extensions\",\n \"default_sandbox_profile\",\n \"allowed_extensions\",\n \"blocked_extensions\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n \"extension_overrides\",\n ],\n );\n ((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides = (\n arrayOrEmpty(((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides)\n ).map((entry) =>\n orderObject(recordOrEmpty(entry), [\n \"name\",\n \"disabled\",\n \"require_trusted\",\n \"require_provenance\",\n \"sandbox_profile\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n ]),\n );\n ordered.search = orderObject(ordered.search as Record<string, unknown>, [\n \"score_threshold\",\n \"hybrid_semantic_weight\",\n \"max_results\",\n \"embedding_model\",\n \"embedding_corpus_max_characters\",\n \"embedding_batch_size\",\n \"embedding_timeout_ms\",\n \"scanner_max_batch_retries\",\n \"provider\",\n \"mutation_refresh_policy\",\n \"query_expansion\",\n \"rerank\",\n ]);\n (ordered.search as Record<string, unknown>).query_expansion = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).query_expansion),\n [\"enabled\", \"provider\"],\n );\n (ordered.search as Record<string, unknown>).rerank = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).rerank),\n [\"enabled\", \"model\", \"top_k\"],\n );\n ordered.providers = orderObject(ordered.providers as Record<string, unknown>, [\"openai\", \"ollama\"]);\n (ordered.providers as Record<string, unknown>).openai = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).openai),\n [\"base_url\", \"api_key\", \"model\"],\n );\n (ordered.providers as Record<string, unknown>).ollama = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).ollama),\n [\"base_url\", \"model\"],\n );\n ordered.vector_store = orderObject(ordered.vector_store as Record<string, unknown>, [\n \"adapter\",\n \"collection_name\",\n \"qdrant\",\n \"lancedb\",\n ]);\n (ordered.vector_store as Record<string, unknown>).qdrant = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).qdrant),\n [\"url\", \"api_key\"],\n );\n (ordered.vector_store as Record<string, unknown>).lancedb = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).lancedb),\n [\"path\"],\n );\n}\n\nfunction buildSerializeBaseSettings(settings: PmSettings): PmSettings {\n return {\n ...settings,\n locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),\n checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),\n workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),\n testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),\n telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),\n agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),\n item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store),\n } as PmSettings;\n}\n\nfunction buildSerializedValidationSettings(baseSettings: PmSettings, governance: GovernanceSettings): PmSettings[\"validation\"] {\n return {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_resolution_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type),\n };\n}\n\nfunction buildSerializedSearchSettings(baseSettings: PmSettings): PmSettings[\"search\"] {\n return {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...baseSettings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...baseSettings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildSerializedContextSettings(baseSettings: PmSettings): PmSettings[\"context\"] {\n return {\n default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,\n activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...baseSettings.context?.sections,\n },\n };\n}\n\nfunction buildSerializedVectorStoreSettings(baseSettings: PmSettings): PmSettings[\"vector_store\"] {\n return {\n ...baseSettings.vector_store,\n adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),\n qdrant: { ...baseSettings.vector_store?.qdrant },\n lancedb: { ...baseSettings.vector_store?.lancedb },\n };\n}\n\nfunction buildNormalizedSettingsForSerialization(\n baseSettings: PmSettings,\n governance: GovernanceSettings,\n normalizedSchema: PmSettings[\"schema\"],\n persistedFileBackedSections: ReturnType<typeof resolvePersistedFileBackedSchemaSections>,\n): PmSettings {\n return {\n ...baseSettings,\n item_format: \"toon\",\n validation: buildSerializedValidationSettings(baseSettings, governance),\n governance,\n agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),\n item_types: {\n definitions: persistedFileBackedSections.item_type_definitions,\n },\n schema: {\n ...normalizedSchema,\n statuses: persistedFileBackedSections.schema_statuses,\n fields: persistedFileBackedSections.schema_fields,\n type_workflows: persistedFileBackedSections.schema_type_workflows,\n },\n search: buildSerializedSearchSettings(baseSettings),\n context: buildSerializedContextSettings(baseSettings),\n extensions: {\n enabled: normalizeStringList(baseSettings.extensions?.enabled),\n disabled: normalizeStringList(baseSettings.extensions?.disabled),\n policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy),\n },\n vector_store: buildSerializedVectorStoreSettings(baseSettings),\n };\n}\n\n/**\n * Implements serialize settings for the public runtime surface of this module.\n */\nexport function serializeSettings(settings: PmSettings, options: SerializeSettingsOptions = {}): string {\n const baseSettings = buildSerializeBaseSettings(settings);\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);\n const normalizedSettings = buildNormalizedSettingsForSerialization(\n baseSettings,\n governance,\n normalizedSchema,\n persistedFileBackedSections,\n );\n const ordered = orderObject(\n {\n ...(normalizedSettings as unknown as Record<string, unknown>),\n governance: normalizeGovernanceForPersist(governance) as unknown,\n },\n [\n \"version\",\n \"id_prefix\",\n \"author_default\",\n \"item_format\",\n \"locks\",\n \"checkpoints\",\n \"output\",\n \"history\",\n \"validation\",\n \"governance\",\n \"workflow\",\n \"testing\",\n \"telemetry\",\n \"agent_guidance\",\n \"item_types\",\n \"schema\",\n \"context\",\n \"extensions\",\n \"search\",\n \"providers\",\n \"vector_store\",\n ],\n );\n orderSerializedSettingsSections(ordered);\n\n return `${JSON.stringify(ordered, null, 2)}\\n`;\n}\n\n/**\n * Implements read settings with metadata for the public runtime surface of this module.\n */\nexport async function readSettingsWithMetadata(pmRoot: string): Promise<SettingsReadResult> {\n const settingsPath = getSettingsPath(pmRoot);\n let trackedPathsForFailure: string[] = [settingsPath];\n await runActiveOnReadHooks({\n path: settingsPath,\n scope: \"project\",\n });\n\n const cachedResult = getSettingsReadCacheEntry<SettingsReadResult>(pmRoot);\n if (cachedResult) {\n const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);\n if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);\n if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {\n clearSettingsReadCache(pmRoot);\n return readSettingsWithMetadata(pmRoot);\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_json\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_schema\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);\n const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(loadedSchemaSections.type_definitions_from_file),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));\n const result: SettingsReadResult = {\n settings,\n metadata: {\n has_explicit_item_format: hasExplicitItemFormat(parsed),\n },\n warnings: [\n ...(validated.data.item_format === \"json_markdown\"\n ? [\"settings_item_format_legacy_json_markdown_coerced_to_toon\"]\n : []),\n ...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {\n clearSettingsReadCache(pmRoot);\n } else {\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: signaturesAfterSchemaLoad,\n value: cloneSettingsReadResult(result),\n });\n }\n } else {\n // Bootstrap warnings are intentionally one-shot and should not be replayed from cache.\n clearSettingsReadCache(pmRoot);\n }\n return result;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_merge_failed\");\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/**\n * Implements read settings for the public runtime surface of this module.\n */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/**\n * Implements write settings for the public runtime surface of this module.\n */\nexport async function writeSettings(pmRoot: string, settings: PmSettings, op = SETTINGS_WRITE_OP): Promise<void> {\n const settingsPath = getSettingsPath(pmRoot);\n await writeFileAtomic(\n settingsPath,\n serializeSettings(settings, {\n persist_source: getSettingsPersistSourceSnapshot(settings),\n }),\n );\n try {\n await runActiveOnWriteHooks({\n path: settingsPath,\n scope: \"project\",\n op,\n });\n } finally {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nexport const settingsStoreTestOnly = {\n hasExplicitItemFormat,\n buildSettingsPersistSourceSnapshot,\n cacheSettingsReadResultIfStable,\n cacheSettingsReadResultSafe,\n mergeSettings,\n normalizeExtensionPolicySettings,\n normalizeExtensionPolicyOverride,\n normalizeExtensionPolicyOverrides,\n normalizeExtensionPolicyMode,\n normalizePmMaxVersionExceededModeSetting,\n normalizeExtensionSandboxProfile,\n normalizeExtensionTrustMode,\n normalizeLowerStringList,\n normalizeStringList,\n valueOrDefault,\n arrayOrEmpty,\n normalizeValidationPatternList,\n normalizeValidationMetadataRequiredFields,\n resolveSettingsReadTrackedPaths,\n resolvePersistedFileBackedSchemaSections,\n selectedSettingsReadCacheSignaturesEqual,\n};\n"],"names":[],"mappings":"AAAA;;;;GAIG;;;AACH,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,iCAAiC,EACjC,+BAA+B,EAC/B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAoBlC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,8BAA8B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAC5E,MAAM,uCAAuC,GAAG,GAAG,CAAC;AAqCpD,SAAS,gCAAgC,CAAC,MAA2C;IACnF,OAAO,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmC;IACpE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,sEAAsE;AACtE,SAAS,oBAAoB,CAC3B,IAAgE,EAChE,UAA8B;IAE9B,MAAM,iBAAiB,GACrB,OAAO,UAAU,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IACD,IACE,UAAU,CAAC,oBAAoB,KAAK,KAAK;QACzC,UAAU,CAAC,oBAAoB,KAAK,MAAM;QAC1C,UAAU,CAAC,oBAAoB,KAAK,QAAQ,EAC5C,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAC9D,CAAC;IACD,IAAI,UAAU,CAAC,oBAAoB,KAAK,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CAAC,UAA8B;IACnE,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,oBAAoB,CACzB;YACE,MAAM,EAAE,QAAQ;YAChB,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB;YAC7D,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,6BAA6B,EAAE,UAAU,CAAC,6BAA6B;SACxE,EACD,UAAU,CACX,CAAC;IACJ,CAAC;IACD,OAAO,oBAAoB,CACzB;QACE,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,EACD,UAAU,CACX,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,uEAAuE;AACvE,SAAS,uBAAuB,CAC9B,aAA0C;IAE1C,MAAM,iBAAiB,GACrB,OAAO,aAAa,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,MAAM,MAAM,GACV,EAAE,CAAC;IACL,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;IACjD,CAAC;IACD,IACE,aAAa,CAAC,oBAAoB,KAAK,KAAK;QAC5C,aAAa,CAAC,oBAAoB,KAAK,MAAM;QAC7C,aAAa,CAAC,oBAAoB,KAAK,QAAQ,EAC/C,CAAC;QACD,MAAM,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,aAAa,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAuF;IAEvF,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,yBAAyB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;QACxF,OAAO;YACL,MAAM;YACN,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB;YAC5F,mBAAmB,EAAE,aAAa,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB;YACtF,wBAAwB,EAAE,aAAa,CAAC,wBAAwB,IAAI,QAAQ,CAAC,wBAAwB;YACrG,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;YAC7E,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;YAC7E,6BAA6B,EAAE,aAAa,CAAC,6BAA6B,IAAI,QAAQ,CAAC,6BAA6B;YACpH,GAAG,MAAM;YACT,oBAAoB,EAAE,kBAAkB;SACzC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;IACxF,OAAO;QACL,MAAM;QACN,GAAG,QAAQ;QACX,GAAG,MAAM;QACT,oBAAoB,EAAE,kBAAkB;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oCAAoC,CAAC,KAAc;IAC1D,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,qBAAqB,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,uBAAuB,CAAC;AAC1D,CAAC;AAED,SAAS,oCAAoC,CAAC,KAAc;IAC1D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;AAC1D,CAAC;AAED,SAAS,qCAAqC,CAAC,KAAc;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACjD,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,YAAY,CAAC,eAAe,CAAC;IACxD,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,uCAAuC,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,eAAe,CAAC;AAC3F,CAAC;AAED,SAAS,kCAAkC,CACzC,cAA8B,EAC9B,eAA2B;IAE3B,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC;IAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,OAAO;QACL,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC;QACvF,4BAA4B,EAAE,4BAA4B,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC;QAClG,0BAA0B,EAAE,cAAc,KAAK,SAAS;QACxD,sBAAsB,EAAE,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7E,wBAAwB,EAAE,YAAY,KAAK,SAAS;QACpD,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QACvE,gCAAgC,EAAE,mBAAmB,KAAK,SAAS;QACnE,4BAA4B,EAAE,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7F,6BAA6B,EAAE,4BAA4B,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC;QACpG,uBAAuB,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzE,qBAAqB,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QACrE,6BAA6B,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;KAC5F,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,QAAoB,EAAE,MAAqC;IACtG,MAAM,CAAC,cAAc,CAAC,QAAmD,EAAE,8BAA8B,EAAE;QACzG,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,QAAoB;IAC5D,MAAM,SAAS,GAAI,QAAoD,CAAC,8BAA8B,CAAC,CAAC;IACxG,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAA0C,CAAC;AACpD,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA0B;IACzD,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,gCAAgC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,aAAa,EAAE,CAAC;QAClB,mCAAmC,CAAC,cAAc,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,wBAAwB,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB;SACnE;QACD,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAc,EAAE,MAA4B,EAAE,YAAoB;IACzG,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO;QACL,YAAY;QACZ,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,iCAAiC,CAAC,KAAK,CAAC;QACvG,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC,QAAQ,CAAC;QAC7G,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,MAAM,CAAC;QACzG,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,SAAS,CAAC;KAChH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,MAAc,EAAE,YAAsB,EAAE,MAA0B;IACvG,MAAM,UAAU,GAAG,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;IAC1E,yBAAyB,CAAC,MAAM,EAAE;QAChC,aAAa,EAAE,YAAY;QAC3B,UAAU;QACV,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,MAAc,EAAE,YAAsB,EAAE,MAA0B;IAC3G,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAID,SAAS,8BAA8B,CAAC,UAAuC,EAAE,UAAkB;IACjG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,wCAAwC,CAC/C,MAAmC,EACnC,KAAkC,EAClC,WAAqB;IAErB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,8BAA8B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACzE,IACE,CAAC,eAAe;YAChB,CAAC,cAAc;YACf,CAAC,gCAAgC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EACtE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,MAAc,EACd,YAAsB,EACtB,MAA0B,EAC1B,gBAA6C,EAC7C,WAAqB;IAErB,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,wCAAwC,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,CAAC;YAChG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,yBAAyB,CAAC,MAAM,EAAE;YAChC,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,iBAAiB;YAC7B,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,wCAAwC,CAC/C,QAAoB,EACpB,MAAiD;IAOjD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzE,MAAM,0BAA0B,GAAG,4BAA4B,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,qBAAqB,EAAE,0BAA0B;YACjD,eAAe,EAAE,gBAAgB,CAAC,QAAQ;YAC1C,aAAa,EAAE,gBAAgB,CAAC,MAAM;YACtC,qBAAqB,EAAE,gBAAgB,CAAC,cAAc;SACvD,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,cAAc,IAAI,EAAE,CAAC;IACnE,MAAM,4BAA4B,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACzH,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC7G,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACvG,MAAM,4BAA4B,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAEnH,OAAO;QACL,qBAAqB,EAAE,4BAA4B;YACjD,CAAC,CAAC,MAAM,CAAC,gCAAgC;gBACvC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,4BAA4B,CAAC;gBACnE,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,0BAA0B;QAC9B,eAAe,EAAE,uBAAuB;YACtC,CAAC,CAAC,MAAM,CAAC,0BAA0B;gBACjC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBAChD,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,gBAAgB,CAAC,QAAQ;QAC7B,aAAa,EAAE,qBAAqB;YAClC,CAAC,CAAC,MAAM,CAAC,wBAAwB;gBAC/B,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAC9C,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,gBAAgB,CAAC,MAAM;QAC3B,qBAAqB,EAAE,4BAA4B;YACjD,CAAC,CAAC,MAAM,CAAC,gCAAgC;gBACvC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,4BAA4B,CAAC;gBACtD,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,gBAAgB,CAAC,cAAc;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAgB;IACvD,OAAO;QACL,QAAQ,EAAE,aAAa,EAAE;QACzB,QAAQ,EAAE;YACR,wBAAwB,EAAE,KAAK;SAChC;QACD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAI,GAA+B,CAAC,WAAW,CAAC;IAChE,OAAO,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,eAAe,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA4B;IACvD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACxH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAwD;IAExD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC;IAClD,MAAM,eAAe,GAAG,KAAK,EAAE,gBAAgB,CAAC;IAChD,OAAO;QACL,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI;QAClD,QAAQ,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI;QAClC,WAAW,EAAE,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;QAC9F,gBAAgB,EACd,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC;YAC7F,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,QAAQ,CAAC,gBAAgB;QAC/B,kBAAkB,EAAE,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;KAClG,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA4B;IAC5D,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACrH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAsC;IAC1E,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAqC;IACxE,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;AACxD,CAAC;AAED,SAAS,gCAAgC,CAAC,KAA0C;IAClF,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC;AACrE,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAyC;IAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAoC;QAClD,IAAI;KACL,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC/B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACtC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACzC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,UAAU,CAAC,eAAe,GAAG,gCAAgC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACpF,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,UAAU,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IACxD,CAAC;IACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,UAAU,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IACxD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,eAAe,GAAG,cAAc,CAAC;IAC9C,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,eAAe,GAAG,cAAc,CAAC;IAC9C,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAChD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iCAAiC,CACxC,SAAwD;IAExD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2C,CAAC;IACzE,KAAK,MAAM,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,sCAAsC,CAAC,KAAc;IAC5D,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAS,wCAAwC,CAC/C,KAAkD;IAElD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,sCAAsC,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,sCAAsC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,sCAAsC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAiBD,SAAS,4BAA4B,CACnC,MAAsD,EACtD,GAA2B;IAE3B,OAAO,wBAAwB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,gCAAgC,CACvC,MAAsD;IAEtD,MAAM,wBAAwB,GAAG,wCAAwC,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IAChH,OAAO;QACL,IAAI,EAAE,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,UAAU,EAAE,2BAA2B,CAAC,MAAM,EAAE,UAAU,CAAC;QAC3D,GAAG,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI;QACvD,kBAAkB,EAAE,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAC9E,uBAAuB,EAAE,gCAAgC,CAAC,MAAM,EAAE,uBAAuB,CAAC;QAC1F,kBAAkB,EAAE,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAC9E,kBAAkB,EAAE,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAC9E,oBAAoB,EAAE,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,CAAC;QAClF,oBAAoB,EAAE,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,CAAC;QAClF,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,eAAe,EAAE,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,CAAC;QACxE,eAAe,EAAE,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,CAAC;QACxE,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,gBAAgB,EAAE,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC1E,mBAAmB,EAAE,iCAAiC,CACpD,MAAM,EAAE,mBAAmB,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CACvF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yCAAyC,CAAC,MAA4B;IAC7E,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5G,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAA0C,EAAE,CACzE;QACE,QAAQ;QACR,qBAAqB;QACrB,mBAAmB;QACnB,cAAc;QACd,UAAU;QACV,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,SAAS;KACV,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,MAA4B;IAClE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACrH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAI,KAAoB,EAAE,QAAW;IAC1D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxH,CAAC;AAED,SAAS,YAAY,CAAI,KAAc;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAwB,EAAE,QAAoB,EAAE,UAA8B;IAC7G,OAAO;QACL,GAAG,QAAQ,CAAC,UAAU;QACtB,GAAG,QAAQ,CAAC,UAAU;QACtB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,wBAAwB,EAAE,yCAAyC,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;QAClH,uCAAuC,EAAE,8BAA8B,CACrE,QAAQ,CAAC,UAAU,EAAE,uCAAuC;YAC1D,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAC9D;QACD,8CAA8C,EAAE,8BAA8B,CAC5E,QAAQ,CAAC,UAAU,EAAE,8CAA8C;YACjE,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CACrE;QACD,0CAA0C,EAAE,8BAA8B,CACxE,QAAQ,CAAC,UAAU,EAAE,0CAA0C;YAC7D,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CACjE;QACD,6CAA6C,EAAE,8BAA8B,CAC3E,QAAQ,CAAC,UAAU,EAAE,6CAA6C;YAChE,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CACpE;QACD,yBAAyB,EAAE,iCAAiC,CAAC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7G,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAwB,EAAE,QAAoB;IAC5E,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO;QAClE,0BAA0B,EAAE,QAAQ,CAAC,SAAS,EAAE,0BAA0B,IAAI,QAAQ,CAAC,SAAS,CAAC,0BAA0B;QAC3H,aAAa,EAAE,QAAQ,CAAC,SAAS,EAAE,aAAa,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa;QACpF,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ;QACrE,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,IAAI,QAAQ,CAAC,SAAS,CAAC,eAAe;QAC1F,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwB,EAAE,QAAoB;IACzE,OAAO;QACL,GAAG,QAAQ,CAAC,MAAM;QAClB,GAAG,QAAQ,CAAC,MAAM;QAClB,uBAAuB,EAAE,oCAAoC,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;QACvG,eAAe,EAAE;YACf,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe;YAClC,GAAG,QAAQ,CAAC,MAAM,EAAE,eAAe;YACnC,OAAO,EAAE,oCAAoC,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC;YACxF,QAAQ,EAAE,qCAAqC,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;SAC5F;QACD,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM;YACzB,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM;YAC1B,OAAO,EAAE,4BAA4B,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YACvE,KAAK,EAAE,0BAA0B,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YACjE,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAwB,EAAE,QAAoB;IAC9E,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,OAAO;QACvE,eAAe,EAAE,kCAAkC,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC;QAC1F,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;QAC5E,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAwB,EAAE,QAAoB;IACjF,IAAI,QAAQ,CAAC,WAAW,KAAK,eAAe,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAwB,EAAE,QAAoB;IAC1E,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa;QAChF,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,cAAc;QACnF,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,IAAI,QAAQ,CAAC,OAAO,CAAC,oBAAoB;QACrG,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ;YAC5B,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAwB,EAAE,QAAoB;IAC3E,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;QACtE,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;KACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAA6C;IACxF,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;SACnC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,UAAU,EAAoC,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC5D,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,aAAa,CAAC,QAAwB;IAC7C,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC;QACxC,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACzD,CAAC,CAAC;IACH,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,QAAQ;QACX,WAAW,EAAE,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC5D,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;QAC/C,WAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE;QACjE,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;QAClD,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,OAAO;YACnB,GAAG,QAAQ,CAAC,OAAO;YACnB,cAAc,EAAE;gBACd,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc;gBAClC,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc;aACpC;SACF;QACD,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;QACnE,UAAU;QACV,QAAQ,EAAE;YACR,kBAAkB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,IAAI,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;SACzG;QACD,OAAO,EAAE;YACP,uBAAuB,EAAE,QAAQ,CAAC,OAAO,EAAE,uBAAuB,IAAI,QAAQ,CAAC,OAAO,CAAC,uBAAuB;SAC/G;QACD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACrD,cAAc,EAAE,8BAA8B,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC;QAClG,UAAU,EAAE;YACV,WAAW,EAAE,4BAA4B,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;SAC5E;QACD,MAAM,EAAE,8BAA8B,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC1E,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACjD,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3C,MAAM,EAAE,gCAAgC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;SACnG;QACD,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC/C,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpD,YAAY,EAAE,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAgC;IACvE,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAgC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,WAAsC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAiC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAkC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChH,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAqC,EAAE;QAC9E,uBAAuB;QACvB,kBAAkB;QAClB,kBAAkB;QAClB,0BAA0B;QAC1B,yCAAyC;QACzC,gDAAgD;QAChD,4CAA4C;QAC5C,+CAA+C;QAC/C,2BAA2B;KAC5B,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAqC,EAAE;QAC9E,QAAQ;QACR,uBAAuB;QACvB,qBAAqB;QACrB,0BAA0B;QAC1B,sBAAsB;QACtB,kBAAkB;QAClB,kBAAkB;QAClB,+BAA+B;QAC/B,qBAAqB;QACrB,sBAAsB;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAmC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAkC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAoC,EAAE;QAC5E,SAAS;QACT,4BAA4B;QAC5B,eAAe;QACf,UAAU;QACV,iBAAiB;QACjB,gBAAgB;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,cAAyC,EAAE;QACtF,kBAAkB;QAClB,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,oBAAoB;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAqC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAiC,EAAE;QACtE,SAAS;QACT,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,gBAAgB;QAChB,sBAAsB;KACvB,CAAC,CAAC;IACF,OAAO,CAAC,MAAkC,CAAC,KAAK,GAAG,WAAW,CAC7D,aAAa,CAAE,OAAO,CAAC,MAAkC,CAAC,KAAK,CAAC,EAChE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACD,OAAO,CAAC,MAAkC,CAAC,QAAQ,GAAG,WAAW,CAChE,aAAa,CAAE,OAAO,CAAC,MAAkC,CAAC,QAAQ,CAAC,EACnE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAC3G,CAAC;IACF,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAkC,EAAE;QACxE,eAAe;QACf,gBAAgB;QAChB,sBAAsB;QACtB,UAAU;KACX,CAAC,CAAC;IACF,OAAO,CAAC,OAAmC,CAAC,QAAQ,GAAG,WAAW,CACjE,aAAa,CAAE,OAAO,CAAC,OAAmC,CAAC,QAAQ,CAAC,EACpE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAC7F,CAAC;IACF,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAqC,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClH,OAAO,CAAC,UAAsC,CAAC,MAAM,GAAG,WAAW,CAClE,aAAa,CAAE,OAAO,CAAC,UAAsC,CAAC,MAAM,CAAC,EACrE;QACE,MAAM;QACN,YAAY;QACZ,8BAA8B;QAC9B,oBAAoB;QACpB,oBAAoB;QACpB,yBAAyB;QACzB,oBAAoB;QACpB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,qBAAqB;KACtB,CACF,CAAC;IACA,OAAO,CAAC,UAAsC,CAAC,MAAkC,CAAC,mBAAmB,GAAG,CACxG,YAAY,CAAG,OAAO,CAAC,UAAsC,CAAC,MAAkC,CAAC,mBAAmB,CAAC,CACtH,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,oBAAoB;QACpB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;KACnB,CAAC,CACH,CAAC;IACF,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAiC,EAAE;QACtE,iBAAiB;QACjB,wBAAwB;QACxB,aAAa;QACb,iBAAiB;QACjB,iCAAiC;QACjC,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,UAAU;QACV,yBAAyB;QACzB,iBAAiB;QACjB,QAAQ;KACT,CAAC,CAAC;IACF,OAAO,CAAC,MAAkC,CAAC,eAAe,GAAG,WAAW,CACvE,aAAa,CAAE,OAAO,CAAC,MAAkC,CAAC,eAAe,CAAC,EAC1E,CAAC,SAAS,EAAE,UAAU,CAAC,CACxB,CAAC;IACD,OAAO,CAAC,MAAkC,CAAC,MAAM,GAAG,WAAW,CAC9D,aAAa,CAAE,OAAO,CAAC,MAAkC,CAAC,MAAM,CAAC,EACjE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAC;IACF,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAoC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,SAAqC,CAAC,MAAM,GAAG,WAAW,CACjE,aAAa,CAAE,OAAO,CAAC,SAAqC,CAAC,MAAM,CAAC,EACpE,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CACjC,CAAC;IACD,OAAO,CAAC,SAAqC,CAAC,MAAM,GAAG,WAAW,CACjE,aAAa,CAAE,OAAO,CAAC,SAAqC,CAAC,MAAM,CAAC,EACpE,CAAC,UAAU,EAAE,OAAO,CAAC,CACtB,CAAC;IACF,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,YAAuC,EAAE;QAClF,SAAS;QACT,iBAAiB;QACjB,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IACF,OAAO,CAAC,YAAwC,CAAC,MAAM,GAAG,WAAW,CACpE,aAAa,CAAE,OAAO,CAAC,YAAwC,CAAC,MAAM,CAAC,EACvE,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;IACD,OAAO,CAAC,YAAwC,CAAC,OAAO,GAAG,WAAW,CACrE,aAAa,CAAE,OAAO,CAAC,YAAwC,CAAC,OAAO,CAAC,EACxE,CAAC,MAAM,CAAC,CACT,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAoB;IACtD,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAC9D,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC;QAChF,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACjE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACpE,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC7E,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;QACvE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACpE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;QAC1E,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,cAAc,CAAC;QACzF,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC7E,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACjE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACpE,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC7E,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACjE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;QAC1E,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC,YAAY,CAAC;KACtE,CAAC;AAClB,CAAC;AAED,SAAS,iCAAiC,CAAC,YAAwB,EAAE,UAA8B;IACjG,OAAO;QACL,GAAG,YAAY,CAAC,UAAU;QAC1B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,wBAAwB,EAAE,yCAAyC,CAAC,YAAY,CAAC,UAAU,EAAE,wBAAwB,CAAC;QACtH,uCAAuC,EAAE,8BAA8B,CACrE,YAAY,CAAC,UAAU,EAAE,uCAAuC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,uCAAuC,CACvE;QACD,8CAA8C,EAAE,8BAA8B,CAC5E,YAAY,CAAC,UAAU,EAAE,8CAA8C;YACrE,iBAAiB,CAAC,UAAU,CAAC,8CAA8C,CAC9E;QACD,0CAA0C,EAAE,8BAA8B,CACxE,YAAY,CAAC,UAAU,EAAE,0CAA0C;YACjE,iBAAiB,CAAC,UAAU,CAAC,0CAA0C,CAC1E;QACD,6CAA6C,EAAE,8BAA8B,CAC3E,YAAY,CAAC,UAAU,EAAE,6CAA6C;YACpE,iBAAiB,CAAC,UAAU,CAAC,6CAA6C,CAC7E;QACD,yBAAyB,EAAE,iCAAiC,CAAC,YAAY,CAAC,UAAU,EAAE,yBAAyB,CAAC;KACjH,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,YAAwB;IAC7D,OAAO;QACL,GAAG,iBAAiB,CAAC,MAAM;QAC3B,GAAG,YAAY,CAAC,MAAM;QACtB,uBAAuB,EAAE,oCAAoC,CAAC,YAAY,CAAC,MAAM,EAAE,uBAAuB,CAAC;QAC3G,eAAe,EAAE;YACf,GAAG,iBAAiB,CAAC,MAAM,CAAC,eAAe;YAC3C,GAAG,YAAY,CAAC,MAAM,EAAE,eAAe;YACvC,OAAO,EAAE,oCAAoC,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC;YAC5F,QAAQ,EAAE,qCAAqC,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;SAChG;QACD,MAAM,EAAE;YACN,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM;YAClC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM;YAC9B,OAAO,EAAE,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YAC3E,KAAK,EAAE,0BAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YACrE,KAAK,EAAE,yBAAyB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;SACrE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,YAAwB;IAC9D,OAAO;QACL,aAAa,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,IAAI,iBAAiB,CAAC,OAAO,CAAC,aAAa;QAC7F,cAAc,EAAE,YAAY,CAAC,OAAO,EAAE,cAAc,IAAI,iBAAiB,CAAC,OAAO,CAAC,cAAc;QAChG,oBAAoB,EAAE,YAAY,CAAC,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,CAAC,OAAO,CAAC,oBAAoB;QAClH,QAAQ,EAAE;YACR,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ;YACrC,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ;SAClC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CAAC,YAAwB;IAClE,OAAO;QACL,GAAG,YAAY,CAAC,YAAY;QAC5B,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,OAAO;QACrF,eAAe,EAAE,kCAAkC,CAAC,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC;QAC/F,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE;QAChD,OAAO,EAAE,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,uCAAuC,CAC9C,YAAwB,EACxB,UAA8B,EAC9B,gBAAsC,EACtC,2BAAwF;IAExF,OAAO;QACL,GAAG,YAAY;QACf,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,iCAAiC,CAAC,YAAY,EAAE,UAAU,CAAC;QACvE,UAAU;QACV,cAAc,EAAE,8BAA8B,CAAC,YAAY,CAAC,cAAc,CAAC;QAC3E,UAAU,EAAE;YACV,WAAW,EAAE,2BAA2B,CAAC,qBAAqB;SAC/D;QACD,MAAM,EAAE;YACN,GAAG,gBAAgB;YACnB,QAAQ,EAAE,2BAA2B,CAAC,eAAe;YACrD,MAAM,EAAE,2BAA2B,CAAC,aAAa;YACjD,cAAc,EAAE,2BAA2B,CAAC,qBAAqB;SAClE;QACD,MAAM,EAAE,6BAA6B,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,8BAA8B,CAAC,YAAY,CAAC;QACrD,UAAU,EAAE;YACV,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC;YAC9D,QAAQ,EAAE,mBAAmB,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;YAChE,MAAM,EAAE,gCAAgC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;SAC1E;QACD,YAAY,EAAE,kCAAkC,CAAC,YAAY,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAoB,EAAE,UAAoC,EAAE;IAC5F,MAAM,YAAY,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,2BAA2B,GAAG,wCAAwC,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnH,MAAM,kBAAkB,GAAG,uCAAuC,CAChE,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,2BAA2B,CAC5B,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CACzB;QACE,GAAI,kBAAyD;QAC7D,UAAU,EAAE,6BAA6B,CAAC,UAAU,CAAY;KACjE,EACD;QACA,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,OAAO;QACP,aAAa;QACb,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,cAAc;KACb,CACF,CAAC;IACF,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAEzC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAc;IAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,sBAAsB,GAAa,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,oBAAoB,CAAC;QACzB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,yBAAyB,CAAqB,MAAM,CAAC,CAAC;IAC3E,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,iBAAiB,GAAG,MAAM,kCAAkC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC/F,IAAI,gCAAgC,CAAC,iBAAiB,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACjF,OAAO,uBAAuB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,kCAAkC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACxF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,+BAA+B,EAAE,CAAC;QACnD,MAAM,+BAA+B,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAChH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,2BAA2B,GAAG,MAAM,kCAAkC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,EAAE,CAAC;QAC3F,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,QAAQ,GAAG,+BAA+B,CAAC,4BAA4B,CAAC,CAAC;QAC/E,MAAM,+BAA+B,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACrH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,+BAA+B,CAAC,8BAA8B,CAAC,CAAC;QACjF,MAAM,+BAA+B,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACrH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,+BAA+B,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClG,sBAAsB,GAAG,YAAY,CAAC;QACtC,MAAM,0BAA0B,GAAG,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,MAAM,+BAA+B,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5F,MAAM,oBAAoB,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,MAAM,yBAAyB,GAAG,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAe;YAC3B,GAAG,cAAc;YACjB,UAAU,EAAE;gBACV,WAAW,EAAE,4BAA4B,CAAC;oBACxC,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW;oBACxC,GAAG,YAAY,CAAqB,oBAAoB,CAAC,0BAA0B,CAAC;iBACrF,CAAC;aACH;YACD,MAAM,EAAE,oBAAoB,CAAC,MAAM;SACpC,CAAC;QACF,mCAAmC,CAAC,QAAQ,EAAE,kCAAkC,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAuB;YACjC,QAAQ;YACR,QAAQ,EAAE;gBACR,wBAAwB,EAAE,qBAAqB,CAAC,MAAM,CAAC;aACxD;YACD,QAAQ,EAAE;gBACR,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,KAAK,eAAe;oBAChD,CAAC,CAAC,CAAC,2DAA2D,CAAC;oBAC/D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,oCAAoC,WAAW,EAAE,CAAC;gBACvG,GAAG,oBAAoB,CAAC,QAAQ;aACjC;SACF,CAAC;QACF,IAAI,cAAc,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,gCAAgC,CAAC,0BAA0B,EAAE,yBAAyB,CAAC,EAAE,CAAC;gBAC7F,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,yBAAyB,CAAC,MAAM,EAAE;oBAChC,aAAa,EAAE,YAAY;oBAC3B,UAAU,EAAE,yBAAyB;oBACrC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uFAAuF;YACvF,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,QAAQ,GAAG,+BAA+B,CAAC,4BAA4B,CAAC,CAAC;QAC/E,MAAM,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,OAAO,CAAC,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,QAAoB,EAAE,EAAE,GAAG,iBAAiB;IAC9F,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,eAAe,CACnB,YAAY,EACZ,iBAAiB,CAAC,QAAQ,EAAE;QAC1B,cAAc,EAAE,gCAAgC,CAAC,QAAQ,CAAC;KAC3D,CAAC,CACH,CAAC;IACF,IAAI,CAAC;QACH,MAAM,qBAAqB,CAAC;YAC1B,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,SAAS;YAChB,EAAE;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB;IACrB,kCAAkC;IAClC,+BAA+B;IAC/B,2BAA2B;IAC3B,aAAa;IACb,gCAAgC;IAChC,gCAAgC;IAChC,iCAAiC;IACjC,4BAA4B;IAC5B,wCAAwC;IACxC,gCAAgC;IAChC,2BAA2B;IAC3B,wBAAwB;IACxB,mBAAmB;IACnB,cAAc;IACd,YAAY;IACZ,8BAA8B;IAC9B,yCAAyC;IACzC,+BAA+B;IAC/B,wCAAwC;IACxC,wCAAwC;CACzC,CAAC","debugId":"4232868d-1e9d-51a3-abbe-3d9a3d1acae1"}
|
|
1
|
+
{"version":3,"file":"settings.js","sources":["core/store/settings.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/store/settings\n *\n * Reads and writes tracker storage with format-aware helpers for Settings.\n */\nimport { validateSettings, type ParsedSettings } from \"./settings-validator.js\";\nimport { runActiveOnReadHooks, runActiveOnWriteHooks } from \"../extensions/index.js\";\nimport { GOVERNANCE_PRESET_DEFAULTS, SETTINGS_DEFAULTS } from \"../shared/constants.js\";\nimport { readFileIfExists, writeFileAtomic } from \"../fs/fs-utils.js\";\nimport {\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,\n ensureRuntimeSchemaFileScaffold,\n filePathForSchemaSection,\n loadRuntimeSchemaFromOptionalFiles,\n normalizeRuntimeSchemaSettings,\n} from \"../schema/runtime-schema.js\";\nimport { getSettingsPath } from \"./paths.js\";\nimport { orderObject, stableValueEquals } from \"../shared/serialization.js\";\nimport { normalizeItemTypeDefinition } from \"../item/item-type-definition.js\";\nimport { normalizeEstimateDefaultOverrides } from \"../validate/estimate-defaults.js\";\nimport {\n clearSettingsReadCache,\n collectSettingsReadCacheSignatures,\n getSettingsReadCacheEntry,\n setSettingsReadCacheEntry,\n settingsReadCacheSignaturesEqual,\n} from \"./settings-read-cache.js\";\nimport type {\n ExtensionGovernancePolicy,\n PmMaxVersionExceededMode,\n PmMaxVersionExceededModeSetting,\n} from \"../extensions/extension-types.js\";\nimport type {\n ExtensionSandboxProfile,\n ExtensionPolicyMode,\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ExtensionTrustMode,\n GovernanceSettings,\n ItemTypeDefinition,\n PmSettings,\n GovernancePreset,\n SearchMutationRefreshPolicy,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\n\nconst SETTINGS_WRITE_OP = \"settings:write\";\nconst SETTINGS_PERSIST_SOURCE_SYMBOL = Symbol(\"pm.settings.persist_source\");\nconst MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;\n\ninterface SettingsPersistSourceSnapshot {\n has_source_item_type_definitions: boolean;\n source_item_type_definitions: ItemTypeDefinition[];\n has_source_schema_statuses: boolean;\n source_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n has_source_schema_fields: boolean;\n source_schema_fields: PmSettings[\"schema\"][\"fields\"];\n has_source_schema_type_workflows: boolean;\n source_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n runtime_item_type_definitions: ItemTypeDefinition[];\n runtime_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n runtime_schema_fields: PmSettings[\"schema\"][\"fields\"];\n runtime_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/**\n * Documents the settings read metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadMetadata {\n has_explicit_item_format: boolean;\n}\n\n/**\n * Documents the settings read result payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadResult {\n settings: PmSettings;\n metadata: SettingsReadMetadata;\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(preset: Exclude<GovernancePreset, \"custom\">): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(value: GovernancePreset | undefined): GovernancePreset {\n if (value === \"minimal\" || value === \"default\" || value === \"strict\" || value === \"custom\") {\n return value;\n }\n return SETTINGS_DEFAULTS.governance.preset;\n}\n\n// `create_default_type` and `workflow_enforcement` are orthogonal to the\n// governance preset (they tune create/update behavior, not the preset knobs),\n// so they must survive a write regardless of preset — otherwise a project on a\n// non-custom preset would silently drop them on every settings write.\nfunction withGovernanceExtras(\n base: Partial<GovernanceSettings> & { preset: GovernancePreset },\n governance: GovernanceSettings,\n): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n const createDefaultType =\n typeof governance.create_default_type === \"string\" ? governance.create_default_type.trim() : undefined;\n if (createDefaultType && createDefaultType.length > 0) {\n base.create_default_type = createDefaultType;\n }\n if (\n governance.workflow_enforcement === \"off\" ||\n governance.workflow_enforcement === \"warn\" ||\n governance.workflow_enforcement === \"strict\"\n ) {\n base.workflow_enforcement = governance.workflow_enforcement;\n }\n if (governance.require_close_reason === false) {\n base.require_close_reason = false;\n }\n return base;\n}\n\nfunction normalizeGovernanceForPersist(governance: GovernanceSettings): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n if (governance.preset === \"custom\") {\n return withGovernanceExtras(\n {\n preset: \"custom\",\n ownership_enforcement: governance.ownership_enforcement,\n create_mode_default: governance.create_mode_default,\n close_validation_default: governance.close_validation_default,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n force_required_for_stale_lock: governance.force_required_for_stale_lock,\n },\n governance,\n );\n }\n return withGovernanceExtras(\n {\n preset: governance.preset,\n },\n governance,\n );\n}\n\n// Preset-orthogonal knobs that must be carried through resolve from the raw\n// governance regardless of preset (see normalizeGovernanceForPersist).\nfunction resolveGovernanceExtras(\n rawGovernance: Partial<GovernanceSettings>,\n): Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\" ? rawGovernance.create_default_type.trim() : undefined;\n const extras: Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> =\n {};\n if (createDefaultType && createDefaultType.length > 0) {\n extras.create_default_type = createDefaultType;\n }\n if (\n rawGovernance.workflow_enforcement === \"off\" ||\n rawGovernance.workflow_enforcement === \"warn\" ||\n rawGovernance.workflow_enforcement === \"strict\"\n ) {\n extras.workflow_enforcement = rawGovernance.workflow_enforcement;\n }\n if (typeof rawGovernance.require_close_reason === \"boolean\") {\n extras.require_close_reason = rawGovernance.require_close_reason;\n }\n return extras;\n}\n\n/**\n * Implements resolve governance knobs for the public runtime surface of this module.\n */\nexport function resolveGovernanceKnobs(\n settings: Pick<PmSettings, \"governance\"> | { governance?: Partial<GovernanceSettings> },\n): GovernanceSettings {\n const rawGovernance = settings.governance ?? {};\n const preset = normalizeGovernancePreset(rawGovernance.preset);\n const extras = resolveGovernanceExtras(rawGovernance);\n if (preset === \"custom\") {\n const baseline = resolveGovernanceKnobsFromPreset(\"default\");\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default: rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default: rawGovernance.close_validation_default ?? baseline.close_validation_default,\n parent_reference: rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile: rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ...baseline,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n}\n\nfunction cloneDefaults(): PmSettings {\n return structuredClone(SETTINGS_DEFAULTS);\n}\n\nfunction normalizeSearchMutationRefreshPolicy(value: unknown): SearchMutationRefreshPolicy {\n if (value === \"cache_only\" || value === \"semantic_configured\" || value === \"semantic_auto\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.mutation_refresh_policy;\n}\n\nfunction normalizeSearchQueryExpansionEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.query_expansion.enabled;\n}\n\nfunction normalizeSearchQueryExpansionProvider(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.query_expansion.provider;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.enabled;\n}\n\nfunction normalizeSearchRerankModel(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.rerank.model;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankTopK(value: unknown): number {\n if (typeof value === \"number\" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.top_k;\n}\n\nfunction normalizeVectorStoreCollectionName(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.vector_store.collection_name;\n }\n const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, \"_\");\n const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);\n return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;\n}\n\nfunction buildSettingsPersistSourceSnapshot(\n parsedSettings: ParsedSettings,\n runtimeSettings: PmSettings,\n): SettingsPersistSourceSnapshot {\n const sourceSchema = parsedSettings.schema;\n const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),\n source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],\n has_source_schema_fields: sourceFields !== undefined,\n source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],\n has_source_schema_type_workflows: sourceTypeWorkflows !== undefined,\n source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? []),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(settings: PmSettings, source: SettingsPersistSourceSnapshot): void {\n Object.defineProperty(settings as unknown as Record<PropertyKey, unknown>, SETTINGS_PERSIST_SOURCE_SYMBOL, {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n });\n}\n\nfunction getSettingsPersistSourceSnapshot(settings: PmSettings): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[SETTINGS_PERSIST_SOURCE_SYMBOL];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(result: SettingsReadResult): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));\n }\n return {\n settings: clonedSettings,\n metadata: {\n has_explicit_item_format: result.metadata.has_explicit_item_format,\n },\n warnings: [...result.warnings],\n };\n}\n\nfunction resolveSettingsReadTrackedPaths(pmRoot: string, schema: PmSettings[\"schema\"], settingsPath: string): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows),\n ];\n}\n\nasync function cacheSettingsReadResult(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n const signatures = await collectSettingsReadCacheSignatures(trackedPaths);\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures,\n value: cloneSettingsReadResult(result),\n });\n}\n\nasync function cacheSettingsReadResultSafe(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<ReturnType<typeof collectSettingsReadCacheSignatures>>;\n\nfunction findSettingsReadCacheSignature(signatures: SettingsReadCacheSignatures, targetPath: string) {\n return signatures.find((signature) => signature.path === targetPath);\n}\n\nfunction selectedSettingsReadCacheSignaturesEqual(\n before: SettingsReadCacheSignatures,\n after: SettingsReadCacheSignatures,\n targetPaths: string[],\n): boolean {\n for (const targetPath of targetPaths) {\n const beforeSignature = findSettingsReadCacheSignature(before, targetPath);\n const afterSignature = findSettingsReadCacheSignature(after, targetPath);\n if (\n !beforeSignature ||\n !afterSignature ||\n !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])\n ) {\n return false;\n }\n }\n return true;\n}\n\nasync function cacheSettingsReadResultIfStable(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n stableSignatures: SettingsReadCacheSignatures,\n stablePaths: string[],\n): Promise<void> {\n try {\n const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);\n if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {\n clearSettingsReadCache(pmRoot);\n return;\n }\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: currentSignatures,\n value: cloneSettingsReadResult(result),\n });\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nfunction resolvePersistedFileBackedSchemaSections(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot | undefined,\n): {\n item_type_definitions: ItemTypeDefinition[];\n schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n schema_fields: PmSettings[\"schema\"][\"fields\"];\n schema_type_workflows: PmSettings[\"schema\"][\"type_workflows\"];\n} {\n const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);\n const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);\n if (!source) {\n return {\n item_type_definitions: currentItemTypeDefinitions,\n schema_statuses: normalizedSchema.statuses,\n schema_fields: normalizedSchema.fields,\n schema_type_workflows: normalizedSchema.type_workflows,\n };\n }\n\n const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];\n const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);\n const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);\n const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);\n const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);\n\n return {\n item_type_definitions: itemTypeDefinitionsUnchanged\n ? source.has_source_item_type_definitions\n ? normalizeItemTypeDefinitions(source.source_item_type_definitions)\n : []\n : currentItemTypeDefinitions,\n schema_statuses: schemaStatusesUnchanged\n ? source.has_source_schema_statuses\n ? structuredClone(source.source_schema_statuses)\n : []\n : normalizedSchema.statuses,\n schema_fields: schemaFieldsUnchanged\n ? source.has_source_schema_fields\n ? structuredClone(source.source_schema_fields)\n : []\n : normalizedSchema.fields,\n schema_type_workflows: schemaTypeWorkflowsUnchanged\n ? source.has_source_schema_type_workflows\n ? structuredClone(source.source_schema_type_workflows)\n : undefined\n : normalizedSchema.type_workflows,\n };\n}\n\nfunction buildFallbackSettingsReadResult(warning?: string): SettingsReadResult {\n return {\n settings: cloneDefaults(),\n metadata: {\n has_explicit_item_format: false,\n },\n warnings: warning ? [warning] : [],\n };\n}\n\nfunction hasExplicitItemFormat(raw: unknown): boolean {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return false;\n }\n const itemFormat = (raw as Record<string, unknown>).item_format;\n return itemFormat === \"toon\" || itemFormat === \"json_markdown\";\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n );\n}\n\nfunction normalizeAgentGuidanceSettings(\n value: Partial<PmSettings[\"agent_guidance\"]> | undefined,\n): PmSettings[\"agent_guidance\"] {\n const defaults = SETTINGS_DEFAULTS.agent_guidance;\n const templateVersion = value?.template_version;\n return {\n prompt_completed: value?.prompt_completed === true,\n declined: value?.declined === true,\n declined_at: typeof value?.declined_at === \"string\" ? value.declined_at : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" && Number.isInteger(templateVersion) && templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(value?.last_checked_files ?? defaults.last_checked_files),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeExtensionPolicyMode(value: ExtensionPolicyMode | undefined): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(value: ExtensionTrustMode | undefined): ExtensionTrustMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.trust_mode;\n}\n\nfunction normalizeExtensionSandboxProfile(value: ExtensionSandboxProfile | undefined): ExtensionSandboxProfile {\n if (value === \"none\" || value === \"restricted\" || value === \"strict\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;\n}\n\nfunction normalizeExtensionPolicyOverride(\n override: ExtensionPolicyOverrideSettings,\n): ExtensionPolicyOverrideSettings | null {\n const name = override.name.trim().toLowerCase();\n if (name.length === 0) {\n return null;\n }\n const normalized: ExtensionPolicyOverrideSettings = {\n name,\n };\n if (override.disabled === true) {\n normalized.disabled = true;\n }\n if (override.require_trusted === true) {\n normalized.require_trusted = true;\n }\n if (override.require_provenance === true) {\n normalized.require_provenance = true;\n }\n if (override.sandbox_profile !== undefined) {\n normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);\n }\n const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);\n const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);\n const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);\n const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);\n const allowedCommands = normalizeLowerStringList(override.allowed_commands);\n const blockedCommands = normalizeLowerStringList(override.blocked_commands);\n const allowedActions = normalizeLowerStringList(override.allowed_actions);\n const blockedActions = normalizeLowerStringList(override.blocked_actions);\n const allowedServices = normalizeLowerStringList(override.allowed_services);\n const blockedServices = normalizeLowerStringList(override.blocked_services);\n if (allowedCapabilities.length > 0) {\n normalized.allowed_capabilities = allowedCapabilities;\n }\n if (blockedCapabilities.length > 0) {\n normalized.blocked_capabilities = blockedCapabilities;\n }\n if (allowedSurfaces.length > 0) {\n normalized.allowed_surfaces = allowedSurfaces;\n }\n if (blockedSurfaces.length > 0) {\n normalized.blocked_surfaces = blockedSurfaces;\n }\n if (allowedCommands.length > 0) {\n normalized.allowed_commands = allowedCommands;\n }\n if (blockedCommands.length > 0) {\n normalized.blocked_commands = blockedCommands;\n }\n if (allowedActions.length > 0) {\n normalized.allowed_actions = allowedActions;\n }\n if (blockedActions.length > 0) {\n normalized.blocked_actions = blockedActions;\n }\n if (allowedServices.length > 0) {\n normalized.allowed_services = allowedServices;\n }\n if (blockedServices.length > 0) {\n normalized.blocked_services = blockedServices;\n }\n return normalized;\n}\n\nfunction normalizeExtensionPolicyOverrides(\n overrides: ExtensionPolicyOverrideSettings[] | undefined,\n): ExtensionPolicyOverrideSettings[] {\n const dedupedByName = new Map<string, ExtensionPolicyOverrideSettings>();\n for (const override of overrides ?? []) {\n const normalized = normalizeExtensionPolicyOverride(override);\n if (!normalized) {\n continue;\n }\n dedupedByName.set(normalized.name, normalized);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/**\n * Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer\n * override object) through settings normalization. Unset/invalid values are\n * omitted so existing settings.json files round-trip byte-identically and the\n * loader applies its safe default (\"block\").\n */\nfunction normalizePmMaxVersionExceededModeSetting(\n value: PmMaxVersionExceededModeSetting | undefined,\n): PmMaxVersionExceededModeSetting | undefined {\n if (typeof value === \"string\") {\n return normalizePmMaxVersionExceededModeValue(value);\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n const global = normalizePmMaxVersionExceededModeValue(value.global);\n const project = normalizePmMaxVersionExceededModeValue(value.project);\n if (global === undefined && project === undefined) {\n return undefined;\n }\n return {\n ...(global !== undefined ? { global } : {}),\n ...(project !== undefined ? { project } : {}),\n };\n }\n return undefined;\n}\n\ntype ExtensionPolicyListKey =\n | \"trusted_extensions\"\n | \"allowed_extensions\"\n | \"blocked_extensions\"\n | \"allowed_capabilities\"\n | \"blocked_capabilities\"\n | \"allowed_surfaces\"\n | \"blocked_surfaces\"\n | \"allowed_commands\"\n | \"blocked_commands\"\n | \"allowed_actions\"\n | \"blocked_actions\"\n | \"allowed_services\"\n | \"blocked_services\";\n\nfunction normalizeExtensionPolicyList(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n key: ExtensionPolicyListKey,\n): string[] {\n return normalizeLowerStringList(policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key]);\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode } : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeExtensionPolicyList(policy, \"trusted_extensions\"),\n default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),\n allowed_extensions: normalizeExtensionPolicyList(policy, \"allowed_extensions\"),\n blocked_extensions: normalizeExtensionPolicyList(policy, \"blocked_extensions\"),\n allowed_capabilities: normalizeExtensionPolicyList(policy, \"allowed_capabilities\"),\n blocked_capabilities: normalizeExtensionPolicyList(policy, \"blocked_capabilities\"),\n allowed_surfaces: normalizeExtensionPolicyList(policy, \"allowed_surfaces\"),\n blocked_surfaces: normalizeExtensionPolicyList(policy, \"blocked_surfaces\"),\n allowed_commands: normalizeExtensionPolicyList(policy, \"allowed_commands\"),\n blocked_commands: normalizeExtensionPolicyList(policy, \"blocked_commands\"),\n allowed_actions: normalizeExtensionPolicyList(policy, \"allowed_actions\"),\n blocked_actions: normalizeExtensionPolicyList(policy, \"blocked_actions\"),\n allowed_services: normalizeExtensionPolicyList(policy, \"allowed_services\"),\n blocked_services: normalizeExtensionPolicyList(policy, \"blocked_services\"),\n extension_overrides: normalizeExtensionPolicyOverrides(\n policy?.extension_overrides ?? SETTINGS_DEFAULTS.extensions.policy.extension_overrides,\n ),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(values: string[] | undefined): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll(\"-\", \"_\")))]\n .filter((value) => value.length > 0)\n .sort((left, right) => left.localeCompare(right));\n return normalized.filter((value): value is ValidateMetadataRequiredField =>\n [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n ].includes(value),\n );\n}\n\nfunction normalizeValidationPatternList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction valueOrDefault<T>(value: T | undefined, fallback: T): T {\n return value === undefined ? fallback : value;\n}\n\nfunction recordOrEmpty(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\nfunction buildValidationSettings(settings: ParsedSettings, defaults: PmSettings, governance: GovernanceSettings): PmSettings[\"validation\"] {\n return {\n ...defaults.validation,\n ...settings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_stale_blocker_reason_patterns ??\n defaults.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n defaults.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_resolution_patterns ??\n defaults.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_actual_result_patterns ??\n defaults.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type),\n };\n}\n\nfunction buildTelemetrySettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"telemetry\"] {\n return {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,\n capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n };\n}\n\nfunction buildSearchSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"search\"] {\n return {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...settings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider),\n },\n rerank: {\n ...defaults.search.rerank,\n ...settings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(settings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildVectorStoreSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"vector_store\"] {\n return {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),\n qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },\n lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb },\n };\n}\n\nfunction normalizeSettingsItemFormat(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"item_format\"] {\n if (settings.item_format === \"json_markdown\") {\n return \"toon\";\n }\n return settings.item_format ?? defaults.item_format;\n}\n\nfunction buildContextSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"context\"] {\n return {\n default_depth: settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...settings.context?.sections,\n },\n };\n}\n\nfunction buildProviderSettings(settings: ParsedSettings, defaults: PmSettings): PmSettings[\"providers\"] {\n return {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n };\n}\n\n/**\n * Implements normalize item type definitions for the public runtime surface of this module.\n */\nexport function normalizeItemTypeDefinitions(definitions: ItemTypeDefinition[] | undefined): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter((definition): definition is ItemTypeDefinition => definition !== null);\n const dedupedByName = new Map<string, ItemTypeDefinition>();\n for (const definition of normalized) {\n dedupedByName.set(definition.name.toLowerCase(), definition);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mergeSettings(settings: ParsedSettings): PmSettings {\n const defaults = cloneDefaults();\n const governance = resolveGovernanceKnobs({\n governance: settings.governance ?? { preset: \"default\" },\n });\n return {\n ...defaults,\n ...settings,\n item_format: normalizeSettingsItemFormat(settings, defaults),\n locks: { ...defaults.locks, ...settings.locks },\n checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },\n output: { ...defaults.output, ...settings.output },\n history: {\n ...defaults.history,\n ...settings.history,\n compact_policy: {\n ...defaults.history.compact_policy,\n ...settings.history?.compact_policy,\n },\n },\n validation: buildValidationSettings(settings, defaults, governance),\n governance,\n workflow: {\n definition_of_done: [...(settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done)],\n },\n testing: {\n record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items,\n },\n telemetry: buildTelemetrySettings(settings, defaults),\n agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),\n item_types: {\n definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions),\n },\n schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),\n context: buildContextSettings(settings, defaults),\n extensions: {\n enabled: [...settings.extensions.enabled],\n disabled: [...settings.extensions.disabled],\n policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy),\n },\n search: buildSearchSettings(settings, defaults),\n providers: buildProviderSettings(settings, defaults),\n vector_store: buildVectorStoreSettings(settings, defaults),\n };\n}\n\nfunction orderSerializedSettingsSections(ordered: Record<string, unknown>): void {\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\"ttl_seconds\", \"wait_ms\"]);\n ordered.checkpoints = orderObject(ordered.checkpoints as Record<string, unknown>, [\"retention_days\"]);\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\"default_format\"]);\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\"missing_stream\", \"compact_policy\"]);\n ordered.validation = orderObject(ordered.validation as Record<string, unknown>, [\n \"sprint_release_format\",\n \"parent_reference\",\n \"metadata_profile\",\n \"metadata_required_fields\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"estimate_defaults_by_type\",\n ]);\n ordered.governance = orderObject(ordered.governance as Record<string, unknown>, [\n \"preset\",\n \"ownership_enforcement\",\n \"create_mode_default\",\n \"close_validation_default\",\n \"require_close_reason\",\n \"parent_reference\",\n \"metadata_profile\",\n \"force_required_for_stale_lock\",\n \"create_default_type\",\n \"workflow_enforcement\",\n ]);\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\"definition_of_done\"]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\"record_results_to_items\"]);\n ordered.telemetry = orderObject(ordered.telemetry as Record<string, unknown>, [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ]);\n ordered.agent_guidance = orderObject(ordered.agent_guidance as Record<string, unknown>, [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ]);\n ordered.item_types = orderObject(ordered.item_types as Record<string, unknown>, [\"definitions\"]);\n ordered.schema = orderObject(ordered.schema as Record<string, unknown>, [\n \"version\",\n \"files\",\n \"statuses\",\n \"fields\",\n \"workflow\",\n \"type_workflows\",\n \"unknown_field_policy\",\n ]);\n (ordered.schema as Record<string, unknown>).files = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).files),\n [\"types\", \"statuses\", \"fields\", \"workflows\"],\n );\n (ordered.schema as Record<string, unknown>).workflow = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).workflow),\n [\"draft_status\", \"open_status\", \"in_progress_status\", \"blocked_status\", \"close_status\", \"canceled_status\"],\n );\n ordered.context = orderObject(ordered.context as Record<string, unknown>, [\n \"default_depth\",\n \"activity_limit\",\n \"stale_threshold_days\",\n \"sections\",\n ]);\n (ordered.context as Record<string, unknown>).sections = orderObject(\n recordOrEmpty((ordered.context as Record<string, unknown>).sections),\n [\"hierarchy\", \"activity\", \"progress\", \"blockers\", \"files\", \"workload\", \"staleness\", \"tests\"],\n );\n ordered.extensions = orderObject(ordered.extensions as Record<string, unknown>, [\"enabled\", \"disabled\", \"policy\"]);\n (ordered.extensions as Record<string, unknown>).policy = orderObject(\n recordOrEmpty((ordered.extensions as Record<string, unknown>).policy),\n [\n \"mode\",\n \"trust_mode\",\n \"pm_max_version_exceeded_mode\",\n \"require_provenance\",\n \"trusted_extensions\",\n \"default_sandbox_profile\",\n \"allowed_extensions\",\n \"blocked_extensions\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n \"extension_overrides\",\n ],\n );\n ((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides = (\n arrayOrEmpty(((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides)\n ).map((entry) =>\n orderObject(recordOrEmpty(entry), [\n \"name\",\n \"disabled\",\n \"require_trusted\",\n \"require_provenance\",\n \"sandbox_profile\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n ]),\n );\n ordered.search = orderObject(ordered.search as Record<string, unknown>, [\n \"score_threshold\",\n \"hybrid_semantic_weight\",\n \"max_results\",\n \"embedding_model\",\n \"embedding_corpus_max_characters\",\n \"embedding_batch_size\",\n \"embedding_timeout_ms\",\n \"scanner_max_batch_retries\",\n \"provider\",\n \"mutation_refresh_policy\",\n \"query_expansion\",\n \"rerank\",\n ]);\n (ordered.search as Record<string, unknown>).query_expansion = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).query_expansion),\n [\"enabled\", \"provider\"],\n );\n (ordered.search as Record<string, unknown>).rerank = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).rerank),\n [\"enabled\", \"model\", \"top_k\"],\n );\n ordered.providers = orderObject(ordered.providers as Record<string, unknown>, [\"openai\", \"ollama\"]);\n (ordered.providers as Record<string, unknown>).openai = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).openai),\n [\"base_url\", \"api_key\", \"model\"],\n );\n (ordered.providers as Record<string, unknown>).ollama = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).ollama),\n [\"base_url\", \"model\"],\n );\n ordered.vector_store = orderObject(ordered.vector_store as Record<string, unknown>, [\n \"adapter\",\n \"collection_name\",\n \"qdrant\",\n \"lancedb\",\n ]);\n (ordered.vector_store as Record<string, unknown>).qdrant = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).qdrant),\n [\"url\", \"api_key\"],\n );\n (ordered.vector_store as Record<string, unknown>).lancedb = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).lancedb),\n [\"path\"],\n );\n}\n\nfunction buildSerializeBaseSettings(settings: PmSettings): PmSettings {\n return {\n ...settings,\n locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),\n checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),\n workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),\n testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),\n telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),\n agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),\n item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store),\n } as PmSettings;\n}\n\nfunction buildSerializedValidationSettings(baseSettings: PmSettings, governance: GovernanceSettings): PmSettings[\"validation\"] {\n return {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_resolution_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type),\n };\n}\n\nfunction buildSerializedSearchSettings(baseSettings: PmSettings): PmSettings[\"search\"] {\n return {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...baseSettings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...baseSettings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildSerializedContextSettings(baseSettings: PmSettings): PmSettings[\"context\"] {\n return {\n default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,\n activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...baseSettings.context?.sections,\n },\n };\n}\n\nfunction buildSerializedVectorStoreSettings(baseSettings: PmSettings): PmSettings[\"vector_store\"] {\n return {\n ...baseSettings.vector_store,\n adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),\n qdrant: { ...baseSettings.vector_store?.qdrant },\n lancedb: { ...baseSettings.vector_store?.lancedb },\n };\n}\n\nfunction buildNormalizedSettingsForSerialization(\n baseSettings: PmSettings,\n governance: GovernanceSettings,\n normalizedSchema: PmSettings[\"schema\"],\n persistedFileBackedSections: ReturnType<typeof resolvePersistedFileBackedSchemaSections>,\n): PmSettings {\n return {\n ...baseSettings,\n item_format: \"toon\",\n validation: buildSerializedValidationSettings(baseSettings, governance),\n governance,\n agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),\n item_types: {\n definitions: persistedFileBackedSections.item_type_definitions,\n },\n schema: {\n ...normalizedSchema,\n statuses: persistedFileBackedSections.schema_statuses,\n fields: persistedFileBackedSections.schema_fields,\n type_workflows: persistedFileBackedSections.schema_type_workflows,\n },\n search: buildSerializedSearchSettings(baseSettings),\n context: buildSerializedContextSettings(baseSettings),\n extensions: {\n enabled: normalizeStringList(baseSettings.extensions?.enabled),\n disabled: normalizeStringList(baseSettings.extensions?.disabled),\n policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy),\n },\n vector_store: buildSerializedVectorStoreSettings(baseSettings),\n };\n}\n\n/**\n * Implements serialize settings for the public runtime surface of this module.\n */\nexport function serializeSettings(settings: PmSettings, options: SerializeSettingsOptions = {}): string {\n const baseSettings = buildSerializeBaseSettings(settings);\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);\n const normalizedSettings = buildNormalizedSettingsForSerialization(\n baseSettings,\n governance,\n normalizedSchema,\n persistedFileBackedSections,\n );\n const ordered = orderObject(\n {\n ...(normalizedSettings as unknown as Record<string, unknown>),\n governance: normalizeGovernanceForPersist(governance) as unknown,\n },\n [\n \"version\",\n \"id_prefix\",\n \"author_default\",\n \"item_format\",\n \"locks\",\n \"checkpoints\",\n \"output\",\n \"history\",\n \"validation\",\n \"governance\",\n \"workflow\",\n \"testing\",\n \"telemetry\",\n \"agent_guidance\",\n \"item_types\",\n \"schema\",\n \"context\",\n \"extensions\",\n \"search\",\n \"providers\",\n \"vector_store\",\n ],\n );\n orderSerializedSettingsSections(ordered);\n\n return `${JSON.stringify(ordered, null, 2)}\\n`;\n}\n\n/**\n * Implements read settings with metadata for the public runtime surface of this module.\n */\nexport async function readSettingsWithMetadata(pmRoot: string): Promise<SettingsReadResult> {\n const settingsPath = getSettingsPath(pmRoot);\n let trackedPathsForFailure: string[] = [settingsPath];\n await runActiveOnReadHooks({\n path: settingsPath,\n scope: \"project\",\n });\n\n const cachedResult = getSettingsReadCacheEntry<SettingsReadResult>(pmRoot);\n if (cachedResult) {\n const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);\n if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);\n if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {\n clearSettingsReadCache(pmRoot);\n return readSettingsWithMetadata(pmRoot);\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_json\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_schema\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);\n const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(loadedSchemaSections.type_definitions_from_file),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));\n const result: SettingsReadResult = {\n settings,\n metadata: {\n has_explicit_item_format: hasExplicitItemFormat(parsed),\n },\n warnings: [\n ...(validated.data.item_format === \"json_markdown\"\n ? [\"settings_item_format_legacy_json_markdown_coerced_to_toon\"]\n : []),\n ...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {\n clearSettingsReadCache(pmRoot);\n } else {\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: signaturesAfterSchemaLoad,\n value: cloneSettingsReadResult(result),\n });\n }\n } else {\n // Bootstrap warnings are intentionally one-shot and should not be replayed from cache.\n clearSettingsReadCache(pmRoot);\n }\n return result;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_merge_failed\");\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/**\n * Implements read settings for the public runtime surface of this module.\n */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/**\n * Implements write settings for the public runtime surface of this module.\n */\nexport async function writeSettings(pmRoot: string, settings: PmSettings, op = SETTINGS_WRITE_OP): Promise<void> {\n const settingsPath = getSettingsPath(pmRoot);\n await writeFileAtomic(\n settingsPath,\n serializeSettings(settings, {\n persist_source: getSettingsPersistSourceSnapshot(settings),\n }),\n );\n try {\n await runActiveOnWriteHooks({\n path: settingsPath,\n scope: \"project\",\n op,\n });\n } finally {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nexport const settingsStoreTestOnly = {\n hasExplicitItemFormat,\n buildSettingsPersistSourceSnapshot,\n cacheSettingsReadResultIfStable,\n cacheSettingsReadResultSafe,\n mergeSettings,\n normalizeExtensionPolicySettings,\n normalizeExtensionPolicyOverride,\n normalizeExtensionPolicyOverrides,\n normalizeExtensionPolicyMode,\n normalizePmMaxVersionExceededModeSetting,\n normalizeExtensionSandboxProfile,\n normalizeExtensionTrustMode,\n normalizeLowerStringList,\n normalizeStringList,\n valueOrDefault,\n arrayOrEmpty,\n normalizeValidationPatternList,\n normalizeValidationMetadataRequiredFields,\n resolveSettingsReadTrackedPaths,\n resolvePersistedFileBackedSchemaSections,\n selectedSettingsReadCacheSignaturesEqual,\n};\n"],"names":[],"mappings":"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","debugId":"2117ea93-b9ac-5f00-931b-f56e6fdbd0d4"}
|
|
@@ -63,8 +63,6 @@ export interface ValidateFixRecord {
|
|
|
63
63
|
*/
|
|
64
64
|
gate?: ValidateFixScope;
|
|
65
65
|
}
|
|
66
|
-
/** Default resolution backfilled onto closed items with no derivable source text. */
|
|
67
|
-
export declare const DEFAULT_RESOLUTION_BACKFILL_VALUE = "completed";
|
|
68
66
|
/**
|
|
69
67
|
* Documents the resolution backfill row payload exchanged by command, SDK, and package integrations.
|
|
70
68
|
*/
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* explicitly granted.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
19
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="efc3e5f9-0d68-50a9-a99c-b86ddd13c4ed")}catch(e){}}();
|
|
20
20
|
import { EXIT_CODE } from "../shared/constants.js";
|
|
21
21
|
import { PmCliError } from "../shared/errors.js";
|
|
22
22
|
import { resolveEstimateDefaultMinutes } from "./estimate-defaults.js";
|
|
@@ -29,7 +29,7 @@ export const DEFAULT_GRANTED_FIX_SCOPES = ["metadata", "resolution"];
|
|
|
29
29
|
*/
|
|
30
30
|
export const SUPPORTED_FIX_SCOPES = ["metadata", "resolution", "estimates", "lifecycle"];
|
|
31
31
|
/** Default resolution backfilled onto closed items with no derivable source text. */
|
|
32
|
-
|
|
32
|
+
const DEFAULT_RESOLUTION_BACKFILL_VALUE = "completed";
|
|
33
33
|
function quoteForCommand(value) {
|
|
34
34
|
return `"${value.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`;
|
|
35
35
|
}
|
|
@@ -226,4 +226,4 @@ export function toFixOutputRow(fix) {
|
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
228
|
//# sourceMappingURL=fix-planning.js.map
|
|
229
|
-
//# debugId=
|
|
229
|
+
//# debugId=efc3e5f9-0d68-50a9-a99c-b86ddd13c4ed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-planning.js","sources":["core/validate/fix-planning.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Fix planning for `pm validate --auto-fix` / `--prune-missing` (pm-c3sz,\n * pm-8jss, pm-0v2m).\n *\n * Pure module: planners turn check findings into declarative\n * {@link ValidateFixRecord}s; the validate command decides whether to apply\n * them (apply mode), preview them (`--dry-run`), or withhold gated fixes\n * (lifecycle structural changes require an explicit `--fix-scope lifecycle`).\n *\n * Safety invariants:\n * - Every planned fix is deterministic and non-destructive: it only sets a\n * derivable field value or removes a stale LINK (never a real file).\n * - No fix ever closes, deletes, or cancels an item.\n * - Lifecycle fixes (reparent / unset parent) are structural, so they are\n * planned with `gate: \"lifecycle\"` and only applied when that scope was\n * explicitly granted.\n */\n\nimport { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { resolveEstimateDefaultMinutes } from \"./estimate-defaults.js\";\n\n/**\n * Restricts validate fix check values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixCheck = \"metadata\" | \"resolution\" | \"lifecycle\" | \"files\";\n\n/**\n * Restricts validate fix kind values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixKind =\n | \"set_resolution\"\n | \"set_close_reason\"\n | \"set_estimate\"\n | \"reparent\"\n | \"unset_parent\"\n | \"prune_file_link\"\n | \"prune_doc_link\";\n\n/**\n * Restricts validate fix scope values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixScope = \"metadata\" | \"resolution\" | \"estimates\" | \"lifecycle\";\n\n/** Scopes auto-applied without an explicit `--fix-scope` (safe field backfills). */\nexport const DEFAULT_GRANTED_FIX_SCOPES: readonly ValidateFixScope[] = [\"metadata\", \"resolution\"];\n\n/**\n * Scopes accepted by `--fix-scope`. `estimates` and `lifecycle` are opt-in:\n * estimate backfills are heuristic per-type guesses (not derived facts) and\n * lifecycle changes are structural, so neither is granted by default.\n */\nexport const SUPPORTED_FIX_SCOPES: readonly ValidateFixScope[] = [\"metadata\", \"resolution\", \"estimates\", \"lifecycle\"];\n\n/**\n * Documents the validate fix record payload exchanged by command, SDK, and package integrations.\n */\nexport interface ValidateFixRecord {\n /** Item the fix targets. */\n item_id: string;\n /** Validate check the finding came from. */\n check: ValidateFixCheck;\n /** Front-matter field (or link list) the fix changes. */\n field: string;\n /** Declarative fix kind the applier dispatches on. */\n kind: ValidateFixKind;\n /** Equivalent standalone `pm` command for the fix. */\n command: string;\n /** New value for set-field fixes. */\n value?: string;\n /** Stale link path for prune fixes. */\n path?: string;\n /** Target parent id for reparent fixes. */\n parent_id?: string;\n /**\n * Fix scope the `--fix-scope` allowlist must grant for the fix to be\n * applied. Every `--auto-fix` record carries one (the granted default is\n * metadata+resolution; lifecycle must be named explicitly). Absent only on\n * `--prune-missing` records, which are governed by their own flag.\n */\n gate?: ValidateFixScope;\n}\n\n/** Default resolution backfilled onto closed items with no derivable source text. */\nexport const DEFAULT_RESOLUTION_BACKFILL_VALUE = \"completed\";\n\nfunction quoteForCommand(value: string): string {\n return `\"${value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll('\"', '\\\\\"')}\"`;\n}\n\nfunction toMeaningfulValue(value: string | undefined): string | undefined {\n const trimmed = value?.trim();\n return trimmed !== undefined && trimmed.length > 0 ? trimmed : undefined;\n}\n\n/**\n * Documents the resolution backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface ResolutionBackfillRow {\n id: string;\n /** Resolution-check missing field keys for this closed item. */\n missing_fields: readonly string[];\n /** The item's close_reason, when present (preferred derivation source). */\n close_reason?: string;\n}\n\n/**\n * Plan resolution backfills for closed items flagged by the resolution check.\n * Only the `resolution` field is mechanical enough to auto-fix: it derives\n * from the item's own `close_reason` when present and falls back to the\n * `\"completed\"` default. `expected_result` / `actual_result` stay hint-only —\n * no deterministic source text exists for them.\n */\nexport function planResolutionBackfillFixes(rows: readonly ResolutionBackfillRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n if (!row.missing_fields.includes(\"resolution\")) {\n continue;\n }\n const value = toMeaningfulValue(row.close_reason) ?? DEFAULT_RESOLUTION_BACKFILL_VALUE;\n fixes.push({\n item_id: row.id,\n check: \"resolution\",\n field: \"resolution\",\n kind: \"set_resolution\",\n value,\n command: `pm update ${row.id} --resolution ${quoteForCommand(value)}`,\n gate: \"resolution\",\n });\n }\n return fixes;\n}\n\n/**\n * Documents the close reason backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseReasonBackfillRow {\n id: string;\n /** The item's resolution, when present (the only derivation source). */\n resolution?: string;\n}\n\n/**\n * Plan close_reason backfills for closed items flagged by the metadata check.\n * Only derivable when the item already carries a resolution; items missing\n * both stay hint-only (any synthesized reason would be fabricated, not\n * derived).\n */\nexport function planCloseReasonBackfillFixes(rows: readonly CloseReasonBackfillRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n const value = toMeaningfulValue(row.resolution);\n if (value === undefined) {\n continue;\n }\n fixes.push({\n item_id: row.id,\n check: \"metadata\",\n field: \"close_reason\",\n kind: \"set_close_reason\",\n value,\n command: `pm update ${row.id} --close-reason ${quoteForCommand(value)}`,\n gate: \"metadata\",\n });\n }\n return fixes;\n}\n\n/**\n * Documents the estimate backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface EstimateBackfillRow {\n id: string;\n /** Item type, used to resolve the per-type default estimate. */\n type?: string;\n}\n\n/**\n * Plan estimate backfills for items flagged by the metadata check as missing\n * `estimated_minutes` (GH-212). The value is a config-driven per-type default\n * (overrides > built-in map > fallback), never a derived fact — so these fixes\n * carry `gate: \"estimates\"`, an opt-in scope that is NOT granted by default.\n * `overrides` is the already-normalized `validation.estimate_defaults_by_type`\n * map; pass `undefined`/`{}` to use the built-in defaults.\n */\nexport function planEstimateBackfillFixes(\n rows: readonly EstimateBackfillRow[],\n overrides?: Readonly<Record<string, number>>,\n): ValidateFixRecord[] {\n return rows.map((row) => {\n const minutes = resolveEstimateDefaultMinutes(row.type, overrides);\n return {\n item_id: row.id,\n check: \"metadata\" as const,\n field: \"estimated_minutes\",\n kind: \"set_estimate\" as const,\n value: String(minutes),\n command: `pm update ${row.id} --estimate ${minutes}`,\n gate: \"estimates\" as const,\n };\n });\n}\n\n/**\n * Documents the terminal parent fix row payload exchanged by command, SDK, and package integrations.\n */\nexport interface TerminalParentFixRow {\n id: string;\n parent_id: string;\n /** The terminal parent's own parent, when one exists. */\n grandparent_id?: string;\n /** True when the grandparent exists and is NOT terminal (safe reparent target). */\n grandparent_active?: boolean;\n}\n\n/**\n * Plan lifecycle fixes for active items whose parent is terminal (pm-8jss /\n * GH-168). When the terminal parent has an active grandparent, the child is\n * reparented one level up (it stays inside the same hierarchy); otherwise the\n * parent link is cleared so the item surfaces as unparented active work.\n * Either way the item itself is never closed or mutated beyond `parent` —\n * and every fix carries `gate: \"lifecycle\"` so it is only applied under an\n * explicit `--fix-scope lifecycle`.\n */\nexport function planTerminalParentFixes(rows: readonly TerminalParentFixRow[]): ValidateFixRecord[] {\n return rows.map((row) => {\n if (row.grandparent_id !== undefined && row.grandparent_active === true) {\n return {\n item_id: row.id,\n check: \"lifecycle\" as const,\n field: \"parent\",\n kind: \"reparent\" as const,\n parent_id: row.grandparent_id,\n command: `pm update ${row.id} --parent ${row.grandparent_id}`,\n gate: \"lifecycle\" as const,\n };\n }\n return {\n item_id: row.id,\n check: \"lifecycle\" as const,\n field: \"parent\",\n kind: \"unset_parent\" as const,\n command: `pm update ${row.id} --unset parent`,\n gate: \"lifecycle\" as const,\n };\n });\n}\n\n/**\n * Documents the stale link prune row payload exchanged by command, SDK, and package integrations.\n */\nexport interface StaleLinkPruneRow {\n item_id: string;\n path: string;\n link_kind: \"files\" | \"docs\";\n classification: \"moved\" | \"deleted\";\n}\n\n/**\n * Plan link prunes for `--prune-missing` (pm-0v2m / GH-184). Only links whose\n * stale path classified as `deleted` are pruned; `moved` links keep their\n * relink candidates in the files-check details instead of being dropped, so\n * recoverable link information is never destroyed. Link removal only — real\n * files are never touched.\n */\nexport function planStaleLinkPruneFixes(rows: readonly StaleLinkPruneRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n if (row.classification !== \"deleted\") {\n continue;\n }\n const noun = row.link_kind === \"files\" ? \"files\" : \"docs\";\n fixes.push({\n item_id: row.item_id,\n check: \"files\",\n field: row.link_kind,\n kind: row.link_kind === \"files\" ? \"prune_file_link\" : \"prune_doc_link\",\n path: row.path,\n command: `pm ${noun} ${row.item_id} --remove ${quoteForCommand(row.path)}`,\n });\n }\n return fixes;\n}\n\n/**\n * Resolve the granted `--fix-scope` set (repeatable and/or comma-separated).\n * With no explicit scopes the safe field-backfill scopes (metadata,\n * resolution) are granted; lifecycle must always be named explicitly. Unknown\n * values fail fast with the supported list.\n */\nexport function resolveGrantedFixScopes(rawScopes: readonly string[] | undefined): Set<ValidateFixScope> {\n const tokens = (rawScopes ?? [])\n .flatMap((raw) => raw.split(\",\"))\n .map((raw) => raw.trim())\n .filter((raw) => raw.length > 0);\n if (tokens.length === 0) {\n if (rawScopes !== undefined && rawScopes.length > 0) {\n throw new PmCliError(\n `--fix-scope values must not be empty. Supported values: ${SUPPORTED_FIX_SCOPES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n return new Set(DEFAULT_GRANTED_FIX_SCOPES);\n }\n const granted = new Set<ValidateFixScope>();\n for (const raw of tokens) {\n const normalized = raw.toLowerCase().replaceAll(\"-\", \"_\");\n if ((SUPPORTED_FIX_SCOPES as readonly string[]).includes(normalized)) {\n granted.add(normalized as ValidateFixScope);\n continue;\n }\n throw new PmCliError(\n `Unknown --fix-scope value \"${raw}\". Supported values: ${SUPPORTED_FIX_SCOPES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n return granted;\n}\n\n/**\n * Split a fix plan into the records that may be applied under the granted\n * scopes and the gated records that were withheld. `--fix-scope` is an exact\n * allowlist: every `--auto-fix` record requires its gate scope in `granted`.\n * Ungated records (`--prune-missing` link prunes, governed by their own flag)\n * are always applicable.\n */\nexport function partitionFixesByGrant(\n fixes: readonly ValidateFixRecord[],\n granted: ReadonlySet<ValidateFixScope>,\n): { applicable: ValidateFixRecord[]; gated: ValidateFixRecord[] } {\n const applicable: ValidateFixRecord[] = [];\n const gated: ValidateFixRecord[] = [];\n for (const fix of fixes) {\n if (fix.gate !== undefined && !granted.has(fix.gate)) {\n gated.push(fix);\n } else {\n applicable.push(fix);\n }\n }\n return { applicable, gated };\n}\n\n/** Compact serialization of a fix for planned/applied output rows. */\nexport function toFixOutputRow(fix: ValidateFixRecord): Record<string, unknown> {\n return {\n item_id: fix.item_id,\n check: fix.check,\n field: fix.field,\n command: fix.command,\n ...(fix.gate !== undefined ? { gate: fix.gate } : {}),\n };\n}\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAwBvE,oFAAoF;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAgC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAElG;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgC,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AA+BtH,qFAAqF;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,WAAW,CAAC;AAE7D,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;AACtE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAaD;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAsC;IAChF,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,iCAAiC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,gBAAgB;YACtB,KAAK;YACL,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,iBAAiB,eAAe,CAAC,KAAK,CAAC,EAAE;YACrE,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAuC;IAClF,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,kBAAkB;YACxB,KAAK;YACL,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,mBAAmB,eAAe,CAAC,KAAK,CAAC,EAAE;YACvE,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAoC,EACpC,SAA4C;IAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,KAAK,EAAE,UAAmB;YAC1B,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,cAAuB;YAC7B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,eAAe,OAAO,EAAE;YACpD,IAAI,EAAE,WAAoB;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAcD;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAqC;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACxE,OAAO;gBACL,OAAO,EAAE,GAAG,CAAC,EAAE;gBACf,KAAK,EAAE,WAAoB;gBAC3B,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,UAAmB;gBACzB,SAAS,EAAE,GAAG,CAAC,cAAc;gBAC7B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,cAAc,EAAE;gBAC7D,IAAI,EAAE,WAAoB;aAC3B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,KAAK,EAAE,WAAoB;YAC3B,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,cAAuB;YAC7B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,iBAAiB;YAC7C,IAAI,EAAE,WAAoB;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAkC;IACxE,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,GAAG,CAAC,SAAS;YACpB,IAAI,EAAE,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB;YACtE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,aAAa,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAwC;IAC9E,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,UAAU,CAClB,2DAA2D,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC7F,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAK,oBAA0C,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,UAA8B,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,MAAM,IAAI,UAAU,CAClB,8BAA8B,GAAG,wBAAwB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC3F,SAAS,CAAC,KAAK,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAmC,EACnC,OAAsC;IAEtC,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC","debugId":"31a44dd9-5250-5dbc-bb6b-4a35eb47e0fb"}
|
|
1
|
+
{"version":3,"file":"fix-planning.js","sources":["core/validate/fix-planning.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Fix planning for `pm validate --auto-fix` / `--prune-missing` (pm-c3sz,\n * pm-8jss, pm-0v2m).\n *\n * Pure module: planners turn check findings into declarative\n * {@link ValidateFixRecord}s; the validate command decides whether to apply\n * them (apply mode), preview them (`--dry-run`), or withhold gated fixes\n * (lifecycle structural changes require an explicit `--fix-scope lifecycle`).\n *\n * Safety invariants:\n * - Every planned fix is deterministic and non-destructive: it only sets a\n * derivable field value or removes a stale LINK (never a real file).\n * - No fix ever closes, deletes, or cancels an item.\n * - Lifecycle fixes (reparent / unset parent) are structural, so they are\n * planned with `gate: \"lifecycle\"` and only applied when that scope was\n * explicitly granted.\n */\n\nimport { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { resolveEstimateDefaultMinutes } from \"./estimate-defaults.js\";\n\n/**\n * Restricts validate fix check values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixCheck = \"metadata\" | \"resolution\" | \"lifecycle\" | \"files\";\n\n/**\n * Restricts validate fix kind values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixKind =\n | \"set_resolution\"\n | \"set_close_reason\"\n | \"set_estimate\"\n | \"reparent\"\n | \"unset_parent\"\n | \"prune_file_link\"\n | \"prune_doc_link\";\n\n/**\n * Restricts validate fix scope values accepted by command, SDK, and storage contracts.\n */\nexport type ValidateFixScope = \"metadata\" | \"resolution\" | \"estimates\" | \"lifecycle\";\n\n/** Scopes auto-applied without an explicit `--fix-scope` (safe field backfills). */\nexport const DEFAULT_GRANTED_FIX_SCOPES: readonly ValidateFixScope[] = [\"metadata\", \"resolution\"];\n\n/**\n * Scopes accepted by `--fix-scope`. `estimates` and `lifecycle` are opt-in:\n * estimate backfills are heuristic per-type guesses (not derived facts) and\n * lifecycle changes are structural, so neither is granted by default.\n */\nexport const SUPPORTED_FIX_SCOPES: readonly ValidateFixScope[] = [\"metadata\", \"resolution\", \"estimates\", \"lifecycle\"];\n\n/**\n * Documents the validate fix record payload exchanged by command, SDK, and package integrations.\n */\nexport interface ValidateFixRecord {\n /** Item the fix targets. */\n item_id: string;\n /** Validate check the finding came from. */\n check: ValidateFixCheck;\n /** Front-matter field (or link list) the fix changes. */\n field: string;\n /** Declarative fix kind the applier dispatches on. */\n kind: ValidateFixKind;\n /** Equivalent standalone `pm` command for the fix. */\n command: string;\n /** New value for set-field fixes. */\n value?: string;\n /** Stale link path for prune fixes. */\n path?: string;\n /** Target parent id for reparent fixes. */\n parent_id?: string;\n /**\n * Fix scope the `--fix-scope` allowlist must grant for the fix to be\n * applied. Every `--auto-fix` record carries one (the granted default is\n * metadata+resolution; lifecycle must be named explicitly). Absent only on\n * `--prune-missing` records, which are governed by their own flag.\n */\n gate?: ValidateFixScope;\n}\n\n/** Default resolution backfilled onto closed items with no derivable source text. */\nconst DEFAULT_RESOLUTION_BACKFILL_VALUE = \"completed\";\n\nfunction quoteForCommand(value: string): string {\n return `\"${value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll('\"', '\\\\\"')}\"`;\n}\n\nfunction toMeaningfulValue(value: string | undefined): string | undefined {\n const trimmed = value?.trim();\n return trimmed !== undefined && trimmed.length > 0 ? trimmed : undefined;\n}\n\n/**\n * Documents the resolution backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface ResolutionBackfillRow {\n id: string;\n /** Resolution-check missing field keys for this closed item. */\n missing_fields: readonly string[];\n /** The item's close_reason, when present (preferred derivation source). */\n close_reason?: string;\n}\n\n/**\n * Plan resolution backfills for closed items flagged by the resolution check.\n * Only the `resolution` field is mechanical enough to auto-fix: it derives\n * from the item's own `close_reason` when present and falls back to the\n * `\"completed\"` default. `expected_result` / `actual_result` stay hint-only —\n * no deterministic source text exists for them.\n */\nexport function planResolutionBackfillFixes(rows: readonly ResolutionBackfillRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n if (!row.missing_fields.includes(\"resolution\")) {\n continue;\n }\n const value = toMeaningfulValue(row.close_reason) ?? DEFAULT_RESOLUTION_BACKFILL_VALUE;\n fixes.push({\n item_id: row.id,\n check: \"resolution\",\n field: \"resolution\",\n kind: \"set_resolution\",\n value,\n command: `pm update ${row.id} --resolution ${quoteForCommand(value)}`,\n gate: \"resolution\",\n });\n }\n return fixes;\n}\n\n/**\n * Documents the close reason backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseReasonBackfillRow {\n id: string;\n /** The item's resolution, when present (the only derivation source). */\n resolution?: string;\n}\n\n/**\n * Plan close_reason backfills for closed items flagged by the metadata check.\n * Only derivable when the item already carries a resolution; items missing\n * both stay hint-only (any synthesized reason would be fabricated, not\n * derived).\n */\nexport function planCloseReasonBackfillFixes(rows: readonly CloseReasonBackfillRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n const value = toMeaningfulValue(row.resolution);\n if (value === undefined) {\n continue;\n }\n fixes.push({\n item_id: row.id,\n check: \"metadata\",\n field: \"close_reason\",\n kind: \"set_close_reason\",\n value,\n command: `pm update ${row.id} --close-reason ${quoteForCommand(value)}`,\n gate: \"metadata\",\n });\n }\n return fixes;\n}\n\n/**\n * Documents the estimate backfill row payload exchanged by command, SDK, and package integrations.\n */\nexport interface EstimateBackfillRow {\n id: string;\n /** Item type, used to resolve the per-type default estimate. */\n type?: string;\n}\n\n/**\n * Plan estimate backfills for items flagged by the metadata check as missing\n * `estimated_minutes` (GH-212). The value is a config-driven per-type default\n * (overrides > built-in map > fallback), never a derived fact — so these fixes\n * carry `gate: \"estimates\"`, an opt-in scope that is NOT granted by default.\n * `overrides` is the already-normalized `validation.estimate_defaults_by_type`\n * map; pass `undefined`/`{}` to use the built-in defaults.\n */\nexport function planEstimateBackfillFixes(\n rows: readonly EstimateBackfillRow[],\n overrides?: Readonly<Record<string, number>>,\n): ValidateFixRecord[] {\n return rows.map((row) => {\n const minutes = resolveEstimateDefaultMinutes(row.type, overrides);\n return {\n item_id: row.id,\n check: \"metadata\" as const,\n field: \"estimated_minutes\",\n kind: \"set_estimate\" as const,\n value: String(minutes),\n command: `pm update ${row.id} --estimate ${minutes}`,\n gate: \"estimates\" as const,\n };\n });\n}\n\n/**\n * Documents the terminal parent fix row payload exchanged by command, SDK, and package integrations.\n */\nexport interface TerminalParentFixRow {\n id: string;\n parent_id: string;\n /** The terminal parent's own parent, when one exists. */\n grandparent_id?: string;\n /** True when the grandparent exists and is NOT terminal (safe reparent target). */\n grandparent_active?: boolean;\n}\n\n/**\n * Plan lifecycle fixes for active items whose parent is terminal (pm-8jss /\n * GH-168). When the terminal parent has an active grandparent, the child is\n * reparented one level up (it stays inside the same hierarchy); otherwise the\n * parent link is cleared so the item surfaces as unparented active work.\n * Either way the item itself is never closed or mutated beyond `parent` —\n * and every fix carries `gate: \"lifecycle\"` so it is only applied under an\n * explicit `--fix-scope lifecycle`.\n */\nexport function planTerminalParentFixes(rows: readonly TerminalParentFixRow[]): ValidateFixRecord[] {\n return rows.map((row) => {\n if (row.grandparent_id !== undefined && row.grandparent_active === true) {\n return {\n item_id: row.id,\n check: \"lifecycle\" as const,\n field: \"parent\",\n kind: \"reparent\" as const,\n parent_id: row.grandparent_id,\n command: `pm update ${row.id} --parent ${row.grandparent_id}`,\n gate: \"lifecycle\" as const,\n };\n }\n return {\n item_id: row.id,\n check: \"lifecycle\" as const,\n field: \"parent\",\n kind: \"unset_parent\" as const,\n command: `pm update ${row.id} --unset parent`,\n gate: \"lifecycle\" as const,\n };\n });\n}\n\n/**\n * Documents the stale link prune row payload exchanged by command, SDK, and package integrations.\n */\nexport interface StaleLinkPruneRow {\n item_id: string;\n path: string;\n link_kind: \"files\" | \"docs\";\n classification: \"moved\" | \"deleted\";\n}\n\n/**\n * Plan link prunes for `--prune-missing` (pm-0v2m / GH-184). Only links whose\n * stale path classified as `deleted` are pruned; `moved` links keep their\n * relink candidates in the files-check details instead of being dropped, so\n * recoverable link information is never destroyed. Link removal only — real\n * files are never touched.\n */\nexport function planStaleLinkPruneFixes(rows: readonly StaleLinkPruneRow[]): ValidateFixRecord[] {\n const fixes: ValidateFixRecord[] = [];\n for (const row of rows) {\n if (row.classification !== \"deleted\") {\n continue;\n }\n const noun = row.link_kind === \"files\" ? \"files\" : \"docs\";\n fixes.push({\n item_id: row.item_id,\n check: \"files\",\n field: row.link_kind,\n kind: row.link_kind === \"files\" ? \"prune_file_link\" : \"prune_doc_link\",\n path: row.path,\n command: `pm ${noun} ${row.item_id} --remove ${quoteForCommand(row.path)}`,\n });\n }\n return fixes;\n}\n\n/**\n * Resolve the granted `--fix-scope` set (repeatable and/or comma-separated).\n * With no explicit scopes the safe field-backfill scopes (metadata,\n * resolution) are granted; lifecycle must always be named explicitly. Unknown\n * values fail fast with the supported list.\n */\nexport function resolveGrantedFixScopes(rawScopes: readonly string[] | undefined): Set<ValidateFixScope> {\n const tokens = (rawScopes ?? [])\n .flatMap((raw) => raw.split(\",\"))\n .map((raw) => raw.trim())\n .filter((raw) => raw.length > 0);\n if (tokens.length === 0) {\n if (rawScopes !== undefined && rawScopes.length > 0) {\n throw new PmCliError(\n `--fix-scope values must not be empty. Supported values: ${SUPPORTED_FIX_SCOPES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n return new Set(DEFAULT_GRANTED_FIX_SCOPES);\n }\n const granted = new Set<ValidateFixScope>();\n for (const raw of tokens) {\n const normalized = raw.toLowerCase().replaceAll(\"-\", \"_\");\n if ((SUPPORTED_FIX_SCOPES as readonly string[]).includes(normalized)) {\n granted.add(normalized as ValidateFixScope);\n continue;\n }\n throw new PmCliError(\n `Unknown --fix-scope value \"${raw}\". Supported values: ${SUPPORTED_FIX_SCOPES.join(\", \")}.`,\n EXIT_CODE.USAGE,\n );\n }\n return granted;\n}\n\n/**\n * Split a fix plan into the records that may be applied under the granted\n * scopes and the gated records that were withheld. `--fix-scope` is an exact\n * allowlist: every `--auto-fix` record requires its gate scope in `granted`.\n * Ungated records (`--prune-missing` link prunes, governed by their own flag)\n * are always applicable.\n */\nexport function partitionFixesByGrant(\n fixes: readonly ValidateFixRecord[],\n granted: ReadonlySet<ValidateFixScope>,\n): { applicable: ValidateFixRecord[]; gated: ValidateFixRecord[] } {\n const applicable: ValidateFixRecord[] = [];\n const gated: ValidateFixRecord[] = [];\n for (const fix of fixes) {\n if (fix.gate !== undefined && !granted.has(fix.gate)) {\n gated.push(fix);\n } else {\n applicable.push(fix);\n }\n }\n return { applicable, gated };\n}\n\n/** Compact serialization of a fix for planned/applied output rows. */\nexport function toFixOutputRow(fix: ValidateFixRecord): Record<string, unknown> {\n return {\n item_id: fix.item_id,\n check: fix.check,\n field: fix.field,\n command: fix.command,\n ...(fix.gate !== undefined ? { gate: fix.gate } : {}),\n };\n}\n"],"names":[],"mappings":"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","debugId":"efc3e5f9-0d68-50a9-a99c-b86ddd13c4ed"}
|