@unbrained/pm-cli 2026.7.19 → 2026.7.20
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/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +2 -0
- package/CHANGELOG.md +36 -0
- package/dist/cli/commands/append.js +13 -6
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/calendar.d.ts +1 -1
- package/dist/cli/commands/calendar.js +2 -2
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/comments.js +2 -5
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +11 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +1 -1
- package/dist/cli/commands/context.js +2 -2
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/copy.js +5 -3
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.d.ts +3 -1
- package/dist/cli/commands/create.js +5 -3
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/merge.d.ts +8 -0
- package/dist/cli/commands/merge.js +12 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +1 -1
- package/dist/cli/commands/plan.js +2 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +5 -0
- package/dist/cli/commands/update-many.js +81 -6
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +5 -1
- package/dist/cli/commands/update.js +50 -4
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/register-list-query.js +14 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +61 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +5 -3
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/registration-helpers.js +4 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +365 -333
- package/dist/cli-bundle/chunks/{append-MBXHNWSX.js → append-E6V54WOQ.js} +5 -5
- package/dist/cli-bundle/chunks/append-NNJ3EFIT.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js → chunk-2BO4CA46.js} +14 -238
- package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js.map → chunk-2BO4CA46.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MQOSMBWV.js → chunk-3AO5VSDR.js} +25 -6
- package/dist/cli-bundle/chunks/chunk-3AO5VSDR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ODEIDKGW.js → chunk-3LPFHE3P.js} +596 -154
- package/dist/cli-bundle/chunks/chunk-3LPFHE3P.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js → chunk-3MCTMJXI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js → chunk-3P7UJQOX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js → chunk-3VY6MIEO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3EZZTFL2.js → chunk-4F6BWJ4J.js} +51 -43
- package/dist/cli-bundle/chunks/chunk-4F6BWJ4J.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VA3H7VVC.js → chunk-4L23AGQ7.js} +9 -7
- package/dist/cli-bundle/chunks/chunk-4L23AGQ7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js → chunk-4U4Z6AHI.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js → chunk-4XGJLADW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js → chunk-5IZJWSDB.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js → chunk-5NTE36LD.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js → chunk-5OK4UGFV.js} +5 -8
- package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js.map → chunk-5OK4UGFV.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H3YKUVDR.js → chunk-5UX66S6U.js} +26 -7
- package/dist/cli-bundle/chunks/chunk-5UX66S6U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js → chunk-6C2ZZX5Z.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js → chunk-6JUTHVQS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js → chunk-6VIJ7UA5.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-BBGR4FKQ.js → chunk-6XMUURSS.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-6XMUURSS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js → chunk-72LQ4TKV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WCBB6VI3.js → chunk-7AVEY74G.js} +8 -5
- package/dist/cli-bundle/chunks/chunk-7AVEY74G.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YG56M3NE.js → chunk-7DOJC3HS.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-7DOJC3HS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js → chunk-7WCE6Y64.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js → chunk-AF2CCM5U.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-P24ZU5QV.js → chunk-AOEOYL3S.js} +49 -12
- package/dist/cli-bundle/chunks/chunk-AOEOYL3S.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BZKE2O5V.js → chunk-BKIAH72N.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-BKIAH72N.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RWAIRGBC.js → chunk-C3KD7U3T.js} +12 -243
- package/dist/cli-bundle/chunks/chunk-C3KD7U3T.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js +334 -0
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TELI67UP.js → chunk-CQTQKUUV.js} +6 -9
- package/dist/cli-bundle/chunks/{chunk-TELI67UP.js.map → chunk-CQTQKUUV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZUCBPXNA.js → chunk-D6NXDNP3.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-D6NXDNP3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js → chunk-DAQ45GCS.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6V4T4RD3.js → chunk-DVDBQA3B.js} +79 -22
- package/dist/cli-bundle/chunks/chunk-DVDBQA3B.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js +249 -0
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZF52NVRT.js → chunk-E7ICD63T.js} +131 -179
- package/dist/cli-bundle/chunks/chunk-E7ICD63T.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js → chunk-EJDGV4GR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js → chunk-FDHPAVVB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KAE727L2.js → chunk-FSRHYUDA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FSRHYUDA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-46Z6FAVP.js → chunk-G3COA6GS.js} +51 -43
- package/dist/cli-bundle/chunks/chunk-G3COA6GS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A4FVWFZY.js → chunk-GFQP7HAZ.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-GFQP7HAZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2XPDCXK5.js → chunk-GIQSU6S2.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-GIQSU6S2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js → chunk-GROYI4RB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js → chunk-GSJSM5BJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js → chunk-GTLCVJOE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js → chunk-GV2262OF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-N2TEEOXJ.js → chunk-GVI6FAFG.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-GVI6FAFG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A5EQPNV7.js → chunk-GVT754PX.js} +44 -3
- package/dist/cli-bundle/chunks/chunk-GVT754PX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Y2VSGFT4.js → chunk-HB3P4M52.js} +22 -7
- package/dist/cli-bundle/chunks/chunk-HB3P4M52.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js → chunk-HCEBZNC3.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-EEECAV5M.js → chunk-HEWM6CEN.js} +80 -25
- package/dist/cli-bundle/chunks/chunk-HEWM6CEN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js → chunk-HQ3SB4CN.js} +21 -6
- package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js.map → chunk-HQ3SB4CN.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-U6RYD446.js → chunk-HRW7GF6T.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-D35WYXWC.js → chunk-HYW67VJ5.js} +6 -3
- package/dist/cli-bundle/chunks/chunk-HYW67VJ5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js → chunk-I577UHC7.js} +16 -9
- package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js.map → chunk-I577UHC7.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js → chunk-IAQE32BI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js → chunk-IJNK6WW2.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js +623 -0
- package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A3GAQLBH.js → chunk-IX677TRO.js} +75 -12
- package/dist/cli-bundle/chunks/chunk-IX677TRO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RLLOZAM2.js → chunk-IY6VZ3IW.js} +29 -8
- package/dist/cli-bundle/chunks/chunk-IY6VZ3IW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SVAWG7EE.js → chunk-J4FBIFU6.js} +45 -4
- package/dist/cli-bundle/chunks/chunk-J4FBIFU6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js → chunk-JAPE62Y5.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js → chunk-JGUKMMRS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js → chunk-JH2ZSLO3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js → chunk-JHJSFOAM.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js → chunk-JM6YAXTR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js → chunk-JSLT7WVE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js → chunk-K4CI6Y45.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js → chunk-KSPWRNVP.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js → chunk-KZEANWJS.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js.map → chunk-KZEANWJS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js → chunk-L7BH7IWU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js → chunk-LPEYZRUR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js → chunk-MYSS5H2A.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js.map → chunk-MYSS5H2A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js → chunk-NHT3F4WZ.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js → chunk-NLR32VFS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BDC4TW4B.js → chunk-OV7MSW3I.js} +15 -13
- package/dist/cli-bundle/chunks/chunk-OV7MSW3I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js → chunk-OWXOPDHD.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js +246 -0
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js → chunk-PEQGTJ5Q.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QFG4MB7P.js → chunk-POG76WWZ.js} +28 -7
- package/dist/cli-bundle/chunks/chunk-POG76WWZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MI3346YW.js → chunk-QANSTTC7.js} +129 -170
- package/dist/cli-bundle/chunks/chunk-QANSTTC7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js → chunk-QJKL5PHS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SBW7EQC4.js → chunk-QLZ643FM.js} +76 -13
- package/dist/cli-bundle/chunks/chunk-QLZ643FM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js → chunk-QWRVBJ4D.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js +106 -0
- package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js +344 -0
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js → chunk-R7QV7ICM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js → chunk-RDV4ZFYS.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js.map → chunk-RDV4ZFYS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js → chunk-RJO3YAFM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js → chunk-RMF7LMBS.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js.map → chunk-RMF7LMBS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MRXAHR4B.js → chunk-RZJLNXFG.js} +50 -13
- package/dist/cli-bundle/chunks/chunk-RZJLNXFG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DJAGYYCQ.js → chunk-SC2HMDGB.js} +19 -3
- package/dist/cli-bundle/chunks/chunk-SC2HMDGB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js → chunk-SF3DT5HJ.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-SG74J6MV.js +604 -0
- package/dist/cli-bundle/chunks/chunk-SG74J6MV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Q3K5XPAQ.js → chunk-SR3JOATZ.js} +18 -2
- package/dist/cli-bundle/chunks/chunk-SR3JOATZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js → chunk-SSKOQNMS.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js.map → chunk-SSKOQNMS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js → chunk-SZVB53Y3.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JBW2S2C6.js → chunk-T44FMVRL.js} +613 -157
- package/dist/cli-bundle/chunks/chunk-T44FMVRL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js → chunk-T6PPNM7V.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UE7LK3RE.js → chunk-THAOZG4U.js} +9 -7
- package/dist/cli-bundle/chunks/chunk-THAOZG4U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IGBBTPM5.js → chunk-TOBGV45Y.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-TOBGV45Y.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js → chunk-TVYYO5A7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js +109 -0
- package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js → chunk-UQLXSG72.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IDUTGRDM.js → chunk-URXVHN3L.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-URXVHN3L.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js → chunk-UVN66B3M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js → chunk-UX6SSO2I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JPWUZOMR.js → chunk-UZDQXNUB.js} +75 -20
- package/dist/cli-bundle/chunks/chunk-UZDQXNUB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js → chunk-UZLJOEAC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js → chunk-VDO2JMD4.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js → chunk-VQIHNHMJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js → chunk-WUVEBQW6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js.map → chunk-WUVEBQW6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js → chunk-WVA4DVNV.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js.map → chunk-WVA4DVNV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4M6RZJXF.js → chunk-WWNL6WMH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-WWNL6WMH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3KPNOZOH.js → chunk-X6K5XTTN.js} +78 -21
- package/dist/cli-bundle/chunks/chunk-X6K5XTTN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js → chunk-XJF7CDNH.js} +17 -10
- package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js.map → chunk-XJF7CDNH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AR24KW26.js → chunk-YBT7O4KT.js} +17 -112
- package/dist/cli-bundle/chunks/chunk-YBT7O4KT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CZA2DXCV.js → chunk-YQQNAKW3.js} +17 -105
- package/dist/cli-bundle/chunks/chunk-YQQNAKW3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js → chunk-YQWCZ5AC.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js.map → chunk-YQWCZ5AC.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js → chunk-ZOJ3LR7O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js → chunk-ZOY5K4D3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js → chunk-ZV2NTVMJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js → chunk-ZYPFOO3L.js} +9 -9
- package/dist/cli-bundle/chunks/close-O5QVZ6ET.js +12 -0
- package/dist/cli-bundle/chunks/{close-7NWA3GLA.js → close-QEMOYZN3.js} +5 -5
- package/dist/cli-bundle/chunks/close-many-SDA426VT.js +24 -0
- package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js → close-many-UTZANOCQ.js} +15 -14
- package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js → comments-LZN6FXXC.js} +7 -7
- package/dist/cli-bundle/chunks/comments-VBQ345ND.js +13 -0
- package/dist/cli-bundle/chunks/{copy-YDAMENCP.js → copy-DKTSSCK7.js} +4 -4
- package/dist/cli-bundle/chunks/copy-M7DDI6LS.js +9 -0
- package/dist/cli-bundle/chunks/{create-JSL6CXU3.js → create-GG4RBCGC.js} +11 -11
- package/dist/cli-bundle/chunks/create-JBC5KUW6.js +29 -0
- package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js → delete-LCS3VPDH.js} +4 -4
- package/dist/cli-bundle/chunks/delete-MD7YXQLH.js +10 -0
- package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js → deps-DELOO4TL.js} +6 -6
- package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js → deps-FI4O6NQS.js} +6 -6
- package/dist/cli-bundle/chunks/docs-2UYBP5D6.js +14 -0
- package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js → docs-6Z2MP526.js} +6 -6
- package/dist/cli-bundle/chunks/{files-XUUBQ76I.js → files-HEUGSJZL.js} +6 -6
- package/dist/cli-bundle/chunks/{files-PVWEPT5J.js → files-HKEAN5MA.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js → focus-7SOUT5PZ.js} +5 -5
- package/dist/cli-bundle/chunks/focus-DRQ6FQH6.js +10 -0
- package/dist/cli-bundle/chunks/history-compact-65YVN5DB.js +17 -0
- package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js → history-compact-7NDVP3PT.js} +7 -6
- package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js → history-redact-7YBL4XSG.js} +5 -4
- package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js → history-redact-IZGNJBU4.js} +5 -4
- package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js → history-repair-7M4PYQUH.js} +8 -6
- package/dist/cli-bundle/chunks/history-repair-GNGETJLI.js +18 -0
- package/dist/cli-bundle/chunks/learnings-3YXDRWFT.js +13 -0
- package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js → learnings-ALC6IMNL.js} +7 -7
- package/dist/cli-bundle/chunks/notes-7JMLQ447.js +13 -0
- package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js → notes-JFCLTC5C.js} +7 -7
- package/dist/cli-bundle/chunks/plan-KOIPWVOZ.js +26 -0
- package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js → plan-T3XB3WTK.js} +12 -12
- package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js → profile-OILJHKUW.js} +12 -11
- package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js → profile-RJXA7PGS.js} +12 -11
- package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js → register-list-query-CFVG75P3.js} +30 -21
- package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js.map → register-list-query-CFVG75P3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js → register-list-query-E7UVY4TN.js} +29 -20
- package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js.map → register-list-query-E7UVY4TN.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-BLEWM5I6.js → register-mutation-4VJTXBZW.js} +86 -32
- package/dist/cli-bundle/chunks/register-mutation-4VJTXBZW.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-OTYHR7J6.js → register-mutation-IQ55E25C.js} +78 -33
- package/dist/cli-bundle/chunks/register-mutation-IQ55E25C.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-AMCUFYEW.js → register-operations-AR7RMX4W.js} +42 -38
- package/dist/cli-bundle/chunks/register-operations-AR7RMX4W.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-MRLHOZYR.js → register-operations-NOLZGORC.js} +41 -37
- package/dist/cli-bundle/chunks/register-operations-NOLZGORC.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js → register-setup-BB77VUEE.js} +17 -16
- package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js.map → register-setup-BB77VUEE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js → register-setup-EYZ7VTPZ.js} +15 -14
- package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js.map → register-setup-EYZ7VTPZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/restore-L6IAGOD7.js +15 -0
- package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js → restore-ZH65GZFB.js} +7 -6
- package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js → schema-4ERWM5QJ.js} +7 -6
- package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js → schema-55DL3Q52.js} +7 -6
- package/dist/cli-bundle/chunks/{update-DWFXXJKP.js → update-FW6FKDOP.js} +15 -15
- package/dist/cli-bundle/chunks/update-TJHSPRPT.js +23 -0
- package/dist/cli-bundle/chunks/update-many-NNALYQCN.js +35 -0
- package/dist/cli-bundle/chunks/update-many-PWXX5WHO.js +39 -0
- package/dist/cli-bundle/main.js +62 -59
- package/dist/cli-bundle/main.js.map +1 -1
- package/dist/cli-bundle/sdk-runtime.js +62 -59
- package/dist/cli-bundle/sdk-testing.js +8 -8
- package/dist/cli-bundle/sdk.js +327 -57
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/config/nested-settings.d.ts +2 -0
- package/dist/core/config/nested-settings.js +18 -2
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +38 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +1 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/item/id.d.ts +19 -2
- package/dist/core/item/id.js +27 -6
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/parse.d.ts +7 -0
- package/dist/core/item/parse.js +48 -2
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/schema/item-types-file.d.ts +2 -2
- package/dist/core/schema/item-types-file.js +2 -2
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-schema.d.ts +3 -3
- package/dist/core/schema/runtime-schema.js +2 -2
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/type-workflows.d.ts +2 -2
- package/dist/core/schema/type-workflows.js +2 -2
- package/dist/core/schema/type-workflows.js.map +1 -1
- package/dist/core/shared/constants.js +5 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +8 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +8 -2
- package/dist/core/store/settings.js.map +1 -1
- package/dist/sdk/annotations.js +24 -2
- package/dist/sdk/annotations.js.map +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +3 -3
- package/dist/sdk/cli-bootstrap.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +22 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +17 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +512 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +21 -11
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +13 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -0
- package/dist/sdk/cli-contracts/tool-schema.js +14 -10
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +69 -0
- package/dist/sdk/cli-contracts/typed-action-inputs.js +5 -0
- package/dist/sdk/cli-contracts/typed-action-inputs.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +4 -3
- package/dist/sdk/cli-contracts.js +5 -5
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/extension/describe.d.ts +1 -1
- package/dist/sdk/extension/describe.js +2 -2
- package/dist/sdk/extension/describe.js.map +1 -1
- package/dist/sdk/extension/install-runtime.js +5 -3
- package/dist/sdk/extension/install-runtime.js.map +1 -1
- package/dist/sdk/extension.d.ts +2 -2
- package/dist/sdk/extension.js +2 -2
- package/dist/sdk/extension.js.map +1 -1
- package/dist/sdk/governance/gc.d.ts +14 -1
- package/dist/sdk/governance/gc.js +38 -2
- package/dist/sdk/governance/gc.js.map +1 -1
- package/dist/sdk/governance/storage-integrity.d.ts +84 -0
- package/dist/sdk/governance/storage-integrity.js +240 -0
- package/dist/sdk/governance/storage-integrity.js.map +1 -0
- package/dist/sdk/governance/validate.d.ts +3 -1
- package/dist/sdk/governance/validate.js +56 -2
- package/dist/sdk/governance/validate.js.map +1 -1
- package/dist/sdk/history-read.d.ts +1 -1
- package/dist/sdk/history-read.js +2 -2
- package/dist/sdk/history-read.js.map +1 -1
- package/dist/sdk/history-repair.d.ts +36 -0
- package/dist/sdk/history-repair.js +69 -4
- package/dist/sdk/history-repair.js.map +1 -1
- package/dist/sdk/index.d.ts +5 -2
- package/dist/sdk/index.js +5 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/init.js +3 -3
- package/dist/sdk/init.js.map +1 -1
- package/dist/sdk/item-transaction.d.ts +131 -0
- package/dist/sdk/item-transaction.js +280 -0
- package/dist/sdk/item-transaction.js.map +1 -0
- package/dist/sdk/merge/driver.d.ts +75 -0
- package/dist/sdk/merge/driver.js +166 -0
- package/dist/sdk/merge/driver.js.map +1 -0
- package/dist/sdk/merge/index.d.ts +11 -0
- package/dist/sdk/merge/index.js +15 -0
- package/dist/sdk/merge/index.js.map +1 -0
- package/dist/sdk/merge/install.d.ts +90 -0
- package/dist/sdk/merge/install.js +318 -0
- package/dist/sdk/merge/install.js.map +1 -0
- package/dist/sdk/merge/three-way.d.ts +126 -0
- package/dist/sdk/merge/three-way.js +545 -0
- package/dist/sdk/merge/three-way.js.map +1 -0
- package/dist/sdk/query/list.d.ts +19 -2
- package/dist/sdk/query/list.js +5 -2
- package/dist/sdk/query/list.js.map +1 -1
- package/dist/sdk/runtime.d.ts +17 -14
- package/dist/sdk/runtime.js +5 -5
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/schema.d.ts +2 -2
- package/dist/sdk/schema.js +29 -2
- package/dist/sdk/schema.js.map +1 -1
- package/dist/sdk/stats.d.ts +1 -1
- package/dist/sdk/stats.js +2 -2
- package/dist/sdk/stats.js.map +1 -1
- package/dist/sdk/workspace-transaction-gc.d.ts +46 -0
- package/dist/sdk/workspace-transaction-gc.js +155 -0
- package/dist/sdk/workspace-transaction-gc.js.map +1 -0
- package/dist/sdk/workspace.d.ts +28 -4
- package/dist/sdk/workspace.js +61 -15
- package/dist/sdk/workspace.js.map +1 -1
- package/dist/types.d.ts +11 -7
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +58 -47
- package/docs/COMMANDS.md +7 -0
- package/docs/CONFIGURATION.md +2 -0
- package/docs/MERGE_SAFETY.md +99 -0
- package/docs/README.md +1 -0
- package/docs/SDK.md +56 -0
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/append-XUYF7NON.js +0 -11
- package/dist/cli-bundle/chunks/chunk-2XPDCXK5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3EZZTFL2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3KPNOZOH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-46Z6FAVP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4M6RZJXF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6V4T4RD3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-A3GAQLBH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A4FVWFZY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A5EQPNV7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AR24KW26.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BBGR4FKQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BDC4TW4B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BZKE2O5V.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CZA2DXCV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-D35WYXWC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DJAGYYCQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EEECAV5M.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-H3YKUVDR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IDUTGRDM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IGBBTPM5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JBW2S2C6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JPWUZOMR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KAE727L2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MI3346YW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MQOSMBWV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MRXAHR4B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N2TEEOXJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ODEIDKGW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-P24ZU5QV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Q3K5XPAQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QFG4MB7P.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RLLOZAM2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RWAIRGBC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SBW7EQC4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SVAWG7EE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UE7LK3RE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VA3H7VVC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WCBB6VI3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y2VSGFT4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YG56M3NE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZF52NVRT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZUCBPXNA.js.map +0 -7
- package/dist/cli-bundle/chunks/close-ZZCDDWJT.js +0 -12
- package/dist/cli-bundle/chunks/close-many-QCZHFCON.js +0 -23
- package/dist/cli-bundle/chunks/comments-FMQNYPSZ.js +0 -13
- package/dist/cli-bundle/chunks/copy-GI3RCVZP.js +0 -9
- package/dist/cli-bundle/chunks/create-LXMLYJNM.js +0 -29
- package/dist/cli-bundle/chunks/delete-5DFAXJNI.js +0 -10
- package/dist/cli-bundle/chunks/docs-KCWPLQOV.js +0 -14
- package/dist/cli-bundle/chunks/focus-3EJVFI3D.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-JHYVDYLW.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-REMI7DDI.js +0 -16
- package/dist/cli-bundle/chunks/learnings-O6V5WDCV.js +0 -13
- package/dist/cli-bundle/chunks/notes-ZSZREWZA.js +0 -13
- package/dist/cli-bundle/chunks/plan-EZW2YDDY.js +0 -26
- package/dist/cli-bundle/chunks/register-mutation-BLEWM5I6.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-OTYHR7J6.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-AMCUFYEW.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-MRLHOZYR.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-A55MLFAI.js +0 -14
- package/dist/cli-bundle/chunks/update-5DTSCWVF.js +0 -23
- package/dist/cli-bundle/chunks/update-many-6T4ZLZS7.js +0 -34
- package/dist/cli-bundle/chunks/update-many-MYRK6VBJ.js +0 -38
- /package/dist/cli-bundle/chunks/{append-MBXHNWSX.js.map → append-E6V54WOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-XUYF7NON.js.map → append-NNJ3EFIT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js.map → chunk-3MCTMJXI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js.map → chunk-3P7UJQOX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js.map → chunk-3VY6MIEO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js.map → chunk-4U4Z6AHI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js.map → chunk-4XGJLADW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js.map → chunk-5IZJWSDB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js.map → chunk-5NTE36LD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js.map → chunk-6C2ZZX5Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js.map → chunk-6JUTHVQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js.map → chunk-6VIJ7UA5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js.map → chunk-72LQ4TKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js.map → chunk-7WCE6Y64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js.map → chunk-AF2CCM5U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js.map → chunk-DAQ45GCS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js.map → chunk-EJDGV4GR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js.map → chunk-FDHPAVVB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js.map → chunk-GROYI4RB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js.map → chunk-GSJSM5BJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js.map → chunk-GTLCVJOE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js.map → chunk-GV2262OF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js.map → chunk-HCEBZNC3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U6RYD446.js.map → chunk-HRW7GF6T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js.map → chunk-IAQE32BI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js.map → chunk-IJNK6WW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js.map → chunk-JAPE62Y5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js.map → chunk-JGUKMMRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js.map → chunk-JH2ZSLO3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js.map → chunk-JHJSFOAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js.map → chunk-JM6YAXTR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js.map → chunk-JSLT7WVE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js.map → chunk-K4CI6Y45.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js.map → chunk-KSPWRNVP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js.map → chunk-L7BH7IWU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js.map → chunk-LPEYZRUR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js.map → chunk-NHT3F4WZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js.map → chunk-NLR32VFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js.map → chunk-OWXOPDHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js.map → chunk-PEQGTJ5Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js.map → chunk-QJKL5PHS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js.map → chunk-QWRVBJ4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js.map → chunk-R7QV7ICM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js.map → chunk-RJO3YAFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js.map → chunk-SF3DT5HJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js.map → chunk-SZVB53Y3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js.map → chunk-T6PPNM7V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js.map → chunk-TVYYO5A7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js.map → chunk-UQLXSG72.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js.map → chunk-UVN66B3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js.map → chunk-UX6SSO2I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js.map → chunk-UZLJOEAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js.map → chunk-VDO2JMD4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js.map → chunk-VQIHNHMJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js.map → chunk-ZOJ3LR7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js.map → chunk-ZOY5K4D3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js.map → chunk-ZV2NTVMJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js.map → chunk-ZYPFOO3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-ZZCDDWJT.js.map → close-O5QVZ6ET.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-7NWA3GLA.js.map → close-QEMOYZN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-QCZHFCON.js.map → close-many-SDA426VT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js.map → close-many-UTZANOCQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js.map → comments-LZN6FXXC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-FMQNYPSZ.js.map → comments-VBQ345ND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-YDAMENCP.js.map → copy-DKTSSCK7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-GI3RCVZP.js.map → copy-M7DDI6LS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-JSL6CXU3.js.map → create-GG4RBCGC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-LXMLYJNM.js.map → create-JBC5KUW6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js.map → delete-LCS3VPDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-5DFAXJNI.js.map → delete-MD7YXQLH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js.map → deps-DELOO4TL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js.map → deps-FI4O6NQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-KCWPLQOV.js.map → docs-2UYBP5D6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js.map → docs-6Z2MP526.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-XUUBQ76I.js.map → files-HEUGSJZL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-PVWEPT5J.js.map → files-HKEAN5MA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js.map → focus-7SOUT5PZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-3EJVFI3D.js.map → focus-DRQ6FQH6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-JHYVDYLW.js.map → history-compact-65YVN5DB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js.map → history-compact-7NDVP3PT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js.map → history-redact-7YBL4XSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js.map → history-redact-IZGNJBU4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js.map → history-repair-7M4PYQUH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-REMI7DDI.js.map → history-repair-GNGETJLI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-O6V5WDCV.js.map → learnings-3YXDRWFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js.map → learnings-ALC6IMNL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-ZSZREWZA.js.map → notes-7JMLQ447.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js.map → notes-JFCLTC5C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-EZW2YDDY.js.map → plan-KOIPWVOZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js.map → plan-T3XB3WTK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js.map → profile-OILJHKUW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js.map → profile-RJXA7PGS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-A55MLFAI.js.map → restore-L6IAGOD7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js.map → restore-ZH65GZFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js.map → schema-4ERWM5QJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js.map → schema-55DL3Q52.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-DWFXXJKP.js.map → update-FW6FKDOP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-5DTSCWVF.js.map → update-TJHSPRPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-6T4ZLZS7.js.map → update-many-NNALYQCN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-MYRK6VBJ.js.map → update-many-PWXX5WHO.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 {\n runActiveOnReadHooks,\n runActiveOnWriteHooks,\n} from \"../extensions/index.js\";\nimport {\n GOVERNANCE_PRESET_DEFAULTS,\n SETTINGS_DEFAULTS,\n} 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<\n PmSettings[\"schema\"][\"type_workflows\"]\n >;\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<\n PmSettings[\"schema\"][\"type_workflows\"]\n >;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/** Documents the settings read metadata payload exchanged by command, SDK, and package integrations. */\nexport interface SettingsReadMetadata {\n /** Whether explicit item format applies to this operation. */\n has_explicit_item_format: boolean;\n}\n\n/** Documents the settings read result payload exchanged by command, SDK, and package integrations. */\nexport interface SettingsReadResult {\n /** Value that configures or reports settings for this contract. */\n settings: PmSettings;\n /** Value that configures or reports metadata for this contract. */\n metadata: SettingsReadMetadata;\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(\n preset: Exclude<GovernancePreset, \"custom\">,\n): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(\n value: GovernancePreset | undefined,\n): GovernancePreset {\n if (\n value === \"minimal\" ||\n value === \"default\" ||\n value === \"strict\" ||\n value === \"custom\"\n ) {\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\"\n ? governance.create_default_type.trim()\n : 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(\n governance: GovernanceSettings,\n): 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<\n Pick<\n GovernanceSettings,\n \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\"\n >\n> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\"\n ? rawGovernance.create_default_type.trim()\n : undefined;\n const extras: Partial<\n Pick<\n GovernanceSettings,\n \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\"\n >\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/** Implements resolve governance knobs for the public runtime surface of this module. */\nexport function resolveGovernanceKnobs(\n settings:\n | Pick<PmSettings, \"governance\">\n | { 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 =\n extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement:\n rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default:\n rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default:\n rawGovernance.close_validation_default ??\n baseline.close_validation_default,\n parent_reference:\n rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile:\n rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock:\n rawGovernance.force_required_for_stale_lock ??\n baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason =\n 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(\n value: unknown,\n): SearchMutationRefreshPolicy {\n if (\n value === \"cache_only\" ||\n value === \"semantic_configured\" ||\n value === \"semantic_auto\"\n ) {\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 (\n typeof value === \"number\" &&\n Number.isFinite(value) &&\n Number.isInteger(value) &&\n value > 0\n ) {\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\n ? truncated\n : 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)\n ? sourceSchema?.statuses\n : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields)\n ? sourceSchema?.fields\n : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows)\n ? sourceSchema?.type_workflows\n : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(\n parsedSettings.item_types?.definitions,\n ),\n source_item_type_definitions: normalizeItemTypeDefinitions(\n parsedSettings.item_types?.definitions,\n ),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses\n ? structuredClone(sourceStatuses)\n : [],\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\n ? structuredClone(sourceTypeWorkflows)\n : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(\n runtimeSettings.item_types?.definitions,\n ),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(\n runtimeSettings.schema.type_workflows ?? [],\n ),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot,\n): void {\n Object.defineProperty(\n settings as unknown as Record<PropertyKey, unknown>,\n SETTINGS_PERSIST_SOURCE_SYMBOL,\n {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n },\n );\n}\n\nfunction getSettingsPersistSourceSnapshot(\n settings: PmSettings,\n): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[\n SETTINGS_PERSIST_SOURCE_SYMBOL\n ];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(\n result: SettingsReadResult,\n): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(\n clonedSettings,\n structuredClone(persistSource),\n );\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(\n pmRoot: string,\n schema: PmSettings[\"schema\"],\n settingsPath: string,\n): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.types,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.statuses,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.fields,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.workflows,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows,\n ),\n ];\n}\n\nasync function cacheSettingsReadResult(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n): 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(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<\n ReturnType<typeof collectSettingsReadCacheSignatures>\n>;\n\nfunction findSettingsReadCacheSignature(\n signatures: SettingsReadCacheSignatures,\n targetPath: string,\n) {\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 =\n await collectSettingsReadCacheSignatures(trackedPaths);\n if (\n !selectedSettingsReadCacheSignaturesEqual(\n stableSignatures,\n currentSignatures,\n stablePaths,\n )\n ) {\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(\n settings.item_types?.definitions,\n );\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(\n currentItemTypeDefinitions,\n source.runtime_item_type_definitions,\n );\n const schemaStatusesUnchanged = stableValueEquals(\n normalizedSchema.statuses,\n source.runtime_schema_statuses,\n );\n const schemaFieldsUnchanged = stableValueEquals(\n normalizedSchema.fields,\n source.runtime_schema_fields,\n );\n const schemaTypeWorkflowsUnchanged = stableValueEquals(\n currentTypeWorkflows,\n source.runtime_schema_type_workflows,\n );\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 [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\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:\n typeof value?.declined_at === \"string\"\n ? value.declined_at\n : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" &&\n Number.isInteger(templateVersion) &&\n templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(\n value?.last_checked_files ?? defaults.last_checked_files,\n ),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeExtensionPolicyMode(\n value: ExtensionPolicyMode | undefined,\n): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(\n value: ExtensionTrustMode | undefined,\n): 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(\n value: ExtensionSandboxProfile | undefined,\n): 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(\n override.sandbox_profile,\n );\n }\n const allowedCapabilities = normalizeLowerStringList(\n override.allowed_capabilities,\n );\n const blockedCapabilities = normalizeLowerStringList(\n override.blocked_capabilities,\n );\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) =>\n left.name.localeCompare(right.name),\n );\n}\n\nfunction normalizePmMaxVersionExceededModeValue(\n value: unknown,\n): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/** Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer override object) through settings normalization. Unset/invalid values are omitted so existing settings.json files round-trip byte-identically and the loader applies its safe default (\"block\"). */\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(\n policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key],\n );\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(\n policy?.pm_max_version_exceeded_mode,\n );\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined\n ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode }\n : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeExtensionPolicyList(\n policy,\n \"trusted_extensions\",\n ),\n default_sandbox_profile: normalizeExtensionSandboxProfile(\n policy?.default_sandbox_profile,\n ),\n allowed_extensions: normalizeExtensionPolicyList(\n policy,\n \"allowed_extensions\",\n ),\n blocked_extensions: normalizeExtensionPolicyList(\n policy,\n \"blocked_extensions\",\n ),\n allowed_capabilities: normalizeExtensionPolicyList(\n policy,\n \"allowed_capabilities\",\n ),\n blocked_capabilities: normalizeExtensionPolicyList(\n policy,\n \"blocked_capabilities\",\n ),\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 ??\n SETTINGS_DEFAULTS.extensions.policy.extension_overrides,\n ),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(\n values: string[] | undefined,\n): ValidateMetadataRequiredField[] {\n const normalized = [\n ...new Set(\n (values ?? []).map((value) =>\n value.trim().toLowerCase().replaceAll(\"-\", \"_\"),\n ),\n ),\n ]\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(\n values: string[] | undefined,\n): string[] {\n return [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\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)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\nfunction buildValidationSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n governance: GovernanceSettings,\n): 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(\n settings.validation?.metadata_required_fields,\n ),\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:\n 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:\n 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(\n settings.validation?.estimate_defaults_by_type,\n ),\n };\n}\n\nfunction buildTelemetrySettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"telemetry\"] {\n return {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed:\n settings.telemetry?.first_run_prompt_completed ??\n defaults.telemetry.first_run_prompt_completed,\n capture_level:\n settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id:\n settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days:\n settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n };\n}\n\nfunction buildSearchSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"search\"] {\n return {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(\n settings.search?.mutation_refresh_policy,\n ),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...settings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(\n settings.search?.query_expansion?.enabled,\n ),\n provider: normalizeSearchQueryExpansionProvider(\n settings.search?.query_expansion?.provider,\n ),\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(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"vector_store\"] {\n return {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(\n settings.vector_store.collection_name,\n ),\n qdrant: {\n ...defaults.vector_store.qdrant,\n ...settings.vector_store.qdrant,\n },\n lancedb: {\n ...defaults.vector_store.lancedb,\n ...settings.vector_store.lancedb,\n },\n };\n}\n\nfunction normalizeSettingsItemFormat(\n settings: ParsedSettings,\n defaults: PmSettings,\n): 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(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"context\"] {\n return {\n default_depth:\n settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit:\n settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days:\n settings.context?.stale_threshold_days ??\n defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...settings.context?.sections,\n },\n };\n}\n\nfunction buildProviderSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"providers\"] {\n return {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n };\n}\n\n/** Implements normalize item type definitions for the public runtime surface of this module. */\nexport function normalizeItemTypeDefinitions(\n definitions: ItemTypeDefinition[] | undefined,\n): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter(\n (definition): definition is ItemTypeDefinition => definition !== null,\n );\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) =>\n left.name.localeCompare(right.name),\n );\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: [\n ...(settings.workflow?.definition_of_done ??\n defaults.workflow.definition_of_done),\n ],\n },\n testing: {\n record_results_to_items:\n settings.testing?.record_results_to_items ??\n defaults.testing.record_results_to_items,\n },\n telemetry: buildTelemetrySettings(settings, defaults),\n agent_guidance: normalizeAgentGuidanceSettings(\n settings.agent_guidance ?? defaults.agent_guidance,\n ),\n item_types: {\n definitions: normalizeItemTypeDefinitions(\n settings.item_types?.definitions,\n ),\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(\n settings.extensions.policy ?? defaults.extensions.policy,\n ),\n },\n search: buildSearchSettings(settings, defaults),\n providers: buildProviderSettings(settings, defaults),\n vector_store: buildVectorStoreSettings(settings, defaults),\n };\n}\n\nfunction orderSerializedSettingsSections(\n ordered: Record<string, unknown>,\n): void {\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\n \"ttl_seconds\",\n \"wait_ms\",\n ]);\n ordered.checkpoints = orderObject(\n ordered.checkpoints as Record<string, unknown>,\n [\"retention_days\"],\n );\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\n \"default_format\",\n ]);\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\n \"missing_stream\",\n \"compact_policy\",\n ]);\n ordered.validation = orderObject(\n ordered.validation as Record<string, unknown>,\n [\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 );\n ordered.governance = orderObject(\n ordered.governance as Record<string, unknown>,\n [\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 );\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\n \"definition_of_done\",\n ]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\n \"record_results_to_items\",\n ]);\n ordered.telemetry = orderObject(\n ordered.telemetry as Record<string, unknown>,\n [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ],\n );\n ordered.agent_guidance = orderObject(\n ordered.agent_guidance as Record<string, unknown>,\n [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ],\n );\n ordered.item_types = orderObject(\n ordered.item_types as Record<string, unknown>,\n [\"definitions\"],\n );\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 [\n \"draft_status\",\n \"open_status\",\n \"in_progress_status\",\n \"blocked_status\",\n \"close_status\",\n \"canceled_status\",\n ],\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 [\n \"hierarchy\",\n \"activity\",\n \"progress\",\n \"blockers\",\n \"files\",\n \"workload\",\n \"staleness\",\n \"tests\",\n ],\n );\n ordered.extensions = orderObject(\n ordered.extensions as Record<string, unknown>,\n [\"enabled\", \"disabled\", \"policy\"],\n );\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 (\n (ordered.extensions as Record<string, unknown>).policy as Record<\n string,\n unknown\n >\n ).extension_overrides = arrayOrEmpty(\n (\n (ordered.extensions as Record<string, unknown>).policy as Record<\n string,\n unknown\n >\n ).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(\n ordered.providers as Record<string, unknown>,\n [\"openai\", \"ollama\"],\n );\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(\n ordered.vector_store as Record<string, unknown>,\n [\"adapter\", \"collection_name\", \"qdrant\", \"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(\n settings.checkpoints,\n SETTINGS_DEFAULTS.checkpoints,\n ),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(\n settings.validation,\n SETTINGS_DEFAULTS.validation,\n ),\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(\n settings.agent_guidance,\n SETTINGS_DEFAULTS.agent_guidance,\n ),\n item_types: valueOrDefault(\n settings.item_types,\n SETTINGS_DEFAULTS.item_types,\n ),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(\n settings.extensions,\n SETTINGS_DEFAULTS.extensions,\n ),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(\n settings.vector_store,\n SETTINGS_DEFAULTS.vector_store,\n ),\n } as PmSettings;\n}\n\nfunction buildSerializedValidationSettings(\n baseSettings: PmSettings,\n governance: GovernanceSettings,\n): PmSettings[\"validation\"] {\n return {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(\n baseSettings.validation?.metadata_required_fields,\n ),\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:\n normalizeValidationPatternList(\n baseSettings.validation\n ?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation\n .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:\n normalizeValidationPatternList(\n baseSettings.validation\n ?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation\n .lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(\n baseSettings.validation?.estimate_defaults_by_type,\n ),\n };\n}\n\nfunction buildSerializedSearchSettings(\n baseSettings: PmSettings,\n): PmSettings[\"search\"] {\n return {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(\n baseSettings.search?.mutation_refresh_policy,\n ),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...baseSettings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(\n baseSettings.search?.query_expansion?.enabled,\n ),\n provider: normalizeSearchQueryExpansionProvider(\n baseSettings.search?.query_expansion?.provider,\n ),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...baseSettings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(\n baseSettings.search?.rerank?.enabled,\n ),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildSerializedContextSettings(\n baseSettings: PmSettings,\n): PmSettings[\"context\"] {\n return {\n default_depth:\n baseSettings.context?.default_depth ??\n SETTINGS_DEFAULTS.context.default_depth,\n activity_limit:\n baseSettings.context?.activity_limit ??\n SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days:\n baseSettings.context?.stale_threshold_days ??\n SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...baseSettings.context?.sections,\n },\n };\n}\n\nfunction buildSerializedVectorStoreSettings(\n baseSettings: PmSettings,\n): PmSettings[\"vector_store\"] {\n return {\n ...baseSettings.vector_store,\n adapter:\n baseSettings.vector_store?.adapter ??\n SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(\n baseSettings.vector_store?.collection_name,\n ),\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<\n typeof resolvePersistedFileBackedSchemaSections\n >,\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/** Implements serialize settings for the public runtime surface of this module. */\nexport function serializeSettings(\n settings: PmSettings,\n options: SerializeSettingsOptions = {},\n): string {\n const baseSettings = buildSerializeBaseSettings(settings);\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(\n baseSettings,\n options.persist_source,\n );\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/** Implements read settings with metadata for the public runtime surface of this module. */\nexport async function readSettingsWithMetadata(\n pmRoot: string,\n): 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(\n cachedResult.tracked_paths,\n );\n if (\n settingsReadCacheSignaturesEqual(\n currentSignatures,\n cachedResult.signatures,\n )\n ) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([\n settingsPath,\n ]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsOnlySignatures,\n [settingsPath],\n );\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([\n settingsPath,\n ]);\n if (\n !settingsReadCacheSignaturesEqual(\n settingsOnlySignatures,\n settingsSignaturesAfterRead,\n )\n ) {\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(\n \"settings_read_invalid_json\",\n );\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsSignaturesAfterRead,\n [settingsPath],\n );\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\n \"settings_read_invalid_schema\",\n );\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsSignaturesAfterRead,\n [settingsPath],\n );\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(\n pmRoot,\n mergedSettings.schema,\n settingsPath,\n );\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad =\n await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(\n pmRoot,\n mergedSettings.schema,\n );\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(\n pmRoot,\n mergedSettings.schema,\n );\n const signaturesAfterSchemaLoad =\n await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(\n loadedSchemaSections.type_definitions_from_file,\n ),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(\n settings,\n buildSettingsPersistSourceSnapshot(validated.data, settings),\n );\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(\n (createdPath) => `runtime_schema_bootstrap_created:${createdPath}`,\n ),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (\n !settingsReadCacheSignaturesEqual(\n signaturesBeforeSchemaLoad,\n signaturesAfterSchemaLoad,\n )\n ) {\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(\n \"settings_read_merge_failed\",\n );\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/** Implements read settings for the public runtime surface of this module. */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/** Implements write settings for the public runtime surface of this module. */\nexport async function writeSettings(\n pmRoot: string,\n settings: PmSettings,\n op = SETTINGS_WRITE_OP,\n): 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\n/** Public contract for settings store test only, shared by SDK and presentation-layer consumers. */\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,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,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;AAyCpD,SAAS,gCAAgC,CACvC,MAA2C;IAE3C,OAAO,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAmC;IAEnC,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ,EAClB,CAAC;QACD,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;QAChD,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE;QACvC,CAAC,CAAC,SAAS,CAAC;IAChB,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,CACpC,UAA8B;IAE9B,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;IAO1C,MAAM,iBAAiB,GACrB,OAAO,aAAa,CAAC,mBAAmB,KAAK,QAAQ;QACnD,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAKR,EAAE,CAAC;IACP,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,yFAAyF;AACzF,MAAM,UAAU,sBAAsB,CACpC,QAEgD;IAEhD,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,GACtB,MAAM,CAAC,oBAAoB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;QAC/D,OAAO;YACL,MAAM;YACN,qBAAqB,EACnB,aAAa,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB;YACvE,mBAAmB,EACjB,aAAa,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB;YACnE,wBAAwB,EACtB,aAAa,CAAC,wBAAwB;gBACtC,QAAQ,CAAC,wBAAwB;YACnC,gBAAgB,EACd,aAAa,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;YAC7D,gBAAgB,EACd,aAAa,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;YAC7D,6BAA6B,EAC3B,aAAa,CAAC,6BAA6B;gBAC3C,QAAQ,CAAC,6BAA6B;YACxC,GAAG,MAAM;YACT,oBAAoB,EAAE,kBAAkB;SACzC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GACtB,MAAM,CAAC,oBAAoB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;IAC/D,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,CAC3C,KAAc;IAEd,IACE,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,qBAAqB;QAC/B,KAAK,KAAK,eAAe,EACzB,CAAC;QACD,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,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACvB,KAAK,GAAG,CAAC,EACT,CAAC;QACD,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;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,eAAe,CAAC;AACrD,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;QAC1D,CAAC,CAAC,YAAY,EAAE,QAAQ;QACxB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACtD,CAAC,CAAC,YAAY,EAAE,MAAM;QACtB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC;QACrE,CAAC,CAAC,YAAY,EAAE,cAAc;QAC9B,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAC7C,cAAc,CAAC,UAAU,EAAE,WAAW,CACvC;QACD,4BAA4B,EAAE,4BAA4B,CACxD,cAAc,CAAC,UAAU,EAAE,WAAW,CACvC;QACD,0BAA0B,EAAE,cAAc,KAAK,SAAS;QACxD,sBAAsB,EAAE,cAAc;YACpC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;YACjC,CAAC,CAAC,EAAE;QACN,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;YAC/C,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC;YACtC,CAAC,CAAC,EAAE;QACN,6BAA6B,EAAE,4BAA4B,CACzD,eAAe,CAAC,UAAU,EAAE,WAAW,CACxC;QACD,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,CAC5C,eAAe,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAC5C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAC1C,QAAoB,EACpB,MAAqC;IAErC,MAAM,CAAC,cAAc,CACnB,QAAmD,EACnD,8BAA8B,EAC9B;QACE,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;KAClB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAoB;IAEpB,MAAM,SAAS,GAAI,QAAoD,CACrE,8BAA8B,CAC/B,CAAC;IACF,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,CAC9B,MAA0B;IAE1B,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,CACjC,cAAc,EACd,eAAe,CAAC,aAAa,CAAC,CAC/B,CAAC;IACJ,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,CACtC,MAAc,EACd,MAA4B,EAC5B,YAAoB;IAEpB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO;QACL,YAAY;QACZ,wBAAwB,CACtB,MAAM,EACN,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAC5B,iCAAiC,CAAC,KAAK,CACxC;QACD,wBAAwB,CACtB,MAAM,EACN,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAC/B,iCAAiC,CAAC,QAAQ,CAC3C;QACD,wBAAwB,CACtB,MAAM,EACN,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAC7B,iCAAiC,CAAC,MAAM,CACzC;QACD,wBAAwB,CACtB,MAAM,EACN,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAChC,iCAAiC,CAAC,SAAS,CAC5C;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,MAAc,EACd,YAAsB,EACtB,MAA0B;IAE1B,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,CACxC,MAAc,EACd,YAAsB,EACtB,MAA0B;IAE1B,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;AAMD,SAAS,8BAA8B,CACrC,UAAuC,EACvC,UAAkB;IAElB,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,GACrB,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QACzD,IACE,CAAC,wCAAwC,CACvC,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,CACZ,EACD,CAAC;YACD,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,CAC7D,QAAQ,CAAC,UAAU,EAAE,WAAW,CACjC,CAAC;IACF,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,CACpD,0BAA0B,EAC1B,MAAM,CAAC,6BAA6B,CACrC,CAAC;IACF,MAAM,uBAAuB,GAAG,iBAAiB,CAC/C,gBAAgB,CAAC,QAAQ,EACzB,MAAM,CAAC,uBAAuB,CAC/B,CAAC;IACF,MAAM,qBAAqB,GAAG,iBAAiB,CAC7C,gBAAgB,CAAC,MAAM,EACvB,MAAM,CAAC,qBAAqB,CAC7B,CAAC;IACF,MAAM,4BAA4B,GAAG,iBAAiB,CACpD,oBAAoB,EACpB,MAAM,CAAC,6BAA6B,CACrC,CAAC;IAEF,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;QACL,GAAG,IAAI,GAAG,CACR,CAAC,MAAM,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC;KACF,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,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,EACT,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ;YACpC,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,QAAQ,CAAC,WAAW;QAC1B,gBAAgB,EACd,OAAO,eAAe,KAAK,QAAQ;YACnC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;YACjC,eAAe,GAAG,CAAC;YACjB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,QAAQ,CAAC,gBAAgB;QAC/B,kBAAkB,EAAE,mBAAmB,CACrC,KAAK,EAAE,kBAAkB,IAAI,QAAQ,CAAC,kBAAkB,CACzD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA4B;IAC5D,OAAO;QACL,GAAG,IAAI,GAAG,CACR,CAAC,MAAM,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC;KACF,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,4BAA4B,CACnC,KAAsC;IAEtC,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,CAClC,KAAqC;IAErC,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,CACvC,KAA0C;IAE1C,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,CAC3D,QAAQ,CAAC,eAAe,CACzB,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,wBAAwB,CAClD,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IACF,MAAM,mBAAmB,GAAG,wBAAwB,CAClD,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IACF,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,CACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,KAAc;IAEd,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,sRAAsR;AACtR,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,CAC7B,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CACvC,MAAsD;IAEtD,MAAM,wBAAwB,GAAG,wCAAwC,CACvE,MAAM,EAAE,4BAA4B,CACrC,CAAC;IACF,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;YACxC,CAAC,CAAC,EAAE,4BAA4B,EAAE,wBAAwB,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI;QACvD,kBAAkB,EAAE,4BAA4B,CAC9C,MAAM,EACN,oBAAoB,CACrB;QACD,uBAAuB,EAAE,gCAAgC,CACvD,MAAM,EAAE,uBAAuB,CAChC;QACD,kBAAkB,EAAE,4BAA4B,CAC9C,MAAM,EACN,oBAAoB,CACrB;QACD,kBAAkB,EAAE,4BAA4B,CAC9C,MAAM,EACN,oBAAoB,CACrB;QACD,oBAAoB,EAAE,4BAA4B,CAChD,MAAM,EACN,sBAAsB,CACvB;QACD,oBAAoB,EAAE,4BAA4B,CAChD,MAAM,EACN,sBAAsB,CACvB;QACD,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;YACzB,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAC1D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yCAAyC,CAChD,MAA4B;IAE5B,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAChD,CACF;KACF;SACE,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,CACrC,MAA4B;IAE5B,OAAO;QACL,GAAG,IAAI,GAAG,CACR,CAAC,MAAM,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC;KACF,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,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;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAC;AACT,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,CAC9B,QAAwB,EACxB,QAAoB,EACpB,UAA8B;IAE9B,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,CACjE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAC9C;QACD,uCAAuC,EAAE,8BAA8B,CACrE,QAAQ,CAAC,UAAU,EAAE,uCAAuC;YAC1D,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAC9D;QACD,8CAA8C,EAC5C,8BAA8B,CAC5B,QAAQ,CAAC,UAAU,EAAE,8CAA8C;YACjE,QAAQ,CAAC,UAAU,CAAC,8CAA8C,CACrE;QACH,0CAA0C,EAAE,8BAA8B,CACxE,QAAQ,CAAC,UAAU,EAAE,0CAA0C;YAC7D,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CACjE;QACD,6CAA6C,EAC3C,8BAA8B,CAC5B,QAAQ,CAAC,UAAU,EAAE,6CAA6C;YAChE,QAAQ,CAAC,UAAU,CAAC,6CAA6C,CACpE;QACH,yBAAyB,EAAE,iCAAiC,CAC1D,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAC/C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAwB,EACxB,QAAoB;IAEpB,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO;QAClE,0BAA0B,EACxB,QAAQ,CAAC,SAAS,EAAE,0BAA0B;YAC9C,QAAQ,CAAC,SAAS,CAAC,0BAA0B;QAC/C,aAAa,EACX,QAAQ,CAAC,SAAS,EAAE,aAAa,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa;QACvE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ;QACrE,eAAe,EACb,QAAQ,CAAC,SAAS,EAAE,eAAe,IAAI,QAAQ,CAAC,SAAS,CAAC,eAAe;QAC3E,cAAc,EACZ,QAAQ,CAAC,SAAS,EAAE,cAAc,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAwB,EACxB,QAAoB;IAEpB,OAAO;QACL,GAAG,QAAQ,CAAC,MAAM;QAClB,GAAG,QAAQ,CAAC,MAAM;QAClB,uBAAuB,EAAE,oCAAoC,CAC3D,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CACzC;QACD,eAAe,EAAE;YACf,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe;YAClC,GAAG,QAAQ,CAAC,MAAM,EAAE,eAAe;YACnC,OAAO,EAAE,oCAAoC,CAC3C,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAC1C;YACD,QAAQ,EAAE,qCAAqC,CAC7C,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAC3C;SACF;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,CAC/B,QAAwB,EACxB,QAAoB;IAEpB,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,OAAO;QACvE,eAAe,EAAE,kCAAkC,CACjD,QAAQ,CAAC,YAAY,CAAC,eAAe,CACtC;QACD,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM;YAC/B,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM;SAChC;QACD,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO;YAChC,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO;SACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAwB,EACxB,QAAoB;IAEpB,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,CAC3B,QAAwB,EACxB,QAAoB;IAEpB,OAAO;QACL,aAAa,EACX,QAAQ,CAAC,OAAO,EAAE,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa;QACnE,cAAc,EACZ,QAAQ,CAAC,OAAO,EAAE,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,cAAc;QACrE,oBAAoB,EAClB,QAAQ,CAAC,OAAO,EAAE,oBAAoB;YACtC,QAAQ,CAAC,OAAO,CAAC,oBAAoB;QACvC,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ;YAC5B,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAwB,EACxB,QAAoB;IAEpB,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,gGAAgG;AAChG,MAAM,UAAU,4BAA4B,CAC1C,WAA6C;IAE7C,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;SACnC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;SAC5D,MAAM,CACL,CAAC,UAAU,EAAoC,EAAE,CAAC,UAAU,KAAK,IAAI,CACtE,CAAC;IACJ,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,CACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CACpC,CAAC;AACJ,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;gBAClB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;oBACvC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aACxC;SACF;QACD,OAAO,EAAE;YACP,uBAAuB,EACrB,QAAQ,CAAC,OAAO,EAAE,uBAAuB;gBACzC,QAAQ,CAAC,OAAO,CAAC,uBAAuB;SAC3C;QACD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACrD,cAAc,EAAE,8BAA8B,CAC5C,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CACnD;QACD,UAAU,EAAE;YACV,WAAW,EAAE,4BAA4B,CACvC,QAAQ,CAAC,UAAU,EAAE,WAAW,CACjC;SACF;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,CACtC,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CACzD;SACF;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,CACtC,OAAgC;IAEhC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAgC,EAAE;QACpE,aAAa;QACb,SAAS;KACV,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,GAAG,WAAW,CAC/B,OAAO,CAAC,WAAsC,EAC9C,CAAC,gBAAgB,CAAC,CACnB,CAAC;IACF,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAiC,EAAE;QACtE,gBAAgB;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAkC,EAAE;QACxE,gBAAgB;QAChB,gBAAgB;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,GAAG,WAAW,CAC9B,OAAO,CAAC,UAAqC,EAC7C;QACE,uBAAuB;QACvB,kBAAkB;QAClB,kBAAkB;QAClB,0BAA0B;QAC1B,yCAAyC;QACzC,gDAAgD;QAChD,4CAA4C;QAC5C,+CAA+C;QAC/C,2BAA2B;KAC5B,CACF,CAAC;IACF,OAAO,CAAC,UAAU,GAAG,WAAW,CAC9B,OAAO,CAAC,UAAqC,EAC7C;QACE,QAAQ;QACR,uBAAuB;QACvB,qBAAqB;QACrB,0BAA0B;QAC1B,sBAAsB;QACtB,kBAAkB;QAClB,kBAAkB;QAClB,+BAA+B;QAC/B,qBAAqB;QACrB,sBAAsB;KACvB,CACF,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAmC,EAAE;QAC1E,oBAAoB;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAkC,EAAE;QACxE,yBAAyB;KAC1B,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,GAAG,WAAW,CAC7B,OAAO,CAAC,SAAoC,EAC5C;QACE,SAAS;QACT,4BAA4B;QAC5B,eAAe;QACf,UAAU;QACV,iBAAiB;QACjB,gBAAgB;KACjB,CACF,CAAC;IACF,OAAO,CAAC,cAAc,GAAG,WAAW,CAClC,OAAO,CAAC,cAAyC,EACjD;QACE,kBAAkB;QAClB,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,oBAAoB;KACrB,CACF,CAAC;IACF,OAAO,CAAC,UAAU,GAAG,WAAW,CAC9B,OAAO,CAAC,UAAqC,EAC7C,CAAC,aAAa,CAAC,CAChB,CAAC;IACF,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;QACE,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,gBAAgB;QAChB,cAAc;QACd,iBAAiB;KAClB,CACF,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;QACE,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,UAAU;QACV,WAAW;QACX,OAAO;KACR,CACF,CAAC;IACF,OAAO,CAAC,UAAU,GAAG,WAAW,CAC9B,OAAO,CAAC,UAAqC,EAC7C,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClC,CAAC;IACD,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;IAEC,OAAO,CAAC,UAAsC,CAAC,MAIjD,CAAC,mBAAmB,GAAG,YAAY,CAE/B,OAAO,CAAC,UAAsC,CAAC,MAIjD,CAAC,mBAAmB,CACtB,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,CAC7B,OAAO,CAAC,SAAoC,EAC5C,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IACD,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,CAChC,OAAO,CAAC,YAAuC,EAC/C,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CACpD,CAAC;IACD,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,CACzB,QAAQ,CAAC,WAAW,EACpB,iBAAiB,CAAC,WAAW,CAC9B;QACD,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,CACxB,QAAQ,CAAC,UAAU,EACnB,iBAAiB,CAAC,UAAU,CAC7B;QACD,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,CAC5B,QAAQ,CAAC,cAAc,EACvB,iBAAiB,CAAC,cAAc,CACjC;QACD,UAAU,EAAE,cAAc,CACxB,QAAQ,CAAC,UAAU,EACnB,iBAAiB,CAAC,UAAU,CAC7B;QACD,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,CACxB,QAAQ,CAAC,UAAU,EACnB,iBAAiB,CAAC,UAAU,CAC7B;QACD,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,CAC1B,QAAQ,CAAC,YAAY,EACrB,iBAAiB,CAAC,YAAY,CAC/B;KACY,CAAC;AAClB,CAAC;AAED,SAAS,iCAAiC,CACxC,YAAwB,EACxB,UAA8B;IAE9B,OAAO;QACL,GAAG,YAAY,CAAC,UAAU;QAC1B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,wBAAwB,EAAE,yCAAyC,CACjE,YAAY,CAAC,UAAU,EAAE,wBAAwB,CAClD;QACD,uCAAuC,EAAE,8BAA8B,CACrE,YAAY,CAAC,UAAU,EAAE,uCAAuC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,uCAAuC,CACvE;QACD,8CAA8C,EAC5C,8BAA8B,CAC5B,YAAY,CAAC,UAAU;YACrB,EAAE,8CAA8C;YAChD,iBAAiB,CAAC,UAAU;iBACzB,8CAA8C,CACpD;QACH,0CAA0C,EAAE,8BAA8B,CACxE,YAAY,CAAC,UAAU,EAAE,0CAA0C;YACjE,iBAAiB,CAAC,UAAU,CAAC,0CAA0C,CAC1E;QACD,6CAA6C,EAC3C,8BAA8B,CAC5B,YAAY,CAAC,UAAU;YACrB,EAAE,6CAA6C;YAC/C,iBAAiB,CAAC,UAAU;iBACzB,6CAA6C,CACnD;QACH,yBAAyB,EAAE,iCAAiC,CAC1D,YAAY,CAAC,UAAU,EAAE,yBAAyB,CACnD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,YAAwB;IAExB,OAAO;QACL,GAAG,iBAAiB,CAAC,MAAM;QAC3B,GAAG,YAAY,CAAC,MAAM;QACtB,uBAAuB,EAAE,oCAAoC,CAC3D,YAAY,CAAC,MAAM,EAAE,uBAAuB,CAC7C;QACD,eAAe,EAAE;YACf,GAAG,iBAAiB,CAAC,MAAM,CAAC,eAAe;YAC3C,GAAG,YAAY,CAAC,MAAM,EAAE,eAAe;YACvC,OAAO,EAAE,oCAAoC,CAC3C,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAC9C;YACD,QAAQ,EAAE,qCAAqC,CAC7C,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAC/C;SACF;QACD,MAAM,EAAE;YACN,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM;YAClC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM;YAC9B,OAAO,EAAE,4BAA4B,CACnC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CACrC;YACD,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,CACrC,YAAwB;IAExB,OAAO;QACL,aAAa,EACX,YAAY,CAAC,OAAO,EAAE,aAAa;YACnC,iBAAiB,CAAC,OAAO,CAAC,aAAa;QACzC,cAAc,EACZ,YAAY,CAAC,OAAO,EAAE,cAAc;YACpC,iBAAiB,CAAC,OAAO,CAAC,cAAc;QAC1C,oBAAoB,EAClB,YAAY,CAAC,OAAO,EAAE,oBAAoB;YAC1C,iBAAiB,CAAC,OAAO,CAAC,oBAAoB;QAChD,QAAQ,EAAE;YACR,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ;YACrC,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ;SAClC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,YAAwB;IAExB,OAAO;QACL,GAAG,YAAY,CAAC,YAAY;QAC5B,OAAO,EACL,YAAY,CAAC,YAAY,EAAE,OAAO;YAClC,iBAAiB,CAAC,YAAY,CAAC,OAAO;QACxC,eAAe,EAAE,kCAAkC,CACjD,YAAY,CAAC,YAAY,EAAE,eAAe,CAC3C;QACD,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,2BAEC;IAED,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,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAC/B,QAAoB,EACpB,UAAoC,EAAE;IAEtC,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,CAC1E,YAAY,EACZ,OAAO,CAAC,cAAc,CACvB,CAAC;IACF,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;QACE,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;KACf,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,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAc;IAEd,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,CAChE,YAAY,CAAC,aAAa,CAC3B,CAAC;QACF,IACE,gCAAgC,CAC9B,iBAAiB,EACjB,YAAY,CAAC,UAAU,CACxB,EACD,CAAC;YACD,OAAO,uBAAuB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,kCAAkC,CAAC;QACtE,YAAY;KACb,CAAC,CAAC;IACH,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,CACnC,MAAM,EACN,CAAC,YAAY,CAAC,EACd,QAAQ,EACR,sBAAsB,EACtB,CAAC,YAAY,CAAC,CACf,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,2BAA2B,GAAG,MAAM,kCAAkC,CAAC;QAC3E,YAAY;KACb,CAAC,CAAC;IACH,IACE,CAAC,gCAAgC,CAC/B,sBAAsB,EACtB,2BAA2B,CAC5B,EACD,CAAC;QACD,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,CAC9C,4BAA4B,CAC7B,CAAC;QACF,MAAM,+BAA+B,CACnC,MAAM,EACN,CAAC,YAAY,CAAC,EACd,QAAQ,EACR,2BAA2B,EAC3B,CAAC,YAAY,CAAC,CACf,CAAC;QACF,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,CAC9C,8BAA8B,CAC/B,CAAC;QACF,MAAM,+BAA+B,CACnC,MAAM,EACN,CAAC,YAAY,CAAC,EACd,QAAQ,EACR,2BAA2B,EAC3B,CAAC,YAAY,CAAC,CACf,CAAC;QACF,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,CAClD,MAAM,EACN,cAAc,CAAC,MAAM,EACrB,YAAY,CACb,CAAC;QACF,sBAAsB,GAAG,YAAY,CAAC;QACtC,MAAM,0BAA0B,GAC9B,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,MAAM,+BAA+B,CAC1D,MAAM,EACN,cAAc,CAAC,MAAM,CACtB,CAAC;QACF,MAAM,oBAAoB,GAAG,MAAM,kCAAkC,CACnE,MAAM,EACN,cAAc,CAAC,MAAM,CACtB,CAAC;QACF,MAAM,yBAAyB,GAC7B,MAAM,kCAAkC,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAe;YAC3B,GAAG,cAAc;YACjB,UAAU,EAAE;gBACV,WAAW,EAAE,4BAA4B,CAAC;oBACxC,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW;oBACxC,GAAG,YAAY,CACb,oBAAoB,CAAC,0BAA0B,CAChD;iBACF,CAAC;aACH;YACD,MAAM,EAAE,oBAAoB,CAAC,MAAM;SACpC,CAAC;QACF,mCAAmC,CACjC,QAAQ,EACR,kCAAkC,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAC7D,CAAC;QACF,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,CACjC,CAAC,WAAW,EAAE,EAAE,CAAC,oCAAoC,WAAW,EAAE,CACnE;gBACD,GAAG,oBAAoB,CAAC,QAAQ;aACjC;SACF,CAAC;QACF,IAAI,cAAc,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,IACE,CAAC,gCAAgC,CAC/B,0BAA0B,EAC1B,yBAAyB,CAC1B,EACD,CAAC;gBACD,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,CAC9C,4BAA4B,CAC7B,CAAC;QACF,MAAM,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,OAAO,CAAC,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,QAAoB,EACpB,EAAE,GAAG,iBAAiB;IAEtB,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,oGAAoG;AACpG,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":"c7a1560b-d8bb-55bb-bf5e-50c97b4ff692"}
|
|
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 {\n runActiveOnReadHooks,\n runActiveOnWriteHooks,\n} from \"../extensions/index.js\";\nimport {\n GOVERNANCE_PRESET_DEFAULTS,\n SETTINGS_DEFAULTS,\n} 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<\n PmSettings[\"schema\"][\"type_workflows\"]\n >;\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<\n PmSettings[\"schema\"][\"type_workflows\"]\n >;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/** Documents the settings read metadata payload exchanged by command, SDK, and package integrations. */\nexport interface SettingsReadMetadata {\n /** Whether explicit item format applies to this operation. */\n has_explicit_item_format: boolean;\n}\n\n/** Documents the settings read result payload exchanged by command, SDK, and package integrations. */\nexport interface SettingsReadResult {\n /** Value that configures or reports settings for this contract. */\n settings: PmSettings;\n /** Value that configures or reports metadata for this contract. */\n metadata: SettingsReadMetadata;\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(\n preset: Exclude<GovernancePreset, \"custom\">,\n): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(\n value: GovernancePreset | undefined,\n): GovernancePreset {\n if (\n value === \"minimal\" ||\n value === \"default\" ||\n value === \"strict\" ||\n value === \"custom\"\n ) {\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\"\n ? governance.create_default_type.trim()\n : 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(\n governance: GovernanceSettings,\n): 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<\n Pick<\n GovernanceSettings,\n \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\"\n >\n> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\"\n ? rawGovernance.create_default_type.trim()\n : undefined;\n const extras: Partial<\n Pick<\n GovernanceSettings,\n \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\"\n >\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/** Implements resolve governance knobs for the public runtime surface of this module. */\nexport function resolveGovernanceKnobs(\n settings:\n | Pick<PmSettings, \"governance\">\n | { 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 =\n extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement:\n rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default:\n rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default:\n rawGovernance.close_validation_default ??\n baseline.close_validation_default,\n parent_reference:\n rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile:\n rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock:\n rawGovernance.force_required_for_stale_lock ??\n baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason =\n 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(\n value: unknown,\n): SearchMutationRefreshPolicy {\n if (\n value === \"cache_only\" ||\n value === \"semantic_configured\" ||\n value === \"semantic_auto\"\n ) {\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 (\n typeof value === \"number\" &&\n Number.isFinite(value) &&\n Number.isInteger(value) &&\n value > 0\n ) {\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\n ? truncated\n : 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)\n ? sourceSchema?.statuses\n : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields)\n ? sourceSchema?.fields\n : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows)\n ? sourceSchema?.type_workflows\n : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(\n parsedSettings.item_types?.definitions,\n ),\n source_item_type_definitions: normalizeItemTypeDefinitions(\n parsedSettings.item_types?.definitions,\n ),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses\n ? structuredClone(sourceStatuses)\n : [],\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\n ? structuredClone(sourceTypeWorkflows)\n : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(\n runtimeSettings.item_types?.definitions,\n ),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(\n runtimeSettings.schema.type_workflows ?? [],\n ),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot,\n): void {\n Object.defineProperty(\n settings as unknown as Record<PropertyKey, unknown>,\n SETTINGS_PERSIST_SOURCE_SYMBOL,\n {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n },\n );\n}\n\nfunction getSettingsPersistSourceSnapshot(\n settings: PmSettings,\n): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[\n SETTINGS_PERSIST_SOURCE_SYMBOL\n ];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(\n result: SettingsReadResult,\n): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(\n clonedSettings,\n structuredClone(persistSource),\n );\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(\n pmRoot: string,\n schema: PmSettings[\"schema\"],\n settingsPath: string,\n): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.types,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.statuses,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.fields,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields,\n ),\n filePathForSchemaSection(\n pmRoot,\n normalizedSchema.files.workflows,\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows,\n ),\n ];\n}\n\nasync function cacheSettingsReadResult(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n): 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(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<\n ReturnType<typeof collectSettingsReadCacheSignatures>\n>;\n\nfunction findSettingsReadCacheSignature(\n signatures: SettingsReadCacheSignatures,\n targetPath: string,\n) {\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 =\n await collectSettingsReadCacheSignatures(trackedPaths);\n if (\n !selectedSettingsReadCacheSignaturesEqual(\n stableSignatures,\n currentSignatures,\n stablePaths,\n )\n ) {\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(\n settings.item_types?.definitions,\n );\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(\n currentItemTypeDefinitions,\n source.runtime_item_type_definitions,\n );\n const schemaStatusesUnchanged = stableValueEquals(\n normalizedSchema.statuses,\n source.runtime_schema_statuses,\n );\n const schemaFieldsUnchanged = stableValueEquals(\n normalizedSchema.fields,\n source.runtime_schema_fields,\n );\n const schemaTypeWorkflowsUnchanged = stableValueEquals(\n currentTypeWorkflows,\n source.runtime_schema_type_workflows,\n );\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 [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\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:\n typeof value?.declined_at === \"string\"\n ? value.declined_at\n : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" &&\n Number.isInteger(templateVersion) &&\n templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(\n value?.last_checked_files ?? defaults.last_checked_files,\n ),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeExtensionPolicyMode(\n value: ExtensionPolicyMode | undefined,\n): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(\n value: ExtensionTrustMode | undefined,\n): 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(\n value: ExtensionSandboxProfile | undefined,\n): 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(\n override.sandbox_profile,\n );\n }\n const allowedCapabilities = normalizeLowerStringList(\n override.allowed_capabilities,\n );\n const blockedCapabilities = normalizeLowerStringList(\n override.blocked_capabilities,\n );\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) =>\n left.name.localeCompare(right.name),\n );\n}\n\nfunction normalizePmMaxVersionExceededModeValue(\n value: unknown,\n): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/** Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer override object) through settings normalization. Unset/invalid values are omitted so existing settings.json files round-trip byte-identically and the loader applies its safe default (\"block\"). */\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(\n policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key],\n );\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(\n policy?.pm_max_version_exceeded_mode,\n );\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined\n ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode }\n : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeExtensionPolicyList(\n policy,\n \"trusted_extensions\",\n ),\n default_sandbox_profile: normalizeExtensionSandboxProfile(\n policy?.default_sandbox_profile,\n ),\n allowed_extensions: normalizeExtensionPolicyList(\n policy,\n \"allowed_extensions\",\n ),\n blocked_extensions: normalizeExtensionPolicyList(\n policy,\n \"blocked_extensions\",\n ),\n allowed_capabilities: normalizeExtensionPolicyList(\n policy,\n \"allowed_capabilities\",\n ),\n blocked_capabilities: normalizeExtensionPolicyList(\n policy,\n \"blocked_capabilities\",\n ),\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 ??\n SETTINGS_DEFAULTS.extensions.policy.extension_overrides,\n ),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(\n values: string[] | undefined,\n): ValidateMetadataRequiredField[] {\n const normalized = [\n ...new Set(\n (values ?? []).map((value) =>\n value.trim().toLowerCase().replaceAll(\"-\", \"_\"),\n ),\n ),\n ]\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(\n values: string[] | undefined,\n): string[] {\n return [\n ...new Set(\n (values ?? [])\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value.length > 0),\n ),\n ].sort((left, right) => left.localeCompare(right));\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)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\nfunction buildValidationSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n governance: GovernanceSettings,\n): 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(\n settings.validation?.metadata_required_fields,\n ),\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:\n 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:\n 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(\n settings.validation?.estimate_defaults_by_type,\n ),\n };\n}\n\nfunction buildTelemetrySettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"telemetry\"] {\n return {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed:\n settings.telemetry?.first_run_prompt_completed ??\n defaults.telemetry.first_run_prompt_completed,\n capture_level:\n settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id:\n settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days:\n settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n };\n}\n\nfunction buildSearchSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"search\"] {\n return {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(\n settings.search?.mutation_refresh_policy,\n ),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...settings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(\n settings.search?.query_expansion?.enabled,\n ),\n provider: normalizeSearchQueryExpansionProvider(\n settings.search?.query_expansion?.provider,\n ),\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(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"vector_store\"] {\n return {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(\n settings.vector_store.collection_name,\n ),\n qdrant: {\n ...defaults.vector_store.qdrant,\n ...settings.vector_store.qdrant,\n },\n lancedb: {\n ...defaults.vector_store.lancedb,\n ...settings.vector_store.lancedb,\n },\n };\n}\n\nfunction normalizeSettingsItemFormat(\n settings: ParsedSettings,\n defaults: PmSettings,\n): 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(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"context\"] {\n return {\n default_depth:\n settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit:\n settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days:\n settings.context?.stale_threshold_days ??\n defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...settings.context?.sections,\n },\n };\n}\n\nfunction buildProviderSettings(\n settings: ParsedSettings,\n defaults: PmSettings,\n): PmSettings[\"providers\"] {\n return {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n };\n}\n\n/** Implements normalize item type definitions for the public runtime surface of this module. */\nexport function normalizeItemTypeDefinitions(\n definitions: ItemTypeDefinition[] | undefined,\n): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter(\n (definition): definition is ItemTypeDefinition => definition !== null,\n );\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) =>\n left.name.localeCompare(right.name),\n );\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 ids: { ...defaults.ids, ...settings.ids },\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: [\n ...(settings.workflow?.definition_of_done ??\n defaults.workflow.definition_of_done),\n ],\n },\n testing: {\n record_results_to_items:\n settings.testing?.record_results_to_items ??\n defaults.testing.record_results_to_items,\n },\n telemetry: buildTelemetrySettings(settings, defaults),\n agent_guidance: normalizeAgentGuidanceSettings(\n settings.agent_guidance ?? defaults.agent_guidance,\n ),\n item_types: {\n definitions: normalizeItemTypeDefinitions(\n settings.item_types?.definitions,\n ),\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(\n settings.extensions.policy ?? defaults.extensions.policy,\n ),\n },\n search: buildSearchSettings(settings, defaults),\n providers: buildProviderSettings(settings, defaults),\n vector_store: buildVectorStoreSettings(settings, defaults),\n };\n}\n\nfunction orderSerializedSettingsSections(\n ordered: Record<string, unknown>,\n): void {\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\n \"ttl_seconds\",\n \"wait_ms\",\n ]);\n ordered.ids = orderObject(ordered.ids as Record<string, unknown>, [\n \"token_length\",\n ]);\n ordered.checkpoints = orderObject(\n ordered.checkpoints as Record<string, unknown>,\n [\"retention_days\"],\n );\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\n \"default_format\",\n ]);\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\n \"missing_stream\",\n \"compact_policy\",\n ]);\n ordered.validation = orderObject(\n ordered.validation as Record<string, unknown>,\n [\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 );\n ordered.governance = orderObject(\n ordered.governance as Record<string, unknown>,\n [\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 );\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\n \"definition_of_done\",\n ]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\n \"record_results_to_items\",\n ]);\n ordered.telemetry = orderObject(\n ordered.telemetry as Record<string, unknown>,\n [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ],\n );\n ordered.agent_guidance = orderObject(\n ordered.agent_guidance as Record<string, unknown>,\n [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ],\n );\n ordered.item_types = orderObject(\n ordered.item_types as Record<string, unknown>,\n [\"definitions\"],\n );\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 [\n \"draft_status\",\n \"open_status\",\n \"in_progress_status\",\n \"blocked_status\",\n \"close_status\",\n \"canceled_status\",\n ],\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 [\n \"hierarchy\",\n \"activity\",\n \"progress\",\n \"blockers\",\n \"files\",\n \"workload\",\n \"staleness\",\n \"tests\",\n ],\n );\n ordered.extensions = orderObject(\n ordered.extensions as Record<string, unknown>,\n [\"enabled\", \"disabled\", \"policy\"],\n );\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 (\n (ordered.extensions as Record<string, unknown>).policy as Record<\n string,\n unknown\n >\n ).extension_overrides = arrayOrEmpty(\n (\n (ordered.extensions as Record<string, unknown>).policy as Record<\n string,\n unknown\n >\n ).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(\n ordered.providers as Record<string, unknown>,\n [\"openai\", \"ollama\"],\n );\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(\n ordered.vector_store as Record<string, unknown>,\n [\"adapter\", \"collection_name\", \"qdrant\", \"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 ids: valueOrDefault(settings.ids, SETTINGS_DEFAULTS.ids),\n checkpoints: valueOrDefault(\n settings.checkpoints,\n SETTINGS_DEFAULTS.checkpoints,\n ),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(\n settings.validation,\n SETTINGS_DEFAULTS.validation,\n ),\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(\n settings.agent_guidance,\n SETTINGS_DEFAULTS.agent_guidance,\n ),\n item_types: valueOrDefault(\n settings.item_types,\n SETTINGS_DEFAULTS.item_types,\n ),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(\n settings.extensions,\n SETTINGS_DEFAULTS.extensions,\n ),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(\n settings.vector_store,\n SETTINGS_DEFAULTS.vector_store,\n ),\n } as PmSettings;\n}\n\nfunction buildSerializedValidationSettings(\n baseSettings: PmSettings,\n governance: GovernanceSettings,\n): PmSettings[\"validation\"] {\n return {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(\n baseSettings.validation?.metadata_required_fields,\n ),\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:\n normalizeValidationPatternList(\n baseSettings.validation\n ?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation\n .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:\n normalizeValidationPatternList(\n baseSettings.validation\n ?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation\n .lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(\n baseSettings.validation?.estimate_defaults_by_type,\n ),\n };\n}\n\nfunction buildSerializedSearchSettings(\n baseSettings: PmSettings,\n): PmSettings[\"search\"] {\n return {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(\n baseSettings.search?.mutation_refresh_policy,\n ),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...baseSettings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(\n baseSettings.search?.query_expansion?.enabled,\n ),\n provider: normalizeSearchQueryExpansionProvider(\n baseSettings.search?.query_expansion?.provider,\n ),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...baseSettings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(\n baseSettings.search?.rerank?.enabled,\n ),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n };\n}\n\nfunction buildSerializedContextSettings(\n baseSettings: PmSettings,\n): PmSettings[\"context\"] {\n return {\n default_depth:\n baseSettings.context?.default_depth ??\n SETTINGS_DEFAULTS.context.default_depth,\n activity_limit:\n baseSettings.context?.activity_limit ??\n SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days:\n baseSettings.context?.stale_threshold_days ??\n SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...baseSettings.context?.sections,\n },\n };\n}\n\nfunction buildSerializedVectorStoreSettings(\n baseSettings: PmSettings,\n): PmSettings[\"vector_store\"] {\n return {\n ...baseSettings.vector_store,\n adapter:\n baseSettings.vector_store?.adapter ??\n SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(\n baseSettings.vector_store?.collection_name,\n ),\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<\n typeof resolvePersistedFileBackedSchemaSections\n >,\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/** Implements serialize settings for the public runtime surface of this module. */\nexport function serializeSettings(\n settings: PmSettings,\n options: SerializeSettingsOptions = {},\n): string {\n const baseSettings = buildSerializeBaseSettings(settings);\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(\n baseSettings,\n options.persist_source,\n );\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 \"ids\",\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/** Implements read settings with metadata for the public runtime surface of this module. */\nexport async function readSettingsWithMetadata(\n pmRoot: string,\n): 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(\n cachedResult.tracked_paths,\n );\n if (\n settingsReadCacheSignaturesEqual(\n currentSignatures,\n cachedResult.signatures,\n )\n ) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([\n settingsPath,\n ]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsOnlySignatures,\n [settingsPath],\n );\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([\n settingsPath,\n ]);\n if (\n !settingsReadCacheSignaturesEqual(\n settingsOnlySignatures,\n settingsSignaturesAfterRead,\n )\n ) {\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(\n \"settings_read_invalid_json\",\n );\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsSignaturesAfterRead,\n [settingsPath],\n );\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\n \"settings_read_invalid_schema\",\n );\n await cacheSettingsReadResultIfStable(\n pmRoot,\n [settingsPath],\n fallback,\n settingsSignaturesAfterRead,\n [settingsPath],\n );\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(\n pmRoot,\n mergedSettings.schema,\n settingsPath,\n );\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad =\n await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(\n pmRoot,\n mergedSettings.schema,\n );\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(\n pmRoot,\n mergedSettings.schema,\n );\n const signaturesAfterSchemaLoad =\n await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(\n loadedSchemaSections.type_definitions_from_file,\n ),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(\n settings,\n buildSettingsPersistSourceSnapshot(validated.data, settings),\n );\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(\n (createdPath) => `runtime_schema_bootstrap_created:${createdPath}`,\n ),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (\n !settingsReadCacheSignaturesEqual(\n signaturesBeforeSchemaLoad,\n signaturesAfterSchemaLoad,\n )\n ) {\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(\n \"settings_read_merge_failed\",\n );\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/** Implements read settings for the public runtime surface of this module. */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/** Implements write settings for the public runtime surface of this module. */\nexport async function writeSettings(\n pmRoot: string,\n settings: PmSettings,\n op = SETTINGS_WRITE_OP,\n): 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\n/** Public contract for settings store test only, shared by SDK and presentation-layer consumers. */\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":"a4d073da-52c1-5f9d-885f-6ca0e8aa470a"}
|
package/dist/sdk/annotations.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implements the pm annotation command command surface and its agent-facing runtime behavior.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!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]="
|
|
7
|
+
!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]="8be9d5fc-c3fd-5e9e-b4e3-7a0ed25f3d97")}catch(e){}}();
|
|
8
8
|
import { readFile } from "node:fs/promises";
|
|
9
9
|
import { pathExists } from "../core/fs/fs-utils.js";
|
|
10
10
|
import { getActiveExtensionRegistrations } from "../core/extensions/index.js";
|
|
@@ -172,8 +172,30 @@ function assertAnnotationAddValueIsNotFlagLike(raw, config) {
|
|
|
172
172
|
],
|
|
173
173
|
});
|
|
174
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Reject list-mode invocations that pass `--message` without any content
|
|
177
|
+
* source. `--message` only labels a mutation's history entry, so accepting it
|
|
178
|
+
* alone would exit 0 while recording nothing — the GH-588/GH-615 silent
|
|
179
|
+
* data-loss trap. Shared here so comments, notes, and learnings all fail fast
|
|
180
|
+
* with the same structured recovery bundle.
|
|
181
|
+
*/
|
|
182
|
+
function assertAnnotationMessageHasTextSource(config, options) {
|
|
183
|
+
if (config.input.mode !== "list" || options.message === undefined) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const noun = config.collectionKey.replace(/s$/, "");
|
|
187
|
+
throw new PmCliError(`--message labels a ${noun} mutation but does not provide ${noun} text. Pass text positionally or with --add, --stdin, or --file.`, EXIT_CODE.USAGE, {
|
|
188
|
+
code: "annotation_message_without_text",
|
|
189
|
+
required: `Provide ${noun} text through a content source; --message only annotates the history entry of a mutation.`,
|
|
190
|
+
examples: [
|
|
191
|
+
`pm ${config.collectionKey} <id> --add "text" --message "why"`,
|
|
192
|
+
`pm ${config.collectionKey} <id> ${annotationStdinHint(config.collectionKey)}`,
|
|
193
|
+
],
|
|
194
|
+
});
|
|
195
|
+
}
|
|
175
196
|
/** Implements run annotation command for the public runtime surface of this module. */
|
|
176
197
|
export async function runAnnotationCommand(id, options, global, config) {
|
|
198
|
+
assertAnnotationMessageHasTextSource(config, options);
|
|
177
199
|
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
178
200
|
if (!(await pathExists(getSettingsPath(pmRoot)))) {
|
|
179
201
|
throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
|
|
@@ -317,4 +339,4 @@ function renderAnnotationResult(id, collectionKey, allEntries, limit, includeMet
|
|
|
317
339
|
};
|
|
318
340
|
}
|
|
319
341
|
//# sourceMappingURL=annotations.js.map
|
|
320
|
-
//# debugId=
|
|
342
|
+
//# debugId=8be9d5fc-c3fd-5e9e-b4e3-7a0ed25f3d97
|