@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":"extension.js","sources":["sdk/extension.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module sdk/extension\n *\n * Implements the pm extension command surface and its agent-facing runtime behavior.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n activateExtensions,\n createSerialQueue,\n loadExtensions,\n nextExtensionReloadToken,\n} from \"../core/extensions/index.js\";\nimport { resolveExtensionRoots } from \"../core/extensions/loader.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport { resolvePmPackageRootFromModule } from \"../core/packages/root.js\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { levenshteinDistanceWithinLimit } from \"../core/shared/levenshtein.js\";\nimport { nowIso } from \"../core/shared/time.js\";\nimport {\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../core/store/paths.js\";\nimport { readSettings, writeSettings } from \"../core/store/settings.js\";\nimport { quoteCommandArg, renderPmCommand } from \"./command-line.js\";\nimport { ensureTypeFolderScaffold } from \"./schema.js\";\nimport type { PmSettings } from \"../types/index.js\";\n// Cohesive helper groups now live in ./extension/* sibling modules. They are\n// imported for the command wiring that stays here and re-exported below so\n// existing import sites (sdk barrels, upgrade.ts, tests) keep importing the\n// public surface (runExtension, managed-state read/write, install-source\n// parsing, …) from \"./extension.js\" unchanged.\nimport {\n normalizeStringList,\n normalizeExtensionNameForMatch,\n normalizeManagedDirectoryName,\n parseExtensionManifest,\n validateExtensionDirectory,\n} from \"./extension/shared.js\";\nimport {\n sortManagedEntries,\n managedExtensionSourcesEquivalent,\n readManagedExtensionState,\n writeManagedExtensionState,\n upsertManagedEntry,\n resolveManagedExtensionStatePath,\n type ManagedExtensionSource,\n type ManagedExtensionRecord,\n type ManagedExtensionState,\n} from \"./extension/managed-state.js\";\nimport {\n parseExtensionInstallSource,\n resolveInstallSource,\n areDirectoriesEquivalent,\n} from \"./extension/install-sources.js\";\nimport {\n resolveBundledExtensionAliasSource,\n resolveBundledPackageNpmName,\n isBundledPackageInstallAllTarget,\n listBundledPackageAliases,\n resolveBundledAliasManifestName,\n buildBundledPackageCatalog,\n} from \"./extension/bundled-catalog.js\";\nimport { scaffoldExtensionProject } from \"./extension/scaffold.js\";\nimport { buildExtensionDescribeResult } from \"./extension/describe.js\";\nimport {\n applyDoctorRuntimeActivationState,\n classifyDoctorLoadFailureWarnings,\n classifyDoctorActivationFailureWarnings,\n classifyUnusedCapabilityWarnings,\n buildExtensionTriageSummary,\n parseDoctorDetailMode,\n collectUnknownCapabilityGuidance,\n buildCapabilityContractMetadata,\n buildDoctorConsistencySummary,\n} from \"./extension/doctor.js\";\nimport {\n copyExtensionDirectoryForInstall,\n copyExtensionDirectoryWithoutSelfNesting,\n ensureExtensionModuleTypeMarker,\n isErrnoCode,\n isRetriableExtensionInstallCopyError,\n resolveCanonicalExtensionInstallDestination,\n withExtensionInstallLock,\n} from \"./extension/install-runtime.js\";\nimport { mapWithFixedConcurrency } from \"./extension/concurrency.js\";\nimport { checkGithubUpdate } from \"./extension/update-check.js\";\nimport {\n captureExtensionInstallSnapshot,\n readOptionalMetadataFile,\n restoreExtensionInstallSnapshot,\n} from \"./extension/install-snapshot.js\";\n// Re-export the public surface that lives in sibling modules but was previously\n// exported from this file (used by sdk barrels, upgrade.ts, and tests).\nexport {\n parseExtensionManifest,\n validateExtensionDirectory,\n readManagedExtensionState,\n writeManagedExtensionState,\n resolveManagedExtensionStatePath,\n parseExtensionInstallSource,\n copyExtensionDirectoryForInstall,\n resolveCanonicalExtensionInstallDestination,\n};\nexport type {\n ManagedExtensionSource,\n ManagedExtensionRecord,\n ManagedExtensionState,\n};\nexport type { ManagedExtensionStateReadResult } from \"./extension/managed-state.js\";\n\nconst GITHUB_UPDATE_CHECK_CONCURRENCY = 4;\n\n/** Restricts extension command action values accepted by command, SDK, and storage contracts. */\nexport type ExtensionCommandAction =\n | \"install\"\n | \"uninstall\"\n | \"explore\"\n | \"manage\"\n | \"describe\"\n | \"reload\"\n | \"doctor\"\n | \"catalog\"\n | \"adopt\"\n | \"adopt-all\"\n | \"activate\"\n | \"deactivate\"\n | \"init\";\n\nconst LIFECYCLE_ACTION_TARGETS = [\n [\"install\", \"install\", \"--install\"],\n [\"uninstall\", \"uninstall\", \"--uninstall\"],\n [\"explore\", \"explore\", \"--explore\"],\n [\"list\", \"explore\", \"--explore\"],\n [\"manage\", \"manage\", \"--manage\"],\n [\"describe\", \"describe\", \"--describe\"],\n [\"reload\", \"reload\", \"--reload\"],\n [\"doctor\", \"doctor\", \"--doctor\"],\n [\"catalog\", \"catalog\", \"--catalog\"],\n [\"init\", \"init\", \"--init\"],\n [\"scaffold\", \"init\", \"--scaffold\"],\n [\"adopt\", \"adopt\", \"--adopt\"],\n [\"adopt-all\", \"adopt-all\", \"--adopt-all\"],\n [\"activate\", \"activate\", \"--activate\"],\n [\"deactivate\", \"deactivate\", \"--deactivate\"],\n] as const satisfies readonly (readonly [\n string,\n ExtensionCommandAction,\n `--${string}`,\n])[];\n\nconst LIFECYCLE_ACTION_FLAG_HINT = LIFECYCLE_ACTION_TARGETS.map(\n ([, , flag]) => flag,\n)\n .filter((flag, index, flags) => flags.indexOf(flag) === index)\n .join(\", \");\nconst LIFECYCLE_ACTION_FLAGS: Record<ExtensionCommandAction, `--${string}`> = {\n install: \"--install\",\n uninstall: \"--uninstall\",\n explore: \"--explore\",\n manage: \"--manage\",\n describe: \"--describe\",\n reload: \"--reload\",\n doctor: \"--doctor\",\n catalog: \"--catalog\",\n adopt: \"--adopt\",\n \"adopt-all\": \"--adopt-all\",\n activate: \"--activate\",\n deactivate: \"--deactivate\",\n init: \"--init\",\n};\n/** Restricts extension scope values accepted by command, SDK, and storage contracts. */\nexport type ExtensionScope = \"project\" | \"global\";\n/** Restricts extension activation status values accepted by command, SDK, and storage contracts. */\nexport type ExtensionActivationStatus =\n | \"ok\"\n | \"failed\"\n | \"not_loaded\"\n | \"unknown\";\n\n/** Documents the extension command options payload exchanged by command, SDK, and package integrations. */\nexport interface ExtensionCommandOptions {\n /** Value that configures or reports install for this contract. */\n install?: boolean;\n /** Value that configures or reports uninstall for this contract. */\n uninstall?: boolean;\n /** Value that configures or reports explore for this contract. */\n explore?: boolean;\n /** Value that configures or reports manage for this contract. */\n manage?: boolean;\n /** Value that configures or reports describe for this contract. */\n describe?: boolean;\n /** Value that configures or reports markdown for this contract. */\n markdown?: boolean;\n /** Value that configures or reports output for this contract. */\n output?: string;\n /** Value that configures or reports reload for this contract. */\n reload?: boolean;\n /** Value that configures or reports doctor for this contract. */\n doctor?: boolean;\n /** Value that configures or reports catalog for this contract. */\n catalog?: boolean;\n /** Value that configures or reports init for this contract. */\n init?: boolean;\n /** Value that configures or reports scaffold for this contract. */\n scaffold?: boolean;\n /** Value that configures or reports strict exit for this contract. */\n strictExit?: boolean;\n /** Value that configures or reports fail on warn for this contract. */\n failOnWarn?: boolean;\n /** Value that configures or reports adopt for this contract. */\n adopt?: boolean;\n /** Value that configures or reports adopt all for this contract. */\n adoptAll?: boolean;\n /** Registers this package's commands, actions, and runtime hooks with the host. */\n activate?: boolean;\n /** Value that configures or reports deactivate for this contract. */\n deactivate?: boolean;\n /** Value that configures or reports project for this contract. */\n project?: boolean;\n /** Value that configures or reports local for this contract. */\n local?: boolean;\n /** Value that configures or reports global for this contract. */\n global?: boolean;\n /** Value that configures or reports gh for this contract. */\n gh?: string;\n /** Value that configures or reports github for this contract. */\n github?: string;\n /** Value that configures or reports ref for this contract. */\n ref?: string;\n /** Value that configures or reports detail for this contract. */\n detail?: string;\n /** Value that configures or reports trace for this contract. */\n trace?: boolean;\n /** Value that configures or reports watch for this contract. */\n watch?: boolean;\n /** Value that configures or reports runtime probe for this contract. */\n runtimeProbe?: boolean;\n /** Value that configures or reports fix managed state for this contract. */\n fixManagedState?: boolean;\n /** Value that configures or reports isolated for this contract. */\n isolated?: boolean;\n /** Value that configures or reports ignore global for this contract. */\n ignoreGlobal?: boolean;\n /** Value that configures or reports fields for this contract. */\n fields?: string;\n /** Value that configures or reports capability for this contract. */\n capability?: string;\n /** Value that configures or reports declarative for this contract. */\n declarative?: boolean;\n /** Value that configures or reports vocabulary for this contract. */\n vocabulary?: \"extension\" | \"package\";\n}\n\n/** Documents the managed extension summary payload exchanged by command, SDK, and package integrations. */\nexport interface ManagedExtensionSummary {\n /** Value that configures or reports name for this contract. */\n name: string;\n /** Value that configures or reports directory for this contract. */\n directory: string;\n /** Value that configures or reports version for this contract. */\n version: string;\n /** Value that configures or reports entry for this contract. */\n entry: string;\n /** Value that configures or reports scope for this contract. */\n scope: ExtensionScope;\n // Backward-compatible alias for configured enabled state. Prefer `enabled`.\n /** Value that configures or reports active for this contract. */\n active: boolean;\n /** Whether enabled applies to this operation. */\n enabled: boolean;\n /** Value that configures or reports runtime active for this contract. */\n runtime_active: boolean | null;\n /** Lifecycle state reported for activationthe record. */\n activation_status: ExtensionActivationStatus;\n /** Value that configures or reports command paths for this contract. */\n command_paths?: string[];\n /** Value that configures or reports action paths for this contract. */\n action_paths?: string[];\n /** Value that configures or reports managed for this contract. */\n managed: boolean;\n /** Value that configures or reports source for this contract. */\n source?: ManagedExtensionSource;\n /** Value that configures or reports update available for this contract. */\n update_available?: boolean | null;\n /** ISO 8601 timestamp recording when last update check occurred. */\n last_update_check_at?: string;\n /** Value that configures or reports last update remote commit for this contract. */\n last_update_remote_commit?: string;\n /** Value that configures or reports update error for this contract. */\n update_error?: string;\n /** Lifecycle state reported for update checkthe record. */\n update_check_status: ExtensionUpdateCheckStatus;\n /** Value that configures or reports update check reason for this contract. */\n update_check_reason: string;\n}\n\n/** Documents the extension command result payload exchanged by command, SDK, and package integrations. */\nexport interface ExtensionCommandResult {\n /** Whether the operation completed without a blocking failure. */\n ok: boolean;\n /** Value that configures or reports action for this contract. */\n action: ExtensionCommandAction;\n /** Value that configures or reports scope for this contract. */\n scope: ExtensionScope;\n /** Value that configures or reports roots for this contract. */\n roots: {\n project: string;\n global: string;\n selected: string;\n settings_root: string;\n };\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n /** Value that configures or reports details for this contract. */\n details: Record<string, unknown>;\n}\n\nconst NATIVE_OUTPUT_MARKER = \"__pm_native_output\";\n\n/** Documents the extension triage summary payload exchanged by command, SDK, and package integrations. */\nexport interface ExtensionTriageSummary {\n /** Lifecycle state reported for status. */\n status: \"ok\" | \"warn\";\n /** Number of warning entries represented by this result. */\n warning_count: number;\n /** Value that configures or reports warning codes for this contract. */\n warning_codes: string[];\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n /** Number of policy warning entries represented by this result. */\n policy_warning_count: number;\n /** Number of policy violation entries represented by this result. */\n policy_violation_count: number;\n /** Number of policy blocked entries represented by this result. */\n policy_blocked_count: number;\n /** Value that configures or reports total extensions for this contract. */\n total_extensions: number;\n /** Value that configures or reports managed total for this contract. */\n managed_total: number;\n /** Value that configures or reports enabled total for this contract. */\n enabled_total: number;\n /** Value that configures or reports active total for this contract. */\n active_total: number;\n /** Value that configures or reports update available total for this contract. */\n update_available_total: number;\n /** Value that configures or reports update health coverage for this contract. */\n update_health_coverage: \"full\" | \"partial\";\n /** Value that configures or reports update health partial for this contract. */\n update_health_partial: boolean;\n /** Number of unmanaged loaded extension entries represented by this result. */\n unmanaged_loaded_extension_count: number;\n /** Value that configures or reports unmanaged loaded extensions for this contract. */\n unmanaged_loaded_extensions: string[];\n /** Number of unmanaged expected extension entries represented by this result. */\n unmanaged_expected_extension_count: number;\n /** Value that configures or reports unmanaged expected extensions for this contract. */\n unmanaged_expected_extensions: string[];\n /** Number of unmanaged action required extension entries represented by this result. */\n unmanaged_action_required_extension_count: number;\n /** Value that configures or reports unmanaged action required extensions for this contract. */\n unmanaged_action_required_extensions: string[];\n /** Value that configures or reports update check status totals for this contract. */\n update_check_status_totals: Record<ExtensionUpdateCheckStatus, number>;\n /** Value that configures or reports update check failed total for this contract. */\n update_check_failed_total: number;\n /** Value that configures or reports top warnings for this contract. */\n top_warnings: string[];\n /** Value that configures or reports remediation for this contract. */\n remediation: string[];\n /** Value that configures or reports collision plan for this contract. */\n collision_plan?: ExtensionCollisionPlan;\n}\n\n/** Documents the extension collision plan payload exchanged by command, SDK, and package integrations. */\nexport interface ExtensionCollisionPlan {\n /** Lifecycle state reported for status. */\n status: \"ok\" | \"conflicts_detected\";\n /** Number of collision entries represented by this result. */\n collision_count: number;\n /** Number of extension entries represented by this result. */\n extension_count: number;\n /** Value that configures or reports next best command for this contract. */\n next_best_command: string;\n /** Value that configures or reports collisions for this contract. */\n collisions: Array<{\n code: string;\n surface: string;\n winner: { layer: ExtensionScope; name: string };\n displaced: { layer: ExtensionScope; name: string };\n }>;\n /** Value that configures or reports remediation candidates for this contract. */\n remediation_candidates: Array<{\n action: \"deactivate\";\n extension: string;\n command: string;\n affected_collisions: number;\n feature_loss: {\n command_paths: string[];\n action_paths: string[];\n };\n }>;\n}\n\n/** Restricts extension update check status values accepted by command, SDK, and storage contracts. */\nexport type ExtensionUpdateCheckStatus =\n | \"checked\"\n | \"skipped_unmanaged\"\n | \"skipped_non_github\"\n | \"failed\"\n | \"not_checked\";\n\ninterface ExtensionUpdateCheckResolution {\n status: ExtensionUpdateCheckStatus;\n reason: string;\n}\n\n/** Restricts extension doctor detail mode values accepted by command, SDK, and storage contracts. */\nexport type ExtensionDoctorDetailMode = \"summary\" | \"deep\";\n\nconst EXTENSION_POLICY_ROOT_LIST_FIELDS = [\n \"trusted_extensions\",\n \"allowed_extensions\",\n \"blocked_extensions\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n] as const;\n\nconst EXTENSION_POLICY_OVERRIDE_LIST_FIELDS = [\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n] as const;\nconst EXTENSION_POLICY_OVERRIDE_BOOLEAN_FIELDS = [\n \"disabled\",\n \"require_trusted\",\n \"require_provenance\",\n] as const;\nconst DEFAULT_EXTENSION_POLICY_DETAILS: ExtensionPolicyDetails = {\n mode: \"off\",\n trust_mode: \"off\",\n require_provenance: false,\n trusted_extensions: [],\n default_sandbox_profile: \"none\",\n allowed_extensions: [],\n blocked_extensions: [],\n allowed_capabilities: [],\n blocked_capabilities: [],\n allowed_surfaces: [],\n blocked_surfaces: [],\n allowed_commands: [],\n blocked_commands: [],\n allowed_actions: [],\n blocked_actions: [],\n allowed_services: [],\n blocked_services: [],\n extension_overrides: [],\n};\n\ntype ExtensionPolicyRootListField =\n (typeof EXTENSION_POLICY_ROOT_LIST_FIELDS)[number];\ntype ExtensionPolicyOverrideListField =\n (typeof EXTENSION_POLICY_OVERRIDE_LIST_FIELDS)[number];\ntype ExtensionPolicyOverrideBooleanField =\n (typeof EXTENSION_POLICY_OVERRIDE_BOOLEAN_FIELDS)[number];\n\ninterface ExtensionPolicyOverrideDetails {\n name: string;\n disabled?: boolean;\n require_trusted?: boolean;\n require_provenance?: boolean;\n sandbox_profile?: \"none\" | \"restricted\" | \"strict\";\n allowed_capabilities?: string[];\n blocked_capabilities?: string[];\n allowed_surfaces?: string[];\n blocked_surfaces?: string[];\n allowed_commands?: string[];\n blocked_commands?: string[];\n allowed_actions?: string[];\n blocked_actions?: string[];\n allowed_services?: string[];\n blocked_services?: string[];\n}\n\ninterface ExtensionPolicyDetails {\n mode: \"off\" | \"warn\" | \"enforce\";\n trust_mode: \"off\" | \"warn\" | \"enforce\";\n require_provenance: boolean;\n trusted_extensions: string[];\n default_sandbox_profile: \"none\" | \"restricted\" | \"strict\";\n allowed_extensions: string[];\n blocked_extensions: string[];\n allowed_capabilities: string[];\n blocked_capabilities: string[];\n allowed_surfaces: string[];\n blocked_surfaces: string[];\n allowed_commands: string[];\n blocked_commands: string[];\n allowed_actions: string[];\n blocked_actions: string[];\n allowed_services: string[];\n blocked_services: string[];\n extension_overrides: ExtensionPolicyOverrideDetails[];\n}\n\n/** Normalize every root-level extension policy list into a stable unique sequence. */\nconst normalizePolicyRootLists = (\n policy: PmSettings[\"extensions\"][\"policy\"] | null | undefined,\n): Record<ExtensionPolicyRootListField, string[]> => {\n const safePolicy = policy ?? DEFAULT_EXTENSION_POLICY_DETAILS;\n const lists = {} as Record<ExtensionPolicyRootListField, string[]>;\n for (const field of EXTENSION_POLICY_ROOT_LIST_FIELDS) {\n lists[field] = normalizeStringList(safePolicy[field] ?? []);\n }\n return lists;\n};\n\n/** Attach only populated override lists so diagnostics remain compact. */\nconst appendNonEmptyPolicyLists = (\n target: ExtensionPolicyOverrideDetails,\n lists: Record<ExtensionPolicyOverrideListField, string[]>,\n): ExtensionPolicyOverrideDetails => {\n for (const field of EXTENSION_POLICY_OVERRIDE_LIST_FIELDS) {\n if (lists[field].length > 0) {\n target[field] = lists[field];\n }\n }\n return target;\n};\n\n/** Attach explicitly enabled scalar fields to one normalized extension override. */\nconst appendEnabledPolicyScalars = (\n target: ExtensionPolicyOverrideDetails,\n override: NonNullable<\n PmSettings[\"extensions\"][\"policy\"][\"extension_overrides\"]\n >[number],\n): ExtensionPolicyOverrideDetails => {\n for (const field of EXTENSION_POLICY_OVERRIDE_BOOLEAN_FIELDS) {\n if (override[field] === true) {\n target[field as ExtensionPolicyOverrideBooleanField] = true;\n }\n }\n if (override.sandbox_profile) {\n target.sandbox_profile = override.sandbox_profile;\n }\n return target;\n};\n\n/** Normalize every list field from one extension policy override. */\nconst normalizePolicyOverrideLists = (\n override: NonNullable<\n PmSettings[\"extensions\"][\"policy\"][\"extension_overrides\"]\n >[number],\n): Record<ExtensionPolicyOverrideListField, string[]> => {\n const lists = {} as Record<ExtensionPolicyOverrideListField, string[]>;\n for (const field of EXTENSION_POLICY_OVERRIDE_LIST_FIELDS) {\n lists[field] = normalizeStringList(override[field] ?? []);\n }\n return lists;\n};\n\n/** Build deterministic diagnostic details for one valid named extension override. */\nconst buildExtensionPolicyOverrideDetails = (\n override: NonNullable<\n PmSettings[\"extensions\"][\"policy\"][\"extension_overrides\"]\n >[number],\n): ExtensionPolicyOverrideDetails | null => {\n const name = typeof override.name === \"string\" ? override.name.trim() : \"\";\n if (name.length === 0) {\n return null;\n }\n return appendNonEmptyPolicyLists(\n appendEnabledPolicyScalars({ name }, override),\n normalizePolicyOverrideLists(override),\n );\n};\n\n/** Normalize and sort all named extension policy overrides. */\nconst normalizeExtensionPolicyOverrides = (\n overrides:\n | PmSettings[\"extensions\"][\"policy\"][\"extension_overrides\"]\n | null\n | undefined,\n): ExtensionPolicyOverrideDetails[] =>\n (overrides ?? [])\n .map((override) => buildExtensionPolicyOverrideDetails(override))\n .filter(\n (override): override is ExtensionPolicyOverrideDetails =>\n override !== null,\n )\n .sort((left, right) => left.name.localeCompare(right.name));\n\n/** Build the normalized extension policy representation exposed by diagnostics. */\nconst buildExtensionPolicyDetails = (\n policy: PmSettings[\"extensions\"][\"policy\"] | null | undefined,\n): ExtensionPolicyDetails => {\n const safePolicy = Object.assign(\n {},\n DEFAULT_EXTENSION_POLICY_DETAILS,\n policy ?? {},\n );\n const rootLists = normalizePolicyRootLists(policy);\n const overrides = normalizeExtensionPolicyOverrides(\n safePolicy.extension_overrides,\n );\n return {\n mode: safePolicy.mode,\n trust_mode: safePolicy.trust_mode,\n require_provenance: safePolicy.require_provenance === true,\n trusted_extensions: rootLists.trusted_extensions,\n default_sandbox_profile: safePolicy.default_sandbox_profile,\n allowed_extensions: rootLists.allowed_extensions,\n blocked_extensions: rootLists.blocked_extensions,\n allowed_capabilities: rootLists.allowed_capabilities,\n blocked_capabilities: rootLists.blocked_capabilities,\n allowed_surfaces: rootLists.allowed_surfaces,\n blocked_surfaces: rootLists.blocked_surfaces,\n allowed_commands: rootLists.allowed_commands,\n blocked_commands: rootLists.blocked_commands,\n allowed_actions: rootLists.allowed_actions,\n blocked_actions: rootLists.blocked_actions,\n allowed_services: rootLists.allowed_services,\n blocked_services: rootLists.blocked_services,\n extension_overrides: overrides,\n };\n};\n\n/** Resolve a lifecycle target against managed extension names, aliases, and directories. */\nconst resolveInstalledExtensionCandidate = async (\n installed: ManagedExtensionSummary[],\n extensionTarget: string,\n): Promise<ManagedExtensionSummary | undefined> => {\n const lookupValues = [extensionTarget];\n const bundledAliasManifestName =\n await resolveBundledAliasManifestName(extensionTarget);\n if (bundledAliasManifestName) {\n lookupValues.push(bundledAliasManifestName);\n }\n const normalizedLookups = [\n ...new Set(\n lookupValues\n .map((value) => normalizeExtensionNameForMatch(value))\n .filter((value) => value.length > 0),\n ),\n ];\n for (const lookup of normalizedLookups) {\n const byName = installed.find(\n (entry) => normalizeExtensionNameForMatch(entry.name) === lookup,\n );\n if (byName) {\n return byName;\n }\n const byDirectory = installed.find(\n (entry) => normalizeExtensionNameForMatch(entry.directory) === lookup,\n );\n if (byDirectory) {\n return byDirectory;\n }\n }\n return undefined;\n};\n\n/** Return whether one extension is enabled after explicit enabled and disabled settings are applied. */\nconst isExtensionEnabled = (settings: PmSettings, name: string): boolean => {\n const normalizedName = name.trim();\n const enabled = new Set(normalizeStringList(settings.extensions.enabled));\n const disabled = new Set(normalizeStringList(settings.extensions.disabled));\n if (disabled.has(normalizedName)) {\n return false;\n }\n if (enabled.size === 0) {\n return true;\n }\n return enabled.has(normalizedName);\n};\n\n/** Mutate extension settings to activate one name and report whether persisted state changed. */\nconst ensureActivated = (settings: PmSettings, name: string): boolean => {\n const normalizedName = name.trim();\n const enabled = new Set(normalizeStringList(settings.extensions.enabled));\n const disabled = new Set(normalizeStringList(settings.extensions.disabled));\n const previousEnabled = [...enabled];\n const previousDisabled = [...disabled];\n disabled.delete(normalizedName);\n if (enabled.size > 0) {\n enabled.add(normalizedName);\n }\n settings.extensions.enabled = [...enabled].sort((left, right) =>\n left.localeCompare(right),\n );\n settings.extensions.disabled = [...disabled].sort((left, right) =>\n left.localeCompare(right),\n );\n return (\n settings.extensions.enabled.join(\"\\u0000\") !==\n previousEnabled.join(\"\\u0000\") ||\n settings.extensions.disabled.join(\"\\u0000\") !==\n previousDisabled.join(\"\\u0000\")\n );\n};\n\n/** Mutate extension settings to deactivate one name and report whether persisted state changed. */\nconst ensureDeactivated = (settings: PmSettings, name: string): boolean => {\n const normalizedName = name.trim();\n const enabled = new Set(normalizeStringList(settings.extensions.enabled));\n const disabled = new Set(normalizeStringList(settings.extensions.disabled));\n const previousEnabled = [...enabled];\n const previousDisabled = [...disabled];\n enabled.delete(normalizedName);\n disabled.add(normalizedName);\n settings.extensions.enabled = [...enabled].sort((left, right) =>\n left.localeCompare(right),\n );\n settings.extensions.disabled = [...disabled].sort((left, right) =>\n left.localeCompare(right),\n );\n return (\n settings.extensions.enabled.join(\"\\u0000\") !==\n previousEnabled.join(\"\\u0000\") ||\n settings.extensions.disabled.join(\"\\u0000\") !==\n previousDisabled.join(\"\\u0000\")\n );\n};\n\n/** Remove one extension from explicit enabled and disabled settings and report whether state changed. */\nconst clearExtensionState = (settings: PmSettings, name: string): boolean => {\n const normalizedName = name.trim();\n const enabled = new Set(normalizeStringList(settings.extensions.enabled));\n const disabled = new Set(normalizeStringList(settings.extensions.disabled));\n const previousEnabled = [...enabled];\n const previousDisabled = [...disabled];\n enabled.delete(normalizedName);\n disabled.delete(normalizedName);\n settings.extensions.enabled = [...enabled].sort((left, right) =>\n left.localeCompare(right),\n );\n settings.extensions.disabled = [...disabled].sort((left, right) =>\n left.localeCompare(right),\n );\n return (\n settings.extensions.enabled.join(\"\\u0000\") !==\n previousEnabled.join(\"\\u0000\") ||\n settings.extensions.disabled.join(\"\\u0000\") !==\n previousDisabled.join(\"\\u0000\")\n );\n};\n\n/** Return the nearest valid lifecycle action and flag for one user-provided target. */\nconst suggestLifecycleActionTarget = (\n target: string,\n): { action: ExtensionCommandAction; flag: `--${string}` } | null => {\n const normalizedTarget = target.trim().toLowerCase();\n const maxDistance = Math.min(\n 2,\n Math.max(1, Math.ceil(normalizedTarget.length / 4)),\n );\n const nearest = LIFECYCLE_ACTION_TARGETS.map(\n ([candidate, action, flag]): {\n action: ExtensionCommandAction;\n flag: `--${string}`;\n distance: number | null;\n } => ({\n action,\n flag,\n distance: levenshteinDistanceWithinLimit(\n normalizedTarget,\n candidate,\n maxDistance,\n ),\n }),\n )\n .filter(\n (\n entry,\n ): entry is {\n action: ExtensionCommandAction;\n flag: `--${string}`;\n distance: number;\n } => entry.distance !== null,\n )\n .sort((left, right) => left.distance - right.distance)[0];\n return nearest ? { action: nearest.action, flag: nearest.flag } : null;\n};\n\n/** Build structured recovery guidance for an unknown extension lifecycle action. */\nconst buildUnknownLifecycleActionError = (\n target: string,\n options: ExtensionCommandOptions,\n): PmCliError => {\n const noun = options.vocabulary === \"package\" ? \"package\" : \"extension\";\n const suggestion = suggestLifecycleActionTarget(target);\n if (!suggestion) {\n return new PmCliError(\n `One action flag is required. Use one of: ${LIFECYCLE_ACTION_FLAG_HINT}. Bare \\`pm package\\` and \\`pm extension\\` default to --explore.`,\n EXIT_CODE.USAGE,\n );\n }\n const command = `pm ${noun} ${suggestion.flag}`;\n return new PmCliError(\n `Unknown ${noun} lifecycle action \"${target}\". Did you mean \"${suggestion.flag}\"?`,\n EXIT_CODE.USAGE,\n {\n code: \"unknown_lifecycle_action\",\n required: `Use one of: ${LIFECYCLE_ACTION_FLAG_HINT}.`,\n examples: [command, `pm ${noun} --help`],\n recovery: {\n attempted_command: `pm ${noun} ${target}`,\n suggested_retry: command,\n fallback_candidates: [\n {\n source: \"lifecycle_action\",\n command,\n reason: `nearest lifecycle action for \"${target}\"`,\n },\n ],\n },\n },\n );\n};\n\n// Maps each boolean action flag to the lifecycle action it selects. `scaffold`\n// aliases `init` and `adoptAll` selects `adopt-all`; every other flag maps to its\n// like-named action. Dispatching through the table keeps `resolveAction` flat.\nconst EXTENSION_ACTION_FLAG_SELECTORS = [\n [\"install\", \"install\"],\n [\"uninstall\", \"uninstall\"],\n [\"explore\", \"explore\"],\n [\"manage\", \"manage\"],\n [\"describe\", \"describe\"],\n [\"reload\", \"reload\"],\n [\"doctor\", \"doctor\"],\n [\"catalog\", \"catalog\"],\n [\"init\", \"init\"],\n [\"scaffold\", \"init\"],\n [\"adopt\", \"adopt\"],\n [\"adoptAll\", \"adopt-all\"],\n [\"activate\", \"activate\"],\n [\"deactivate\", \"deactivate\"],\n] as const satisfies readonly (readonly [\n keyof ExtensionCommandOptions,\n ExtensionCommandAction,\n])[];\n\n/** Positional lifecycle shorthand mapped to the canonical extension action. */\nconst IMPLICIT_EXTENSION_ACTIONS: Readonly<\n Record<string, ExtensionCommandAction>\n> = {\n doctor: \"doctor\",\n reload: \"reload\",\n catalog: \"catalog\",\n init: \"init\",\n scaffold: \"init\",\n explore: \"explore\",\n manage: \"manage\",\n list: \"explore\",\n \"\": \"explore\",\n};\n\n/** Map a bare positional token (already trimmed and lower-cased) to the lifecycle action it implies for `pm extension <token>` / `pm package <token>`: the `doctor`/`reload`/`catalog`/`init`/`scaffold`/`explore`/`manage` keywords, with `list` and the empty string both meaning `explore`. Returns `null` for anything else so the caller can raise a did-you-mean error. */\nconst resolveImplicitActionFromTarget = (\n normalizedTarget: string,\n): ExtensionCommandAction | null =>\n IMPLICIT_EXTENSION_ACTIONS[normalizedTarget] ?? null;\n\n/** Resolve mutually exclusive lifecycle flags and positional shorthand into one extension action. */\nconst resolveAction = (\n target: string | undefined,\n options: ExtensionCommandOptions,\n): ExtensionCommandAction => {\n const selected = [\n ...new Set(\n EXTENSION_ACTION_FLAG_SELECTORS.filter(\n ([flag]) => options[flag] === true,\n ).map(([, mappedAction]) => mappedAction),\n ),\n ];\n if (selected.length === 0) {\n if (target === undefined) {\n return \"explore\";\n }\n const implicitAction = resolveImplicitActionFromTarget(\n target.trim().toLowerCase(),\n );\n if (implicitAction) {\n return implicitAction;\n }\n throw buildUnknownLifecycleActionError(target, options);\n }\n if (selected.length > 1) {\n throw new PmCliError(\n \"Extension action flags are mutually exclusive.\",\n EXIT_CODE.USAGE,\n );\n }\n return selected[0];\n};\n\n/** Resolve project or global extension scope while rejecting conflicting scope flags. */\nconst resolveScope = (options: ExtensionCommandOptions): ExtensionScope => {\n const projectLike = options.project === true || options.local === true;\n const global = options.global === true;\n if (projectLike && global) {\n throw new PmCliError(\n 'Options \"--project/--local\" and \"--global\" are mutually exclusive.',\n EXIT_CODE.USAGE,\n );\n }\n return global ? \"global\" : \"project\";\n};\n\ntype ExtensionUpdateCheckResolver = (\n managedEntry: ManagedExtensionRecord | undefined,\n) => ExtensionUpdateCheckResolution | null;\n\n/** Ordered update-check policies from unmanaged and non-GitHub cases through recorded outcomes. */\nconst EXTENSION_UPDATE_CHECK_RESOLVERS: ExtensionUpdateCheckResolver[] = [\n (managedEntry) =>\n managedEntry\n ? null\n : {\n status: \"skipped_unmanaged\",\n reason: \"extension_not_managed\",\n },\n (managedEntry) =>\n managedEntry && managedEntry.source.kind !== \"github\"\n ? {\n status: \"skipped_non_github\",\n reason: `managed_source_kind_${managedEntry.source.kind}`,\n }\n : null,\n (managedEntry) => {\n const updateError =\n typeof managedEntry?.update_error === \"string\"\n ? managedEntry.update_error.trim()\n : \"\";\n return updateError.length > 0\n ? { status: \"failed\", reason: updateError }\n : null;\n },\n (managedEntry) => {\n const entry = managedEntry as ManagedExtensionRecord;\n const checkedAt =\n typeof entry.last_update_check_at === \"string\"\n ? entry.last_update_check_at.trim()\n : \"\";\n if (checkedAt.length === 0) {\n return null;\n }\n const reason =\n {\n true: \"update_available\",\n false: \"up_to_date\",\n }[String(entry.update_available)] ?? \"checked_without_commit_baseline\";\n return { status: \"checked\", reason };\n },\n];\n\n/** Project managed-source update metadata into one deterministic update-check result. */\nconst resolveUpdateCheckResolution = (\n managedEntry: ManagedExtensionRecord | undefined,\n): ExtensionUpdateCheckResolution => {\n for (const resolve of EXTENSION_UPDATE_CHECK_RESOLVERS) {\n const resolution = resolve(managedEntry);\n if (resolution) {\n return resolution;\n }\n }\n return {\n status: \"not_checked\",\n reason: \"no_update_check_recorded\",\n };\n};\n\n/**\n * Assemble a {@link ManagedExtensionSummary} from a directory's resolved identity\n * (name/version/entry/enabled state) and its managed-state record, projecting the\n * managed-source provenance and the resolved update-check status. Runtime\n * activation fields default to \"not yet probed\" (`runtime_active: null`,\n * `activation_status: \"unknown\"`) so a later runtime probe can overlay live state.\n */\nconst buildInstalledExtensionSummary = (\n identity: {\n name: string;\n directory: string;\n version: string;\n entry: string;\n enabled: boolean;\n },\n scope: ExtensionScope,\n managedEntry: ManagedExtensionRecord | undefined,\n updateCheck: ExtensionUpdateCheckResolution,\n): ManagedExtensionSummary => {\n const managed = managedEntry ?? ({} as ManagedExtensionRecord);\n return {\n name: identity.name,\n directory: identity.directory,\n version: identity.version,\n entry: identity.entry,\n scope,\n active: identity.enabled,\n enabled: identity.enabled,\n runtime_active: null,\n activation_status: \"unknown\",\n managed: Boolean(managedEntry),\n source: managed.source,\n update_available: managed.update_available,\n last_update_check_at: managed.last_update_check_at,\n last_update_remote_commit: managed.last_update_remote_commit,\n update_error: managed.update_error,\n update_check_status: updateCheck.status,\n update_check_reason: updateCheck.reason,\n };\n};\n\ninterface InstalledExtensionDirectoryInspection {\n summary?: ManagedExtensionSummary;\n warning?: string;\n}\n\n/** Project the degraded summary retained for a directory without a manifest. */\nconst buildMissingManifestInspection = (\n directoryName: string,\n scope: ExtensionScope,\n settings: PmSettings,\n managedEntry: ManagedExtensionRecord | undefined,\n): InstalledExtensionDirectoryInspection => {\n const managed = Object.assign(\n {\n name: directoryName,\n manifest_version: \"unknown\",\n manifest_entry: \"unknown\",\n },\n managedEntry,\n );\n const enabled = managedEntry\n ? isExtensionEnabled(settings, managedEntry.name)\n : false;\n return {\n warning: `extension_manifest_missing:${scope}:${directoryName}`,\n summary: buildInstalledExtensionSummary(\n {\n name: managed.name,\n directory: directoryName,\n version: managed.manifest_version,\n entry: managed.manifest_entry,\n enabled,\n },\n scope,\n managedEntry,\n resolveUpdateCheckResolution(managedEntry),\n ),\n };\n};\n\n/** Inspect one installed extension directory and project its manifest or warning. */\nconst inspectInstalledExtensionDirectory = async (\n extensionsRoot: string,\n directoryName: string,\n scope: ExtensionScope,\n settings: PmSettings,\n managedByName: ReadonlyMap<string, ManagedExtensionRecord>,\n managedByDirectory: ReadonlyMap<string, ManagedExtensionRecord>,\n): Promise<InstalledExtensionDirectoryInspection> => {\n const extensionDirectory = path.join(extensionsRoot, directoryName);\n const manifestPath = path.join(extensionDirectory, \"manifest.json\");\n const managedDirectoryEntry = managedByDirectory.get(\n normalizeExtensionNameForMatch(directoryName),\n );\n if (!(await pathExists(manifestPath))) {\n return buildMissingManifestInspection(\n directoryName,\n scope,\n settings,\n managedDirectoryEntry,\n );\n }\n\n const invalidJson = Symbol(\"invalid-extension-manifest-json\");\n const rawManifest = await fs\n .readFile(manifestPath, \"utf8\")\n .then((contents) => JSON.parse(contents) as unknown)\n .catch(() => invalidJson);\n if (rawManifest === invalidJson) {\n return {\n warning: `extension_manifest_invalid_json:${scope}:${directoryName}`,\n };\n }\n const manifest = parseExtensionManifest(rawManifest);\n if (!manifest) {\n return { warning: `extension_manifest_invalid:${scope}:${directoryName}` };\n }\n const managedEntry =\n managedByName.get(normalizeExtensionNameForMatch(manifest.name)) ??\n managedByDirectory.get(normalizeExtensionNameForMatch(directoryName));\n return {\n summary: buildInstalledExtensionSummary(\n {\n name: manifest.name,\n directory: directoryName,\n version: manifest.version,\n entry: manifest.entry,\n enabled: isExtensionEnabled(settings, manifest.name),\n },\n scope,\n managedEntry,\n resolveUpdateCheckResolution(managedEntry),\n ),\n };\n};\n\n/** List managed and unmanaged extensions with activation, update, and command summaries. */\nconst listInstalledExtensions = async (\n extensionsRoot: string,\n scope: ExtensionScope,\n settings: PmSettings,\n state: ManagedExtensionState,\n): Promise<{ extensions: ManagedExtensionSummary[]; warnings: string[] }> => {\n if (!(await pathExists(extensionsRoot))) {\n return {\n extensions: [],\n warnings: [],\n };\n }\n\n const entries = await fs.readdir(extensionsRoot, { withFileTypes: true });\n const directories = entries\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort((left, right) => left.localeCompare(right));\n\n const managedByName = new Map(\n state.entries.map((managedEntry) => [\n normalizeExtensionNameForMatch(managedEntry.name),\n managedEntry,\n ]),\n );\n const managedByDirectory = new Map(\n state.entries.map((managedEntry) => [\n normalizeExtensionNameForMatch(managedEntry.directory),\n managedEntry,\n ]),\n );\n\n const warnings: string[] = [];\n const summaries: ManagedExtensionSummary[] = [];\n for (const directoryName of directories) {\n const inspected = await inspectInstalledExtensionDirectory(\n extensionsRoot,\n directoryName,\n scope,\n settings,\n managedByName,\n managedByDirectory,\n );\n if (inspected.warning) {\n warnings.push(inspected.warning);\n }\n if (inspected.summary) {\n summaries.push(inspected.summary);\n }\n }\n return {\n extensions: summaries.sort((left, right) =>\n left.name.localeCompare(right.name),\n ),\n warnings: warnings.sort((left, right) => left.localeCompare(right)),\n };\n};\ntype ActivationFailureEntry = Awaited<\n ReturnType<typeof activateExtensions>\n>[\"failed\"][number];\n\nconst extensionRuntimeProbeQueue = createSerialQueue();\n\ninterface ActivationFailureDiagnostic {\n layer: string;\n name: string;\n entry_path: string;\n error: string;\n missing_capability?: string;\n hint?: string;\n trace?: {\n method: string;\n registration_index: number;\n expected_schema: string;\n command?: string;\n capability?: string;\n missing_capability?: string;\n hint?: string;\n };\n}\n\n/** Return stable runtime command paths registered by one extension. */\nconst summarizeRuntimeCommandPathsForExtension = (\n extensionName: string,\n installed: ManagedExtensionSummary[],\n): { command_paths: string[]; action_paths: string[] } => {\n const normalizedName = normalizeExtensionNameForMatch(extensionName);\n const entry = installed.find(\n (candidate) =>\n normalizeExtensionNameForMatch(candidate.name) === normalizedName,\n );\n return {\n command_paths: [...(entry?.command_paths ?? [])].sort((left, right) =>\n left.localeCompare(right),\n ),\n action_paths: [...(entry?.action_paths ?? [])].sort((left, right) =>\n left.localeCompare(right),\n ),\n };\n};\n\n/** Resolve the package vocabulary name used in extension command discovery. */\nconst resolveCommandDiscoveryPackageName = (\n extensionName: string,\n source: ManagedExtensionSource,\n): string =>\n [source.package, source.kind === \"builtin\" ? source.name : undefined]\n .find((candidate) => candidate?.trim())\n ?.trim() ?? extensionName;\n\n/** Build post-install command discovery and activation guidance for one extension. */\nconst buildInstallCommandDiscovery = (\n extensionName: string,\n source: ManagedExtensionSource,\n commandSummary: { command_paths: string[]; action_paths: string[] },\n activationFailure?: ActivationFailureDiagnostic,\n): Record<string, unknown> => {\n const helpCommands = commandSummary.command_paths.map(\n (commandPath) => `pm ${commandPath} --help`,\n );\n const sdkDependencyMissing =\n activationFailure?.error.toLowerCase().includes(\"@unbrained/pm-cli\") ===\n true;\n const nextSteps =\n commandSummary.command_paths.length > 0\n ? [...helpCommands]\n : [\n \"Run pm package doctor --project --detail deep if expected package commands are missing.\",\n ];\n if (sdkDependencyMissing) {\n nextSteps.unshift(\n \"Install @unbrained/pm-cli in the target workspace so declarative package runtime imports resolve, then reinstall the package.\",\n );\n }\n return {\n package_name: resolveCommandDiscoveryPackageName(extensionName, source),\n extension_name: extensionName,\n command_paths: commandSummary.command_paths,\n action_paths: commandSummary.action_paths,\n help_commands: helpCommands,\n next_steps: nextSteps,\n ...(sdkDependencyMissing ? { sdk_dependency_status: \"missing\" } : {}),\n };\n};\n\n/** Project one activation failure into a bounded diagnostic summary. */\nconst summarizeActivationFailureForDiagnostics = (\n failure: ActivationFailureEntry,\n): ActivationFailureDiagnostic => {\n const trace = failure.trace;\n const summary: ActivationFailureDiagnostic = {\n layer: failure.layer,\n name: failure.name,\n entry_path: failure.entry_path,\n error: failure.error,\n };\n if (!trace) return summary;\n summary.trace = Object.fromEntries(\n Object.entries(trace).filter(([, value]) => value !== undefined),\n ) as ActivationFailureDiagnostic[\"trace\"];\n if (trace.missing_capability) {\n summary.missing_capability = trace.missing_capability;\n }\n if (trace.hint) summary.hint = trace.hint;\n return summary;\n};\n\n/** Collect activation failures that match one extension identity. */\nconst collectActivationFailureDiagnostics = (\n failures: ActivationFailureEntry[],\n): ActivationFailureDiagnostic[] => {\n return failures\n .map((failure) => summarizeActivationFailureForDiagnostics(failure))\n .sort((left, right) =>\n `${left.layer}:${left.name}`.localeCompare(\n `${right.layer}:${right.name}`,\n ),\n );\n};\n\n/** Find the first activation failure matching one normalized extension name. */\nconst findActivationFailureByName = (\n extensionName: string,\n failures: ActivationFailureDiagnostic[],\n layer?: ExtensionScope,\n): ActivationFailureDiagnostic | undefined => {\n const normalizedName = normalizeExtensionNameForMatch(extensionName);\n return failures.find(\n (failure) =>\n (layer === undefined || failure.layer === layer) &&\n normalizeExtensionNameForMatch(failure.name) === normalizedName,\n );\n};\n\n/** Resolve post-install runtime activation status from load and activation evidence. */\nconst resolveInstallRuntimeActivationStatus = (\n extensionName: string,\n scope: ExtensionScope,\n runtimeInstalled: ManagedExtensionSummary[],\n installActivationFailure: ActivationFailureDiagnostic | undefined,\n): ExtensionActivationStatus => {\n const runtimeInstalledExtension = runtimeInstalled.find(\n (entry) =>\n entry.scope === scope &&\n normalizeExtensionNameForMatch(entry.name) ===\n normalizeExtensionNameForMatch(extensionName),\n );\n return (\n runtimeInstalledExtension?.activation_status ??\n (installActivationFailure ? \"failed\" : \"unknown\")\n );\n};\n\n/** Probe a temporary installed extension for runtime command registrations. */\nconst probeRuntimeCommandPathsForInstall = (\n pmRoot: string,\n settings: PmSettings,\n refreshedInstalled: ManagedExtensionSummary[],\n global: GlobalOptions,\n): Promise<{\n installed: ManagedExtensionSummary[];\n warnings: string[];\n activation_failures: ActivationFailureDiagnostic[];\n extensions_disabled: boolean;\n item_type_registrations: Awaited<\n ReturnType<typeof activateExtensions>\n >[\"registrations\"][\"item_types\"];\n}> => {\n return extensionRuntimeProbeQueue.enqueue(async () => {\n const originalPackageRoot = process.env.PM_CLI_PACKAGE_ROOT;\n process.env.PM_CLI_PACKAGE_ROOT = resolvePmPackageRootFromModule(\n import.meta.url,\n [\"../..\"],\n );\n try {\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: global.noExtensions === true,\n reload_token: nextExtensionReloadToken(),\n cache_bust: true,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const runtimeFailures = [\n ...loadResult.failed.map((failure) => ({\n layer: failure.layer,\n name: failure.name,\n entry_path: failure.entry_path,\n error: failure.error,\n })),\n ...collectActivationFailureDiagnostics(activationResult.failed),\n ];\n return {\n installed: applyDoctorRuntimeActivationState(\n refreshedInstalled,\n loadResult,\n activationResult,\n ),\n warnings: [...loadResult.warnings, ...activationResult.warnings],\n activation_failures: runtimeFailures,\n extensions_disabled: loadResult.disabled_by_flag,\n item_type_registrations: activationResult.registrations.item_types,\n };\n } finally {\n if (originalPackageRoot === undefined) {\n delete process.env.PM_CLI_PACKAGE_ROOT;\n } else {\n process.env.PM_CLI_PACKAGE_ROOT = originalPackageRoot;\n }\n }\n });\n};\n\ninterface AdoptedUnmanagedExtension {\n name: string;\n directory: string;\n version: string;\n entry: string;\n source: ManagedExtensionSource;\n}\n\ninterface AdoptUnmanagedExtensionsResult {\n state: ManagedExtensionState;\n adopted_entries: AdoptedUnmanagedExtension[];\n unmanaged_candidates: ManagedExtensionSummary[];\n already_managed_count: number;\n}\n\n/** Adopt unmanaged extension directories into deterministic managed state. */\nconst adoptUnmanagedExtensions = async (\n extensionsRoot: string,\n scope: ExtensionScope,\n installedExtensions: ManagedExtensionSummary[],\n state: ManagedExtensionState,\n): Promise<AdoptUnmanagedExtensionsResult> => {\n const unmanagedCandidates = installedExtensions.filter(\n (entry) => !entry.managed,\n );\n const sortedCandidates = [...unmanagedCandidates].sort((left, right) => {\n const byName = left.name.localeCompare(right.name);\n if (byName !== 0) {\n return byName;\n }\n return left.directory.localeCompare(right.directory);\n });\n\n let nextState = state;\n const adoptedEntries: AdoptedUnmanagedExtension[] = [];\n for (const candidate of sortedCandidates) {\n const extensionDirectory = path.join(extensionsRoot, candidate.directory);\n const validated = await validateExtensionDirectory(extensionDirectory);\n const now = nowIso();\n const sourceRecord: ManagedExtensionSource = {\n kind: \"local\",\n input: candidate.name,\n location: extensionDirectory,\n };\n nextState = upsertManagedEntry(nextState, {\n name: validated.manifest.name,\n directory: candidate.directory,\n scope,\n manifest_version: validated.manifest.version,\n manifest_entry: validated.manifest.entry,\n capabilities: [...validated.manifest.capabilities],\n installed_at: now,\n updated_at: now,\n source: sourceRecord,\n });\n adoptedEntries.push({\n name: validated.manifest.name,\n directory: candidate.directory,\n version: validated.manifest.version,\n entry: validated.manifest.entry,\n source: sourceRecord,\n });\n }\n\n if (adoptedEntries.length > 0) {\n await writeManagedExtensionState(extensionsRoot, nextState);\n }\n\n return {\n state: nextState,\n adopted_entries: adoptedEntries,\n unmanaged_candidates: sortedCandidates,\n already_managed_count:\n installedExtensions.length - unmanagedCandidates.length,\n };\n};\n\n/** Resolve project and global extension roots for one lifecycle scope. */\nconst resolveExtensionRootsForScope = (\n scope: ExtensionScope,\n global: GlobalOptions,\n): {\n pm_root: string;\n scope: ExtensionScope;\n settings_root: string;\n selected_root: string;\n roots: { global: string; project: string };\n} => {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const roots = resolveExtensionRoots(pmRoot, process.cwd());\n const settingsRoot =\n scope === \"global\" ? resolveGlobalPmRoot(process.cwd()) : pmRoot;\n const selectedRoot = scope === \"global\" ? roots.global : roots.project;\n return {\n pm_root: pmRoot,\n scope,\n settings_root: settingsRoot,\n selected_root: selectedRoot,\n roots,\n };\n};\n\n/** Normalize the GitHub repository option accepted by extension lifecycle actions. */\nconst resolveGithubOption = (\n options: ExtensionCommandOptions,\n): string | undefined => {\n const values = [options.gh, options.github]\n .filter((value): value is string => typeof value === \"string\")\n .map((value) => value.trim())\n .filter(Boolean);\n const uniqueValues = [...new Set(values)];\n if (uniqueValues.length > 1) {\n throw new PmCliError(\n 'Options \"--gh\" and \"--github\" must match when both are provided.',\n EXIT_CODE.USAGE,\n );\n }\n return uniqueValues[0];\n};\n\n/** Return the canonical command-line flag for one extension lifecycle action. */\nconst getLifecycleActionFlag = (\n action: ExtensionCommandAction,\n): `--${string}` => {\n return LIFECYCLE_ACTION_FLAGS[action];\n};\n\n/** Throw structured recovery guidance for a missing lifecycle target. */\nconst throwMissingLifecycleTarget = (\n action: ExtensionCommandAction,\n options: ExtensionCommandOptions,\n): never => {\n const noun = options.vocabulary === \"package\" ? \"package\" : \"extension\";\n const targetName = action === \"install\" ? \"source\" : \"name\";\n const targetLabel = `${noun} ${targetName}`;\n const actionFlag = getLifecycleActionFlag(action);\n const commandTarget = `<${targetName}>`;\n const command = `pm ${noun} ${actionFlag} ${commandTarget}`;\n throw new PmCliError(\n `Action \"${action}\" requires ${targetLabel} input.`,\n EXIT_CODE.USAGE,\n {\n code: \"missing_lifecycle_target\",\n required: `Provide a ${targetName} target for ${action}.`,\n examples: [\n `pm ${noun} ${action} ${commandTarget}`,\n command,\n `pm ${noun} --help`,\n ],\n recovery: {\n attempted_command: `pm ${noun} ${action}`,\n suggested_retry: command,\n fallback_candidates: [\n {\n source: \"lifecycle_action\",\n command,\n reason: `flag-form ${action} command with required ${targetName} target`,\n },\n ],\n },\n },\n );\n};\n\n/** Return a required lifecycle target or throw structured usage guidance. */\nconst requireTarget = (\n target: string | undefined,\n action: ExtensionCommandAction,\n options: ExtensionCommandOptions = {},\n): string => {\n const normalized = target?.trim();\n if (normalized) return normalized;\n if (action === \"init\") {\n throw new PmCliError(\n 'Action \"init\" requires a scaffold target path (for example: pm package init ./my-package or pm extension init ./my-extension).',\n EXIT_CODE.USAGE,\n );\n }\n return throwMissingLifecycleTarget(action, options);\n};\n\n/** Collect doctor warnings for unsafe global output override registrations. */\nconst collectGlobalOutputOverrideDoctorWarnings = (\n activationResult: Awaited<ReturnType<typeof activateExtensions>>,\n): string[] => {\n const warnings: string[] = [];\n for (const entry of activationResult.services.overrides) {\n if (entry.service !== \"output_format\") {\n continue;\n }\n warnings.push(\n `extension_output_service_override_global:${entry.service}:${entry.layer}:${entry.name}`,\n );\n }\n for (const entry of activationResult.renderers.overrides) {\n warnings.push(\n `extension_output_renderer_override_global:${entry.format}:${entry.layer}:${entry.name}`,\n );\n }\n return [...new Set(warnings)].sort((left, right) =>\n left.localeCompare(right),\n );\n};\n\n/**\n * Doctor advisory: flag loaded extensions that contribute GLOBAL schema (custom\n * item types or fields) yet also declare narrow `activation.commands`.\n *\n * Custom item types and fields must be present for the built-in commands the\n * extension does not own and cannot enumerate (`pm create <type>`,\n * `pm list --type <type>`, `pm validate`). Declaring `activation.commands` gates\n * lazy activation to only the listed command paths, so the package never\n * activates for those built-ins and its custom type silently fails to register —\n * a quiet footgun (decision pm-halx). The `schema` scaffold deliberately omits\n * the field; this advisory catches hand-authored packages that do not. It is\n * doctor-only and non-blocking — `pm health` does not surface it — so the author\n * can either drop `activation.commands` or, when the schema is intentionally\n * command-scoped, knowingly ignore the hint.\n */\nconst collectSchemaNarrowActivationDoctorWarnings = (\n loadResult: Awaited<ReturnType<typeof loadExtensions>>,\n activationResult: Awaited<ReturnType<typeof activateExtensions>>,\n): string[] => {\n const schemaContributors = new Set(\n [\n ...activationResult.registrations.item_types.map((entry) => ({\n entry,\n count: entry.types.length,\n })),\n ...activationResult.registrations.item_fields.map((entry) => ({\n entry,\n count: entry.fields.length,\n })),\n ]\n .filter(({ count }) => count > 0)\n .map(\n ({ entry }) =>\n `${entry.layer}:${normalizeExtensionNameForMatch(entry.name)}`,\n ),\n );\n return loadResult.loaded\n .filter((extension) => (extension.activation?.commands ?? []).length > 0)\n .filter((extension) =>\n schemaContributors.has(\n `${extension.layer}:${normalizeExtensionNameForMatch(extension.name)}`,\n ),\n )\n .map(\n (extension) =>\n `extension_schema_narrow_activation:${extension.layer}:${extension.name}`,\n )\n .filter((warning, index, warnings) => warnings.indexOf(warning) === index)\n .sort((left, right) => left.localeCompare(right));\n};\n\n/**\n * Shared, per-invocation context threaded to each extension action handler: the\n * resolved action/scope/roots, the alias-normalized target, the accumulating\n * warnings sink, the caller options/globals, and the `withResult` builder that\n * stamps the canonical {@link ExtensionCommandResult} envelope.\n */\ninterface ExtensionActionContext {\n action: ExtensionCommandAction;\n normalizedTarget: string | undefined;\n scope: ExtensionScope;\n resolvedRoots: ReturnType<typeof resolveExtensionRootsForScope>;\n warnings: string[];\n options: ExtensionCommandOptions;\n global: GlobalOptions;\n withResult: (\n details: Record<string, unknown>,\n ok?: boolean,\n ) => ExtensionCommandResult;\n}\n\n/** Reject option/action combinations that are only meaningful for a specific lifecycle action — `--trace`/`--strict-exit`/`--fail-on-warn` require `--doctor`, `--watch` requires `--reload`, `--runtime-probe` requires `--manage`, `--fix-managed-state` requires `--manage`/`--doctor`, and `--capability`/`--declarative` require `--init`/`--scaffold`. Each guard pairs a \"flag is set\" predicate with the action(s) that permit it and throws a USAGE error on the first mismatch. */\nconst assertExtensionActionOptionScope = (\n action: ExtensionCommandAction,\n options: ExtensionCommandOptions,\n): void => {\n const guards: Array<{\n triggered: boolean;\n allowed: boolean;\n message: string;\n }> = [\n {\n triggered: options.strictExit === true || options.failOnWarn === true,\n allowed: action === \"doctor\",\n message: \"--strict-exit and --fail-on-warn are only valid with --doctor.\",\n },\n {\n triggered: options.trace === true,\n allowed: action === \"doctor\",\n message: \"--trace is only valid with --doctor.\",\n },\n {\n triggered: options.watch === true,\n allowed: action === \"reload\",\n message: \"--watch is only valid with --reload.\",\n },\n {\n triggered: options.runtimeProbe === true,\n allowed: action === \"manage\",\n message: \"--runtime-probe is only valid with --manage.\",\n },\n {\n triggered: options.fixManagedState === true,\n allowed: action === \"manage\" || action === \"doctor\",\n message: \"--fix-managed-state is only valid with --manage or --doctor.\",\n },\n {\n triggered: options.isolated === true || options.ignoreGlobal === true,\n allowed: action === \"doctor\",\n message: \"--isolated and --ignore-global are only valid with --doctor.\",\n },\n {\n triggered: options.capability !== undefined,\n allowed: action === \"init\",\n message: \"--capability is only valid with --init/--scaffold.\",\n },\n {\n triggered: options.declarative === true,\n allowed: action === \"init\",\n message: \"--declarative is only valid with --init/--scaffold.\",\n },\n ];\n const invalidGuard = guards.find(\n (guard) => guard.triggered && !guard.allowed,\n );\n if (invalidGuard) {\n throw new PmCliError(invalidGuard.message, EXIT_CODE.USAGE);\n }\n};\n\n/* c8 ignore start -- alias-normalization matrix is covered by resolveAction tests; this only rewrites positional aliases */\n/** Collapse a positional target that merely repeats the action keyword (`pm extension doctor`, `reload`, `catalog`, or `init`/`scaffold`) to `undefined` so the action handlers treat it as \"no target\" rather than an extension name; otherwise the original target is returned unchanged. */\nconst resolveNormalizedExtensionTarget = (\n target: string | undefined,\n action: ExtensionCommandAction,\n options: ExtensionCommandOptions,\n): string | undefined => {\n const normalizedInput = String(target ?? \"\")\n .trim()\n .toLowerCase();\n const explicitInitAction = [options.init, options.scaffold].includes(true);\n const aliases: Partial<Record<ExtensionCommandAction, string[]>> = {\n doctor: [\"doctor\"],\n reload: [\"reload\"],\n catalog: [\"catalog\"],\n init: explicitInitAction ? [] : [\"init\", \"scaffold\"],\n };\n return (aliases[action] ?? []).includes(normalizedInput) ? undefined : target;\n};\n/* c8 ignore stop */\n\n/** Resolve stable roots for lifecycle results, including field-projected catalogs. */\nconst resolveExtensionResultRoots = (\n ctx: Pick<\n ExtensionActionContext,\n \"action\" | \"scope\" | \"resolvedRoots\" | \"options\"\n >,\n): ExtensionCommandResult[\"roots\"] => {\n const projectedCatalog = [\n ctx.action === \"catalog\",\n typeof ctx.options.fields === \"string\",\n String(ctx.options.fields).trim().length > 0,\n ].every(Boolean);\n return projectedCatalog\n ? {\n project: \"project\",\n global: \"global\",\n selected: ctx.scope,\n settings_root: \"project\",\n }\n : {\n project: ctx.resolvedRoots.roots.project,\n global: ctx.resolvedRoots.roots.global,\n selected: ctx.resolvedRoots.selected_root,\n settings_root: ctx.resolvedRoots.settings_root,\n };\n};\n\n/** Build and mark one canonical lifecycle result envelope. */\nconst buildExtensionActionResult = (\n ctx: Omit<ExtensionActionContext, \"withResult\">,\n details: Record<string, unknown>,\n ok: boolean,\n): ExtensionCommandResult => {\n const result: ExtensionCommandResult = {\n ok,\n action: ctx.action,\n scope: ctx.scope,\n roots: resolveExtensionResultRoots(ctx),\n warnings: [...new Set(ctx.warnings)].sort((left, right) =>\n left.localeCompare(right),\n ),\n details,\n };\n if (ctx.action === \"doctor\") {\n Object.defineProperty(result, NATIVE_OUTPUT_MARKER, {\n value: true,\n enumerable: false,\n configurable: false,\n });\n }\n return result;\n};\n\n/**\n * Entry point for the `pm extension` / `pm package` command surface. Resolves the\n * requested lifecycle action and scope, rejects out-of-scope option usage,\n * normalizes positional aliases, then dispatches to the matching action handler —\n * each of which reads and writes managed-extension state, runtime-probes, and\n * returns the canonical {@link ExtensionCommandResult}. `--doctor` results are\n * flagged for native (non-JSON-wrapped) output.\n */\nexport const runExtension = async (\n target: string | undefined,\n options: ExtensionCommandOptions,\n global: GlobalOptions,\n): Promise<ExtensionCommandResult> => {\n const action = resolveAction(target, options);\n assertExtensionActionOptionScope(action, options);\n const normalizedTarget = resolveNormalizedExtensionTarget(\n target,\n action,\n options,\n );\n const scope = resolveScope(options);\n const resolvedRoots = resolveExtensionRootsForScope(scope, global);\n const warnings: string[] = [];\n const actionContext = {\n action,\n normalizedTarget,\n scope,\n resolvedRoots,\n warnings,\n options,\n global,\n };\n /** Build the canonical lifecycle result envelope for this invocation. */\n const withResult = (\n details: Record<string, unknown>,\n ok = true,\n ): ExtensionCommandResult =>\n buildExtensionActionResult(actionContext, details, ok);\n const ctx: ExtensionActionContext = {\n ...actionContext,\n withResult,\n };\n return await dispatchExtensionAction(ctx);\n};\n\n/** Build copy-pasteable setup and validation guidance for a fresh scaffold. */\nconst buildExtensionScaffoldNextSteps = (\n scaffold: Awaited<ReturnType<typeof scaffoldExtensionProject>>,\n options: ExtensionCommandOptions,\n): string[] => {\n const vocabulary = options.vocabulary ?? \"extension\";\n const shellTargetPath = scaffold.target_path.replace(/\\\\/g, \"/\");\n const quotedShellTargetPath = quoteCommandArg(shellTargetPath);\n const dependencySteps = {\n package: `Install dependencies: cd ${quotedShellTargetPath}, then run \"npm install\"`,\n extension: `Install type-check dependencies: cd ${quotedShellTargetPath}, then run \"npm install -D typescript @types/node @unbrained/pm-cli\"`,\n };\n const validationSteps = {\n package: `Validate the package: cd ${quotedShellTargetPath}, then run \"npm run typecheck\" and \"npm test\"`,\n extension: `Type-check the source (optional): cd ${quotedShellTargetPath}, then run \"npx tsc --noEmit\"`,\n };\n const declarativeGuidance: string[] = [];\n if ([vocabulary === \"package\", options.declarative === true].every(Boolean)) {\n declarativeGuidance.push(\n \"Ensure the target workspace can resolve @unbrained/pm-cli before installing this declarative package.\",\n );\n }\n return [\n dependencySteps[vocabulary],\n ...declarativeGuidance,\n `Install the scaffold: ${renderPmCommand(\n vocabulary === \"package\"\n ? [\"install\", \"--project\", shellTargetPath]\n : [\"extension\", \"--install\", \"--project\", shellTargetPath],\n )}`,\n `Smoke-test command path: pm ${scaffold.command_name}`,\n validationSteps[vocabulary],\n `Run diagnostics: ${vocabulary === \"package\" ? \"pm package doctor\" : \"pm extension --doctor\"} --project --detail summary`,\n ];\n};\n\n/** Scaffold a new extension project from normalized lifecycle options. */\nconst runExtensionInitAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { action, normalizedTarget, options, withResult } = ctx;\n const githubOption = resolveGithubOption(options);\n const disallowedSourceOptions = [githubOption, options.ref]\n .filter((value): value is string => typeof value === \"string\")\n .map((value) => value.trim())\n .filter(Boolean);\n if (disallowedSourceOptions.length > 0) {\n throw new PmCliError(\n 'Action \"init\" does not accept --gh/--github/--ref options.',\n EXIT_CODE.USAGE,\n );\n }\n const scaffoldTarget = requireTarget(normalizedTarget, action, options);\n const scaffold = await scaffoldExtensionProject(\n scaffoldTarget,\n options.vocabulary ?? \"extension\",\n options.capability,\n options.declarative === true,\n );\n return withResult({\n scaffolded:\n scaffold.created_directory ||\n scaffold.files.some((entry) => entry.status === \"created\"),\n extension: {\n name: scaffold.extension_name,\n command: scaffold.command_name,\n },\n capability: scaffold.capability,\n style: scaffold.style,\n target_path: scaffold.target_path,\n created_directory: scaffold.created_directory,\n files: scaffold.files,\n next_steps: buildExtensionScaffoldNextSteps(scaffold, options),\n });\n};\n\n/** Reload extension runtime state and report the new generation token. */\nconst runExtensionReloadAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const {\n normalizedTarget,\n resolvedRoots,\n warnings,\n options,\n global,\n withResult,\n } = ctx;\n if (normalizedTarget !== undefined) {\n throw new PmCliError(\n 'Action \"reload\" does not accept a target argument.',\n EXIT_CODE.USAGE,\n );\n }\n const settings = await readSettings(resolvedRoots.settings_root);\n const reloadToken = nextExtensionReloadToken();\n const reloaded = await loadExtensions({\n pmRoot: resolvedRoots.settings_root,\n settings,\n cwd: process.cwd(),\n noExtensions: global.noExtensions,\n reload_token: reloadToken,\n cache_bust: true,\n });\n warnings.push(...reloaded.warnings);\n const activation = await activateExtensions(reloaded);\n warnings.push(...activation.warnings);\n const details = {\n reload: {\n token: reloadToken,\n cache_bust: true,\n watch: options.watch === true,\n },\n loaded_count: reloaded.loaded.length,\n failed_count: reloaded.failed.length,\n activated_count: Math.max(\n 0,\n reloaded.loaded.length - activation.failed.length,\n ),\n activation_failed_count: activation.failed.length,\n loaded_extensions: reloaded.loaded.map((entry) => ({\n name: entry.name,\n layer: entry.layer,\n version: entry.version,\n })),\n failed_extensions: reloaded.failed.map((entry) => ({\n name: entry.name,\n layer: entry.layer,\n error: entry.error,\n })),\n activation_failures: activation.failed.map((entry) => ({\n name: entry.name,\n layer: entry.layer,\n error: entry.error,\n })),\n };\n if (options.watch === true) {\n warnings.push(\n \"extension_reload_watch_hint:watch_mode_requested_non_interactive_single_pass_only\",\n );\n }\n return withResult(details);\n};\n\n/** List bundled and installed extension catalog entries. */\nconst runExtensionCatalogAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { normalizedTarget, scope, options, global, withResult } = ctx;\n if (\n typeof normalizedTarget === \"string\" &&\n normalizedTarget.length > 0 &&\n normalizedTarget !== \"catalog\"\n ) {\n throw new PmCliError(\n 'Action \"catalog\" does not accept a package target.',\n EXIT_CODE.USAGE,\n );\n }\n return withResult(await buildBundledPackageCatalog(scope, global, options));\n};\n\n/* c8 ignore start -- source-shape branch combinations are exercised in install-source focused tests */\n/** Build managed provenance for a bundled first-party extension alias. */\nconst buildBundledInstallManagedSource = (\n alias: string,\n packageName: string | null,\n): ManagedExtensionSource => ({\n kind: \"builtin\",\n input: alias,\n location: alias,\n name: alias,\n ...(packageName === null ? {} : { package: packageName }),\n});\n\n/** Build managed provenance for a local extension source. */\nconst buildLocalInstallManagedSource = (\n source: Extract<\n ReturnType<typeof parseExtensionInstallSource>,\n { kind: \"local\" }\n >,\n): ManagedExtensionSource => ({\n kind: \"local\",\n input: source.input,\n location: source.absolute_path,\n});\n\n/** Build managed provenance for an npm extension source. */\nconst buildNpmInstallManagedSource = (\n source: Extract<\n ReturnType<typeof parseExtensionInstallSource>,\n { kind: \"npm\" }\n >,\n resolved: Awaited<ReturnType<typeof resolveInstallSource>>,\n): ManagedExtensionSource => ({\n kind: \"npm\",\n input: source.input,\n location: resolved.resolved_subpath ?? \".\",\n package: resolved.npm_package,\n version: resolved.npm_version,\n});\n\n/** Build managed provenance for a GitHub extension source. */\nconst buildGithubInstallManagedSource = (\n source: Extract<\n ReturnType<typeof parseExtensionInstallSource>,\n { kind: \"github\" }\n >,\n resolved: Awaited<ReturnType<typeof resolveInstallSource>>,\n): ManagedExtensionSource => ({\n kind: \"github\",\n input: source.input,\n location: resolved.resolved_subpath ?? source.subpath ?? \".\",\n repository: source.repository,\n owner: source.owner,\n repo: source.repo,\n ref: source.ref,\n subpath: resolved.resolved_subpath ?? source.subpath,\n commit: resolved.commit,\n});\n\n/** Build the persisted managed-source record for an install from its resolved shape: a bundled builtin alias, a local path, an npm package, or (the default) a GitHub repository, capturing the location/commit/subpath provenance the manage and upgrade flows later read back. */\nconst buildInstallManagedSource = (\n bundledAliasName: string | null,\n bundledPackageName: string | null,\n installSource: ReturnType<typeof parseExtensionInstallSource>,\n resolvedSource: Awaited<ReturnType<typeof resolveInstallSource>>,\n): ManagedExtensionSource => {\n if (bundledAliasName) {\n return buildBundledInstallManagedSource(\n bundledAliasName,\n bundledPackageName,\n );\n }\n if (installSource.kind === \"local\") {\n return buildLocalInstallManagedSource(installSource);\n }\n if (installSource.kind === \"npm\") {\n return buildNpmInstallManagedSource(installSource, resolvedSource);\n }\n return buildGithubInstallManagedSource(installSource, resolvedSource);\n};\n/* c8 ignore stop */\n\ninterface ExtensionInstallUnderLockInput {\n validated: Awaited<ReturnType<typeof validateExtensionDirectory>>;\n destinationDirectoryName: string;\n bundledAliasName: string | null;\n bundledPackageName: string | null;\n installSource: ReturnType<typeof parseExtensionInstallSource>;\n resolvedSource: Awaited<ReturnType<typeof resolveInstallSource>>;\n}\n\n/** Preserve original install time and only advance update time when source content changed. */\nconst resolveManagedInstallTimestamps = (\n existing: ManagedExtensionRecord | undefined,\n manifestVersion: string,\n source: ManagedExtensionSource,\n now: string,\n): { installed_at: string; updated_at: string } => {\n if (!existing) return { installed_at: now, updated_at: now };\n if (existing.manifest_version !== manifestVersion) {\n return { installed_at: existing.installed_at, updated_at: now };\n }\n if (!managedExtensionSourcesEquivalent(existing.source, source)) {\n return { installed_at: existing.installed_at, updated_at: now };\n }\n return {\n installed_at: existing.installed_at,\n updated_at: existing.updated_at,\n };\n};\n\n/** Copy and persist one validated extension before its runtime activation probe. */\nconst persistExtensionInstall = async (\n ctx: ExtensionActionContext,\n input: ExtensionInstallUnderLockInput,\n): Promise<{\n settings: PmSettings;\n managedState: ManagedExtensionState;\n sourceRecord: ManagedExtensionSource;\n destinationDirectory: string;\n destinationExists: boolean;\n installInPlace: boolean;\n activationChanged: boolean;\n}> => {\n const { scope, resolvedRoots, warnings } = ctx;\n const { validated, destinationDirectoryName } = input;\n const settings = await readSettings(resolvedRoots.settings_root);\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const destinationDirectory = path.join(\n resolvedRoots.selected_root,\n destinationDirectoryName,\n );\n const destinationExists = await pathExists(destinationDirectory);\n const installInPlace = await areDirectoriesEquivalent(\n validated.directory,\n destinationDirectory,\n );\n await fs.mkdir(resolvedRoots.selected_root, { recursive: true });\n const backupRoot = await fs.mkdtemp(\n path.join(resolvedRoots.selected_root, \".pm-extension-install-backup-\"),\n );\n const backupDirectory = path.join(backupRoot, \"destination\");\n try {\n const snapshot = await captureExtensionInstallSnapshot(\n resolvedRoots.selected_root,\n resolvedRoots.settings_root,\n destinationDirectory,\n destinationExists,\n backupDirectory,\n );\n const sourceRecord = buildInstallManagedSource(\n input.bundledAliasName,\n input.bundledPackageName,\n input.installSource,\n input.resolvedSource,\n );\n const existingManagedEntry = managedStateRead.state.entries.find(\n (entry) =>\n normalizeExtensionNameForMatch(entry.name) ===\n normalizeExtensionNameForMatch(validated.manifest.name),\n );\n const timestamps = resolveManagedInstallTimestamps(\n existingManagedEntry,\n validated.manifest.version,\n sourceRecord,\n nowIso(),\n );\n const managedState = upsertManagedEntry(managedStateRead.state, {\n name: validated.manifest.name,\n directory: destinationDirectoryName,\n scope,\n manifest_version: validated.manifest.version,\n manifest_entry: validated.manifest.entry,\n capabilities: [...validated.manifest.capabilities],\n ...timestamps,\n source: sourceRecord,\n });\n const activationChanged = ensureActivated(\n settings,\n validated.manifest.name,\n );\n try {\n if (!installInPlace) {\n await copyExtensionDirectoryForInstall(\n validated.directory,\n destinationDirectory,\n );\n }\n await ensureExtensionModuleTypeMarker(destinationDirectory);\n await writeManagedExtensionState(\n resolvedRoots.selected_root,\n managedState,\n );\n if (activationChanged) {\n await writeSettings(\n resolvedRoots.settings_root,\n settings,\n \"settings:write\",\n );\n }\n } catch (error: unknown) {\n try {\n await restoreExtensionInstallSnapshot(snapshot);\n } catch (rollbackError: unknown) {\n throw new AggregateError(\n [error, rollbackError],\n `Extension install failed: ${String(error)}; rollback failed: ${String(rollbackError)}`,\n { cause: rollbackError },\n );\n }\n throw error;\n }\n return {\n settings,\n managedState,\n sourceRecord,\n destinationDirectory,\n destinationExists,\n installInPlace,\n activationChanged,\n };\n } finally {\n await fs\n .rm(backupRoot, { recursive: true, force: true })\n .catch(() => undefined);\n }\n};\n\n/** Scaffold project folders contributed by item types from the installed extension. */\nconst scaffoldInstalledExtensionItemTypes = async (\n ctx: ExtensionActionContext,\n extensionName: string,\n registrations: Awaited<\n ReturnType<typeof activateExtensions>\n >[\"registrations\"][\"item_types\"],\n): Promise<Array<{ name: string; folder?: string }>> => {\n const definitions = registrations\n .filter(\n (entry) =>\n normalizeExtensionNameForMatch(entry.name) ===\n normalizeExtensionNameForMatch(extensionName),\n )\n .flatMap((entry) =>\n entry.types.map((type) => ({ name: type.name, folder: type.folder })),\n );\n if (ctx.scope === \"project\" && definitions.length > 0) {\n await ensureTypeFolderScaffold(\n ctx.resolvedRoots.pm_root,\n definitions,\n ctx.warnings,\n \"install:type-folder\",\n );\n }\n return definitions;\n};\n\n/** Resolve post-install activation state, warnings, and health verification. */\nconst buildInstalledExtensionActivation = (\n ctx: ExtensionActionContext,\n extensionName: string,\n runtimeProbe: Awaited<ReturnType<typeof probeRuntimeCommandPathsForInstall>>,\n commandSummary: { command_paths: string[]; action_paths: string[] },\n installedItemTypes: Array<{ name: string; folder?: string }>,\n): {\n activated: boolean;\n status: ExtensionActivationStatus;\n failure: ActivationFailureDiagnostic | undefined;\n verification: Record<string, unknown>;\n} => {\n const failure = findActivationFailureByName(\n extensionName,\n runtimeProbe.activation_failures,\n ctx.scope,\n );\n const status = resolveInstallRuntimeActivationStatus(\n extensionName,\n ctx.scope,\n runtimeProbe.installed,\n failure,\n );\n const activated = [!runtimeProbe.extensions_disabled, status === \"ok\"].every(\n Boolean,\n );\n if (!activated) {\n ctx.warnings.push(\n `extension_install_activation_failed:${ctx.scope}:${extensionName}:${status}`,\n );\n }\n const healthByActivation = {\n true: { status: \"ok\", blocking_failure_count: 0 },\n false: { status: \"degraded\", blocking_failure_count: 1 },\n };\n return {\n activated,\n status,\n failure,\n verification: {\n status: healthByActivation[String(activated) as \"true\" | \"false\"].status,\n target_pm_root: ctx.resolvedRoots.pm_root,\n activation_status: status,\n activated,\n registered_commands: commandSummary.command_paths,\n registered_actions: commandSummary.action_paths,\n registered_item_types: installedItemTypes,\n health: healthByActivation[String(activated) as \"true\" | \"false\"],\n },\n };\n};\n\n/** Run the install body while holding the scope-wide install lock: read settings and managed state, copy the validated extension into the scope root unless it is already installed in place, upsert the managed entry and activation state, scaffold any contributed item-type folders, runtime-probe the freshly installed command paths, and return the install result envelope. */\nconst performExtensionInstallUnderLock = async (\n ctx: ExtensionActionContext,\n input: ExtensionInstallUnderLockInput,\n): Promise<ExtensionCommandResult> => {\n const { scope, resolvedRoots, warnings, global, withResult } = ctx;\n const { validated, destinationDirectoryName } = input;\n const persisted = await persistExtensionInstall(ctx, input);\n const refreshedInstalled = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n persisted.settings,\n persisted.managedState,\n );\n warnings.push(...refreshedInstalled.warnings);\n const runtimeProbe = await probeRuntimeCommandPathsForInstall(\n resolvedRoots.pm_root,\n persisted.settings,\n refreshedInstalled.extensions,\n global,\n );\n warnings.push(...runtimeProbe.warnings);\n // Scaffold the folders for any item types the installed package contributes\n // so the tracker is immediately healthy — matching `pm schema add-type` and\n // `pm profile apply`, the other paths that register a type. Without this a\n // freshly-installed schema package leaves a `missing_directory` health\n // warning until the first item of its type is created. Scoped to project\n // installs, where `pm_root` is unambiguously the tracker the type folders\n // belong to; a global install is not tied to one tracker, so its folders are\n // created lazily on first use in each project.\n const installedItemTypeDefinitions =\n await scaffoldInstalledExtensionItemTypes(\n ctx,\n validated.manifest.name,\n runtimeProbe.item_type_registrations,\n );\n const commandSummary = summarizeRuntimeCommandPathsForExtension(\n validated.manifest.name,\n runtimeProbe.installed,\n );\n const activation = buildInstalledExtensionActivation(\n ctx,\n validated.manifest.name,\n runtimeProbe,\n commandSummary,\n installedItemTypeDefinitions,\n );\n\n return withResult(\n {\n extension: {\n name: validated.manifest.name,\n version: validated.manifest.version,\n entry: validated.manifest.entry,\n capabilities: validated.manifest.capabilities,\n directory: destinationDirectoryName,\n },\n source: persisted.sourceRecord,\n destination_path: persisted.destinationDirectory,\n overwritten: [\n persisted.destinationExists,\n !persisted.installInPlace,\n ].every(Boolean),\n installed_in_place: persisted.installInPlace,\n activated: activation.activated,\n settings_changed: persisted.activationChanged,\n runtime_activation_status: activation.status,\n command_paths: commandSummary.command_paths,\n action_paths: commandSummary.action_paths,\n command_discovery: buildInstallCommandDiscovery(\n validated.manifest.name,\n persisted.sourceRecord,\n commandSummary,\n activation.failure,\n ),\n verification: activation.verification,\n activation_diagnostics: {\n failed_count: runtimeProbe.activation_failures.length,\n failed: runtimeProbe.activation_failures,\n installed_extension_failed: activation.failure ?? null,\n },\n },\n activation.activated,\n );\n};\n\n/** Install every bundled first-party package alias and aggregate verification. */\nconst runBundledExtensionInstallAll = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { options, global, warnings, withResult } = ctx;\n if (typeof options.ref === \"string\" && options.ref.trim().length > 0) {\n throw new PmCliError(\n 'Action \"install all\" does not accept --ref.',\n EXIT_CODE.USAGE,\n );\n }\n const packages: Array<{ alias: string; result: ExtensionCommandResult }> = [];\n for (const alias of await listBundledPackageAliases()) {\n packages.push({\n alias,\n result: await runExtension(alias, { ...options, install: true }, global),\n });\n }\n warnings.push(...packages.flatMap((entry) => entry.result.warnings));\n const installedAll = packages.every((entry) => entry.result.ok);\n return withResult(\n {\n installed_all: installedAll,\n installed_count: packages.filter((entry) => entry.result.ok).length,\n failed_count: packages.filter((entry) => !entry.result.ok).length,\n packages: packages.map((entry) => {\n const details = entry.result.details;\n return {\n alias: entry.alias,\n ok: entry.result.ok,\n extension: details.extension,\n source: details.source,\n destination_path: details.destination_path,\n activated: details.activated,\n settings_changed: details.settings_changed,\n command_paths: details.command_paths,\n action_paths: details.action_paths,\n command_discovery: details.command_discovery,\n verification: details.verification,\n runtime_activation_status: details.runtime_activation_status,\n activation_diagnostics: details.activation_diagnostics,\n warnings: entry.result.warnings,\n };\n }),\n },\n installedAll,\n );\n};\n\n/** Resolve bundled-alias provenance before installing one extension source. */\nconst resolveSingleExtensionInstallSource = async (\n explicitSourceInput: string,\n githubOption: string | undefined,\n ref: string | undefined,\n): Promise<{\n bundledAliasName: string | null;\n bundledPackageName: string | null;\n installSource: ReturnType<typeof parseExtensionInstallSource>;\n}> => {\n /* c8 ignore start -- github/local alias-source split is exercised in install-action integration tests */\n const bundledAliasSource =\n typeof githubOption === \"string\"\n ? null\n : await resolveBundledExtensionAliasSource(explicitSourceInput);\n /* c8 ignore stop */\n const bundledAliasName =\n bundledAliasSource === null\n ? null\n : explicitSourceInput.trim().toLowerCase();\n const bundledPackageName =\n bundledAliasName === null\n ? null\n : await resolveBundledPackageNpmName(bundledAliasName);\n const sourceInput = bundledAliasSource ?? explicitSourceInput;\n /* c8 ignore start -- install-source branch combinations are covered in install-sources focused tests */\n const installSource = parseExtensionInstallSource(sourceInput, {\n forceGithub: typeof githubOption === \"string\",\n ref,\n });\n /* c8 ignore stop */\n return { bundledAliasName, bundledPackageName, installSource };\n};\n\n/** Install one resolved source and clean transient source material afterward. */\nconst runSingleExtensionInstall = async (\n ctx: ExtensionActionContext,\n explicitSourceInput: string,\n githubOption: string | undefined,\n): Promise<ExtensionCommandResult> => {\n const { resolvedRoots } = ctx;\n const { bundledAliasName, bundledPackageName, installSource } =\n await resolveSingleExtensionInstallSource(\n explicitSourceInput,\n githubOption,\n ctx.options.ref,\n );\n const resolvedSource = await resolveInstallSource(installSource);\n try {\n const validated = await validateExtensionDirectory(\n resolvedSource.directory,\n );\n const destinationDirectoryName = normalizeManagedDirectoryName(\n validated.manifest.name,\n );\n return await withExtensionInstallLock(\n resolvedRoots.settings_root,\n destinationDirectoryName,\n () =>\n performExtensionInstallUnderLock(ctx, {\n validated,\n destinationDirectoryName,\n bundledAliasName,\n bundledPackageName,\n installSource,\n resolvedSource,\n }),\n );\n } finally {\n /* c8 ignore start -- cleanup hooks are only present for transient install sources */\n if (resolvedSource.cleanup) {\n await resolvedSource.cleanup();\n }\n /* c8 ignore stop */\n }\n};\n\n/** Install one extension source under the owner-bound lifecycle lock. */\nconst runExtensionInstallAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const githubOption = resolveGithubOption(ctx.options);\n const explicitSourceInput =\n githubOption ??\n requireTarget(ctx.normalizedTarget, ctx.action, ctx.options);\n if (\n [\n githubOption === undefined,\n isBundledPackageInstallAllTarget(explicitSourceInput),\n ].every(Boolean)\n ) {\n return runBundledExtensionInstallAll(ctx);\n }\n return runSingleExtensionInstall(ctx, explicitSourceInput, githubOption);\n};\n\n/** Adopt every eligible unmanaged extension in the selected scope. */\nconst runExtensionAdoptAllAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const {\n normalizedTarget,\n scope,\n resolvedRoots,\n warnings,\n options,\n withResult,\n } = ctx;\n if (normalizedTarget !== undefined) {\n throw new PmCliError(\n 'Action \"adopt-all\" does not accept a target argument.',\n EXIT_CODE.USAGE,\n );\n }\n const githubOption = resolveGithubOption(options);\n if (\n githubOption !== undefined ||\n (typeof options.ref === \"string\" && options.ref.trim().length > 0)\n ) {\n throw new PmCliError(\n 'Action \"adopt-all\" does not accept --gh/--github/--ref options.',\n EXIT_CODE.USAGE,\n );\n }\n const settings = await readSettings(resolvedRoots.settings_root);\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const installed = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedStateRead.state,\n );\n warnings.push(...installed.warnings);\n const adoption = await adoptUnmanagedExtensions(\n resolvedRoots.selected_root,\n scope,\n installed.extensions,\n managedStateRead.state,\n );\n const refreshedInstalled = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n adoption.state,\n );\n warnings.push(...refreshedInstalled.warnings);\n const triage = buildExtensionTriageSummary(\n scope,\n warnings,\n refreshedInstalled.extensions,\n options,\n );\n warnings.push(...triage.warnings);\n /* c8 ignore start -- refresh-entry optional metadata is display-only and exercised indirectly */\n const refreshedByIdentity = new Map(\n refreshedInstalled.extensions.map((entry) => [\n `${normalizeExtensionNameForMatch(entry.name)}:${normalizeExtensionNameForMatch(entry.directory)}`,\n entry,\n ]),\n );\n const refreshedByDirectory = new Map(\n refreshedInstalled.extensions.map((entry) => [\n normalizeExtensionNameForMatch(entry.directory),\n entry,\n ]),\n );\n const adoptedDetails = adoption.adopted_entries.map((entry) => {\n const normalizedDirectory = normalizeExtensionNameForMatch(entry.directory);\n const refreshedEntry =\n refreshedByIdentity.get(\n `${normalizeExtensionNameForMatch(entry.name)}:${normalizedDirectory}`,\n ) ?? refreshedByDirectory.get(normalizedDirectory);\n return { ...entry, ...projectExtensionUpdateCheck(refreshedEntry) };\n });\n /* c8 ignore stop */\n /* c8 ignore start -- adopt-all summary booleans are deterministic mirrors of adoptedDetails length */\n return withResult({\n adopted_all: adoptedDetails.length > 0,\n adopted_count: adoptedDetails.length,\n already_managed_count: adoption.already_managed_count,\n extensions: adoptedDetails,\n triage,\n warning_codes: triage.warning_codes,\n update_health_partial: triage.update_health_partial,\n update_health_coverage: triage.update_health_coverage,\n });\n /* c8 ignore stop */\n};\n\n/** Project nullable update-check metadata for adopt result payloads. */\nconst projectExtensionUpdateCheck = (\n entry: ManagedExtensionSummary | undefined,\n): {\n update_check_status: string | null;\n update_check_reason: string | null;\n} => {\n return {\n update_check_status: entry?.update_check_status ?? null,\n update_check_reason: entry?.update_check_reason ?? null,\n };\n};\n\n/** Resolve local or GitHub provenance for an adopted extension. */\nconst buildAdoptedExtensionSource = (\n githubOption: string | undefined,\n extensionTarget: string,\n extensionDirectory: string,\n ref: string | undefined,\n): ManagedExtensionSource => {\n if (githubOption === undefined) {\n return {\n kind: \"local\",\n input: extensionTarget,\n location: extensionDirectory,\n };\n }\n const parsed = parseExtensionInstallSource(githubOption, {\n forceGithub: true,\n ref,\n });\n /* c8 ignore start -- forceGithub guarantees a github-kind install source */\n if (parsed.kind !== \"github\") {\n throw new PmCliError(\n `Invalid GitHub shorthand \"${githubOption}\".`,\n EXIT_CODE.USAGE,\n );\n }\n /* c8 ignore stop */\n return {\n kind: \"github\",\n input: parsed.input,\n location: parsed.subpath ?? \".\",\n repository: parsed.repository,\n owner: parsed.owner,\n repo: parsed.repo,\n ref: parsed.ref,\n subpath: parsed.subpath,\n };\n};\n\n/** Adopt one unmanaged extension into managed lifecycle state. */\nconst runExtensionAdoptAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const {\n action,\n normalizedTarget,\n scope,\n resolvedRoots,\n warnings,\n options,\n withResult,\n } = ctx;\n const extensionTarget = requireTarget(normalizedTarget, action, options);\n const githubOption = resolveGithubOption(options);\n const settings = await readSettings(resolvedRoots.settings_root);\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const installed = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedStateRead.state,\n );\n warnings.push(...installed.warnings);\n const candidate = await resolveInstalledExtensionCandidate(\n installed.extensions,\n extensionTarget,\n );\n if (!candidate) {\n throw new PmCliError(\n `Installed extension \"${extensionTarget}\" was not found in ${scope} scope.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n if (candidate.managed) {\n return withResult({\n adopted: false,\n already_managed: true,\n extension: {\n name: candidate.name,\n directory: candidate.directory,\n },\n });\n }\n\n const extensionDirectory = path.join(\n resolvedRoots.selected_root,\n candidate.directory,\n );\n const validated = await validateExtensionDirectory(extensionDirectory);\n const now = nowIso();\n const sourceRecord = buildAdoptedExtensionSource(\n githubOption,\n extensionTarget,\n extensionDirectory,\n options.ref,\n );\n const managedState = upsertManagedEntry(managedStateRead.state, {\n name: validated.manifest.name,\n directory: candidate.directory,\n scope,\n manifest_version: validated.manifest.version,\n manifest_entry: validated.manifest.entry,\n capabilities: [...validated.manifest.capabilities],\n installed_at: now,\n updated_at: now,\n source: sourceRecord,\n });\n await writeManagedExtensionState(resolvedRoots.selected_root, managedState);\n const refreshedInstalled = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedState,\n );\n warnings.push(...refreshedInstalled.warnings);\n /* c8 ignore start -- fallback only matters if a manifest renames between adopt and refresh */\n const refreshedEntry =\n refreshedInstalled.extensions.find(\n (entry) =>\n normalizeExtensionNameForMatch(entry.name) ===\n normalizeExtensionNameForMatch(validated.manifest.name),\n ) ??\n refreshedInstalled.extensions.find(\n (entry) =>\n normalizeExtensionNameForMatch(entry.directory) ===\n normalizeExtensionNameForMatch(candidate.directory),\n );\n /* c8 ignore stop */\n\n /* c8 ignore start -- adopt result mirrors refreshedEntry optionals for display only */\n return withResult({\n adopted: true,\n extension: {\n name: validated.manifest.name,\n directory: candidate.directory,\n version: validated.manifest.version,\n entry: validated.manifest.entry,\n },\n source: sourceRecord,\n ...projectExtensionUpdateCheck(refreshedEntry),\n });\n /* c8 ignore stop */\n};\n\n/** Resolve a required installed extension or throw structured not-found guidance. */\nconst resolveRequiredInstalledExtension = async (\n ctx: ExtensionActionContext,\n) => {\n const { action, normalizedTarget, scope, resolvedRoots, warnings, options } =\n ctx;\n const extensionTarget = requireTarget(normalizedTarget, action, options);\n const settings = await readSettings(resolvedRoots.settings_root);\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const installed = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedStateRead.state,\n );\n warnings.push(...installed.warnings);\n const candidate = await resolveInstalledExtensionCandidate(\n installed.extensions,\n extensionTarget,\n );\n if (!candidate) {\n throw new PmCliError(\n `Installed extension \"${extensionTarget}\" was not found in ${scope} scope.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n return { settings, managedStateRead, candidate };\n};\n\n/** Uninstall one managed extension and update lifecycle state. */\nconst runExtensionUninstallAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { resolvedRoots, withResult } = ctx;\n const { settings, managedStateRead, candidate } =\n await resolveRequiredInstalledExtension(ctx);\n const destinationDirectory = path.join(\n resolvedRoots.selected_root,\n candidate.directory,\n );\n await fs.rm(destinationDirectory, { recursive: true, force: true });\n\n const updatedState: ManagedExtensionState = {\n ...managedStateRead.state,\n updated_at: nowIso(),\n /* c8 ignore start -- uninstall filter keeps both name+directory guards for legacy managed-state migrations */\n entries: managedStateRead.state.entries.filter(\n (entry) =>\n normalizeExtensionNameForMatch(entry.name) !==\n normalizeExtensionNameForMatch(candidate.name) &&\n normalizeExtensionNameForMatch(entry.directory) !==\n normalizeExtensionNameForMatch(candidate.directory),\n ),\n /* c8 ignore stop */\n };\n await writeManagedExtensionState(resolvedRoots.selected_root, updatedState);\n\n const stateChanged = clearExtensionState(settings, candidate.name);\n if (stateChanged) {\n await writeSettings(\n resolvedRoots.settings_root,\n settings,\n \"settings:write\",\n );\n }\n\n return withResult({\n removed: true,\n extension: {\n name: candidate.name,\n directory: candidate.directory,\n },\n destination_path: destinationDirectory,\n settings_changed: stateChanged,\n });\n};\n\n/** Activate or deactivate one installed extension and persist the resulting state. */\nconst runExtensionActivateDeactivateAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { action, resolvedRoots, withResult } = ctx;\n const { settings, candidate } = await resolveRequiredInstalledExtension(ctx);\n\n const settingsChanged =\n action === \"activate\"\n ? ensureActivated(settings, candidate.name)\n : ensureDeactivated(settings, candidate.name);\n if (settingsChanged) {\n await writeSettings(\n resolvedRoots.settings_root,\n settings,\n \"settings:write\",\n );\n }\n\n return withResult({\n extension: {\n name: candidate.name,\n directory: candidate.directory,\n },\n active: action === \"activate\",\n settings_changed: settingsChanged,\n settings: {\n enabled: [...settings.extensions.enabled],\n disabled: [...settings.extensions.disabled],\n },\n });\n};\n\n/** Assemble the doctor remediation hints: the triage remediations, vocabulary-aware advice to inspect load failures and activation failures, and a note when a managed-state fix adopted entries. Blank entries are trimmed and the list is de-duplicated. */\nconst buildDoctorRemediation = (\n baseRemediation: string[],\n loadFailureCount: number,\n activationFailureCount: number,\n vocabulary: ExtensionCommandOptions[\"vocabulary\"],\n managedStateFix: AdoptUnmanagedExtensionsResult | null,\n isolationHint: string | null,\n): string[] => {\n const noun = vocabulary === \"package\" ? \"package\" : \"extension\";\n const doctorAction = { package: \"doctor\", extension: \"--doctor\" }[noun];\n const adoptedCount = managedStateFix?.adopted_entries.length ?? 0;\n const conditionalEntries: Array<[boolean, string]> = [\n [isolationHint !== null, isolationHint ?? \"\"],\n [\n loadFailureCount > 0,\n `Run pm ${noun} explore --project and pm ${noun} explore --global to inspect load failures.`,\n ],\n [\n activationFailureCount > 0,\n `Review activation failures in pm ${noun} ${doctorAction} --detail deep output.`,\n ],\n [\n adoptedCount > 0,\n `Managed-state fix adopted ${adoptedCount} extension(s).`,\n ],\n ];\n return [\n ...new Set(\n [\n ...baseRemediation,\n ...conditionalEntries\n .filter(([include]) => include)\n .map(([, entry]) => entry),\n ]\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0),\n ),\n ];\n};\n\n/** Return whether doctor details contain any global-layer diagnostics. */\nconst hasGlobalLayerDiagnostics = (\n loadResult: Awaited<ReturnType<typeof loadExtensions>>,\n): boolean => {\n return (\n loadResult.loaded.some((entry) => entry.layer === \"global\") ||\n loadResult.failed.some((entry) => entry.layer === \"global\") ||\n loadResult.warnings.some((warning) => warning.includes(\":global:\"))\n );\n};\n\n/** Build the project-isolation remediation hint for global extension conflicts. */\nconst buildDoctorIsolationHint = (\n scope: ExtensionScope,\n isolated: boolean,\n vocabulary: ExtensionCommandOptions[\"vocabulary\"],\n loadResult: Awaited<ReturnType<typeof loadExtensions>>,\n): string | null => {\n if (\n scope !== \"project\" ||\n isolated ||\n !hasGlobalLayerDiagnostics(loadResult)\n ) {\n return null;\n }\n const noun = vocabulary === \"package\" ? \"package\" : \"extension\";\n return (\n `Global ${noun} registrations are included in project diagnostics. ` +\n `For hermetic ${noun} smoke tests, rerun pm ${noun} doctor --project --isolated --detail deep --trace, ` +\n \"or set PM_GLOBAL_PATH to a temporary directory for the whole test process.\"\n );\n};\n\ninterface DoctorIsolationMetadata {\n isolated: boolean;\n global_extensions_included: boolean;\n global_diagnostics_present: boolean;\n rerun_command: string | null;\n pm_global_path_recipe: string | null;\n}\n\n/** Validate doctor-only arguments and return normalized execution switches. */\nconst resolveDoctorInvocationOptions = (\n target: string | undefined,\n scope: ExtensionScope,\n options: ExtensionCommandOptions,\n): {\n isolated: boolean;\n detailMode: ReturnType<typeof parseDoctorDetailMode>;\n includeTrace: boolean;\n} => {\n if (String(target ?? \"\").trim().length > 0) {\n throw new PmCliError(\n 'Action \"doctor\" does not accept a target argument.',\n EXIT_CODE.USAGE,\n );\n }\n const isolated = [options.isolated, options.ignoreGlobal].includes(true);\n if ([isolated, scope === \"global\"].every(Boolean)) {\n throw new PmCliError(\n \"--isolated and --ignore-global are only valid with project-scope doctor diagnostics.\",\n EXIT_CODE.USAGE,\n );\n }\n const detailMode = parseDoctorDetailMode(options.detail);\n const includeTrace = options.trace === true;\n if ([includeTrace, detailMode !== \"deep\"].every(Boolean)) {\n throw new PmCliError(\n \"--trace requires --detail deep with --doctor.\",\n EXIT_CODE.USAGE,\n );\n }\n return { isolated, detailMode, includeTrace };\n};\n\n/** Optionally adopt unmanaged entries requested by doctor and return effective state. */\nconst applyDoctorManagedStateFix = async (\n ctx: ExtensionActionContext,\n installed: ManagedExtensionSummary[],\n state: ManagedExtensionState,\n): Promise<{\n state: ManagedExtensionState;\n fix: AdoptUnmanagedExtensionsResult | null;\n}> => {\n if (ctx.options.fixManagedState !== true) return { state, fix: null };\n const fix = await adoptUnmanagedExtensions(\n ctx.resolvedRoots.selected_root,\n ctx.scope,\n installed,\n state,\n );\n return { state: fix.state, fix };\n};\n\n/** Build the doctor isolation block shared by summary and details output so the over-the-wire payload stays identical for extension and package vocabulary. */\nconst buildDoctorIsolationMetadata = (\n scope: ExtensionScope,\n isolated: boolean,\n vocabulary: ExtensionCommandOptions[\"vocabulary\"],\n loadResult: Awaited<ReturnType<typeof loadExtensions>>,\n): DoctorIsolationMetadata => {\n const noun = vocabulary === \"package\" ? \"package\" : \"extension\";\n if (scope !== \"project\") {\n return {\n isolated,\n global_extensions_included: false,\n global_diagnostics_present: hasGlobalLayerDiagnostics(loadResult),\n rerun_command: null,\n pm_global_path_recipe: null,\n };\n }\n const isolatedCommand = `pm ${noun} doctor --project --isolated --detail deep --trace`;\n return {\n isolated,\n global_extensions_included: !isolated,\n global_diagnostics_present: hasGlobalLayerDiagnostics(loadResult),\n rerun_command: isolated ? null : isolatedCommand,\n pm_global_path_recipe: `PM_GLOBAL_PATH=$(mktemp -d) pm ${noun} doctor --project --detail deep --trace`,\n };\n};\n\n/** Run extension integrity, activation, policy, and isolation diagnostics. */\nconst runExtensionDoctorAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const {\n normalizedTarget,\n scope,\n resolvedRoots,\n warnings,\n options,\n global,\n withResult,\n } = ctx;\n const { isolated, detailMode, includeTrace } = resolveDoctorInvocationOptions(\n normalizedTarget,\n scope,\n options,\n );\n const settings = await readSettings(resolvedRoots.settings_root);\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const installed = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedStateRead.state,\n );\n warnings.push(...installed.warnings);\n const { state: managedState, fix: managedStateFix } =\n await applyDoctorManagedStateFix(\n ctx,\n installed.extensions,\n managedStateRead.state,\n );\n const refreshedInstalled = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedState,\n );\n warnings.push(...refreshedInstalled.warnings);\n\n const loadResult = await loadExtensions({\n pmRoot: resolvedRoots.pm_root,\n settings,\n cwd: process.cwd(),\n noExtensions: global.noExtensions === true,\n ignoreGlobalExtensions: isolated,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n warnings.push(...loadResult.warnings);\n warnings.push(...classifyDoctorLoadFailureWarnings(loadResult.failed));\n warnings.push(...activationResult.warnings);\n warnings.push(\n ...classifyDoctorActivationFailureWarnings(activationResult.failed),\n );\n warnings.push(\n ...classifyUnusedCapabilityWarnings(loadResult, activationResult),\n );\n warnings.push(...collectGlobalOutputOverrideDoctorWarnings(activationResult));\n warnings.push(\n ...collectSchemaNarrowActivationDoctorWarnings(\n loadResult,\n activationResult,\n ),\n );\n const runtimeInstalledExtensions = applyDoctorRuntimeActivationState(\n refreshedInstalled.extensions,\n loadResult,\n activationResult,\n );\n const doctorConsistency = buildDoctorConsistencySummary(\n scope,\n runtimeInstalledExtensions,\n loadResult.loaded.map((entry) => ({\n layer: entry.layer,\n name: entry.name,\n })),\n loadResult.failed.map((entry) => ({ name: entry.name })),\n loadResult.disabled_by_flag,\n );\n warnings.push(...doctorConsistency.warnings);\n const updateCheckWarnings = runtimeInstalledExtensions\n .filter((entry) => entry.update_check_status === \"failed\")\n .map((entry) => `extension_update_check_failed:${entry.name}`);\n warnings.push(...updateCheckWarnings);\n\n const triage = buildExtensionTriageSummary(\n scope,\n warnings,\n runtimeInstalledExtensions,\n options,\n );\n warnings.push(...triage.warnings);\n const normalizedWarnings = [...triage.warnings];\n const policySummary = {\n mode: loadResult.policy.mode,\n trust_mode: loadResult.policy.trust_mode,\n require_provenance: loadResult.policy.require_provenance,\n default_sandbox_profile: loadResult.policy.default_sandbox_profile,\n // Honest trust model (ADR pm-6ef3): keep this caveat to one concise line.\n sandbox_enforcement:\n \"advisory: sandbox_profile/permissions are declaration-based load gates, not runtime isolation (ADR pm-6ef3)\",\n trusted_extensions_count: loadResult.policy.trusted_extensions.length,\n allowed_extensions_count: loadResult.policy.allowed_extensions.length,\n blocked_extensions_count: loadResult.policy.blocked_extensions.length,\n allowed_capabilities_count: loadResult.policy.allowed_capabilities.length,\n blocked_capabilities_count: loadResult.policy.blocked_capabilities.length,\n allowed_surfaces_count: loadResult.policy.allowed_surfaces.length,\n blocked_surfaces_count: loadResult.policy.blocked_surfaces.length,\n allowed_commands_count: loadResult.policy.allowed_commands.length,\n blocked_commands_count: loadResult.policy.blocked_commands.length,\n allowed_actions_count: loadResult.policy.allowed_actions.length,\n blocked_actions_count: loadResult.policy.blocked_actions.length,\n allowed_services_count: loadResult.policy.allowed_services.length,\n blocked_services_count: loadResult.policy.blocked_services.length,\n extension_override_count: loadResult.policy.extension_overrides.length,\n };\n const capabilityGuidance =\n collectUnknownCapabilityGuidance(normalizedWarnings);\n const capabilityContract = buildCapabilityContractMetadata();\n const warningCodes = triage.warning_codes;\n const isolationHint = buildDoctorIsolationHint(\n scope,\n isolated,\n options.vocabulary,\n loadResult,\n );\n const remediation = buildDoctorRemediation(\n triage.remediation,\n loadResult.failed.length,\n activationResult.failed.length,\n options.vocabulary,\n managedStateFix,\n isolationHint,\n );\n const isolation = buildDoctorIsolationMetadata(\n scope,\n isolated,\n options.vocabulary,\n loadResult,\n );\n\n const summary = {\n status: triage.status,\n scope,\n warning_count: triage.warning_count,\n warning_codes: warningCodes,\n total_extensions: runtimeInstalledExtensions.length,\n managed_total: runtimeInstalledExtensions.filter((entry) => entry.managed)\n .length,\n enabled_total: runtimeInstalledExtensions.filter((entry) => entry.enabled)\n .length,\n active_total: runtimeInstalledExtensions.filter((entry) => entry.active)\n .length,\n unmanaged_loaded_extension_count: triage.unmanaged_loaded_extension_count,\n unmanaged_action_required_extension_count:\n triage.unmanaged_action_required_extension_count,\n unmanaged_expected_extension_count:\n triage.unmanaged_expected_extension_count,\n runtime_active_total: runtimeInstalledExtensions.filter(\n (entry) => entry.runtime_active === true,\n ).length,\n activation_status_totals: {\n ok: runtimeInstalledExtensions.filter(\n (entry) => entry.activation_status === \"ok\",\n ).length,\n failed: runtimeInstalledExtensions.filter(\n (entry) => entry.activation_status === \"failed\",\n ).length,\n not_loaded: runtimeInstalledExtensions.filter(\n (entry) => entry.activation_status === \"not_loaded\",\n ).length,\n unknown: runtimeInstalledExtensions.filter(\n (entry) => entry.activation_status === \"unknown\",\n ).length,\n },\n unknown_capability_count: capabilityGuidance.length,\n capability_contract_version: capabilityContract.version,\n update_available_total: runtimeInstalledExtensions.filter(\n (entry) => entry.update_available === true,\n ).length,\n update_health_coverage: triage.update_health_coverage,\n update_health_partial: triage.update_health_partial,\n update_check_failed_total: runtimeInstalledExtensions.filter(\n (entry) => entry.update_check_status === \"failed\",\n ).length,\n load_failure_count: loadResult.failed.length,\n activation_failure_count: activationResult.failed.length,\n blocking_failure_count:\n loadResult.failed.length + activationResult.failed.length,\n has_blocking_failures:\n loadResult.failed.length + activationResult.failed.length > 0,\n consistency_warning_count: doctorConsistency.warnings.length,\n trace_enabled: includeTrace,\n isolation,\n policy: policySummary,\n remediation,\n };\n\n const managedStateFixSummary = managedStateFix\n ? {\n requested: true,\n applied: managedStateFix.adopted_entries.length > 0,\n adopted_count: managedStateFix.adopted_entries.length,\n already_managed_count: managedStateFix.already_managed_count,\n adopted_extensions: managedStateFix.adopted_entries.map(\n (entry) => entry.name,\n ),\n }\n : {\n requested: false,\n applied: false,\n adopted_count: 0,\n already_managed_count: refreshedInstalled.extensions.filter(\n (entry) => entry.managed,\n ).length,\n adopted_extensions: [] as string[],\n };\n\n const details: Record<string, unknown> = {\n mode: detailMode,\n summary,\n triage,\n trace_enabled: includeTrace,\n capability_contract: capabilityContract,\n capability_guidance: capabilityGuidance,\n managed_state_fix: managedStateFixSummary,\n isolation,\n policy: loadResult.policy,\n };\n if (detailMode === \"deep\") {\n const activationFailedDetails = includeTrace\n ? activationResult.failed\n : activationResult.failed.map((entry) => {\n const { trace: _trace, ...rest } = entry;\n return rest;\n });\n details.deep = {\n warnings: normalizedWarnings,\n warning_codes: warningCodes,\n capability_contract: capabilityContract,\n capability_guidance: capabilityGuidance,\n trace_enabled: includeTrace,\n managed_state: {\n path: managedStateRead.path,\n count: managedState.entries.length,\n entries: managedState.entries,\n },\n installed_extensions: runtimeInstalledExtensions,\n load: {\n roots: loadResult.roots,\n policy: loadResult.policy,\n warnings: loadResult.warnings,\n failed: loadResult.failed,\n loaded: loadResult.loaded.map((entry) => ({\n layer: entry.layer,\n directory: entry.directory,\n name: entry.name,\n version: entry.version,\n entry: entry.entry,\n priority: entry.priority,\n })),\n },\n activation: {\n failed: activationFailedDetails,\n warnings: activationResult.warnings,\n hook_counts: activationResult.hook_counts,\n registration_counts: activationResult.registration_counts,\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 },\n consistency: doctorConsistency.summary,\n };\n if (includeTrace) {\n (details.deep as Record<string, unknown>).trace = {\n activation_failures: activationResult.failed\n .filter(\n (\n entry,\n ): entry is ActivationFailureEntry & {\n trace: NonNullable<ActivationFailureEntry[\"trace\"]>;\n } => entry.trace !== undefined,\n )\n .map((entry) => ({\n layer: entry.layer,\n name: entry.name,\n entry_path: entry.entry_path,\n error: entry.error,\n method: entry.trace.method,\n command: entry.trace.command,\n capability: entry.trace.capability,\n missing_capability: entry.trace.missing_capability,\n registration_index: entry.trace.registration_index,\n expected_schema: entry.trace.expected_schema,\n hint: entry.trace.hint,\n received: entry.trace.received,\n })),\n };\n }\n }\n return withResult(details);\n};\n\n/** Describe one installed extension and its runtime registrations. */\nconst runExtensionDescribeAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const {\n normalizedTarget,\n scope,\n resolvedRoots,\n warnings,\n options,\n global,\n withResult,\n } = ctx;\n const settings = await readSettings(resolvedRoots.settings_root);\n const loadResult = await loadExtensions({\n pmRoot: resolvedRoots.pm_root,\n settings,\n cwd: process.cwd(),\n noExtensions: global.noExtensions === true,\n });\n const activationResult = await activateExtensions(loadResult);\n warnings.push(...loadResult.warnings);\n warnings.push(...activationResult.warnings);\n const describeResult = buildExtensionDescribeResult(\n normalizedTarget,\n loadResult,\n activationResult,\n );\n if (\n normalizedTarget !== undefined &&\n describeResult.extensions.length === 0\n ) {\n const noun = options.vocabulary === \"package\" ? \"package\" : \"extension\";\n const loadedNames = [\n ...new Set(\n loadResult.loaded.map((entry) =>\n options.vocabulary === \"package\" &&\n typeof entry.source_package === \"string\" &&\n entry.source_package.trim().length > 0\n ? entry.source_package.trim()\n : entry.name,\n ),\n ),\n ].sort((left, right) => left.localeCompare(right));\n const loadedHint =\n loadedNames.length > 0\n ? ` Loaded ${noun} names: ${loadedNames.join(\", \")}.`\n : \"\";\n throw new PmCliError(\n `No loaded ${noun} named \"${normalizedTarget}\" was found in ${scope} scope.${loadedHint} Run pm ${noun} explore to list discovered ${noun}s.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n return withResult({\n target: describeResult.target,\n total: describeResult.total,\n extensions: describeResult.extensions,\n union: describeResult.union,\n });\n};\n\n/* c8 ignore start -- explore/manage action split is validated by dedicated command-action tests */\n/** Apply manage-only adoption and remote update checks to managed extension state. */\nconst prepareExploreManageState = async (\n ctx: ExtensionActionContext,\n installed: ManagedExtensionSummary[],\n initialState: ManagedExtensionState,\n): Promise<{\n state: ManagedExtensionState;\n fix: AdoptUnmanagedExtensionsResult | null;\n}> => {\n let state = initialState;\n let fix: AdoptUnmanagedExtensionsResult | null = null;\n if (\n [ctx.action === \"manage\", ctx.options.fixManagedState === true].every(\n Boolean,\n )\n ) {\n fix = await adoptUnmanagedExtensions(\n ctx.resolvedRoots.selected_root,\n ctx.scope,\n installed,\n initialState,\n );\n state = fix.state;\n }\n if (ctx.action === \"manage\") {\n const entries = await mapWithFixedConcurrency(\n state.entries,\n GITHUB_UPDATE_CHECK_CONCURRENCY,\n async (entry) => {\n if (entry.source.kind !== \"github\") return entry;\n const updateStatus = await checkGithubUpdate(entry.source);\n return {\n ...entry,\n last_update_check_at: updateStatus.checked_at,\n last_update_remote_commit: updateStatus.remote_commit,\n update_available: updateStatus.available,\n update_error: updateStatus.error,\n };\n },\n );\n state = {\n ...state,\n updated_at: nowIso(),\n entries: sortManagedEntries(entries),\n };\n await writeManagedExtensionState(ctx.resolvedRoots.selected_root, state);\n }\n return { state, fix };\n};\n\n/** Runtime-probe explore by default and manage only when explicitly requested. */\nconst probeExploreManageRuntime = async (\n ctx: ExtensionActionContext,\n settings: PmSettings,\n installed: ManagedExtensionSummary[],\n): Promise<{\n installed: ManagedExtensionSummary[];\n failures: ActivationFailureDiagnostic[] | undefined;\n summary: Record<string, unknown>;\n}> => {\n const requested = [\n ctx.action === \"explore\",\n ctx.options.runtimeProbe === true,\n ].includes(true);\n if (!requested) {\n return {\n installed,\n failures: undefined,\n summary: { requested: false, executed: false },\n };\n }\n const loadResult = await loadExtensions({\n pmRoot: ctx.resolvedRoots.pm_root,\n settings,\n cwd: process.cwd(),\n noExtensions: ctx.global.noExtensions === true,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n ctx.warnings.push(...loadResult.warnings, ...activationResult.warnings);\n return {\n installed: applyDoctorRuntimeActivationState(\n installed,\n loadResult,\n activationResult,\n ),\n failures: collectActivationFailureDiagnostics(activationResult.failed),\n summary: {\n requested: true,\n executed: true,\n reason:\n ctx.action === \"explore\"\n ? \"explore_defaults_to_runtime_probe\"\n : \"runtime_probe_requested\",\n load_failure_count: loadResult.failed.length,\n activation_failure_count: activationResult.failed.length,\n warning_count: [\n ...new Set([...loadResult.warnings, ...activationResult.warnings]),\n ].length,\n policy: loadResult.policy,\n },\n };\n};\n\n/** Project manage-only adoption details without coupling them to runtime probing. */\nconst projectExploreManageFix = (\n fix: AdoptUnmanagedExtensionsResult | null,\n installed: ManagedExtensionSummary[],\n): Record<string, unknown> =>\n fix\n ? {\n requested: true,\n applied: fix.adopted_entries.length > 0,\n adopted_count: fix.adopted_entries.length,\n adopted_extensions: fix.adopted_entries.map((entry) => entry.name),\n already_managed_count: fix.already_managed_count,\n }\n : {\n requested: false,\n applied: false,\n adopted_count: 0,\n adopted_extensions: [],\n already_managed_count: installed.filter((entry) => entry.managed)\n .length,\n };\n\n/** Explore installed extensions or mutate managed lifecycle state. */\nconst runExtensionExploreManageAction = async (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> => {\n const { action, scope, resolvedRoots, warnings, options, withResult } = ctx;\n const settings = await readSettings(resolvedRoots.settings_root);\n const configuredPolicy = buildExtensionPolicyDetails(\n settings.extensions.policy,\n );\n const managedStateRead = await readManagedExtensionState(\n resolvedRoots.selected_root,\n );\n warnings.push(...managedStateRead.warnings);\n const installed = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedStateRead.state,\n );\n warnings.push(...installed.warnings);\n\n const { state: managedState, fix: managedStateFix } =\n await prepareExploreManageState(\n ctx,\n installed.extensions,\n managedStateRead.state,\n );\n\n const refreshedInstalled = await listInstalledExtensions(\n resolvedRoots.selected_root,\n scope,\n settings,\n managedState,\n );\n warnings.push(...refreshedInstalled.warnings);\n if (action === \"manage\") {\n const updateWarnings = refreshedInstalled.extensions\n .filter((entry) => entry.update_check_status === \"failed\")\n .map((entry) => `extension_update_check_failed:${entry.name}`);\n warnings.push(...updateWarnings);\n }\n const runtimeProbe = await probeExploreManageRuntime(\n ctx,\n settings,\n refreshedInstalled.extensions,\n );\n const runtimeInstalledExtensions = runtimeProbe.installed;\n\n const triage = buildExtensionTriageSummary(\n scope,\n warnings,\n runtimeInstalledExtensions,\n options,\n );\n warnings.push(...triage.warnings);\n const details: Record<string, unknown> = {\n total: runtimeInstalledExtensions.length,\n managed_total: runtimeInstalledExtensions.filter((entry) => entry.managed)\n .length,\n enabled_total: runtimeInstalledExtensions.filter((entry) => entry.enabled)\n .length,\n active_total: runtimeInstalledExtensions.filter((entry) => entry.active)\n .length,\n extensions: runtimeInstalledExtensions,\n triage,\n policy: configuredPolicy,\n };\n if (runtimeProbe.failures !== undefined) {\n details.activation_diagnostics = {\n failed_count: runtimeProbe.failures.length,\n failed: runtimeProbe.failures,\n };\n }\n if (action === \"explore\") {\n details.runtime_probe = runtimeProbe.summary;\n }\n if (action === \"manage\") {\n details.runtime_probe = runtimeProbe.summary;\n details.managed_state_fix = projectExploreManageFix(\n managedStateFix,\n runtimeInstalledExtensions,\n );\n }\n return withResult(details);\n};\n/* c8 ignore stop */\n\n// Dispatch table from lifecycle action to its handler. `explore`/`manage` and\n// `activate`/`deactivate` share a handler that branches on `ctx.action`; the\n// closed ExtensionCommandAction union guarantees every action has an entry, so\n// runExtension needs no unsupported-action fallthrough.\nconst EXTENSION_ACTION_HANDLERS: Record<\n ExtensionCommandAction,\n (ctx: ExtensionActionContext) => Promise<ExtensionCommandResult>\n> = {\n init: runExtensionInitAction,\n install: runExtensionInstallAction,\n uninstall: runExtensionUninstallAction,\n explore: runExtensionExploreManageAction,\n manage: runExtensionExploreManageAction,\n describe: runExtensionDescribeAction,\n reload: runExtensionReloadAction,\n doctor: runExtensionDoctorAction,\n catalog: runExtensionCatalogAction,\n adopt: runExtensionAdoptAction,\n \"adopt-all\": runExtensionAdoptAllAction,\n activate: runExtensionActivateDeactivateAction,\n deactivate: runExtensionActivateDeactivateAction,\n};\n\n/** Identify lifecycle actions that mutate shared settings or managed-extension state. */\nconst requiresExtensionStateLock = (ctx: ExtensionActionContext): boolean =>\n [\n ctx.action === \"uninstall\",\n ctx.action === \"manage\",\n ctx.action === \"adopt\",\n ctx.action === \"adopt-all\",\n ctx.action === \"activate\",\n ctx.action === \"deactivate\",\n [ctx.action === \"doctor\", ctx.options.fixManagedState === true].every(\n Boolean,\n ),\n ].some(Boolean);\n\n/** Dispatch one normalized lifecycle action through the complete handler table. */\nconst dispatchExtensionAction = (\n ctx: ExtensionActionContext,\n): Promise<ExtensionCommandResult> =>\n requiresExtensionStateLock(ctx)\n ? withExtensionInstallLock(\n ctx.resolvedRoots.settings_root,\n `${ctx.action}-state`,\n () => EXTENSION_ACTION_HANDLERS[ctx.action](ctx),\n )\n : EXTENSION_ACTION_HANDLERS[ctx.action](ctx);\n\n/** Public contract for test only, shared by SDK and presentation-layer consumers. */\nexport const _testOnly = {\n adoptUnmanagedExtensions,\n buildAdoptedExtensionSource,\n buildExtensionPolicyDetails,\n buildInstallCommandDiscovery,\n checkGithubUpdate,\n clearExtensionState,\n collectActivationFailureDiagnostics,\n findActivationFailureByName,\n resolveInstallRuntimeActivationStatus,\n collectGlobalOutputOverrideDoctorWarnings,\n collectSchemaNarrowActivationDoctorWarnings,\n copyExtensionDirectoryWithoutSelfNesting,\n isErrnoCode,\n isRetriableExtensionInstallCopyError,\n listInstalledExtensions,\n mapWithFixedConcurrency,\n projectExtensionUpdateCheck,\n readOptionalMetadataFile,\n requireTarget,\n resolveAction,\n resolveCommandDiscoveryPackageName,\n resolveGithubOption,\n resolveInstalledExtensionCandidate,\n resolveScope,\n resolveUpdateCheckResolution,\n withExtensionInstallLock,\n};\n"],"names":[],"mappings":"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","debugId":"fe21d8bd-795f-5bed-b4fc-e6efe6ee6120"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { GlobalOptions } from "../../core/shared/command-types.js";
|
|
2
|
+
declare const GC_SCOPE_VALUES: readonly ["index", "embeddings", "runtime", "locks", "checkpoints"];
|
|
3
|
+
type GcScope = (typeof GC_SCOPE_VALUES)[number];
|
|
4
|
+
/** Documents the gc command options payload exchanged by command, SDK, and package integrations. */
|
|
5
|
+
export interface GcCommandOptions {
|
|
6
|
+
/** Value that configures or reports dry run for this contract. */
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
/** Value that configures or reports scope for this contract. */
|
|
9
|
+
scope?: string[];
|
|
10
|
+
}
|
|
11
|
+
/** Documents the gc locks summary payload exchanged by command, SDK, and package integrations. */
|
|
12
|
+
export interface GcLocksSummary {
|
|
13
|
+
/** Value that configures or reports scanned for this contract. */
|
|
14
|
+
scanned: number;
|
|
15
|
+
/** Value that configures or reports removed for this contract. */
|
|
16
|
+
removed: number;
|
|
17
|
+
/** Value that configures or reports retained for this contract. */
|
|
18
|
+
retained: number;
|
|
19
|
+
}
|
|
20
|
+
/** Documents the gc checkpoints summary payload exchanged by command, SDK, and package integrations. */
|
|
21
|
+
export interface GcCheckpointsSummary {
|
|
22
|
+
/** Value that configures or reports scanned for this contract. */
|
|
23
|
+
scanned: number;
|
|
24
|
+
/** Value that configures or reports removed for this contract. */
|
|
25
|
+
removed: number;
|
|
26
|
+
/** Value that configures or reports retained for this contract. */
|
|
27
|
+
retained: number;
|
|
28
|
+
/** Value that configures or reports retention days for this contract. */
|
|
29
|
+
retention_days: number;
|
|
30
|
+
}
|
|
31
|
+
/** Documents the gc result payload exchanged by command, SDK, and package integrations. */
|
|
32
|
+
export interface GcResult {
|
|
33
|
+
/** Whether the operation completed without a blocking failure. */
|
|
34
|
+
ok: boolean;
|
|
35
|
+
/** Value that configures or reports dry run for this contract. */
|
|
36
|
+
dry_run: boolean;
|
|
37
|
+
/** Value that configures or reports scope for this contract. */
|
|
38
|
+
scope: GcScope[];
|
|
39
|
+
/** Value that configures or reports removed for this contract. */
|
|
40
|
+
removed: string[];
|
|
41
|
+
/** Value that configures or reports retained for this contract. */
|
|
42
|
+
retained: string[];
|
|
43
|
+
/** Value that configures or reports warnings for this contract. */
|
|
44
|
+
warnings: string[];
|
|
45
|
+
/** Value that configures or reports guidance for this contract. */
|
|
46
|
+
guidance: string[];
|
|
47
|
+
/** Present only when the locks scope was selected. Summarizes the stale-lock sweep. */
|
|
48
|
+
locks?: GcLocksSummary;
|
|
49
|
+
/** Present only when the checkpoints scope was selected. Summarizes the rollback-checkpoint sweep. */
|
|
50
|
+
checkpoints?: GcCheckpointsSummary;
|
|
51
|
+
/** ISO 8601 timestamp recording when generated occurred. */
|
|
52
|
+
generated_at: string;
|
|
53
|
+
}
|
|
54
|
+
/** Implements run gc for the public runtime surface of this module. */
|
|
55
|
+
export declare function runGc(global: GlobalOptions, options?: GcCommandOptions): Promise<GcResult>;
|
|
56
|
+
export {};
|