@unbrained/pm-cli 2026.7.14 → 2026.7.16
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/CHANGELOG.md +54 -0
- package/README.md +14 -11
- package/dist/cli/argv-utils.d.ts +1 -4
- package/dist/cli/argv-utils.js +3 -13
- package/dist/cli/argv-utils.js.map +1 -1
- package/dist/cli/bootstrap-args.d.ts +6 -4
- package/dist/cli/bootstrap-args.js +51 -16
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/bundle-integrity.d.ts +49 -0
- package/dist/cli/bundle-integrity.js +111 -0
- package/dist/cli/bundle-integrity.js.map +1 -0
- package/dist/cli/commands/completion.js +7 -2
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +6 -163
- package/dist/cli/commands/config.js +4 -1133
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.d.ts +2 -4
- package/dist/cli/commands/context.js +10 -85
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -0
- package/dist/cli/commands/create.js +3 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +2 -91
- package/dist/cli/commands/extension/describe.js +4 -142
- package/dist/cli/commands/extension/describe.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +2 -36
- package/dist/cli/commands/extension/scaffold.js +4 -2435
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension/shared.d.ts +2 -28
- package/dist/cli/commands/extension/shared.js +4 -130
- package/dist/cli/commands/extension/shared.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +3 -400
- package/dist/cli/commands/extension.js +4 -2183
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/gc.d.ts +6 -56
- package/dist/cli/commands/gc.js +4 -270
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +18 -5
- package/dist/cli/commands/get.js +117 -58
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.d.ts +6 -184
- package/dist/cli/commands/health.js +4 -1747
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.d.ts +4 -139
- package/dist/cli/commands/history-compact.js +5 -510
- package/dist/cli/commands/history-compact.js.map +1 -1
- package/dist/cli/commands/history-redact.d.ts +8 -120
- package/dist/cli/commands/history-redact.js +6 -581
- package/dist/cli/commands/history-redact.js.map +1 -1
- package/dist/cli/commands/history-repair.d.ts +7 -89
- package/dist/cli/commands/history-repair.js +5 -257
- package/dist/cli/commands/history-repair.js.map +1 -1
- package/dist/cli/commands/history.d.ts +1 -2
- package/dist/cli/commands/history.js +6 -48
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init-agent-guidance.d.ts +6 -113
- package/dist/cli/commands/init-agent-guidance.js +4 -431
- package/dist/cli/commands/init-agent-guidance.js.map +1 -1
- package/dist/cli/commands/init.d.ts +6 -181
- package/dist/cli/commands/init.js +4 -690
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/next.js +3 -3
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/profile.d.ts +4 -174
- package/dist/cli/commands/profile.js +4 -425
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +4 -19
- package/dist/cli/commands/restore.js +9 -158
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +7 -507
- package/dist/cli/commands/schema.js +5 -1254
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/test.d.ts +2 -4
- package/dist/cli/commands/test.js +7 -97
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +9 -249
- package/dist/cli/commands/validate.js +9 -2150
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/extension-command-help.js +18 -4
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/extension-command-options.js +3 -3
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/help-content.js +7 -3
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.js +20 -30
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +4 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +11 -3
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-setup.js +4 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.js +3 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +782 -0
- package/dist/cli-bundle/chunks/{append-PVZJDM6J.js → append-OJQFUQ4T.js} +5 -5
- package/dist/cli-bundle/chunks/append-UZVHUO74.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-MQZ3PLCF.js → chunk-2IFFUZLC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P6MYFH6K.js → chunk-2JKGO6QX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-X3GYR4P2.js → chunk-2NCIPMQP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q7E6OYZK.js → chunk-2VPAVL7O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DRNJPEPQ.js → chunk-2WSE6PO2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-FDSBDNYE.js → chunk-34L5OT3Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TH7U4KLY.js → chunk-3AUGG2DP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NKW36AMT.js → chunk-3CLU2XZO.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-N3CMP4NI.js → chunk-3S5QVM5H.js} +43 -7
- package/dist/cli-bundle/chunks/chunk-3S5QVM5H.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-3U7ZR6M4.js +64 -0
- package/dist/cli-bundle/chunks/chunk-3U7ZR6M4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ABRCOSDC.js → chunk-3WM75PWC.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-4223PVZT.js +121 -0
- package/dist/cli-bundle/chunks/chunk-4223PVZT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5URI7TPJ.js → chunk-4XQ3BDV4.js} +281 -164
- package/dist/cli-bundle/chunks/chunk-4XQ3BDV4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-X6BVXQ52.js → chunk-5JLUII3O.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-MKL4CP2I.js → chunk-5ZSLZLDN.js} +631 -246
- package/dist/cli-bundle/chunks/chunk-5ZSLZLDN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Q37E63AM.js → chunk-6CFNAVTF.js} +21 -141
- package/dist/cli-bundle/chunks/chunk-6CFNAVTF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3TL7WOEF.js → chunk-6N2VXVTQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ERL2YFJ2.js → chunk-6S3YSUYG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ZUKSZVBW.js → chunk-7B67ZL4N.js} +8 -7
- package/dist/cli-bundle/chunks/chunk-7B67ZL4N.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IA3YFTXT.js → chunk-7PIWCHTW.js} +11 -13
- package/dist/cli-bundle/chunks/chunk-7PIWCHTW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BPD26E3P.js → chunk-7Z4LKRS4.js} +291 -81
- package/dist/cli-bundle/chunks/chunk-7Z4LKRS4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IFZA4VB5.js → chunk-AHVTB5I5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-DO5RGJXT.js → chunk-APRVSW2O.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NAQYVWSQ.js → chunk-B7PE22W6.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MD6ULIPJ.js → chunk-BCOFWYW4.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KADLSPIU.js → chunk-BEP7WJA2.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-BKVG6XOA.js +1114 -0
- package/dist/cli-bundle/chunks/chunk-BKVG6XOA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AFWZRL7M.js → chunk-BSEQUTQP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AFWZRL7M.js.map → chunk-BSEQUTQP.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OBDLEQG5.js → chunk-CRVF2JDM.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-FJZDA6MS.js → chunk-DM4H7FP4.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-DUT67M43.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-44LNIULG.js → chunk-DYH63FX7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LWTIRS3Y.js → chunk-E2OJMKML.js} +306 -82
- package/dist/cli-bundle/chunks/chunk-E2OJMKML.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HAMLIWAF.js → chunk-EAB64KLB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-CIOZ376P.js → chunk-EACOH7AU.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-HL7V2PHX.js → chunk-EH2OPHBI.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-HL7V2PHX.js.map → chunk-EH2OPHBI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-QK2ZN6UL.js → chunk-EJEXHTY5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WQUEHPZB.js → chunk-EYLCSJAI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-655STMGA.js → chunk-FMBNM2EN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RMF3IOYQ.js → chunk-FNSPG7MU.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-5CT5BW6E.js → chunk-GM5QHQU6.js} +46 -40
- package/dist/cli-bundle/chunks/chunk-GM5QHQU6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FTQLW4JD.js → chunk-GOSLKLFE.js} +418 -24
- package/dist/cli-bundle/chunks/chunk-GOSLKLFE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KB726FMH.js → chunk-H2Z3FYXQ.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-H3EIEWGR.js +162 -0
- package/dist/cli-bundle/chunks/chunk-H3EIEWGR.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2QIQGYPW.js → chunk-H5APFTHZ.js} +53 -10
- package/dist/cli-bundle/chunks/chunk-H5APFTHZ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-HDH3JUGG.js +118 -0
- package/dist/cli-bundle/chunks/chunk-HDH3JUGG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZAYYDNB3.js → chunk-HO4KXD6I.js} +22 -142
- package/dist/cli-bundle/chunks/chunk-HO4KXD6I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ILLUE5DI.js → chunk-HYB5AZ63.js} +203 -62
- package/dist/cli-bundle/chunks/{chunk-ILLUE5DI.js.map → chunk-HYB5AZ63.js.map} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BN62TO2S.js → chunk-IA5FKNII.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JL7WZ4O2.js → chunk-IG3SWA4A.js} +33 -9
- package/dist/cli-bundle/chunks/chunk-IG3SWA4A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-W6HZ55JO.js → chunk-IJIICKVW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IGED7NH2.js → chunk-ILX33QXL.js} +668 -251
- package/dist/cli-bundle/chunks/chunk-ILX33QXL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UGTVWL3E.js → chunk-INU6DKT5.js} +47 -41
- package/dist/cli-bundle/chunks/chunk-INU6DKT5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UB2QYSTO.js → chunk-J5AOEGDC.js} +26 -18
- package/dist/cli-bundle/chunks/chunk-J5AOEGDC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4DY4KPQI.js → chunk-J6364LFM.js} +1330 -937
- package/dist/cli-bundle/chunks/chunk-J6364LFM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DVOLZJ3C.js → chunk-J6EY5V4N.js} +1295 -939
- package/dist/cli-bundle/chunks/chunk-J6EY5V4N.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-JFTKLTEF.js +1097 -0
- package/dist/cli-bundle/chunks/chunk-JFTKLTEF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-M7EWN4TF.js → chunk-JOUQZENX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J4NZOP3I.js → chunk-JXQUXVMI.js} +9 -8
- package/dist/cli-bundle/chunks/chunk-JXQUXVMI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2FNWQXZ2.js → chunk-JYFOV7FC.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HLHSQ5CA.js → chunk-K2X6U4UA.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6OTZMORS.js → chunk-K3WII2ME.js} +27 -27
- package/dist/cli-bundle/chunks/chunk-K3WII2ME.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-M6ASXYCU.js → chunk-KG44YSKD.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YVKE5ZDM.js → chunk-KPMKHGEA.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QASRVKUQ.js → chunk-LPYWLWDS.js} +257 -163
- package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RGXD5JJR.js → chunk-LSG2U345.js} +19 -12
- package/dist/cli-bundle/chunks/chunk-LSG2U345.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-MIQDDLB5.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-UJ4HJYWL.js → chunk-NLDFBC6J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WRKB56FC.js → chunk-NP22ERDF.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YQYG2V23.js → chunk-NU3IMIEA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3I3LRT2G.js → chunk-NVPZIJVR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JAF4TUQ7.js → chunk-ODALILG3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CDJYP7OQ.js → chunk-ONG5V5CI.js} +190 -63
- package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QZ7LT3XE.js → chunk-ONREO4ST.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-OW4JWD5M.js +61 -0
- package/dist/cli-bundle/chunks/chunk-OW4JWD5M.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3CMRNVTO.js → chunk-P74IZQ7A.js} +12 -12
- package/dist/cli-bundle/chunks/chunk-PENXZX3U.js +172 -0
- package/dist/cli-bundle/chunks/chunk-PENXZX3U.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZTRBSABY.js → chunk-PGY23YTC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-H2QBAKLQ.js → chunk-PMOSXADO.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-PNTULOGU.js +9 -0
- package/dist/cli-bundle/chunks/{chunk-GSEADLRH.js → chunk-Q7A43DS4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QSPARJWF.js → chunk-QEHQ2GVG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VJTAEIPC.js → chunk-QIPLHNP7.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-GXXC7QSK.js → chunk-QKECXBBG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GXXC7QSK.js.map → chunk-QKECXBBG.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-K7WNZ7KD.js → chunk-QKJGPFAF.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-F7PSHRNO.js → chunk-QKXHFPYM.js} +27 -10
- package/dist/cli-bundle/chunks/chunk-QKXHFPYM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZNP64HOW.js → chunk-RLCHOOHC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IAPHYPRL.js → chunk-RMLWNPH2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UVBA6F5A.js → chunk-RRM5JYJC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6IIVBC56.js → chunk-S6MQESFR.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QABYZYLU.js → chunk-SDQLJWBO.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ANSJHDOZ.js → chunk-SELVXEZK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DYEX6NFH.js → chunk-TD3LVC7D.js} +438 -23
- package/dist/cli-bundle/chunks/chunk-TD3LVC7D.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WD6MSYMP.js → chunk-TKOVBP6C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TZ2PSLLT.js → chunk-TQSZFPIS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-WPAWZW7S.js → chunk-TSMHDIW4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TZRTLMWM.js → chunk-UFXU44HV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TWLDBKQU.js → chunk-ULTHRDBP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OI4S4KCI.js → chunk-UMOPHQSU.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-OI4S4KCI.js.map → chunk-UMOPHQSU.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RA5AIAMP.js → chunk-UOHFKBUV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-PHKP3AGR.js → chunk-UWQHLMEB.js} +35 -18
- package/dist/cli-bundle/chunks/chunk-UWQHLMEB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6TTOHMTB.js → chunk-UXONS674.js} +45 -112
- package/dist/cli-bundle/chunks/chunk-UXONS674.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4RXTMU57.js → chunk-UY2ACEMF.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-6PKA3SJQ.js → chunk-WQPUU7XD.js} +19 -28
- package/dist/cli-bundle/chunks/chunk-WQPUU7XD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7TQMR6LK.js → chunk-WT3ZEOGH.js} +70 -20
- package/dist/cli-bundle/chunks/chunk-WT3ZEOGH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FIGXOCEQ.js → chunk-WUJQK4YV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-T4BRCB6Z.js → chunk-XSJUSQAE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6MHSBDGD.js → chunk-XXXF6PAQ.js} +50 -117
- package/dist/cli-bundle/chunks/chunk-XXXF6PAQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UKUIIBDW.js → chunk-YAQEBNY7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7QDSYUMF.js → chunk-YAROI3PD.js} +44 -21
- package/dist/cli-bundle/chunks/chunk-YAROI3PD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-E2WC6S4P.js → chunk-YBLZ2VE7.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-Y72FV7RM.js → chunk-YCQET3OT.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-YUSOJDWM.js +9 -0
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js +58 -0
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FS6UM5WH.js → chunk-ZI6VQWQ7.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js +68 -0
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js.map +7 -0
- package/dist/cli-bundle/chunks/{close-LZECOMHO.js → close-CWODTPKG.js} +5 -5
- package/dist/cli-bundle/chunks/close-W6LI2PKM.js +12 -0
- package/dist/cli-bundle/chunks/{close-many-ZHI6A5TN.js → close-many-CQFUY7MR.js} +15 -13
- package/dist/cli-bundle/chunks/close-many-DLDDVSH5.js +23 -0
- package/dist/cli-bundle/chunks/comments-E3TNTK24.js +13 -0
- package/dist/cli-bundle/chunks/{comments-AJWRTFZ5.js → comments-WGLHR7LB.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-GMXYKBXT.js → copy-LXVDXH7B.js} +4 -4
- package/dist/cli-bundle/chunks/copy-Q5ZJPUKR.js +9 -0
- package/dist/cli-bundle/chunks/{create-F53OBTOU.js → create-J5U6ND4K.js} +9 -9
- package/dist/cli-bundle/chunks/{create-HU4Q7RJX.js → create-LBVCYMEG.js} +9 -9
- package/dist/cli-bundle/chunks/{delete-GSDZLTRC.js → delete-PMJBNY5G.js} +4 -4
- package/dist/cli-bundle/chunks/delete-WNHB3LYW.js +10 -0
- package/dist/cli-bundle/chunks/{deps-WWB7P2GT.js → deps-JZ7TMVCB.js} +7 -4
- package/dist/cli-bundle/chunks/{deps-U57I7EAK.js → deps-OA26IS25.js} +7 -4
- package/dist/cli-bundle/chunks/{docs-MQIY2ZQS.js → docs-FEWB2DQB.js} +6 -6
- package/dist/cli-bundle/chunks/docs-HA2AIDBB.js +14 -0
- package/dist/cli-bundle/chunks/{files-TBZD7V6H.js → files-6YFBJRBG.js} +6 -6
- package/dist/cli-bundle/chunks/{files-TTY6N2AV.js → files-EFIWKFTM.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-XT6YVFFX.js → focus-4QJR7FOQ.js} +5 -5
- package/dist/cli-bundle/chunks/focus-POIW5LTJ.js +10 -0
- package/dist/cli-bundle/chunks/{history-compact-KKVUWB4V.js → history-compact-CKRPDTJN.js} +6 -10
- package/dist/cli-bundle/chunks/history-compact-FWG2C7FZ.js +16 -0
- package/dist/cli-bundle/chunks/history-redact-BB3TGDAE.js +15 -0
- package/dist/cli-bundle/chunks/{history-redact-3DVZOILD.js → history-redact-D225BHOZ.js} +5 -6
- package/dist/cli-bundle/chunks/history-repair-6GEAM7HE.js +16 -0
- package/dist/cli-bundle/chunks/{history-repair-ITDUMK4N.js → history-repair-RQXKQHL4.js} +6 -8
- package/dist/cli-bundle/chunks/{learnings-FGO3NSFW.js → learnings-JLNLCOL5.js} +7 -7
- package/dist/cli-bundle/chunks/learnings-RSNLSWDC.js +13 -0
- package/dist/cli-bundle/chunks/notes-2WDH6DXU.js +13 -0
- package/dist/cli-bundle/chunks/{notes-NQ6RXVW6.js → notes-GB47XXQQ.js} +7 -7
- package/dist/cli-bundle/chunks/plan-DOVI2VMW.js +24 -0
- package/dist/cli-bundle/chunks/{plan-2NNEO46V.js → plan-VDCJ2PCN.js} +10 -10
- package/dist/cli-bundle/chunks/{profile-AAQUU6T3.js → profile-FAU7NZML.js} +10 -10
- package/dist/cli-bundle/chunks/{profile-U725ATWZ.js → profile-IVXQEL3D.js} +10 -10
- package/dist/cli-bundle/chunks/{register-list-query-BUWCYHBT.js → register-list-query-DKA3EH5D.js} +22 -19
- package/dist/cli-bundle/chunks/register-list-query-DKA3EH5D.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-KTZ6AGE7.js → register-list-query-UL4UKBBN.js} +23 -20
- package/dist/cli-bundle/chunks/register-list-query-UL4UKBBN.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-UELYYOR7.js → register-mutation-ARFHRW55.js} +36 -32
- package/dist/cli-bundle/chunks/{register-mutation-UELYYOR7.js.map → register-mutation-ARFHRW55.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-4FMGJJF7.js → register-mutation-RBBJ52DK.js} +37 -33
- package/dist/cli-bundle/chunks/register-mutation-RBBJ52DK.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-JVW24J2Y.js → register-operations-ZIBBRSED.js} +41 -39
- package/dist/cli-bundle/chunks/{register-operations-JVW24J2Y.js.map → register-operations-ZIBBRSED.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-ISUX6LY5.js → register-operations-ZUJ5JWPE.js} +39 -37
- package/dist/cli-bundle/chunks/{register-operations-ISUX6LY5.js.map → register-operations-ZUJ5JWPE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-5XNGKJ22.js → register-setup-BCVLFEYS.js} +29 -17
- package/dist/cli-bundle/chunks/{register-setup-5XNGKJ22.js.map → register-setup-BCVLFEYS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-ZTNY6S7R.js → register-setup-TDCGWIOS.js} +19 -18
- package/dist/cli-bundle/chunks/{register-setup-ZTNY6S7R.js.map → register-setup-TDCGWIOS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{restore-B3BAB6X2.js → restore-25DLT2Q2.js} +6 -6
- package/dist/cli-bundle/chunks/restore-YPMVUUEX.js +14 -0
- package/dist/cli-bundle/chunks/{schema-U7IM2DXV.js → schema-FNU3WE4O.js} +7 -6
- package/dist/cli-bundle/chunks/{schema-LZNUYHDB.js → schema-NBCM3RAD.js} +7 -6
- package/dist/cli-bundle/chunks/update-WWBYOPXO.js +21 -0
- package/dist/cli-bundle/chunks/update-WWBYOPXO.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-Q3UCILNR.js → update-XHSIAIXE.js} +12 -12
- package/dist/cli-bundle/chunks/update-XHSIAIXE.js.map +1 -0
- package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js +32 -0
- package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js.map +7 -0
- package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js +36 -0
- package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js.map +1 -0
- package/dist/cli-bundle/main.js +826 -43
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/cli-bundle/sdk-runtime.js +70 -57
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +876 -74
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +12 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/history/projection.d.ts +39 -0
- package/dist/core/history/projection.js +164 -0
- package/dist/core/history/projection.js.map +1 -0
- package/dist/core/history/read.d.ts +3 -0
- package/dist/core/history/read.js +55 -0
- package/dist/core/history/read.js.map +1 -0
- package/dist/core/output/output-control.d.ts +18 -0
- package/dist/core/output/output-control.js +26 -0
- package/dist/core/output/output-control.js.map +1 -0
- package/dist/core/output/output.js +20 -8
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/sentry/helpers.js +10 -2
- package/dist/core/sentry/helpers.js.map +1 -1
- package/dist/core/shared/command-types.d.ts +2 -0
- package/dist/core/shared/command-types.js +2 -2
- package/dist/core/shared/command-types.js.map +1 -1
- package/dist/core/shared/errors.d.ts +11 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/tool-definitions.js +5 -5
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/author-attribution.d.ts +35 -0
- package/dist/sdk/author-attribution.js +118 -0
- package/dist/sdk/author-attribution.js.map +1 -0
- package/dist/sdk/cli-contracts/command-aliases.d.ts +7 -0
- package/dist/sdk/cli-contracts/command-aliases.js +17 -0
- package/dist/sdk/cli-contracts/command-aliases.js.map +1 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +6 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +21 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +3 -3
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts.js +3 -2
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/cli-program.d.ts +8 -0
- package/dist/sdk/cli-program.js +39 -0
- package/dist/sdk/cli-program.js.map +1 -0
- package/dist/sdk/command-line.d.ts +11 -0
- package/dist/sdk/command-line.js +40 -0
- package/dist/sdk/command-line.js.map +1 -0
- package/dist/sdk/config.d.ts +163 -0
- package/dist/sdk/config.js +1087 -0
- package/dist/sdk/config.js.map +1 -0
- package/dist/sdk/context-relevance.d.ts +21 -0
- package/dist/sdk/context-relevance.js +70 -2
- package/dist/sdk/context-relevance.js.map +1 -1
- package/dist/sdk/dependencies.d.ts +15 -2
- package/dist/sdk/dependencies.js +97 -8
- package/dist/sdk/dependencies.js.map +1 -1
- package/dist/{cli/commands → sdk}/extension/bundled-catalog.d.ts +1 -1
- package/dist/{cli/commands → sdk}/extension/bundled-catalog.js +12 -12
- package/dist/sdk/extension/bundled-catalog.js.map +1 -0
- package/dist/sdk/extension/concurrency.d.ts +7 -0
- package/dist/sdk/extension/concurrency.js +26 -0
- package/dist/sdk/extension/concurrency.js.map +1 -0
- package/dist/sdk/extension/describe.d.ts +91 -0
- package/dist/sdk/extension/describe.js +144 -0
- package/dist/sdk/extension/describe.js.map +1 -0
- package/dist/{cli/commands → sdk}/extension/doctor.d.ts +3 -3
- package/dist/{cli/commands → sdk}/extension/doctor.js +7 -7
- package/dist/sdk/extension/doctor.js.map +1 -0
- package/dist/sdk/extension/install-runtime.d.ts +26 -0
- package/dist/sdk/extension/install-runtime.js +269 -0
- package/dist/sdk/extension/install-runtime.js.map +1 -0
- package/dist/sdk/extension/install-snapshot.d.ts +23 -0
- package/dist/sdk/extension/install-snapshot.js +66 -0
- package/dist/sdk/extension/install-snapshot.js.map +1 -0
- package/dist/{cli/commands → sdk}/extension/install-sources.d.ts +3 -3
- package/dist/{cli/commands → sdk}/extension/install-sources.js +15 -12
- package/dist/sdk/extension/install-sources.js.map +1 -0
- package/dist/{cli/commands → sdk}/extension/managed-state.js +6 -6
- package/dist/sdk/extension/managed-state.js.map +1 -0
- package/dist/sdk/extension/scaffold.d.ts +36 -0
- package/dist/sdk/extension/scaffold.js +2436 -0
- package/dist/sdk/extension/scaffold.js.map +1 -0
- package/dist/sdk/extension/shared.d.ts +28 -0
- package/dist/sdk/extension/shared.js +140 -0
- package/dist/sdk/extension/shared.js.map +1 -0
- package/dist/sdk/extension/update-check.d.ts +15 -0
- package/dist/sdk/extension/update-check.js +68 -0
- package/dist/sdk/extension/update-check.js.map +1 -0
- package/dist/sdk/extension.d.ts +367 -0
- package/dist/sdk/extension.js +2174 -0
- package/dist/sdk/extension.js.map +1 -0
- package/dist/sdk/governance/gc.d.ts +56 -0
- package/dist/sdk/governance/gc.js +276 -0
- package/dist/sdk/governance/gc.js.map +1 -0
- package/dist/sdk/governance/health.d.ts +187 -0
- package/dist/sdk/governance/health.js +1796 -0
- package/dist/sdk/governance/health.js.map +1 -0
- package/dist/sdk/governance/validate.d.ts +255 -0
- package/dist/sdk/governance/validate.js +2175 -0
- package/dist/sdk/governance/validate.js.map +1 -0
- package/dist/sdk/history-compact.d.ts +142 -0
- package/dist/sdk/history-compact.js +508 -0
- package/dist/sdk/history-compact.js.map +1 -0
- package/dist/sdk/history-mcp.d.ts +17 -0
- package/dist/sdk/history-mcp.js +68 -0
- package/dist/sdk/history-mcp.js.map +1 -0
- package/dist/sdk/history-read.d.ts +31 -0
- package/dist/sdk/history-read.js +58 -0
- package/dist/sdk/history-read.js.map +1 -0
- package/dist/sdk/history-redact.d.ts +120 -0
- package/dist/sdk/history-redact.js +577 -0
- package/dist/sdk/history-redact.js.map +1 -0
- package/dist/sdk/history-repair.d.ts +89 -0
- package/dist/sdk/history-repair.js +263 -0
- package/dist/sdk/history-repair.js.map +1 -0
- package/dist/sdk/index.d.ts +25 -1
- package/dist/sdk/index.js +27 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/init-agent-guidance.d.ts +113 -0
- package/dist/sdk/init-agent-guidance.js +437 -0
- package/dist/sdk/init-agent-guidance.js.map +1 -0
- package/dist/sdk/init.d.ts +186 -0
- package/dist/sdk/init.js +733 -0
- package/dist/sdk/init.js.map +1 -0
- package/dist/sdk/invocation-author.d.ts +2 -0
- package/dist/sdk/invocation-author.js +39 -0
- package/dist/sdk/invocation-author.js.map +1 -0
- package/dist/sdk/item-children.d.ts +45 -0
- package/dist/sdk/item-children.js +75 -0
- package/dist/sdk/item-children.js.map +1 -0
- package/dist/sdk/item-schedule.d.ts +26 -0
- package/dist/sdk/item-schedule.js +28 -0
- package/dist/sdk/item-schedule.js.map +1 -0
- package/dist/sdk/output.d.ts +7 -0
- package/dist/sdk/output.js +11 -0
- package/dist/sdk/output.js.map +1 -0
- package/dist/sdk/pagination.d.ts +4 -1
- package/dist/sdk/pagination.js +13 -5
- package/dist/sdk/pagination.js.map +1 -1
- package/dist/sdk/profile.d.ts +176 -0
- package/dist/sdk/profile.js +431 -0
- package/dist/sdk/profile.js.map +1 -0
- package/dist/sdk/relationship-analytics.d.ts +108 -0
- package/dist/sdk/relationship-analytics.js +292 -0
- package/dist/sdk/relationship-analytics.js.map +1 -0
- package/dist/sdk/relationship-context.d.ts +67 -0
- package/dist/sdk/relationship-context.js +207 -0
- package/dist/sdk/relationship-context.js.map +1 -0
- package/dist/sdk/relationship-history.d.ts +109 -0
- package/dist/sdk/relationship-history.js +401 -0
- package/dist/sdk/relationship-history.js.map +1 -0
- package/dist/sdk/relationships.d.ts +145 -0
- package/dist/sdk/relationships.js +551 -0
- package/dist/sdk/relationships.js.map +1 -0
- package/dist/sdk/runtime-input.d.ts +10 -0
- package/dist/sdk/runtime-input.js +60 -0
- package/dist/sdk/runtime-input.js.map +1 -0
- package/dist/sdk/runtime.d.ts +31 -8
- package/dist/sdk/runtime.js +61 -57
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/schema.d.ts +507 -0
- package/dist/sdk/schema.js +1269 -0
- package/dist/sdk/schema.js.map +1 -0
- package/dist/{cli/commands → sdk}/templates.d.ts +1 -1
- package/dist/{cli/commands → sdk}/templates.js +9 -9
- package/dist/sdk/templates.js.map +1 -0
- package/dist/{cli/commands → sdk}/test/linked-command-detection.d.ts +10 -2
- package/dist/sdk/test/linked-command-detection.js +525 -0
- package/dist/sdk/test/linked-command-detection.js.map +1 -0
- package/docs/COMMANDS.md +58 -40
- package/docs/EXTENSIONS.md +10 -1
- package/docs/RELATIONSHIP_GRAPH.md +113 -0
- package/docs/RELEASING.md +2 -0
- package/docs/SDK.md +156 -9
- package/docs/SDK_CUSTOMIZATION_PRIMITIVES.md +79 -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/extensions/governance-audit/runtime-utils.ts +76 -16
- package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +8 -0
- 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/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/bundle-cli.mjs +66 -23
- package/dist/cli/commands/extension/bundled-catalog.js.map +0 -1
- package/dist/cli/commands/extension/doctor.js.map +0 -1
- package/dist/cli/commands/extension/install-sources.js.map +0 -1
- package/dist/cli/commands/extension/managed-state.js.map +0 -1
- package/dist/cli/commands/templates.js.map +0 -1
- package/dist/cli/commands/test/linked-command-detection.js +0 -248
- package/dist/cli/commands/test/linked-command-detection.js.map +0 -1
- package/dist/cli-bundle/chunks/append-DYQWQK2J.js +0 -11
- package/dist/cli-bundle/chunks/chunk-2GA3NK35.js +0 -530
- package/dist/cli-bundle/chunks/chunk-2GA3NK35.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2QIQGYPW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4DY4KPQI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4WREH7RT.js +0 -554
- package/dist/cli-bundle/chunks/chunk-4WREH7RT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5CT5BW6E.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5URI7TPJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6MHSBDGD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6OTZMORS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6PKA3SJQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6TTOHMTB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7QDSYUMF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7TQMR6LK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-B5DZYTT3.js +0 -312
- package/dist/cli-bundle/chunks/chunk-B5DZYTT3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BPD26E3P.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CDJYP7OQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DBZVUJTK.js +0 -858
- package/dist/cli-bundle/chunks/chunk-DBZVUJTK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DVOLZJ3C.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DYEX6NFH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-F7PSHRNO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FO7GMJKG.js +0 -875
- package/dist/cli-bundle/chunks/chunk-FO7GMJKG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FTQLW4JD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IA3YFTXT.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IGED7NH2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-J4NZOP3I.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JL7WZ4O2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-L24HCJFC.js +0 -309
- package/dist/cli-bundle/chunks/chunk-L24HCJFC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LWTIRS3Y.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MKL4CP2I.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N3CMP4NI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PHKP3AGR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Q37E63AM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QASRVKUQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RGXD5JJR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UB2QYSTO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UGTVWL3E.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZAYYDNB3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZUKSZVBW.js.map +0 -7
- package/dist/cli-bundle/chunks/close-RI4JQQHU.js +0 -12
- package/dist/cli-bundle/chunks/close-many-LY2XJ52M.js +0 -21
- package/dist/cli-bundle/chunks/comments-35M273DN.js +0 -13
- package/dist/cli-bundle/chunks/copy-NPYM7M7U.js +0 -9
- package/dist/cli-bundle/chunks/delete-ODRWJWAM.js +0 -10
- package/dist/cli-bundle/chunks/docs-G7N4E2JO.js +0 -14
- package/dist/cli-bundle/chunks/focus-U5TRVCRS.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-M7GHYVFN.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-JIHZLHDP.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-NAFCHLH7.js +0 -18
- package/dist/cli-bundle/chunks/learnings-SONGPSHI.js +0 -13
- package/dist/cli-bundle/chunks/notes-BSD53H2W.js +0 -13
- package/dist/cli-bundle/chunks/plan-AWLYGBNV.js +0 -24
- package/dist/cli-bundle/chunks/register-list-query-BUWCYHBT.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-KTZ6AGE7.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-4FMGJJF7.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-66GLMHIX.js +0 -14
- package/dist/cli-bundle/chunks/update-2XGHIVQ2.js +0 -21
- package/dist/cli-bundle/chunks/update-many-75K57FS3.js +0 -34
- package/dist/cli-bundle/chunks/update-many-U42YA445.js +0 -30
- /package/dist/cli-bundle/chunks/{append-PVZJDM6J.js.map → append-OJQFUQ4T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-DYQWQK2J.js.map → append-UZVHUO74.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MQZ3PLCF.js.map → chunk-2IFFUZLC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P6MYFH6K.js.map → chunk-2JKGO6QX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X3GYR4P2.js.map → chunk-2NCIPMQP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q7E6OYZK.js.map → chunk-2VPAVL7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DRNJPEPQ.js.map → chunk-2WSE6PO2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FDSBDNYE.js.map → chunk-34L5OT3Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TH7U4KLY.js.map → chunk-3AUGG2DP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NKW36AMT.js.map → chunk-3CLU2XZO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ABRCOSDC.js.map → chunk-3WM75PWC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X6BVXQ52.js.map → chunk-5JLUII3O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3TL7WOEF.js.map → chunk-6N2VXVTQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ERL2YFJ2.js.map → chunk-6S3YSUYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IFZA4VB5.js.map → chunk-AHVTB5I5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DO5RGJXT.js.map → chunk-APRVSW2O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NAQYVWSQ.js.map → chunk-B7PE22W6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MD6ULIPJ.js.map → chunk-BCOFWYW4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KADLSPIU.js.map → chunk-BEP7WJA2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OBDLEQG5.js.map → chunk-CRVF2JDM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FJZDA6MS.js.map → chunk-DM4H7FP4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-LZECOMHO.js.map → chunk-DUT67M43.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-44LNIULG.js.map → chunk-DYH63FX7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HAMLIWAF.js.map → chunk-EAB64KLB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CIOZ376P.js.map → chunk-EACOH7AU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QK2ZN6UL.js.map → chunk-EJEXHTY5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQUEHPZB.js.map → chunk-EYLCSJAI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-655STMGA.js.map → chunk-FMBNM2EN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RMF3IOYQ.js.map → chunk-FNSPG7MU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KB726FMH.js.map → chunk-H2Z3FYXQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BN62TO2S.js.map → chunk-IA5FKNII.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W6HZ55JO.js.map → chunk-IJIICKVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M7EWN4TF.js.map → chunk-JOUQZENX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2FNWQXZ2.js.map → chunk-JYFOV7FC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HLHSQ5CA.js.map → chunk-K2X6U4UA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M6ASXYCU.js.map → chunk-KG44YSKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YVKE5ZDM.js.map → chunk-KPMKHGEA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-ZHI6A5TN.js.map → chunk-MIQDDLB5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UJ4HJYWL.js.map → chunk-NLDFBC6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WRKB56FC.js.map → chunk-NP22ERDF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YQYG2V23.js.map → chunk-NU3IMIEA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3I3LRT2G.js.map → chunk-NVPZIJVR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JAF4TUQ7.js.map → chunk-ODALILG3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QZ7LT3XE.js.map → chunk-ONREO4ST.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3CMRNVTO.js.map → chunk-P74IZQ7A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZTRBSABY.js.map → chunk-PGY23YTC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H2QBAKLQ.js.map → chunk-PMOSXADO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-RI4JQQHU.js.map → chunk-PNTULOGU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GSEADLRH.js.map → chunk-Q7A43DS4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QSPARJWF.js.map → chunk-QEHQ2GVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VJTAEIPC.js.map → chunk-QIPLHNP7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K7WNZ7KD.js.map → chunk-QKJGPFAF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZNP64HOW.js.map → chunk-RLCHOOHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IAPHYPRL.js.map → chunk-RMLWNPH2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UVBA6F5A.js.map → chunk-RRM5JYJC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6IIVBC56.js.map → chunk-S6MQESFR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QABYZYLU.js.map → chunk-SDQLJWBO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ANSJHDOZ.js.map → chunk-SELVXEZK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WD6MSYMP.js.map → chunk-TKOVBP6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZ2PSLLT.js.map → chunk-TQSZFPIS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WPAWZW7S.js.map → chunk-TSMHDIW4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZRTLMWM.js.map → chunk-UFXU44HV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TWLDBKQU.js.map → chunk-ULTHRDBP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RA5AIAMP.js.map → chunk-UOHFKBUV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4RXTMU57.js.map → chunk-UY2ACEMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIGXOCEQ.js.map → chunk-WUJQK4YV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T4BRCB6Z.js.map → chunk-XSJUSQAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UKUIIBDW.js.map → chunk-YAQEBNY7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E2WC6S4P.js.map → chunk-YBLZ2VE7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y72FV7RM.js.map → chunk-YCQET3OT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-LY2XJ52M.js.map → chunk-YUSOJDWM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FS6UM5WH.js.map → chunk-ZI6VQWQ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-AJWRTFZ5.js.map → close-CWODTPKG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-35M273DN.js.map → close-W6LI2PKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-GMXYKBXT.js.map → close-many-CQFUY7MR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-NPYM7M7U.js.map → close-many-DLDDVSH5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-F53OBTOU.js.map → comments-E3TNTK24.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-HU4Q7RJX.js.map → comments-WGLHR7LB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-GSDZLTRC.js.map → copy-LXVDXH7B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ODRWJWAM.js.map → copy-Q5ZJPUKR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-U57I7EAK.js.map → create-J5U6ND4K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-WWB7P2GT.js.map → create-LBVCYMEG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-MQIY2ZQS.js.map → delete-PMJBNY5G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-G7N4E2JO.js.map → delete-WNHB3LYW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-TTY6N2AV.js.map → deps-JZ7TMVCB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-TBZD7V6H.js.map → deps-OA26IS25.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-XT6YVFFX.js.map → docs-FEWB2DQB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-U5TRVCRS.js.map → docs-HA2AIDBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-M7GHYVFN.js.map → files-6YFBJRBG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-KKVUWB4V.js.map → files-EFIWKFTM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-3DVZOILD.js.map → focus-4QJR7FOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-JIHZLHDP.js.map → focus-POIW5LTJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-ITDUMK4N.js.map → history-compact-CKRPDTJN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-NAFCHLH7.js.map → history-compact-FWG2C7FZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-SONGPSHI.js.map → history-redact-BB3TGDAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-FGO3NSFW.js.map → history-redact-D225BHOZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-BSD53H2W.js.map → history-repair-6GEAM7HE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-NQ6RXVW6.js.map → history-repair-RQXKQHL4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-2NNEO46V.js.map → learnings-JLNLCOL5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-AWLYGBNV.js.map → learnings-RSNLSWDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-U725ATWZ.js.map → notes-2WDH6DXU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-AAQUU6T3.js.map → notes-GB47XXQQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-66GLMHIX.js.map → plan-DOVI2VMW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-B3BAB6X2.js.map → plan-VDCJ2PCN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-U7IM2DXV.js.map → profile-FAU7NZML.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-LZNUYHDB.js.map → profile-IVXQEL3D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-Q3UCILNR.js.map → restore-25DLT2Q2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-2XGHIVQ2.js.map → restore-YPMVUUEX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-75K57FS3.js.map → schema-FNU3WE4O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-U42YA445.js.map → schema-NBCM3RAD.js.map} +0 -0
- /package/dist/{cli/commands → sdk}/extension/managed-state.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sources":["sdk/governance/health.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module sdk/governance/health\n *\n * Implements the pm health command surface and its agent-facing runtime behavior.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { pathExists, readFileIfExists } from \"../../core/fs/fs-utils.js\";\nimport {\n activateExtensions,\n getActiveExtensionRegistrations,\n loadExtensions,\n runActiveOnReadHooks,\n} from \"../../core/extensions/index.js\";\nimport { collectRegisteredItemFieldNames } from \"../../core/extensions/item-fields.js\";\nimport {\n KNOWN_EXTENSION_CAPABILITIES,\n type LoadedExtension,\n} from \"../../core/extensions/loader.js\";\nimport { enforceHistoryStreamPolicyForItems } from \"../../core/history/history-stream-policy.js\";\nimport { scanHistoryDrift } from \"../../core/history/drift-scan.js\";\nimport { scanLockHealth } from \"../../core/lock/lock-gc.js\";\nimport {\n readVectorizationStatusLedger,\n refreshSemanticEmbeddingsForMutatedItems,\n} from \"../../core/search/cache.js\";\nimport {\n resolveEmbeddingProviders,\n resolveProviderConfigSource,\n} from \"../../core/search/providers.js\";\nimport { resolveSettingsWithSemanticRuntimeDefaults } from \"../../core/search/semantic-defaults.js\";\nimport { collectStaleVectorizationIds } from \"../../core/search/staleness.js\";\nimport {\n buildVectorizationEmbeddingIdentity,\n hasVectorizationEmbeddingIdentityChanged,\n} from \"../../core/search/vectorization-metadata.js\";\nimport { resolveVectorStores } from \"../../core/search/vector-stores.js\";\nimport {\n EXIT_CODE,\n PM_CORE_REQUIRED_SUBDIRS,\n PM_OPTIONAL_TYPE_SUBDIRS,\n} from \"../../core/shared/constants.js\";\nimport { findFirstMergeConflictMarker } from \"../../core/shared/conflict-markers.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toNonEmptyStringOrUndefined } from \"../../core/shared/primitives.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { parseItemDocument } from \"../../core/item/item-format.js\";\nimport {\n effectiveItemFormatVersion,\n scanItemFormatVersions,\n} from \"../../core/item/item-format-version.js\";\nimport {\n listAllItemMetadata,\n listAllItemMetadataWithBody,\n} from \"../../core/store/item-store.js\";\nimport {\n PM_TELEMETRY_SOURCE_CONTEXT_VALUES,\n TELEMETRY_MAX_QUEUE_ENTRY_ATTEMPTS,\n TELEMETRY_SCHEMA_VERSION,\n} from \"../../core/telemetry/runtime.js\";\n\nimport {\n getItemFormatFromPath,\n getSettingsPath,\n ITEM_FILE_EXTENSIONS,\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettingsWithMetadata } from \"../../core/store/settings.js\";\nimport { buildRemediationMap } from \"../../core/diagnostics/remediation.js\";\nimport {\n scanHistoryAuthorAttribution,\n type HistoryAuthorAttributionScan,\n} from \"../author-attribution.js\";\nimport type {\n HistoryCompactPolicy,\n ItemFormat,\n ItemMetadata,\n PmSettings,\n} from \"../../types/index.js\";\nimport { readManagedExtensionState } from \"../extension.js\";\nimport {\n buildCapabilityContractMetadata,\n buildRegistrationCollisionRemediation,\n collectUnknownCapabilityGuidance,\n} from \"../extension/doctor.js\";\n\nconst PM_TELEMETRY_SOURCE_CONTEXT_SET = new Set<string>(\n PM_TELEMETRY_SOURCE_CONTEXT_VALUES,\n);\n\ntype HealthStatus = \"ok\" | \"warn\";\ntype MigrationRuntimeStatus = \"pending\" | \"failed\" | \"applied\";\n\n/** Documents the health check payload exchanged by command, SDK, and package integrations. */\nexport interface HealthCheck {\n /** Value that configures or reports name for this contract. */\n name:\n | \"settings\"\n | \"directories\"\n | \"settings_values\"\n | \"telemetry\"\n | \"extensions\"\n | \"storage\"\n | \"locks\"\n | \"integrity\"\n | \"history_drift\"\n | \"vectorization\";\n /** Lifecycle state reported for status. */\n status: HealthStatus;\n /** Value that configures or reports details for this contract. */\n details: Record<string, unknown>;\n}\n\n/** Documents the health result payload exchanged by command, SDK, and package integrations. */\nexport interface HealthResult {\n /** Whether the operation completed without a blocking failure. */\n ok: boolean;\n /** Value that configures or reports checks for this contract. */\n checks: HealthCheck[];\n /** Number of warning entries represented by this result. */\n warning_count?: number;\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n /** Value that configures or reports projection for this contract. */\n projection?: {\n mode: \"brief\" | \"summary\" | \"full\";\n warning_count: number;\n warnings_truncated: boolean;\n detail_limit: number;\n omitted_checks?: HealthCheck[\"name\"][];\n };\n /** ISO 8601 timestamp recording when generated occurred. */\n generated_at: string;\n}\n\n/** Documents the run health options payload exchanged by command, SDK, and package integrations. */\nexport interface RunHealthOptions {\n /** Value that configures or reports strict directories for this contract. */\n strictDirectories?: boolean;\n /** Value that configures or reports check only for this contract. */\n checkOnly?: boolean;\n /** Value that configures or reports check telemetry for this contract. */\n checkTelemetry?: boolean;\n /** Value that configures or reports no refresh for this contract. */\n noRefresh?: boolean;\n /** Value that configures or reports refresh vectors for this contract. */\n refreshVectors?: boolean;\n /** Value that configures or reports verbose stale items for this contract. */\n verboseStaleItems?: boolean;\n /** Value that configures or reports skip vectors for this contract. */\n skipVectors?: boolean;\n /** Value that configures or reports skip integrity for this contract. */\n skipIntegrity?: boolean;\n /** Value that configures or reports skip drift for this contract. */\n skipDrift?: boolean;\n /** Value that configures or reports full for this contract. */\n full?: boolean;\n /** Value that configures or reports brief for this contract. */\n brief?: boolean;\n /** Value that configures or reports summary for this contract. */\n summary?: boolean;\n}\n\ninterface VectorRefreshPolicy {\n enabled: boolean;\n checkOnly: boolean;\n noRefresh: boolean;\n refreshVectors: boolean;\n}\n\ninterface MigrationStatusEntry {\n layer: \"global\" | \"project\";\n name: string;\n id: string;\n status: MigrationRuntimeStatus;\n reason?: string;\n}\n\ninterface MigrationStatusSummary {\n applied: MigrationStatusEntry[];\n pending: MigrationStatusEntry[];\n failed: MigrationStatusEntry[];\n applied_count: number;\n pending_count: number;\n failed_count: number;\n}\n\ninterface ExtensionHealthTriageSummary {\n status: \"ok\" | \"warn\";\n warning_count: number;\n warning_codes: string[];\n load_failure_count: number;\n activation_failure_count: number;\n migration_failed_count: number;\n migration_pending_count: number;\n managed_state_warning_count: number;\n managed_extension_entries_count: number;\n unmanaged_loaded_extension_count: number;\n unmanaged_loaded_extensions: string[];\n unmanaged_expected_extension_count: number;\n unmanaged_expected_extensions: string[];\n unmanaged_action_required_extension_count: number;\n unmanaged_action_required_extensions: string[];\n update_health_coverage: \"full\" | \"partial\";\n update_health_partial: boolean;\n unknown_capability_count: number;\n top_warnings: string[];\n remediation: string[];\n}\n\ntype ItemWithBody = Awaited<\n ReturnType<typeof listAllItemMetadataWithBody>\n>[number];\nconst STALE_VECTORIZATION_SUMMARY_LIMIT = 25;\nconst BRIEF_HEALTH_DETAIL_LIMIT = 8;\nconst TELEMETRY_QUEUE_RELATIVE_PATH = path.join(\n \"runtime\",\n \"telemetry\",\n \"events.jsonl\",\n);\nconst TELEMETRY_STATE_RELATIVE_PATH = path.join(\n \"runtime\",\n \"telemetry\",\n \"state.json\",\n);\nconst TELEMETRY_ENDPOINT_PROBE_TIMEOUT_MS = 2_500;\nconst TELEMETRY_QUEUE_HIGH_WATER_MARK = 500;\nconst TELEMETRY_QUEUE_HIGH_RETRY_THRESHOLD =\n TELEMETRY_MAX_QUEUE_ENTRY_ATTEMPTS - 3;\nconst TELEMETRY_SERVER_MAX_SCHEMA_VERSION_HEADERS = [\n \"x-pm-telemetry-max-schema-version\",\n \"x-pm-telemetry-max-version\",\n] as const;\n\n/** Advisory warnings are surfaced for visibility but never flip overall health to not-ok. Telemetry is opt-out, non-critical observability: a queued/unreachable telemetry endpoint or corrupt local telemetry state is not a project-health failure and must not block agents that gate on `pm health` `ok`. History over-compaction-threshold warnings are likewise advisory maintenance hints — a deep stream is healthy, just a candidate for `pm history-compact`. */\nfunction isAdvisoryHealthWarning(warning: string): boolean {\n return (\n warning.startsWith(\"telemetry_\") ||\n warning.startsWith(\"history_stream_over_compact_threshold:\")\n );\n}\n\nfunction warningCode(value: string): string {\n const normalized = value.trim();\n const separator = normalized.indexOf(\":\");\n if (separator === -1) {\n return normalized;\n }\n return normalized.slice(0, separator);\n}\n\nfunction normalizeExtensionNameForMatch(value: string): string {\n return value.trim().toLowerCase();\n}\n\nfunction isExpectedUnmanagedExtension(\n name: string,\n directory: string,\n): boolean {\n const normalizedName = normalizeExtensionNameForMatch(name);\n const normalizedDirectory = normalizeExtensionNameForMatch(directory);\n if (normalizedName.startsWith(\"builtin-\")) {\n return true;\n }\n return normalizedDirectory === \"beads\" || normalizedDirectory === \"todos\";\n}\n\nasync function isDirectory(targetPath: string): Promise<boolean> {\n try {\n const stats = await fs.stat(targetPath);\n return stats.isDirectory();\n } catch {\n return false;\n }\n}\n\n/** Summary of the history-stream directory used by the storage health check. `over_threshold` is populated only when the compaction policy is enabled — counting entries requires reading every stream, so the default (policy-off) path stays a cheap directory listing. */\ninterface HistoryStreamSummary {\n count: number;\n warnings: string[];\n over_threshold: string[];\n max_entries: number | null;\n}\n\nasync function countHistoryStreams(\n pmRoot: string,\n compactPolicy: HistoryCompactPolicy,\n): Promise<HistoryStreamSummary> {\n const historyDir = path.join(pmRoot, \"history\");\n if (!(await isDirectory(historyDir))) {\n return { count: 0, warnings: [], over_threshold: [], max_entries: null };\n }\n const historyFiles = (await fs.readdir(historyDir))\n .filter((entry) => entry.endsWith(\".jsonl\"))\n .sort((left, right) => left.localeCompare(right));\n\n const policyActive = compactPolicy.enabled;\n const maxEntries = policyActive ? compactPolicy.max_entries : null;\n const warnings: string[] = [];\n const overThreshold: string[] = [];\n for (const fileName of historyFiles) {\n const streamPath = path.join(historyDir, fileName);\n warnings.push(\n ...(await runActiveOnReadHooks({ path: streamPath, scope: \"project\" })),\n );\n if (!policyActive) {\n continue;\n }\n const raw = await fs.readFile(streamPath, \"utf8\");\n let entries = 0;\n for (const line of raw.split(/\\r?\\n/)) {\n if (line.trim().length > 0) {\n entries += 1;\n }\n }\n if (entries > compactPolicy.max_entries) {\n overThreshold.push(fileName.slice(0, -\".jsonl\".length));\n }\n }\n\n return {\n count: historyFiles.length,\n warnings: [\n ...warnings,\n ...overThreshold.map(\n (id) => `history_stream_over_compact_threshold:${id}`,\n ),\n ],\n over_threshold: overThreshold,\n max_entries: maxEntries,\n };\n}\n\nfunction normalizeRelativePath(pmRoot: string, targetPath: string): string {\n return path.relative(pmRoot, targetPath).replaceAll(\"\\\\\", \"/\");\n}\n\nasync function listItemDocumentPaths(\n pmRoot: string,\n typeToFolder: Record<string, string>,\n): Promise<string[]> {\n const folders = [...new Set(Object.values(typeToFolder))].sort(\n (left, right) => left.localeCompare(right),\n );\n const itemPaths: string[] = [];\n for (const folder of folders) {\n const directoryPath = path.join(pmRoot, folder);\n let entries: string[] = [];\n try {\n entries = await fs.readdir(directoryPath);\n } catch (error: unknown) {\n if (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: string }).code === \"ENOENT\"\n ) {\n continue;\n }\n continue;\n }\n for (const entry of entries) {\n if (\n !ITEM_FILE_EXTENSIONS.some((extension) =>\n entry.toLowerCase().endsWith(extension),\n )\n ) {\n continue;\n }\n itemPaths.push(path.join(directoryPath, entry));\n }\n }\n itemPaths.sort((left, right) =>\n normalizeRelativePath(pmRoot, left).localeCompare(\n normalizeRelativePath(pmRoot, right),\n ),\n );\n return itemPaths;\n}\n\nfunction shouldReportHistoryDirectoryUnreadable(error: unknown): boolean {\n return !(\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: string }).code === \"ENOENT\"\n );\n}\n\nasync function buildIntegrityCheck(\n pmRoot: string,\n typeToFolder: Record<string, string>,\n schema: PmSettings[\"schema\"],\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const itemPaths = await listItemDocumentPaths(pmRoot, typeToFolder);\n const itemUnreadable: string[] = [];\n const itemConflictMarkers: Array<{\n path: string;\n line: number;\n marker: string;\n }> = [];\n const itemParseFailures: string[] = [];\n const formatVersionEntries: Array<{ ref: string; version: number }> = [];\n const extensionFieldNames = collectRegisteredItemFieldNames(\n getActiveExtensionRegistrations(),\n );\n\n for (const itemPath of itemPaths) {\n const relativePath = normalizeRelativePath(pmRoot, itemPath);\n let raw = \"\";\n try {\n raw = await fs.readFile(itemPath, \"utf8\");\n } catch {\n itemUnreadable.push(relativePath);\n continue;\n }\n const conflictMarker = findFirstMergeConflictMarker(raw);\n if (conflictMarker) {\n itemConflictMarkers.push({\n path: relativePath,\n line: conflictMarker.line,\n marker: conflictMarker.marker,\n });\n continue;\n }\n try {\n const parsed = parseItemDocument(raw, {\n format: getItemFormatFromPath(itemPath) as ItemFormat,\n schema,\n extensionFieldNames,\n });\n formatVersionEntries.push({\n ref: relativePath,\n version: effectiveItemFormatVersion(parsed.metadata),\n });\n } catch {\n itemParseFailures.push(relativePath);\n }\n }\n const formatVersionScan = scanItemFormatVersions(formatVersionEntries);\n\n const historyDir = path.join(pmRoot, \"history\");\n const historyUnreadable: string[] = [];\n const historyConflictMarkers: Array<{\n id: string;\n line: number;\n marker: string;\n }> = [];\n const historyInvalidJson: Array<{ id: string; line: number }> = [];\n let historyFiles: string[] = [];\n try {\n historyFiles = (await fs.readdir(historyDir))\n .filter((entry) => entry.endsWith(\".jsonl\"))\n .sort((left, right) => left.localeCompare(right));\n } catch (error: unknown) {\n /* c8 ignore start -- ENOENT/non-ENOENT differentiation requires filesystem fault injection */\n if (shouldReportHistoryDirectoryUnreadable(error)) {\n historyUnreadable.push(\"history\");\n }\n /* c8 ignore stop */\n }\n for (const fileName of historyFiles) {\n const itemId = fileName.slice(0, -\".jsonl\".length);\n const historyPath = path.join(historyDir, fileName);\n let raw = \"\";\n try {\n raw = await fs.readFile(historyPath, \"utf8\");\n } catch {\n historyUnreadable.push(itemId);\n continue;\n }\n const conflictMarker = findFirstMergeConflictMarker(raw);\n if (conflictMarker) {\n historyConflictMarkers.push({\n id: itemId,\n line: conflictMarker.line,\n marker: conflictMarker.marker,\n });\n continue;\n }\n const lines = raw.split(/\\r?\\n/);\n for (let index = 0; index < lines.length; index += 1) {\n const line = lines[index]?.trim();\n if (!line) {\n continue;\n }\n try {\n JSON.parse(line);\n } catch {\n historyInvalidJson.push({\n id: itemId,\n line: index + 1,\n });\n }\n }\n }\n\n const warnings = [\n ...itemUnreadable.map((entry) => `integrity_item_unreadable:${entry}`),\n ...itemConflictMarkers.map(\n (entry) => `integrity_item_conflict_marker:${entry.path}:L${entry.line}`,\n ),\n ...itemParseFailures.map((entry) => `integrity_item_parse_failed:${entry}`),\n ...historyUnreadable.map(\n (entry) => `integrity_history_unreadable:${entry}`,\n ),\n ...historyConflictMarkers.map(\n (entry) => `integrity_history_conflict_marker:${entry.id}:L${entry.line}`,\n ),\n ...historyInvalidJson.map(\n (entry) => `integrity_history_invalid_json:${entry.id}:L${entry.line}`,\n ),\n /* c8 ignore start -- outdated-version items are unreachable until CURRENT_ITEM_FORMAT_VERSION advances past the baseline (an effective version below 1 cannot occur); the per-item mapping is covered in item-format-version.spec, and the ahead path below is covered by health-command.spec */\n ...formatVersionScan.outdated.map(\n (entry) => `integrity_item_outdated_format_version:${entry}`,\n ),\n /* c8 ignore stop */\n ...formatVersionScan.ahead.map(\n (entry) => `integrity_item_ahead_format_version:${entry}`,\n ),\n ];\n const normalizedWarnings = [...new Set(warnings)].sort((left, right) =>\n left.localeCompare(right),\n );\n\n return {\n check: {\n name: \"integrity\",\n status: normalizedWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n checked_item_files: itemPaths.length,\n checked_history_streams: historyFiles.length,\n counts: {\n item_unreadable: itemUnreadable.length,\n item_conflict_markers: itemConflictMarkers.length,\n item_parse_failures: itemParseFailures.length,\n history_unreadable: historyUnreadable.length,\n history_conflict_markers: historyConflictMarkers.length,\n history_invalid_json: historyInvalidJson.length,\n item_outdated_format_version: formatVersionScan.outdated.length,\n item_ahead_format_version: formatVersionScan.ahead.length,\n },\n item_unreadable: itemUnreadable,\n item_conflict_markers: itemConflictMarkers,\n item_parse_failures: itemParseFailures,\n item_outdated_format_version: formatVersionScan.outdated,\n item_ahead_format_version: formatVersionScan.ahead,\n history_unreadable: historyUnreadable,\n history_conflict_markers: historyConflictMarkers,\n history_invalid_json: historyInvalidJson,\n },\n },\n warnings: normalizedWarnings,\n };\n}\n\n/* c8 ignore start -- activate export shape variants are exercised through integration load tests */\nfunction hasActivateExport(moduleRecord: Record<string, unknown>): boolean {\n if (typeof moduleRecord.activate === \"function\") {\n return true;\n }\n const defaultExport = moduleRecord.default;\n if (typeof defaultExport !== \"object\" || defaultExport === null) {\n return false;\n }\n return (\n typeof (defaultExport as Record<string, unknown>).activate === \"function\"\n );\n}\n/* c8 ignore stop */\n\nfunction summarizeLoadedExtension(\n extension: LoadedExtension,\n): Record<string, unknown> {\n const summary: Record<string, unknown> = {\n layer: extension.layer,\n directory: extension.directory,\n manifest_path: extension.manifest_path,\n name: extension.name,\n version: extension.version,\n entry: extension.entry,\n priority: extension.priority,\n entry_path: extension.entry_path,\n has_activate: hasActivateExport(\n extension.module as Record<string, unknown>,\n ),\n };\n /* c8 ignore start -- capability list optionality is exercised by extension load integration suites */\n if (Array.isArray(extension.capabilities)) {\n summary.capabilities = [...extension.capabilities];\n }\n /* c8 ignore stop */\n return summary;\n}\n\nfunction resolveMigrationId(\n definition: Record<string, unknown>,\n fallbackIndex: number,\n): string {\n const explicitId = toNonEmptyStringOrUndefined(definition.id);\n if (explicitId) {\n return explicitId;\n }\n return `migration-${String(fallbackIndex + 1).padStart(3, \"0\")}`;\n}\n\nfunction resolveMigrationStatus(\n definition: Record<string, unknown>,\n): MigrationRuntimeStatus {\n const rawStatus = toNonEmptyStringOrUndefined(definition.status);\n const normalized = rawStatus?.toLowerCase();\n if (normalized === \"failed\") {\n return \"failed\";\n }\n if (normalized === \"applied\") {\n return \"applied\";\n }\n return \"pending\";\n}\n\nfunction resolveMigrationFailureReason(\n definition: Record<string, unknown>,\n): string | undefined {\n return (\n toNonEmptyStringOrUndefined(definition.reason) ??\n toNonEmptyStringOrUndefined(definition.error) ??\n toNonEmptyStringOrUndefined(definition.message)\n );\n}\n\n/* c8 ignore start -- comparator tie-break branches are deterministic ordering glue exercised via migration integration tests */\nfunction compareMigrationEntries(\n left: MigrationStatusEntry,\n right: MigrationStatusEntry,\n): number {\n const byLayer = (left.layer ?? \"\").localeCompare(right.layer ?? \"\");\n if (byLayer !== 0) {\n return byLayer;\n }\n const byName = (left.name ?? \"\").localeCompare(right.name ?? \"\");\n if (byName !== 0) {\n return byName;\n }\n return (left.id ?? \"\").localeCompare(right.id ?? \"\");\n}\n/* c8 ignore stop */\n\nfunction summarizeMigrationStatuses(\n migrations: Array<{\n layer: \"global\" | \"project\";\n name: string;\n definition: Record<string, unknown>;\n }>,\n): { summary: MigrationStatusSummary; warnings: string[] } {\n const applied: MigrationStatusEntry[] = [];\n const pending: MigrationStatusEntry[] = [];\n const failed: MigrationStatusEntry[] = [];\n\n migrations.forEach((migration, index) => {\n const id = resolveMigrationId(migration.definition, index);\n const status = resolveMigrationStatus(migration.definition);\n if (status === \"applied\") {\n applied.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n });\n return;\n }\n if (status === \"failed\") {\n failed.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n reason: resolveMigrationFailureReason(migration.definition),\n });\n return;\n }\n pending.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n });\n });\n\n applied.sort(compareMigrationEntries);\n pending.sort(compareMigrationEntries);\n failed.sort(compareMigrationEntries);\n\n const warnings = [\n ...failed.map(\n (entry) =>\n `extension_migration_failed:${entry.layer}:${entry.name}:${entry.id}`,\n ),\n ...pending.map(\n (entry) =>\n `extension_migration_pending:${entry.layer}:${entry.name}:${entry.id}`,\n ),\n ];\n\n return {\n summary: {\n applied,\n pending,\n failed,\n applied_count: applied.length,\n pending_count: pending.length,\n failed_count: failed.length,\n },\n warnings,\n };\n}\n\nfunction buildExtensionHealthTriageSummary(\n warnings: string[],\n loadFailureCount: number,\n activationFailureCount: number,\n migrationStatus: MigrationStatusSummary,\n managedStateWarningCount: number,\n managedExtensionEntriesCount: number,\n unmanagedLoadedExtensions: string[],\n unmanagedExpectedExtensions: string[],\n unmanagedActionRequiredExtensions: string[],\n): ExtensionHealthTriageSummary {\n const normalizedWarnings = [...new Set(warnings)].sort((left, right) =>\n left.localeCompare(right),\n );\n const warningCodes = [\n ...new Set(normalizedWarnings.map((value) => warningCode(value))),\n ].sort((left, right) => left.localeCompare(right));\n const unknownCapabilityCount = normalizedWarnings.filter((warning) =>\n warning.startsWith(\"extension_capability_unknown:\"),\n ).length;\n const updateHealthPartial = unmanagedActionRequiredExtensions.length > 0;\n const updateHealthCoverage = updateHealthPartial ? \"partial\" : \"full\";\n const remediation: string[] = [];\n const registrationCollisionRemediation =\n buildRegistrationCollisionRemediation(normalizedWarnings, {\n deactivate: \"pm extension --deactivate <name> --project/--global\",\n doctor: \"pm extension --doctor --project/--global --detail deep --trace\",\n });\n if (registrationCollisionRemediation) {\n remediation.push(registrationCollisionRemediation);\n }\n if (loadFailureCount > 0) {\n remediation.push(\n \"Run pm extension --explore --project and pm extension --explore --global to inspect load failures.\",\n );\n }\n if (activationFailureCount > 0) {\n remediation.push(\n \"Review checks[name=extensions].details.activation.failed in pm health --json for activation error details.\",\n );\n }\n if (migrationStatus.failed_count > 0 || migrationStatus.pending_count > 0) {\n remediation.push(\n \"Resolve pending/failed extension migrations before write commands; use --force only when policy allows.\",\n );\n }\n if (managedStateWarningCount > 0) {\n remediation.push(\n \"Run pm extension --manage --project and pm extension --manage --global to refresh managed-state diagnostics.\",\n );\n }\n if (unknownCapabilityCount > 0) {\n remediation.push(\n `Unknown extension capabilities detected. Allowed capabilities: ${KNOWN_EXTENSION_CAPABILITIES.join(\", \")}. ` +\n \"Review extension_capability_unknown warning details for suggested replacements.\",\n );\n }\n if (\n normalizedWarnings.some((warning) =>\n warning.startsWith(\"extension_capability_legacy_alias:\"),\n )\n ) {\n remediation.push(\n \"Legacy extension capability aliases were auto-remapped to canonical capabilities. \" +\n \"Update manifests to canonical names (migration/validation -> schema).\",\n );\n }\n if (\n normalizedWarnings.some((warning) =>\n warning.startsWith(\"extension_command_definition_legacy_handler_alias:\"),\n )\n ) {\n remediation.push(\n \"Extension command definitions using legacy handler were auto-remapped. \" +\n \"Update command definitions to use run: (context) => ... for forward compatibility.\",\n );\n }\n if (updateHealthPartial) {\n remediation.push(\n \"Update-check coverage is partial because unmanaged extensions need adoption. Adopt existing installs via pm extension --manage --project/--global --fix-managed-state, pm extension --adopt-all --project/--global, or pm extension --adopt <name>.\",\n );\n } else if (unmanagedLoadedExtensions.length > 0) {\n remediation.push(\n \"Loaded unmanaged extensions are currently treated as informational. Use pm extension --manage --project/--global --fix-managed-state to adopt them for update checks.\",\n );\n }\n if (remediation.length === 0) {\n remediation.push(\n \"No immediate action required. Re-run pm health after extension configuration changes.\",\n );\n }\n return {\n status: normalizedWarnings.length === 0 ? \"ok\" : \"warn\",\n warning_count: normalizedWarnings.length,\n warning_codes: warningCodes,\n load_failure_count: loadFailureCount,\n activation_failure_count: activationFailureCount,\n migration_failed_count: migrationStatus.failed_count,\n migration_pending_count: migrationStatus.pending_count,\n managed_state_warning_count: managedStateWarningCount,\n managed_extension_entries_count: managedExtensionEntriesCount,\n unmanaged_loaded_extension_count: unmanagedLoadedExtensions.length,\n unmanaged_loaded_extensions: unmanagedLoadedExtensions,\n unmanaged_expected_extension_count: unmanagedExpectedExtensions.length,\n unmanaged_expected_extensions: unmanagedExpectedExtensions,\n unmanaged_action_required_extension_count:\n unmanagedActionRequiredExtensions.length,\n unmanaged_action_required_extensions: unmanagedActionRequiredExtensions,\n update_health_coverage: updateHealthCoverage,\n update_health_partial: updateHealthPartial,\n unknown_capability_count: unknownCapabilityCount,\n top_warnings: normalizedWarnings.slice(0, 8),\n remediation,\n };\n}\n\nasync function buildExtensionCheck(\n pmRoot: string,\n settings: PmSettings,\n noExtensionsFlag: boolean,\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: noExtensionsFlag,\n });\n const loadedSummaries = loadResult.loaded.map((extension) =>\n summarizeLoadedExtension(extension),\n );\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const [projectManagedState, globalManagedState] = await Promise.all([\n readManagedExtensionState(loadResult.roots.project),\n readManagedExtensionState(loadResult.roots.global),\n ]);\n const migrationStatus = summarizeMigrationStatuses(\n activationResult.registrations.migrations,\n );\n const activationDetails = {\n failed: activationResult.failed,\n warnings: activationResult.warnings,\n hook_counts: activationResult.hook_counts,\n command_override_count: activationResult.command_override_count,\n command_handler_count: activationResult.command_handler_count,\n parser_override_count: activationResult.parser_override_count,\n preflight_override_count: activationResult.preflight_override_count,\n service_override_count: activationResult.service_override_count,\n renderer_override_count: activationResult.renderer_override_count,\n registration_counts: activationResult.registration_counts,\n registrations: activationResult.registrations,\n migration_status: migrationStatus.summary,\n managed_extensions: {\n project: {\n path: projectManagedState.path,\n count: projectManagedState.state.entries.length,\n entries: projectManagedState.state.entries,\n },\n global: {\n path: globalManagedState.path,\n count: globalManagedState.state.entries.length,\n entries: globalManagedState.state.entries,\n },\n },\n };\n /* c8 ignore start -- unmanaged/expected grouping matrices are exercised in doctor + extension integration suites */\n const managedProjectNames = new Set(\n projectManagedState.state.entries.map((entry) =>\n normalizeExtensionNameForMatch(entry.name),\n ),\n );\n const managedGlobalNames = new Set(\n globalManagedState.state.entries.map((entry) =>\n normalizeExtensionNameForMatch(entry.name),\n ),\n );\n const unmanagedLoadedEntries = [\n ...new Map(\n loadResult.loaded\n .filter((entry) => {\n const managedNames =\n entry.layer === \"project\"\n ? managedProjectNames\n : managedGlobalNames;\n return !managedNames.has(normalizeExtensionNameForMatch(entry.name));\n })\n .map((entry) => [\n `${entry.layer}:${entry.name}`,\n {\n layer: entry.layer,\n name: entry.name,\n directory: entry.directory,\n },\n ]),\n ).values(),\n ].sort((left, right) => {\n const leftKey = `${left.layer}:${left.name}`;\n const rightKey = `${right.layer}:${right.name}`;\n return leftKey.localeCompare(rightKey);\n });\n const unmanagedLoadedExtensions = unmanagedLoadedEntries\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n const unmanagedExpectedExtensions = unmanagedLoadedEntries\n .filter((entry) =>\n isExpectedUnmanagedExtension(entry.name, entry.directory),\n )\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n const unmanagedActionRequiredExtensions = unmanagedLoadedEntries\n .filter(\n (entry) => !isExpectedUnmanagedExtension(entry.name, entry.directory),\n )\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n /* c8 ignore stop */\n const updateCoverageWarnings =\n unmanagedActionRequiredExtensions.length > 0\n ? [\n `extension_update_health_partial_coverage:skipped_unmanaged:${unmanagedActionRequiredExtensions.length}`,\n ]\n : [];\n const extensionWarnings = [\n ...loadResult.warnings,\n ...activationDetails.warnings,\n ...migrationStatus.warnings,\n ...projectManagedState.warnings,\n ...globalManagedState.warnings,\n ...updateCoverageWarnings,\n ];\n const capabilityGuidance =\n collectUnknownCapabilityGuidance(extensionWarnings);\n const capabilityContract = buildCapabilityContractMetadata();\n const extensionTriage = buildExtensionHealthTriageSummary(\n extensionWarnings,\n loadResult.failed.length,\n activationResult.failed.length,\n migrationStatus.summary,\n projectManagedState.warnings.length + globalManagedState.warnings.length,\n projectManagedState.state.entries.length +\n globalManagedState.state.entries.length,\n unmanagedLoadedExtensions,\n unmanagedExpectedExtensions,\n unmanagedActionRequiredExtensions,\n );\n\n return {\n check: {\n name: \"extensions\",\n status: extensionWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n ...loadResult,\n loaded: loadedSummaries,\n warnings: extensionWarnings,\n activation: activationDetails,\n triage: extensionTriage,\n capability_contract: capabilityContract,\n capability_guidance: capabilityGuidance,\n } as Record<string, unknown>,\n },\n warnings: extensionWarnings,\n };\n}\n\nfunction summarizeList(\n values: string[],\n limit: number,\n): { values: string[]; truncated: boolean } {\n if (values.length <= limit) {\n return { values, truncated: false };\n }\n return {\n values: values.slice(0, limit),\n truncated: true,\n };\n}\n\nfunction summarizeRecordList(\n value: unknown,\n limit: number,\n): { count: number; sample: unknown[]; truncated: boolean } {\n if (!Array.isArray(value)) {\n return {\n count: 0,\n sample: [],\n truncated: false,\n };\n }\n return {\n count: value.length,\n sample: value.slice(0, limit),\n truncated: value.length > limit,\n };\n}\n\nfunction summarizeExtensionRecord(value: unknown): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return {};\n }\n const record = value as Record<string, unknown>;\n return {\n layer: record.layer,\n directory: record.directory,\n name: record.name,\n version: record.version,\n enabled: record.enabled,\n status: record.status,\n has_activate: record.has_activate,\n capabilities: record.capabilities,\n };\n}\n\nfunction summarizeExtensionList(\n value: unknown,\n limit: number,\n): { count: number; sample: unknown[]; truncated: boolean } {\n const summary = summarizeRecordList(value, limit);\n return {\n ...summary,\n sample: summary.sample.map((entry) => summarizeExtensionRecord(entry)),\n };\n}\n\nfunction summarizeStringList(\n value: unknown,\n limit: number,\n): { count: number; sample: string[]; truncated: boolean } {\n if (!Array.isArray(value)) {\n return {\n count: 0,\n sample: [],\n truncated: false,\n };\n }\n const strings = value.filter(\n (entry): entry is string => typeof entry === \"string\",\n );\n return {\n count: strings.length,\n sample: strings.slice(0, limit),\n truncated: strings.length > limit,\n };\n}\n\ntype HealthDetailSummarizer = (\n details: Record<string, unknown>,\n limit: number,\n) => Record<string, unknown>;\n\nfunction summarizeActivationMigrationStatus(\n value: unknown,\n): Record<string, unknown> | null {\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n const status = value as Record<string, unknown>;\n return {\n applied_count: status.applied_count,\n pending_count: status.pending_count,\n failed_count: status.failed_count,\n };\n}\n\nconst HEALTH_DETAIL_SUMMARIZERS = {\n settings: (details, limit) => ({\n version: details.version,\n id_prefix: details.id_prefix,\n locks_ttl_seconds: details.locks_ttl_seconds,\n warnings: summarizeStringList(details.warnings, limit),\n }),\n directories: (details, limit) => ({\n required_count: Array.isArray(details.required)\n ? details.required.length\n : 0,\n optional_count: Array.isArray(details.optional)\n ? details.optional.length\n : 0,\n missing_required: summarizeStringList(details.missing_required, limit),\n missing_optional: summarizeStringList(details.missing_optional, limit),\n missing: summarizeStringList(details.missing, limit),\n strict_directories: details.strict_directories,\n }),\n settings_values: (details, limit) => ({\n warnings: summarizeStringList(details.warnings, limit),\n }),\n telemetry: (details) => ({\n enabled: details.enabled,\n capture_level: details.capture_level,\n endpoint: details.endpoint,\n queue_exists: details.queue_exists,\n queue_entries: details.queue_entries,\n queue_draining: details.queue_draining,\n queue_invalid_rows: details.queue_invalid_rows,\n queue_rows_total: details.queue_rows_total,\n last_successful_flush_at: details.last_successful_flush_at,\n last_failed_flush_at: details.last_failed_flush_at,\n endpoint_probe: details.endpoint_probe,\n env_overrides: details.env_overrides,\n }),\n extensions: (details, limit) => {\n const activation =\n typeof details.activation === \"object\" && details.activation !== null\n ? (details.activation as Record<string, unknown>)\n : {};\n return {\n disabled_by_flag: details.disabled_by_flag,\n discovered: summarizeExtensionList(details.discovered, limit),\n effective: summarizeExtensionList(details.effective, limit),\n loaded: summarizeExtensionList(details.loaded, limit),\n failed: summarizeRecordList(details.failed, limit),\n warnings: summarizeStringList(details.warnings, limit),\n activation: {\n failed: summarizeRecordList(activation.failed, limit),\n warnings: summarizeStringList(activation.warnings, limit),\n hook_counts: activation.hook_counts,\n command_handler_count: activation.command_handler_count,\n service_override_count: activation.service_override_count,\n renderer_override_count: activation.renderer_override_count,\n registration_counts: activation.registration_counts,\n migration_status: summarizeActivationMigrationStatus(\n activation.migration_status,\n ),\n },\n triage: details.triage,\n capability_contract: details.capability_contract,\n capability_guidance: summarizeRecordList(\n details.capability_guidance,\n limit,\n ),\n };\n },\n storage: (details, limit) => {\n // Preserve compatibility with brief payloads from older builds and extensions.\n const authorAttribution =\n typeof details.author_attribution === \"object\" &&\n details.author_attribution !== null\n ? (details.author_attribution as Record<string, unknown>)\n : undefined;\n return {\n ...details,\n ...(authorAttribution\n ? {\n author_attribution: {\n ...authorAttribution,\n affected_item_ids: summarizeStringList(\n authorAttribution.affected_item_ids,\n limit,\n ),\n samples: summarizeRecordList(authorAttribution.samples, limit),\n },\n }\n : {}),\n };\n },\n locks: (details) => ({\n active_lock_count: details.active_lock_count,\n stale_lock_count: details.stale_lock_count,\n unreadable_lock_count: details.unreadable_lock_count,\n unparseable_lock_count: details.unparseable_lock_count,\n }),\n integrity: (details, limit) => ({\n checked_item_files: details.checked_item_files,\n checked_history_streams: details.checked_history_streams,\n counts: details.counts,\n item_unreadable: summarizeStringList(details.item_unreadable, limit),\n item_conflict_markers: summarizeRecordList(\n details.item_conflict_markers,\n limit,\n ),\n item_parse_failures: summarizeStringList(\n details.item_parse_failures,\n limit,\n ),\n history_unreadable: summarizeStringList(details.history_unreadable, limit),\n history_conflict_markers: summarizeRecordList(\n details.history_conflict_markers,\n limit,\n ),\n history_invalid_json: summarizeRecordList(\n details.history_invalid_json,\n limit,\n ),\n skipped: details.skipped,\n }),\n history_drift: (details, limit) => ({\n checked_items: details.checked_items,\n counts: details.counts,\n drifted_items: summarizeStringList(details.drifted_items, limit),\n missing_streams: summarizeStringList(details.missing_streams, limit),\n unreadable_streams: summarizeStringList(details.unreadable_streams, limit),\n hash_mismatches: summarizeStringList(details.hash_mismatches, limit),\n chain_mismatches: summarizeStringList(details.chain_mismatches, limit),\n skipped: details.skipped,\n }),\n vectorization: (details, limit) => ({\n semantic_runtime_available: details.semantic_runtime_available,\n compatibility_mode_auto_defaults: details.compatibility_mode_auto_defaults,\n auto_ollama_defaults_applied: details.auto_ollama_defaults_applied,\n auto_ollama_defaults_skipped_reason:\n details.auto_ollama_defaults_skipped_reason,\n auto_ollama_defaults_remediation: details.auto_ollama_defaults_remediation,\n refresh_policy: details.refresh_policy,\n provider_active: details.provider_active,\n vector_store_active: details.vector_store_active,\n items: details.items,\n ledger_entries_before: details.ledger_entries_before,\n stale_items_before_total: details.stale_items_before_total,\n stale_items_before: summarizeStringList(details.stale_items_before, limit),\n refresh_attempted: details.refresh_attempted,\n refresh_skipped_reason: details.refresh_skipped_reason,\n refresh_result: details.refresh_result,\n ledger_entries_after: details.ledger_entries_after,\n stale_items_after_total: details.stale_items_after_total,\n stale_items_after: summarizeStringList(details.stale_items_after, limit),\n skipped: details.skipped,\n }),\n} satisfies Record<HealthCheck[\"name\"], HealthDetailSummarizer>;\n\n/* c8 ignore start -- brief/summary projection matrix branches are validated in projection integration tests */\nfunction summarizeHealthCheckDetails(\n check: HealthCheck,\n limit: number,\n): Record<string, unknown> {\n const summarize = HEALTH_DETAIL_SUMMARIZERS[check.name];\n return summarize ? summarize(check.details, limit) : check.details;\n}\n/* c8 ignore stop */\n\nfunction applyBriefHealthProjection(result: HealthResult): HealthResult {\n const warningsSummary = summarizeStringList(\n result.warnings,\n BRIEF_HEALTH_DETAIL_LIMIT,\n );\n return {\n ok: result.ok,\n checks: result.checks.map((check) => ({\n name: check.name,\n status: check.status,\n details: summarizeHealthCheckDetails(check, BRIEF_HEALTH_DETAIL_LIMIT),\n })),\n warnings: warningsSummary.sample,\n projection: {\n mode: \"brief\",\n warning_count: warningsSummary.count,\n warnings_truncated: warningsSummary.truncated,\n detail_limit: BRIEF_HEALTH_DETAIL_LIMIT,\n },\n generated_at: result.generated_at,\n };\n}\n\nfunction isSkippedHealthCheck(check: HealthCheck): boolean {\n return check.details.skipped === true;\n}\n\nfunction applySummaryHealthProjection(result: HealthResult): HealthResult {\n const warningsSummary = summarizeStringList(\n result.warnings,\n BRIEF_HEALTH_DETAIL_LIMIT,\n );\n const omittedChecks = result.checks\n .filter(isSkippedHealthCheck)\n .map((check) => check.name);\n return {\n ok: result.ok,\n checks: result.checks\n .filter((check) => !isSkippedHealthCheck(check))\n .map((check) => ({\n name: check.name,\n status: check.status,\n details: {},\n })),\n warning_count: warningsSummary.count,\n warnings: warningsSummary.sample,\n projection: {\n mode: \"summary\",\n warning_count: warningsSummary.count,\n warnings_truncated: warningsSummary.truncated,\n detail_limit: BRIEF_HEALTH_DETAIL_LIMIT,\n omitted_checks: omittedChecks,\n },\n generated_at: result.generated_at,\n };\n}\n\nfunction selectStaleItemDetail(\n values: string[],\n verboseStaleItems: boolean,\n): {\n values: string[];\n truncated: boolean;\n total: number;\n} {\n if (verboseStaleItems) {\n return {\n values,\n truncated: false,\n total: values.length,\n };\n }\n const summary = summarizeList(values, STALE_VECTORIZATION_SUMMARY_LIMIT);\n return {\n values: summary.values,\n truncated: summary.truncated,\n total: values.length,\n };\n}\n\ntype VectorizationRuntimeDefaults = ReturnType<\n typeof resolveSettingsWithSemanticRuntimeDefaults\n>;\ntype VectorizationProviderResolution = ReturnType<\n typeof resolveEmbeddingProviders\n>;\ntype VectorizationStoreResolution = ReturnType<typeof resolveVectorStores>;\ntype VectorizationLedger = Awaited<\n ReturnType<typeof readVectorizationStatusLedger>\n>;\ntype VectorizationRefreshResult = Awaited<\n ReturnType<typeof refreshSemanticEmbeddingsForMutatedItems>\n>;\n\ninterface VectorizationRuntimeSnapshot {\n runtimeDefaults: VectorizationRuntimeDefaults;\n providerResolution: VectorizationProviderResolution;\n vectorStoreResolution: VectorizationStoreResolution;\n runtimeEmbeddingIdentity: ReturnType<\n typeof buildVectorizationEmbeddingIdentity\n > | null;\n semanticRuntimeAvailable: boolean;\n}\n\ninterface TelemetryRuntimeStateRecord {\n endpoint?: string;\n queue_entries?: number;\n last_attempted_flush_at?: string;\n last_successful_flush_at?: string;\n last_failed_flush_at?: string;\n last_failed_flush_error?: string;\n pending_otel_spans?: number;\n last_otel_attempt_at?: string;\n last_otel_success_at?: string;\n last_otel_failure_at?: string;\n last_otel_failure_error?: string;\n}\n\nfunction telemetryEnvFlagEnabled(\n envKey:\n | \"PM_TELEMETRY_DISABLED\"\n | \"PM_TELEMETRY_OTEL_DISABLED\"\n | \"PM_NO_TELEMETRY\"\n | \"PM_TELEMETRY_INLINE_FLUSH\",\n): boolean {\n const value = (process.env[envKey] ?? \"\").trim().toLowerCase();\n return value === \"1\" || value === \"true\" || value === \"yes\" || value === \"on\";\n}\n\n/* c8 ignore start -- environment override permutations are covered by runtime integration tests */\nfunction telemetrySourceContextOverride(): string | null {\n // Only report an override the runtime actually honours: runtime.ts ignores any\n // value outside the enum and falls back to the inferred context, so health must\n // report null for an unrecognized value rather than implying it took effect.\n const value = (process.env.PM_TELEMETRY_SOURCE_CONTEXT ?? \"\")\n .trim()\n .toLowerCase();\n return PM_TELEMETRY_SOURCE_CONTEXT_SET.has(value) ? value : null;\n}\n/* c8 ignore stop */\n\nfunction normalizeEndpointForDisplay(rawEndpoint: string): string {\n const trimmed = rawEndpoint.trim();\n if (trimmed.length === 0) {\n return \"\";\n }\n try {\n const parsed = new URL(trimmed);\n parsed.username = \"\";\n parsed.password = \"\";\n parsed.search = \"\";\n parsed.hash = \"\";\n return parsed.toString();\n } catch {\n return trimmed;\n }\n}\n\nfunction parseTelemetryQueue(raw: string): {\n validEntries: number;\n invalidRows: number;\n totalRows: number;\n highRetryEntries: number;\n maxAttempts: number;\n} {\n let validEntries = 0;\n let invalidRows = 0;\n let totalRows = 0;\n let highRetryEntries = 0;\n let maxAttempts = 0;\n for (const line of raw.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.length === 0) {\n continue;\n }\n totalRows += 1;\n try {\n const parsed = JSON.parse(trimmed) as Record<string, unknown>;\n if (\n typeof parsed === \"object\" &&\n parsed !== null &&\n typeof parsed.attempts === \"number\" &&\n Number.isFinite(parsed.attempts)\n ) {\n const attempts = Math.max(0, Math.trunc(parsed.attempts));\n validEntries += 1;\n maxAttempts = Math.max(maxAttempts, attempts);\n if (attempts >= TELEMETRY_QUEUE_HIGH_RETRY_THRESHOLD) {\n highRetryEntries += 1;\n }\n } else {\n /* c8 ignore next -- invalid queue rows are covered by end-to-end telemetry fixtures */\n invalidRows += 1;\n }\n } catch {\n invalidRows += 1;\n }\n }\n return {\n validEntries,\n invalidRows,\n totalRows,\n highRetryEntries,\n maxAttempts,\n };\n}\n\ntype TelemetryQueueSummary = ReturnType<typeof parseTelemetryQueue>;\n\ninterface TelemetryEndpointProbeSummary {\n attempted: boolean;\n probe_url?: string;\n ok?: boolean;\n status?: number;\n max_schema_version?: string;\n error?: string;\n}\n\nfunction emptyTelemetryQueueSummary(): TelemetryQueueSummary {\n return {\n validEntries: 0,\n invalidRows: 0,\n totalRows: 0,\n highRetryEntries: 0,\n maxAttempts: 0,\n };\n}\n\n/* c8 ignore start -- telemetry state corruption and otel-failure branches require runtime-coordinated fixture mutation */\nfunction parseTelemetryRuntimeState(stateRaw: string | null): {\n runtimeState: TelemetryRuntimeStateRecord;\n stateParseFailed: boolean;\n} {\n if (!stateRaw || stateRaw.trim().length === 0) {\n return { runtimeState: {}, stateParseFailed: false };\n }\n try {\n const parsed = JSON.parse(stateRaw) as TelemetryRuntimeStateRecord;\n if (\n typeof parsed === \"object\" &&\n parsed !== null &&\n !Array.isArray(parsed)\n ) {\n return { runtimeState: parsed, stateParseFailed: false };\n }\n return { runtimeState: {}, stateParseFailed: true };\n } catch {\n return { runtimeState: {}, stateParseFailed: true };\n }\n}\n\nasync function maybeProbeTelemetryEndpoint(\n settings: PmSettings,\n checkTelemetry: boolean,\n): Promise<TelemetryEndpointProbeSummary | undefined> {\n const endpoint = settings.telemetry.endpoint.trim();\n if (!checkTelemetry || !settings.telemetry.enabled || endpoint.length === 0) {\n return undefined;\n }\n const probe = await probeTelemetryEndpointHealth(endpoint);\n return {\n attempted: true,\n ...probe,\n };\n}\n\nfunction collectTelemetryQueueWarnings(\n settings: PmSettings,\n queueSummary: TelemetryQueueSummary,\n runtimeState: TelemetryRuntimeStateRecord,\n): string[] {\n const warnings: string[] = [];\n if (queueSummary.invalidRows > 0) {\n warnings.push(`telemetry_queue_invalid_rows:${queueSummary.invalidRows}`);\n }\n if (!settings.telemetry.enabled || queueSummary.validEntries === 0) {\n return warnings;\n }\n const lastSuccess = runtimeState.last_successful_flush_at;\n const lastFailure = runtimeState.last_failed_flush_at;\n const activeFailure =\n lastFailure && (!lastSuccess || lastFailure > lastSuccess);\n const neverFlushed = !lastSuccess;\n const highWater =\n queueSummary.validEntries >= TELEMETRY_QUEUE_HIGH_WATER_MARK;\n if (activeFailure || neverFlushed || highWater) {\n warnings.push(`telemetry_queue_pending:${queueSummary.validEntries}`);\n }\n if (queueSummary.highRetryEntries > 0) {\n warnings.push(\n `telemetry_queue_high_retries:${queueSummary.highRetryEntries}`,\n );\n }\n return warnings;\n}\n\nfunction collectTelemetryEndpointWarnings(\n endpointProbe: TelemetryEndpointProbeSummary | undefined,\n): string[] {\n if (!endpointProbe || endpointProbe.ok !== false) {\n return [];\n }\n return typeof endpointProbe.status === \"number\"\n ? [`telemetry_endpoint_probe_http_status:${endpointProbe.status}`]\n : [\"telemetry_endpoint_probe_failed\"];\n}\n\nfunction collectTelemetrySchemaWarnings(\n endpointProbe: TelemetryEndpointProbeSummary | undefined,\n): string[] {\n const parsedMaxSchemaVersion = Number.parseInt(\n endpointProbe?.max_schema_version ?? \"\",\n 10,\n );\n if (\n endpointProbe?.ok === true &&\n Number.isInteger(parsedMaxSchemaVersion) &&\n parsedMaxSchemaVersion > TELEMETRY_SCHEMA_VERSION\n ) {\n return [`telemetry_schema_version_behind:${parsedMaxSchemaVersion}`];\n }\n return [];\n}\n\nfunction collectTelemetryOtelWarnings(\n settings: PmSettings,\n runtimeState: TelemetryRuntimeStateRecord,\n): string[] {\n const pendingOtelSpans =\n typeof runtimeState.pending_otel_spans === \"number\"\n ? runtimeState.pending_otel_spans\n : 0;\n const lastOtelSuccess = runtimeState.last_otel_success_at;\n const lastOtelFailure = runtimeState.last_otel_failure_at;\n const otelExportFailing =\n settings.telemetry.enabled &&\n pendingOtelSpans > 0 &&\n Boolean(lastOtelFailure) &&\n // >= so a mixed-outcome batch (success + failure share the same attempt\n // timestamp) still surfaces the warning rather than being masked by the tie.\n (!lastOtelSuccess || (lastOtelFailure as string) >= lastOtelSuccess);\n return otelExportFailing\n ? [`telemetry_otel_export_failing:${pendingOtelSpans}`]\n : [];\n}\n\nfunction buildTelemetryEnvOverrideDetails(): Record<string, unknown> {\n return {\n telemetry_disabled:\n telemetryEnvFlagEnabled(\"PM_TELEMETRY_DISABLED\") ||\n telemetryEnvFlagEnabled(\"PM_NO_TELEMETRY\"),\n pm_no_telemetry: telemetryEnvFlagEnabled(\"PM_NO_TELEMETRY\"),\n telemetry_otel_disabled: telemetryEnvFlagEnabled(\n \"PM_TELEMETRY_OTEL_DISABLED\",\n ),\n telemetry_inline_flush: telemetryEnvFlagEnabled(\n \"PM_TELEMETRY_INLINE_FLUSH\",\n ),\n telemetry_source_context: telemetrySourceContextOverride(),\n };\n}\n/* c8 ignore stop */\n\nfunction telemetryQueueHasEntries(\n settings: PmSettings,\n queueSummary: TelemetryQueueSummary,\n): boolean {\n return settings.telemetry.enabled && queueSummary.validEntries > 0;\n}\n\nfunction isTelemetryQueueDraining(\n queueHasEntries: boolean,\n warnings: string[],\n): boolean {\n return (\n queueHasEntries &&\n warnings.every(\n (warning) =>\n !warning.startsWith(\"telemetry_queue_pending:\") &&\n !warning.startsWith(\"telemetry_queue_high_retries:\"),\n )\n );\n}\n\nasync function probeTelemetryEndpointHealth(endpoint: string): Promise<{\n probe_url: string;\n ok: boolean;\n status?: number;\n max_schema_version?: string;\n error?: string;\n}> {\n let probeUrl = endpoint;\n try {\n const parsed = new URL(endpoint);\n parsed.pathname = \"/healthz\";\n parsed.search = \"\";\n parsed.hash = \"\";\n probeUrl = parsed.toString();\n } catch {\n // keep original endpoint when URL parsing fails\n }\n try {\n const response = await fetch(probeUrl, {\n method: \"GET\",\n signal: AbortSignal.timeout(TELEMETRY_ENDPOINT_PROBE_TIMEOUT_MS),\n });\n return {\n probe_url: normalizeEndpointForDisplay(probeUrl),\n ok: response.ok,\n status: response.status,\n max_schema_version: (() => {\n for (const headerName of TELEMETRY_SERVER_MAX_SCHEMA_VERSION_HEADERS) {\n const value = response.headers.get(headerName)?.trim();\n if (value && value.length > 0) {\n return value;\n }\n }\n return undefined;\n })(),\n };\n } catch (error: unknown) {\n return {\n probe_url: normalizeEndpointForDisplay(probeUrl),\n ok: false,\n /* c8 ignore next -- non-Error throwables require transport-layer fault injection */\n error: error instanceof Error ? error.message : \"probe_failed\",\n };\n }\n}\n\nasync function buildTelemetryCheck(\n settings: PmSettings,\n options: { checkTelemetry: boolean },\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const globalPmRoot = resolveGlobalPmRoot(process.cwd());\n const queuePath = path.join(globalPmRoot, TELEMETRY_QUEUE_RELATIVE_PATH);\n const statePath = path.join(globalPmRoot, TELEMETRY_STATE_RELATIVE_PATH);\n\n const queueRaw = await readFileIfExists(queuePath);\n const queueExists = queueRaw !== null;\n const queueSizeBytes = queueRaw ? Buffer.byteLength(queueRaw, \"utf8\") : 0;\n const queueSummary = queueRaw\n ? parseTelemetryQueue(queueRaw)\n : emptyTelemetryQueueSummary();\n\n const stateRaw = await readFileIfExists(statePath);\n const { runtimeState, stateParseFailed } =\n parseTelemetryRuntimeState(stateRaw);\n\n const endpoint = settings.telemetry.endpoint.trim();\n const endpointDisplay = normalizeEndpointForDisplay(endpoint);\n const endpointProbe = await maybeProbeTelemetryEndpoint(\n settings,\n options.checkTelemetry,\n );\n\n const warnings: string[] = [];\n if (stateParseFailed) {\n warnings.push(\"telemetry_state_invalid_json\");\n }\n warnings.push(\n ...collectTelemetryQueueWarnings(settings, queueSummary, runtimeState),\n ...collectTelemetryEndpointWarnings(endpointProbe),\n ...collectTelemetrySchemaWarnings(endpointProbe),\n ...collectTelemetryOtelWarnings(settings, runtimeState),\n );\n const queueHasEntries = telemetryQueueHasEntries(settings, queueSummary);\n const pendingOtelSpans =\n typeof runtimeState.pending_otel_spans === \"number\"\n ? runtimeState.pending_otel_spans\n : 0;\n\n return {\n check: {\n name: \"telemetry\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n enabled: settings.telemetry.enabled,\n capture_level: settings.telemetry.capture_level,\n endpoint: endpointDisplay,\n global_pm_root: globalPmRoot,\n queue_path: queuePath,\n queue_exists: queueExists,\n queue_entries: queueSummary.validEntries,\n queue_draining: isTelemetryQueueDraining(queueHasEntries, warnings),\n queue_invalid_rows: queueSummary.invalidRows,\n queue_rows_total: queueSummary.totalRows,\n queue_size_bytes: queueSizeBytes,\n queue_high_retry_entries: queueSummary.highRetryEntries,\n queue_high_retry_threshold: TELEMETRY_QUEUE_HIGH_RETRY_THRESHOLD,\n queue_max_attempts: queueSummary.maxAttempts,\n runtime_state_path: statePath,\n last_attempted_flush_at: runtimeState.last_attempted_flush_at ?? null,\n last_successful_flush_at: runtimeState.last_successful_flush_at ?? null,\n last_failed_flush_at: runtimeState.last_failed_flush_at ?? null,\n last_failed_flush_error: runtimeState.last_failed_flush_error ?? null,\n pending_otel_spans: pendingOtelSpans,\n last_otel_attempt_at: runtimeState.last_otel_attempt_at ?? null,\n last_otel_success_at: runtimeState.last_otel_success_at ?? null,\n last_otel_failure_at: runtimeState.last_otel_failure_at ?? null,\n last_otel_failure_error: runtimeState.last_otel_failure_error ?? null,\n endpoint_probe: endpointProbe ?? { attempted: false },\n env_overrides: buildTelemetryEnvOverrideDetails(),\n },\n },\n warnings,\n };\n}\n\n/** Read-only locks check (pm-xo1n): surfaces active/stale/unreadable/unparseable lock counts using the exact classification `pm gc --scope locks` acts on, so agents can gate on stale item-claim locks before running gc speculatively. */\nasync function buildLocksCheck(\n pmRoot: string,\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n /* c8 ignore start -- scan failure branches require filesystem-level fault injection */\n let scan: Awaited<ReturnType<typeof scanLockHealth>>;\n try {\n scan = await scanLockHealth(pmRoot);\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n check: {\n name: \"locks\",\n status: \"warn\",\n details: {\n active_lock_count: 0,\n stale_lock_count: 0,\n unreadable_lock_count: 0,\n unparseable_lock_count: 0,\n scan_failed: true,\n error: message,\n pm_root: pmRoot,\n },\n },\n warnings: [`locks_scan_failed:${message}`],\n };\n }\n const warnings: string[] = [];\n if (scan.stale_lock_count > 0) {\n warnings.push(`locks_stale_count:${scan.stale_lock_count}`);\n }\n if (scan.unreadable_lock_count > 0) {\n warnings.push(`locks_unreadable:${scan.unreadable_lock_count}`);\n }\n /* c8 ignore stop */\n return {\n check: {\n name: \"locks\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n active_lock_count: scan.active_lock_count,\n stale_lock_count: scan.stale_lock_count,\n unreadable_lock_count: scan.unreadable_lock_count,\n unparseable_lock_count: scan.unparseable_lock_count,\n },\n },\n warnings,\n };\n}\n\nasync function buildHistoryDriftCheck(\n pmRoot: string,\n items: ItemWithBody[],\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const cacheHitVerification = \"metadata\" as const;\n const {\n missingStreams,\n unreadableStreams,\n hashMismatches,\n chainMismatches,\n driftedItems,\n } = await scanHistoryDrift(pmRoot, items, { cacheHitVerification });\n const warnings = [\n ...missingStreams.map((id) => `history_drift_missing_stream:${id}`),\n ...unreadableStreams.map((id) => `history_drift_unreadable_stream:${id}`),\n ...hashMismatches.map((id) => `history_drift_hash_mismatch:${id}`),\n ...chainMismatches.map((id) => `history_drift_chain_mismatch:${id}`),\n ];\n return {\n check: {\n name: \"history_drift\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n checked_items: items.length,\n cache_hit_verification: cacheHitVerification,\n drifted_items: driftedItems,\n counts: {\n drifted: driftedItems.length,\n missing_streams: missingStreams.length,\n unreadable_streams: unreadableStreams.length,\n hash_mismatches: hashMismatches.length,\n chain_mismatches: chainMismatches.length,\n },\n missing_streams: missingStreams,\n unreadable_streams: unreadableStreams,\n hash_mismatches: hashMismatches,\n chain_mismatches: chainMismatches,\n },\n },\n warnings,\n };\n}\n\nfunction buildVectorizationRuntimeSnapshot(\n settings: PmSettings,\n pmRoot: string,\n): VectorizationRuntimeSnapshot {\n const runtimeDefaults = resolveSettingsWithSemanticRuntimeDefaults(settings);\n const providerResolution = resolveEmbeddingProviders(\n runtimeDefaults.settings,\n );\n const vectorStoreResolution = resolveVectorStores(\n runtimeDefaults.settings,\n pmRoot,\n );\n const runtimeEmbeddingIdentity = providerResolution.active\n ? buildVectorizationEmbeddingIdentity(\n providerResolution.active.name,\n providerResolution.active.model,\n )\n : null;\n return {\n runtimeDefaults,\n providerResolution,\n vectorStoreResolution,\n runtimeEmbeddingIdentity,\n semanticRuntimeAvailable: Boolean(\n providerResolution.active && vectorStoreResolution.active,\n ),\n };\n}\n\nfunction emptyVectorizationRefreshResult(): VectorizationRefreshResult {\n return {\n refreshed: [],\n skipped: [],\n warnings: [],\n };\n}\n\nasync function refreshStaleVectorizationItems(params: {\n pmRoot: string;\n snapshot: VectorizationRuntimeSnapshot;\n refreshPolicy: VectorRefreshPolicy;\n staleBefore: string[];\n}): Promise<VectorizationRefreshResult> {\n if (\n !params.refreshPolicy.enabled ||\n !params.snapshot.semanticRuntimeAvailable ||\n params.staleBefore.length === 0\n ) {\n return emptyVectorizationRefreshResult();\n }\n return refreshSemanticEmbeddingsForMutatedItems(\n params.pmRoot,\n params.staleBefore,\n {\n settings: params.snapshot.runtimeDefaults.settings,\n apply_runtime_defaults: false,\n },\n );\n}\n\nfunction vectorizationEmbeddingIdentityChanged(params: {\n strictVectorizationWarnings: boolean;\n semanticRuntimeAvailable: boolean;\n ledgerBefore: VectorizationLedger;\n runtimeEmbeddingIdentity: VectorizationRuntimeSnapshot[\"runtimeEmbeddingIdentity\"];\n}): boolean {\n return (\n params.strictVectorizationWarnings &&\n params.semanticRuntimeAvailable &&\n Boolean(\n params.ledgerBefore.embedding &&\n params.runtimeEmbeddingIdentity &&\n hasVectorizationEmbeddingIdentityChanged(\n params.ledgerBefore.embedding,\n params.runtimeEmbeddingIdentity,\n ),\n )\n );\n}\n\n/* c8 ignore start -- strict-vectorization warning synthesis branches are integration-only policy permutations */\nfunction collectVectorizationWarnings(params: {\n ledgerBefore: VectorizationLedger;\n ledgerAfter: VectorizationLedger;\n refreshResult: VectorizationRefreshResult;\n strictVectorizationWarnings: boolean;\n semanticRuntimeAvailable: boolean;\n embeddingIdentityChanged: boolean;\n staleAfter: string[];\n}): string[] {\n const warningSet = new Set<string>([\n ...params.ledgerBefore.warnings,\n ...params.ledgerAfter.warnings,\n ]);\n if (params.strictVectorizationWarnings) {\n for (const warning of params.refreshResult.warnings) {\n warningSet.add(warning);\n }\n }\n if (params.embeddingIdentityChanged) {\n warningSet.add(\"vectorization_embedding_identity_changed\");\n }\n if (\n params.strictVectorizationWarnings &&\n params.semanticRuntimeAvailable &&\n params.staleAfter.length > 0\n ) {\n warningSet.add(\n `vectorization_stale_items_remaining:${params.staleAfter.length}`,\n );\n }\n return [...warningSet].sort((left, right) => left.localeCompare(right));\n}\n/* c8 ignore stop */\n\nfunction resolveVectorizationRefreshSkippedReason(\n refreshPolicy: VectorRefreshPolicy,\n semanticRuntimeAvailable: boolean,\n staleBefore: string[],\n): string | null {\n if (\n refreshPolicy.enabled &&\n semanticRuntimeAvailable &&\n staleBefore.length > 0\n ) {\n return null;\n }\n if (!refreshPolicy.enabled) {\n return \"refresh_disabled\";\n }\n return semanticRuntimeAvailable\n ? \"no_stale_items\"\n : \"semantic_runtime_unavailable\";\n}\n\nfunction buildVectorizationProviderDetails(\n settings: PmSettings,\n snapshot: VectorizationRuntimeSnapshot,\n): Record<string, unknown> {\n const activeProvider = snapshot.providerResolution.active?.name ?? null;\n const activeVectorStore = snapshot.vectorStoreResolution.active?.name ?? null;\n return {\n provider_active: activeProvider,\n // GH-244: surface the persisted (possibly empty) configured value and\n // how the active resolution was sourced, so a config audit can tell\n // \"auto-detected\" apart from a genuine misconfiguration when\n // settings.search.provider / vector_store.adapter are empty strings.\n provider_configured:\n typeof settings.search?.provider === \"string\"\n ? settings.search.provider\n : null,\n provider_source: resolveProviderConfigSource(\n activeProvider,\n settings.search?.provider ?? null,\n ),\n vector_store_active: activeVectorStore,\n vector_store_configured:\n typeof settings.vector_store?.adapter === \"string\"\n ? settings.vector_store.adapter\n : null,\n vector_store_source: resolveProviderConfigSource(\n activeVectorStore,\n settings.vector_store?.adapter ?? null,\n ),\n };\n}\n\nfunction buildVectorizationRefreshPolicyDetails(\n refreshPolicy: VectorRefreshPolicy,\n): Record<string, unknown> {\n return {\n enabled: refreshPolicy.enabled,\n check_only: refreshPolicy.checkOnly,\n no_refresh: refreshPolicy.noRefresh,\n refresh_vectors: refreshPolicy.refreshVectors,\n };\n}\n\nfunction vectorizationRefreshAttempted(\n refreshPolicy: VectorRefreshPolicy,\n semanticRuntimeAvailable: boolean,\n staleBefore: string[],\n): boolean {\n return (\n refreshPolicy.enabled && staleBefore.length > 0 && semanticRuntimeAvailable\n );\n}\n\nasync function buildVectorizationCheck(\n pmRoot: string,\n settings: PmSettings,\n items: ItemWithBody[],\n refreshPolicy: VectorRefreshPolicy,\n verboseStaleItems: boolean,\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const snapshot = buildVectorizationRuntimeSnapshot(settings, pmRoot);\n const ledgerBefore = await readVectorizationStatusLedger(pmRoot);\n const staleBefore = snapshot.semanticRuntimeAvailable\n ? collectStaleVectorizationIds(items, ledgerBefore.entries)\n : [];\n const refreshResult = await refreshStaleVectorizationItems({\n pmRoot,\n snapshot,\n refreshPolicy,\n staleBefore,\n });\n const ledgerAfter = await readVectorizationStatusLedger(pmRoot);\n const staleAfter = snapshot.semanticRuntimeAvailable\n ? collectStaleVectorizationIds(items, ledgerAfter.entries)\n : [];\n const strictVectorizationWarnings =\n !snapshot.runtimeDefaults.auto_ollama_defaults_applied;\n const embeddingIdentityChanged = vectorizationEmbeddingIdentityChanged({\n strictVectorizationWarnings,\n semanticRuntimeAvailable: snapshot.semanticRuntimeAvailable,\n ledgerBefore,\n runtimeEmbeddingIdentity: snapshot.runtimeEmbeddingIdentity,\n });\n const warnings = collectVectorizationWarnings({\n ledgerBefore,\n ledgerAfter,\n refreshResult,\n strictVectorizationWarnings,\n semanticRuntimeAvailable: snapshot.semanticRuntimeAvailable,\n embeddingIdentityChanged,\n staleAfter,\n });\n const staleBeforeDetail = selectStaleItemDetail(\n staleBefore,\n verboseStaleItems,\n );\n const staleAfterDetail = selectStaleItemDetail(staleAfter, verboseStaleItems);\n const refreshAttempted = vectorizationRefreshAttempted(\n refreshPolicy,\n snapshot.semanticRuntimeAvailable,\n staleBefore,\n );\n\n return {\n check: {\n name: \"vectorization\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n semantic_runtime_available: snapshot.semanticRuntimeAvailable,\n compatibility_mode_auto_defaults:\n snapshot.runtimeDefaults.auto_ollama_defaults_applied,\n auto_ollama_defaults_applied:\n snapshot.runtimeDefaults.auto_ollama_defaults_applied,\n auto_ollama_defaults_skipped_reason:\n snapshot.runtimeDefaults.auto_ollama_defaults_skipped_reason ?? null,\n auto_ollama_defaults_remediation:\n snapshot.runtimeDefaults.auto_ollama_defaults_remediation ?? null,\n refresh_policy: buildVectorizationRefreshPolicyDetails(refreshPolicy),\n ...buildVectorizationProviderDetails(settings, snapshot),\n embedding_identity_changed: embeddingIdentityChanged,\n embedding_identity_before: ledgerBefore.embedding ?? null,\n embedding_identity_runtime: snapshot.runtimeEmbeddingIdentity ?? null,\n items: items.length,\n ledger_entries_before: Object.keys(ledgerBefore.entries).length,\n stale_items_detail_mode: verboseStaleItems ? \"full\" : \"summary\",\n stale_items_summary_limit: STALE_VECTORIZATION_SUMMARY_LIMIT,\n stale_items_before_total: staleBeforeDetail.total,\n stale_items_before: staleBeforeDetail.values,\n stale_items_before_truncated: staleBeforeDetail.truncated,\n refresh_attempted: refreshAttempted,\n refresh_skipped_reason: resolveVectorizationRefreshSkippedReason(\n refreshPolicy,\n snapshot.semanticRuntimeAvailable,\n staleBefore,\n ),\n refresh_result: refreshResult,\n ledger_entries_after: Object.keys(ledgerAfter.entries).length,\n stale_items_after_total: staleAfterDetail.total,\n stale_items_after: staleAfterDetail.values,\n stale_items_after_truncated: staleAfterDetail.truncated,\n },\n },\n warnings,\n };\n}\n\nfunction validateSettingsValues(settings: PmSettings): string[] {\n const warnings: string[] = [];\n if (settings.id_prefix.trim().length === 0) {\n warnings.push(\"settings:id_prefix_empty\");\n }\n if (settings.locks.ttl_seconds <= 0) {\n warnings.push(\"settings:locks_ttl_non_positive\");\n }\n return warnings;\n}\n\nfunction resolveVectorRefreshPolicy(\n options: RunHealthOptions,\n): VectorRefreshPolicy {\n const checkOnly = options.checkOnly === true;\n const noRefresh = options.noRefresh === true || checkOnly;\n const refreshVectors = options.refreshVectors === true;\n if (refreshVectors && checkOnly) {\n throw new PmCliError(\n \"--check-only cannot be combined with --refresh-vectors\",\n EXIT_CODE.USAGE,\n );\n }\n if (refreshVectors && options.noRefresh === true) {\n throw new PmCliError(\n \"--no-refresh cannot be combined with --refresh-vectors\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n enabled: refreshVectors || !noRefresh,\n checkOnly,\n noRefresh,\n refreshVectors,\n };\n}\n\ntype HealthCheckResult = { check: HealthCheck; warnings: string[] };\ntype HealthTypeRegistry = ReturnType<typeof resolveItemTypeRegistry>;\n\ninterface HealthDirectoryState {\n requiredDirs: string[];\n optionalDirs: string[];\n missingRequiredDirs: string[];\n missingOptionalDirs: string[];\n missingDirs: string[];\n hookWarnings: string[];\n}\n\ninterface HealthSkipPolicy {\n summaryMode: boolean;\n skipIntegrity: boolean;\n skipDrift: boolean;\n skipVectors: boolean;\n}\n\nfunction resolveHealthDirectoryLists(typeRegistry: HealthTypeRegistry): {\n requiredDirs: string[];\n optionalDirs: string[];\n optionalDirSet: Set<string>;\n} {\n const optionalBuiltinDirs = new Set<string>(\n PM_OPTIONAL_TYPE_SUBDIRS.filter((entry) => entry.length > 0),\n );\n const requiredDirSet = new Set<string>(\n PM_CORE_REQUIRED_SUBDIRS.filter((entry) => entry.length > 0),\n );\n const optionalDirSet = new Set<string>();\n for (const folder of typeRegistry.folders) {\n if (optionalBuiltinDirs.has(folder)) {\n optionalDirSet.add(folder);\n continue;\n }\n requiredDirSet.add(folder);\n }\n return {\n requiredDirs: [...requiredDirSet].sort((left, right) =>\n left.localeCompare(right),\n ),\n optionalDirs: [...optionalDirSet].sort((left, right) =>\n left.localeCompare(right),\n ),\n optionalDirSet,\n };\n}\n\nasync function scanHealthDirectories(\n pmRoot: string,\n typeRegistry: HealthTypeRegistry,\n strictDirectories: boolean,\n): Promise<HealthDirectoryState> {\n const { requiredDirs, optionalDirs, optionalDirSet } =\n resolveHealthDirectoryLists(typeRegistry);\n const missingRequiredDirs: string[] = [];\n const missingOptionalDirs: string[] = [];\n const hookWarnings: string[] = [];\n for (const relativeDir of [...requiredDirs, ...optionalDirs]) {\n const directoryPath = path.join(pmRoot, relativeDir);\n hookWarnings.push(\n ...(await runActiveOnReadHooks({\n path: directoryPath,\n scope: \"project\",\n })),\n );\n if (await isDirectory(directoryPath)) {\n continue;\n }\n if (optionalDirSet.has(relativeDir)) {\n missingOptionalDirs.push(relativeDir);\n } else {\n missingRequiredDirs.push(relativeDir);\n }\n }\n return {\n requiredDirs,\n optionalDirs,\n missingRequiredDirs,\n missingOptionalDirs,\n missingDirs: strictDirectories\n ? [...missingRequiredDirs, ...missingOptionalDirs]\n : [...missingRequiredDirs],\n hookWarnings,\n };\n}\n\nfunction resolveHealthSkipPolicy(options: RunHealthOptions): HealthSkipPolicy {\n const summaryMode = options.summary === true && options.full !== true;\n const fastProjectionCheckOnly =\n options.checkOnly === true &&\n (options.brief === true || options.summary === true) &&\n options.full !== true;\n return {\n summaryMode,\n skipIntegrity:\n (options.skipIntegrity === true || fastProjectionCheckOnly) &&\n options.full !== true,\n skipDrift:\n (options.skipDrift === true || fastProjectionCheckOnly) &&\n options.full !== true,\n skipVectors:\n (options.skipVectors === true || fastProjectionCheckOnly) &&\n options.full !== true,\n };\n}\n\nasync function readHealthItems(params: {\n pmRoot: string;\n settings: PmSettings;\n typeRegistry: HealthTypeRegistry;\n skipPolicy: HealthSkipPolicy;\n itemReadWarnings: string[];\n}): Promise<Array<ItemMetadata | ItemWithBody>> {\n if (params.skipPolicy.skipDrift && params.skipPolicy.skipVectors) {\n return listAllItemMetadata(\n params.pmRoot,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n params.itemReadWarnings,\n params.settings.schema,\n );\n }\n return listAllItemMetadataWithBody(\n params.pmRoot,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n params.itemReadWarnings,\n params.settings.schema,\n );\n}\n\nfunction buildSkippedHealthCheck(\n name: Extract<\n HealthCheck[\"name\"],\n \"integrity\" | \"history_drift\" | \"vectorization\"\n >,\n): HealthCheckResult {\n return {\n check: { name, status: \"ok\", details: { skipped: true } },\n warnings: [],\n };\n}\n\nfunction buildSettingsHealthCheck(\n settingsPath: string,\n settings: PmSettings,\n normalizedSettingsReadWarnings: string[],\n): HealthCheck {\n return {\n name: \"settings\",\n /* c8 ignore next -- settings read-warning status split is covered in broader read-settings integration tests */\n status: normalizedSettingsReadWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n path: settingsPath,\n version: settings.version,\n id_prefix: settings.id_prefix,\n locks_ttl_seconds: settings.locks.ttl_seconds,\n warnings: normalizedSettingsReadWarnings,\n },\n };\n}\n\nfunction buildDirectoriesHealthCheck(\n directoryState: HealthDirectoryState,\n strictDirectories: boolean,\n): HealthCheck {\n return {\n name: \"directories\",\n status: directoryState.missingDirs.length === 0 ? \"ok\" : \"warn\",\n details: {\n required: directoryState.requiredDirs,\n optional: directoryState.optionalDirs,\n missing_required: directoryState.missingRequiredDirs,\n missing_optional: directoryState.missingOptionalDirs,\n missing: directoryState.missingDirs,\n strict_directories: strictDirectories,\n },\n };\n}\n\nfunction buildSettingsValuesHealthCheck(\n settingWarnings: string[],\n): HealthCheck {\n return {\n name: \"settings_values\",\n status: settingWarnings.length === 0 ? \"ok\" : \"warn\",\n details: { warnings: settingWarnings },\n };\n}\n\n/** Preserve unknown-author totals for current and legacy scan payloads. */\nconst resolveUnknownAuthorEventCount = (\n authorAttribution: HistoryAuthorAttributionScan,\n): number => authorAttribution.unknown_event_count ?? 0;\n\n/** Preserve actionable-author semantics for current and legacy scan payloads. */\nconst resolveActionableUnknownAuthorEventCount = (\n authorAttribution: HistoryAuthorAttributionScan,\n): number =>\n authorAttribution.actionable_unknown_event_count ??\n resolveUnknownAuthorEventCount(authorAttribution);\n\nfunction buildStorageHealthCheck(\n items: Array<ItemMetadata | ItemWithBody>,\n settings: PmSettings,\n historySummary: HistoryStreamSummary,\n authorAttribution: HistoryAuthorAttributionScan,\n): HealthCheck {\n const unknownAuthorEventCount =\n resolveUnknownAuthorEventCount(authorAttribution);\n const actionableUnknownAuthorEventCount =\n resolveActionableUnknownAuthorEventCount(authorAttribution);\n const hasAuthorEvents = unknownAuthorEventCount > 0;\n const hasActionableAuthorWarnings = actionableUnknownAuthorEventCount > 0;\n return {\n name: \"storage\",\n status:\n historySummary.over_threshold.length === 0 && !hasActionableAuthorWarnings\n ? \"ok\"\n : \"warn\",\n details: {\n items: items.length,\n history_streams: historySummary.count,\n ...(hasAuthorEvents ? { author_attribution: authorAttribution } : {}),\n ...(historySummary.max_entries !== null\n ? {\n compact_policy: {\n enabled: settings.history.compact_policy.enabled,\n max_entries: historySummary.max_entries,\n trigger: settings.history.compact_policy.trigger,\n over_threshold_count: historySummary.over_threshold.length,\n over_threshold: historySummary.over_threshold,\n },\n }\n : {}),\n },\n };\n}\n\nfunction collectHealthWarnings(params: {\n directoryState: HealthDirectoryState;\n normalizedSettingsReadWarnings: string[];\n settingWarnings: string[];\n normalizedItemReadWarnings: string[];\n telemetryCheck: HealthCheckResult;\n extensionCheck: HealthCheckResult;\n historyPolicyWarnings: string[];\n historySummary: HistoryStreamSummary;\n authorAttributionWarnings: string[];\n locksCheck: HealthCheckResult;\n integrityCheck: HealthCheckResult;\n historyDriftCheck: HealthCheckResult;\n vectorizationCheck: HealthCheckResult;\n}): string[] {\n const warnings = [\n ...params.directoryState.missingDirs.map(\n (dir) => `missing_directory:${dir}`,\n ),\n ...params.normalizedSettingsReadWarnings,\n ...params.settingWarnings,\n ...params.normalizedItemReadWarnings,\n ...params.telemetryCheck.warnings,\n ...params.extensionCheck.warnings,\n ...params.historyPolicyWarnings,\n ...params.historySummary.warnings,\n ...params.authorAttributionWarnings,\n ...params.locksCheck.warnings,\n ...params.integrityCheck.warnings,\n ...params.historyDriftCheck.warnings,\n ...params.vectorizationCheck.warnings,\n ...params.directoryState.hookWarnings,\n ];\n return [...new Set(warnings)];\n}\n\nfunction extractHistoryDriftedCount(\n historyDriftCheck: HealthCheckResult,\n): number {\n const counts = historyDriftCheck.check.details.counts as\n | { drifted?: unknown }\n | undefined;\n return typeof counts?.drifted === \"number\" ? counts.drifted : 0;\n}\n\nfunction buildHealthRemediationSources(params: {\n directoryState: HealthDirectoryState;\n normalizedSettingsReadWarnings: string[];\n settingWarnings: string[];\n telemetryCheck: HealthCheckResult;\n extensionCheck: HealthCheckResult;\n historySummary: HistoryStreamSummary;\n authorAttributionWarnings: string[];\n locksCheck: HealthCheckResult;\n integrityCheck: HealthCheckResult;\n historyDriftCheck: HealthCheckResult;\n vectorizationCheck: HealthCheckResult;\n}): Record<HealthCheck[\"name\"], string[]> {\n return {\n settings: params.normalizedSettingsReadWarnings,\n directories: params.directoryState.missingDirs.map(\n (dir) => `missing_directory:${dir}`,\n ),\n settings_values: params.settingWarnings,\n telemetry: params.telemetryCheck.warnings,\n extensions: params.extensionCheck.warnings,\n storage: [\n ...params.historySummary.over_threshold.map(\n (id) => `history_stream_over_compact_threshold:${id}`,\n ),\n ...params.authorAttributionWarnings,\n ],\n locks: params.locksCheck.warnings,\n integrity: params.integrityCheck.warnings,\n history_drift: params.historyDriftCheck.warnings,\n vectorization: params.vectorizationCheck.warnings,\n };\n}\n\nfunction rewriteBulkHealthRemediation(params: {\n check: HealthCheck;\n remediationMap: Record<string, string>;\n historyDriftedCount: number;\n overThresholdCount: number;\n}): void {\n if (params.check.name === \"history_drift\" && params.historyDriftedCount > 1) {\n for (const code of Object.keys(params.remediationMap)) {\n params.remediationMap[code] = \"pm history-repair --all\";\n }\n }\n if (params.check.name === \"storage\" && params.overThresholdCount > 1) {\n for (const code of Object.keys(params.remediationMap)) {\n params.remediationMap[code] = \"pm history-compact --all-streams\";\n }\n }\n}\n\nfunction attachHealthRemediationMaps(params: {\n checks: HealthCheck[];\n remediationSources: Record<HealthCheck[\"name\"], string[]>;\n historyDriftedCount: number;\n overThresholdCount: number;\n}): void {\n for (const check of params.checks) {\n const remediationMap = buildRemediationMap(\n params.remediationSources[check.name],\n );\n rewriteBulkHealthRemediation({\n check,\n remediationMap,\n historyDriftedCount: params.historyDriftedCount,\n overThresholdCount: params.overThresholdCount,\n });\n if (Object.keys(remediationMap).length > 0) {\n check.details = { ...check.details, remediation_map: remediationMap };\n }\n }\n}\n\nfunction projectHealthResult(\n result: HealthResult,\n options: RunHealthOptions,\n summaryMode: boolean,\n): HealthResult {\n if (summaryMode) {\n return applySummaryHealthProjection(result);\n }\n return options.brief === true ? applyBriefHealthProjection(result) : result;\n}\n\n/** Implements run health for the public runtime surface of this module. */\nexport async function runHealth(\n global: GlobalOptions,\n options: RunHealthOptions = {},\n): Promise<HealthResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n\n const { settings, warnings: settingsReadWarnings } =\n await readSettingsWithMetadata(pmRoot);\n const normalizedSettingsReadWarnings = [...new Set(settingsReadWarnings)];\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const strictDirectories = options.strictDirectories === true;\n const refreshPolicy = resolveVectorRefreshPolicy(options);\n const directoryState = await scanHealthDirectories(\n pmRoot,\n typeRegistry,\n strictDirectories,\n );\n const settingWarnings = validateSettingsValues(settings);\n const telemetryCheck = await buildTelemetryCheck(settings, {\n checkTelemetry: options.checkTelemetry === true,\n });\n const extensionCheck = await buildExtensionCheck(\n pmRoot,\n settings,\n Boolean(global.noExtensions),\n );\n const skipPolicy = resolveHealthSkipPolicy(options);\n const itemReadWarnings: string[] = [];\n const items = await readHealthItems({\n pmRoot,\n settings,\n typeRegistry,\n skipPolicy,\n itemReadWarnings,\n });\n const itemsWithBody = items as Array<ItemMetadata & { body: string }>;\n const normalizedItemReadWarnings = [...new Set(itemReadWarnings)];\n const historyPolicy = skipPolicy.skipDrift\n ? { warnings: [] }\n : await enforceHistoryStreamPolicyForItems({\n pmRoot,\n settings,\n itemIds: items.map((item) => item.id),\n commandLabel: \"health\",\n });\n const historySummary = await countHistoryStreams(\n pmRoot,\n settings.history.compact_policy,\n );\n const authorAttribution = await scanHistoryAuthorAttribution(pmRoot);\n const actionableUnknownAuthorEventCount =\n resolveActionableUnknownAuthorEventCount(authorAttribution);\n const authorAttributionWarnings =\n actionableUnknownAuthorEventCount > 0\n ? [`history_unknown_author_events:${actionableUnknownAuthorEventCount}`]\n : [];\n const locksCheck = await buildLocksCheck(pmRoot);\n const integrityCheck = skipPolicy.skipIntegrity\n ? buildSkippedHealthCheck(\"integrity\")\n : await buildIntegrityCheck(\n pmRoot,\n typeRegistry.type_to_folder,\n settings.schema,\n );\n const historyDriftCheck = skipPolicy.skipDrift\n ? buildSkippedHealthCheck(\"history_drift\")\n : await buildHistoryDriftCheck(pmRoot, itemsWithBody);\n const vectorizationCheck = skipPolicy.skipVectors\n ? buildSkippedHealthCheck(\"vectorization\")\n : await buildVectorizationCheck(\n pmRoot,\n settings,\n itemsWithBody,\n refreshPolicy,\n options.verboseStaleItems === true,\n );\n\n const checks: HealthCheck[] = [\n buildSettingsHealthCheck(\n settingsPath,\n settings,\n normalizedSettingsReadWarnings,\n ),\n buildDirectoriesHealthCheck(directoryState, strictDirectories),\n buildSettingsValuesHealthCheck(settingWarnings),\n telemetryCheck.check,\n extensionCheck.check,\n buildStorageHealthCheck(items, settings, historySummary, authorAttribution),\n locksCheck.check,\n integrityCheck.check,\n historyDriftCheck.check,\n vectorizationCheck.check,\n ];\n\n const normalizedWarnings = collectHealthWarnings({\n directoryState,\n normalizedSettingsReadWarnings,\n settingWarnings,\n normalizedItemReadWarnings,\n telemetryCheck,\n extensionCheck,\n historyPolicyWarnings: historyPolicy.warnings,\n historySummary,\n authorAttributionWarnings,\n locksCheck,\n integrityCheck,\n historyDriftCheck,\n vectorizationCheck,\n });\n attachHealthRemediationMaps({\n checks,\n remediationSources: buildHealthRemediationSources({\n directoryState,\n normalizedSettingsReadWarnings,\n settingWarnings,\n telemetryCheck,\n extensionCheck,\n historySummary,\n authorAttributionWarnings,\n locksCheck,\n integrityCheck,\n historyDriftCheck,\n vectorizationCheck,\n }),\n historyDriftedCount: extractHistoryDriftedCount(historyDriftCheck),\n overThresholdCount: historySummary.over_threshold.length,\n });\n // Telemetry is an opt-out, non-critical observability feature. Its operational\n // state (queue backlog, unreachable endpoint, corrupt local state) is advisory:\n // it must never flip overall project health to not-ok. Such warnings are still\n // surfaced in `warnings` and the telemetry check's own `warn` status.\n const blockingWarnings = normalizedWarnings.filter(\n (warning) => !isAdvisoryHealthWarning(warning),\n );\n const result: HealthResult = {\n ok: blockingWarnings.length === 0,\n checks,\n warnings: normalizedWarnings,\n generated_at: nowIso(),\n };\n return projectHealthResult(result, options, skipPolicy.summaryMode);\n}\n\n/** Public contract for test only health command, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyHealthCommand = {\n buildExtensionHealthTriageSummary,\n buildCapabilityContractMetadata,\n buildVectorizationProviderDetails,\n collectUnknownCapabilityGuidance,\n isAdvisoryHealthWarning,\n isDirectory,\n isExpectedUnmanagedExtension,\n listItemDocumentPaths,\n normalizeEndpointForDisplay,\n normalizeExtensionNameForMatch,\n parseTelemetryQueue,\n probeTelemetryEndpointHealth,\n resolveActionableUnknownAuthorEventCount,\n resolveUnknownAuthorEventCount,\n selectStaleItemDetail,\n summarizeHealthCheckDetails,\n summarizeExtensionList,\n summarizeRecordList,\n summarizeStringList,\n telemetryEnvFlagEnabled,\n warningCode,\n};\n"],"names":[],"mappings":"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","debugId":"9e3d1799-829e-5a99-b960-a2b809511ef7"}
|