@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
|
@@ -1,57 +1,58 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
4
|
-
runFiles
|
|
5
|
-
} from "./chunk-TZ2PSLLT.js";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1a18538c-3ee2-5ab6-b7c2-b913c780563a")}catch(e){}}();
|
|
6
3
|
import {
|
|
7
4
|
runDocs
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
isRemoteLinkedArtifactReference
|
|
11
|
-
} from "./chunk-P6MYFH6K.js";
|
|
5
|
+
} from "./chunk-IA5FKNII.js";
|
|
12
6
|
import {
|
|
13
|
-
collectDanglingDependencyReferences
|
|
14
|
-
|
|
7
|
+
collectDanglingDependencyReferences,
|
|
8
|
+
createRelationshipKindRegistry
|
|
9
|
+
} from "./chunk-JFTKLTEF.js";
|
|
15
10
|
import {
|
|
16
11
|
scanHistoryDrift
|
|
17
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SDQLJWBO.js";
|
|
18
13
|
import {
|
|
19
|
-
|
|
20
|
-
} from "./chunk-
|
|
14
|
+
runFiles
|
|
15
|
+
} from "./chunk-TQSZFPIS.js";
|
|
16
|
+
import {
|
|
17
|
+
isRemoteLinkedArtifactReference
|
|
18
|
+
} from "./chunk-2JKGO6QX.js";
|
|
21
19
|
import {
|
|
22
20
|
runUpdate
|
|
23
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-EACOH7AU.js";
|
|
24
22
|
import {
|
|
25
|
-
|
|
26
|
-
} from "./chunk-
|
|
23
|
+
wrapOwnershipConflict
|
|
24
|
+
} from "./chunk-UY2ACEMF.js";
|
|
27
25
|
import {
|
|
28
26
|
PM_TELEMETRY_SOURCE_CONTEXT_VALUES,
|
|
29
27
|
TELEMETRY_MAX_QUEUE_ENTRY_ATTEMPTS,
|
|
30
28
|
TELEMETRY_SCHEMA_VERSION,
|
|
31
29
|
flushTelemetryQueueNow
|
|
32
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ONREO4ST.js";
|
|
33
31
|
import {
|
|
34
32
|
buildCapabilityContractMetadata,
|
|
35
33
|
buildRegistrationCollisionRemediation,
|
|
36
34
|
collectUnknownCapabilityGuidance,
|
|
37
35
|
readManagedExtensionState,
|
|
38
36
|
runInit
|
|
39
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-J6EY5V4N.js";
|
|
40
38
|
import {
|
|
41
39
|
collectStaleVectorizationIds,
|
|
42
40
|
runNext
|
|
43
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-7Z4LKRS4.js";
|
|
44
42
|
import {
|
|
45
43
|
computeContentFieldUtilization
|
|
46
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-UXONS674.js";
|
|
47
45
|
import {
|
|
48
46
|
computeMetadataCoverage,
|
|
49
47
|
groupItemsByDimension,
|
|
50
48
|
lifecycleClassifierFromStatusRegistry
|
|
51
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-2VPAVL7O.js";
|
|
52
50
|
import {
|
|
53
51
|
parseLimit
|
|
54
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-NVPZIJVR.js";
|
|
53
|
+
import {
|
|
54
|
+
resolveAuthor
|
|
55
|
+
} from "./chunk-CUFW7ITY.js";
|
|
55
56
|
import {
|
|
56
57
|
buildVectorizationEmbeddingIdentity,
|
|
57
58
|
hasVectorizationEmbeddingIdentityChanged,
|
|
@@ -61,7 +62,7 @@ import {
|
|
|
61
62
|
resolveProviderConfigSource,
|
|
62
63
|
resolveSettingsWithSemanticRuntimeDefaults,
|
|
63
64
|
resolveVectorStores
|
|
64
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-JXQUXVMI.js";
|
|
65
66
|
import {
|
|
66
67
|
ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
67
68
|
ACTIVITY_FLAG_CONTRACTS,
|
|
@@ -151,7 +152,7 @@ import {
|
|
|
151
152
|
UPGRADE_FLAG_CONTRACTS,
|
|
152
153
|
VALIDATE_FLAG_CONTRACTS,
|
|
153
154
|
compactFlagAliasContracts
|
|
154
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-3S5QVM5H.js";
|
|
155
156
|
import {
|
|
156
157
|
LINKED_TEST_PM_CONTEXT_MODE_VALUES,
|
|
157
158
|
LINKED_TEST_PROTECTED_ENV_KEYS,
|
|
@@ -168,12 +169,12 @@ import {
|
|
|
168
169
|
parseLinkedTestRegexList,
|
|
169
170
|
parseLinkedTestStringList,
|
|
170
171
|
runCreate
|
|
171
|
-
} from "./chunk-
|
|
172
|
+
} from "./chunk-EH2OPHBI.js";
|
|
172
173
|
import {
|
|
173
174
|
createStdinTokenResolver,
|
|
174
175
|
parseCsvKv,
|
|
175
176
|
parseOptionalNumber
|
|
176
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-EJEXHTY5.js";
|
|
177
178
|
import {
|
|
178
179
|
CURRENT_ITEM_FORMAT_VERSION,
|
|
179
180
|
compareTimestampStrings,
|
|
@@ -200,7 +201,7 @@ import {
|
|
|
200
201
|
stableValueEquals,
|
|
201
202
|
toItemRecord,
|
|
202
203
|
writeSettings
|
|
203
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-Q7A43DS4.js";
|
|
204
205
|
import {
|
|
205
206
|
DEFAULT_VALIDATE_CLOSURE_LIKE_METADATA_FIELD_PATTERNS,
|
|
206
207
|
DEFAULT_VALIDATE_STALE_BLOCKER_REASON_PATTERNS,
|
|
@@ -242,7 +243,7 @@ import {
|
|
|
242
243
|
statusIsTerminal,
|
|
243
244
|
toNonEmptyStringOrUndefined,
|
|
244
245
|
writeFileAtomic
|
|
245
|
-
} from "./chunk-
|
|
246
|
+
} from "./chunk-QKECXBBG.js";
|
|
246
247
|
|
|
247
248
|
// dist/sdk/start-task-status.js
|
|
248
249
|
function resolveStartTaskInProgressStatus(statusRegistry) {
|
|
@@ -559,12 +560,12 @@ var TOOLS = [
|
|
|
559
560
|
},
|
|
560
561
|
{
|
|
561
562
|
name: "pm_get",
|
|
562
|
-
description: "Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.",
|
|
563
|
+
description: "Read one pm item with shared SDK projections. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection, options.fields='id,schedule.start_at' for schedule context, or options.at='7' / an ISO timestamp for a verified mutation-free historical read. Parent results include bounded child counts, samples, and continuation metadata.",
|
|
563
564
|
inputSchema: objectSchema({
|
|
564
565
|
id: idSchema,
|
|
565
566
|
options: {
|
|
566
567
|
type: "object",
|
|
567
|
-
description: "Get options such as depth=brief|standard|deep|full
|
|
568
|
+
description: "Get options such as depth=brief|standard|deep|full, fields=id,title,status, or at=<version|ISO timestamp>."
|
|
568
569
|
}
|
|
569
570
|
}, ["id"])
|
|
570
571
|
},
|
|
@@ -720,7 +721,7 @@ var TOOLS = [
|
|
|
720
721
|
},
|
|
721
722
|
{
|
|
722
723
|
name: "pm_deps",
|
|
723
|
-
description: "
|
|
724
|
+
description: "Read dependency trees/graphs or one bounded explainable relationship context packet. Use options.format=context with depth, node, edge, token, and cursor bounds.",
|
|
724
725
|
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, [
|
|
725
726
|
"id"
|
|
726
727
|
])
|
|
@@ -2372,7 +2373,7 @@ async function runContracts(options, global) {
|
|
|
2372
2373
|
return result;
|
|
2373
2374
|
}
|
|
2374
2375
|
|
|
2375
|
-
// dist/
|
|
2376
|
+
// dist/sdk/governance/gc.js
|
|
2376
2377
|
import fs3 from "node:fs/promises";
|
|
2377
2378
|
import path3 from "node:path";
|
|
2378
2379
|
|
|
@@ -2725,7 +2726,7 @@ async function runLockGc(pmRoot, options) {
|
|
|
2725
2726
|
return result;
|
|
2726
2727
|
}
|
|
2727
2728
|
|
|
2728
|
-
// dist/
|
|
2729
|
+
// dist/sdk/governance/gc.js
|
|
2729
2730
|
var GC_SCOPE_VALUES = [
|
|
2730
2731
|
"index",
|
|
2731
2732
|
"embeddings",
|
|
@@ -2960,9 +2961,104 @@ async function runGc(global, options = {}) {
|
|
|
2960
2961
|
};
|
|
2961
2962
|
}
|
|
2962
2963
|
|
|
2963
|
-
// dist/
|
|
2964
|
+
// dist/sdk/author-attribution.js
|
|
2964
2965
|
import fs4 from "node:fs/promises";
|
|
2965
2966
|
import path4 from "node:path";
|
|
2967
|
+
var HISTORY_AUTHOR_ATTRIBUTION_BASELINE = "2026-07-15T06:22:12.276Z";
|
|
2968
|
+
var HISTORY_AUTHOR_ATTRIBUTION_BASELINE_MS = Date.parse(HISTORY_AUTHOR_ATTRIBUTION_BASELINE);
|
|
2969
|
+
var HISTORY_AUTHOR_EVENT_CLASSIFICATIONS = [
|
|
2970
|
+
["attributed", "attributed"],
|
|
2971
|
+
["legacy_unknown", "actionable_unknown"]
|
|
2972
|
+
];
|
|
2973
|
+
var historyStringValue = (value) => typeof value === "string" ? value : "";
|
|
2974
|
+
var classifyHistoryAuthorEvent = (parsed) => {
|
|
2975
|
+
const record = parsed ?? {};
|
|
2976
|
+
const author = historyStringValue(record.author).trim().toLowerCase();
|
|
2977
|
+
const authorClass = Number(["", "unknown"].includes(author));
|
|
2978
|
+
const timestampClass = Number(Date.parse(historyStringValue(record.ts)) >= HISTORY_AUTHOR_ATTRIBUTION_BASELINE_MS);
|
|
2979
|
+
return HISTORY_AUTHOR_EVENT_CLASSIFICATIONS[authorClass][timestampClass];
|
|
2980
|
+
};
|
|
2981
|
+
var inspectHistoryAuthorStream = (itemId, raw, sampleLimit = 20) => {
|
|
2982
|
+
const samples = [];
|
|
2983
|
+
const unknownCounts = {
|
|
2984
|
+
legacy_unknown: 0,
|
|
2985
|
+
actionable_unknown: 0
|
|
2986
|
+
};
|
|
2987
|
+
const boundedSampleLimit = Math.max(0, sampleLimit);
|
|
2988
|
+
let checkedEvents = 0;
|
|
2989
|
+
for (const [index, line] of raw.split(/\r?\n/).entries()) {
|
|
2990
|
+
let parsed;
|
|
2991
|
+
try {
|
|
2992
|
+
parsed = JSON.parse(line);
|
|
2993
|
+
} catch {
|
|
2994
|
+
continue;
|
|
2995
|
+
}
|
|
2996
|
+
checkedEvents += 1;
|
|
2997
|
+
const classification = classifyHistoryAuthorEvent(parsed);
|
|
2998
|
+
if (classification === "attributed") {
|
|
2999
|
+
continue;
|
|
3000
|
+
}
|
|
3001
|
+
unknownCounts[classification] += 1;
|
|
3002
|
+
if (samples.length < boundedSampleLimit) {
|
|
3003
|
+
samples.push({ item_id: itemId, line: index + 1 });
|
|
3004
|
+
}
|
|
3005
|
+
}
|
|
3006
|
+
return {
|
|
3007
|
+
checked_events: checkedEvents,
|
|
3008
|
+
unknown_event_count: unknownCounts.legacy_unknown + unknownCounts.actionable_unknown,
|
|
3009
|
+
legacy_unknown_event_count: unknownCounts.legacy_unknown,
|
|
3010
|
+
actionable_unknown_event_count: unknownCounts.actionable_unknown,
|
|
3011
|
+
samples
|
|
3012
|
+
};
|
|
3013
|
+
};
|
|
3014
|
+
var scanHistoryAuthorAttribution = async (pmRoot, sampleLimit = 20) => {
|
|
3015
|
+
const historyDirectory = path4.join(pmRoot, "history");
|
|
3016
|
+
let fileNames;
|
|
3017
|
+
try {
|
|
3018
|
+
fileNames = (await fs4.readdir(historyDirectory)).filter((fileName) => fileName.endsWith(".jsonl")).sort((left, right) => left.localeCompare(right));
|
|
3019
|
+
} catch {
|
|
3020
|
+
fileNames = [];
|
|
3021
|
+
}
|
|
3022
|
+
const affectedItemIds = /* @__PURE__ */ new Set();
|
|
3023
|
+
const samples = [];
|
|
3024
|
+
let checkedStreams = 0;
|
|
3025
|
+
let checkedEvents = 0;
|
|
3026
|
+
let unknownEventCount = 0;
|
|
3027
|
+
let legacyUnknownEventCount = 0;
|
|
3028
|
+
let actionableUnknownEventCount = 0;
|
|
3029
|
+
for (const fileName of fileNames) {
|
|
3030
|
+
let raw;
|
|
3031
|
+
try {
|
|
3032
|
+
raw = await fs4.readFile(path4.join(historyDirectory, fileName), "utf8");
|
|
3033
|
+
} catch {
|
|
3034
|
+
continue;
|
|
3035
|
+
}
|
|
3036
|
+
const itemId = fileName.slice(0, -".jsonl".length);
|
|
3037
|
+
const inspected = inspectHistoryAuthorStream(itemId, raw, sampleLimit - samples.length);
|
|
3038
|
+
checkedStreams += 1;
|
|
3039
|
+
checkedEvents += inspected.checked_events;
|
|
3040
|
+
unknownEventCount += inspected.unknown_event_count;
|
|
3041
|
+
legacyUnknownEventCount += inspected.legacy_unknown_event_count;
|
|
3042
|
+
actionableUnknownEventCount += inspected.actionable_unknown_event_count;
|
|
3043
|
+
if (inspected.unknown_event_count > 0) {
|
|
3044
|
+
affectedItemIds.add(itemId);
|
|
3045
|
+
}
|
|
3046
|
+
samples.push(...inspected.samples);
|
|
3047
|
+
}
|
|
3048
|
+
return {
|
|
3049
|
+
checked_streams: checkedStreams,
|
|
3050
|
+
checked_events: checkedEvents,
|
|
3051
|
+
unknown_event_count: unknownEventCount,
|
|
3052
|
+
legacy_unknown_event_count: legacyUnknownEventCount,
|
|
3053
|
+
actionable_unknown_event_count: actionableUnknownEventCount,
|
|
3054
|
+
affected_item_ids: [...affectedItemIds].sort((left, right) => left.localeCompare(right)),
|
|
3055
|
+
samples
|
|
3056
|
+
};
|
|
3057
|
+
};
|
|
3058
|
+
|
|
3059
|
+
// dist/sdk/governance/health.js
|
|
3060
|
+
import fs5 from "node:fs/promises";
|
|
3061
|
+
import path5 from "node:path";
|
|
2966
3062
|
|
|
2967
3063
|
// dist/core/diagnostics/remediation.js
|
|
2968
3064
|
var REMEDIATION_REGISTRY = Object.freeze([
|
|
@@ -3111,6 +3207,11 @@ var REMEDIATION_REGISTRY = Object.freeze([
|
|
|
3111
3207
|
command: "pm history-compact <id>",
|
|
3112
3208
|
summary: "The history stream exceeds the configured compaction threshold; compact it (pm history-compact --all-streams sweeps every over-threshold stream in one pass)."
|
|
3113
3209
|
},
|
|
3210
|
+
{
|
|
3211
|
+
code: "history_unknown_author_events",
|
|
3212
|
+
command: "pm validate --check-history-drift --fix-hints",
|
|
3213
|
+
summary: "Historical mutations lack attributable authorship. Configure PM_AUTHOR, pass global --author, or set author_default so future audit events are attributable."
|
|
3214
|
+
},
|
|
3114
3215
|
// --- pm health: locks ---
|
|
3115
3216
|
{
|
|
3116
3217
|
code: "locks_stale_count",
|
|
@@ -3280,6 +3381,11 @@ var REMEDIATION_REGISTRY = Object.freeze([
|
|
|
3280
3381
|
command: "pm history-repair <id>",
|
|
3281
3382
|
summary: "Re-anchor the history chains of the items with a broken history chain."
|
|
3282
3383
|
},
|
|
3384
|
+
{
|
|
3385
|
+
code: "validate_history_unknown_author_events",
|
|
3386
|
+
command: "pm config project set author_default <stable-agent-id>",
|
|
3387
|
+
summary: "Historical mutations lack attributable authorship. Set a stable default or use invocation-wide --author for future events; existing audit history remains append-only."
|
|
3388
|
+
},
|
|
3283
3389
|
// --- pm validate: command_references ---
|
|
3284
3390
|
{
|
|
3285
3391
|
code: "validate_command_references_stale_pm_ids",
|
|
@@ -3323,12 +3429,12 @@ function buildRemediationCommands(warnings) {
|
|
|
3323
3429
|
return Object.values(buildRemediationMap(warnings));
|
|
3324
3430
|
}
|
|
3325
3431
|
|
|
3326
|
-
// dist/
|
|
3432
|
+
// dist/sdk/governance/health.js
|
|
3327
3433
|
var PM_TELEMETRY_SOURCE_CONTEXT_SET = new Set(PM_TELEMETRY_SOURCE_CONTEXT_VALUES);
|
|
3328
3434
|
var STALE_VECTORIZATION_SUMMARY_LIMIT = 25;
|
|
3329
3435
|
var BRIEF_HEALTH_DETAIL_LIMIT = 8;
|
|
3330
|
-
var TELEMETRY_QUEUE_RELATIVE_PATH =
|
|
3331
|
-
var TELEMETRY_STATE_RELATIVE_PATH =
|
|
3436
|
+
var TELEMETRY_QUEUE_RELATIVE_PATH = path5.join("runtime", "telemetry", "events.jsonl");
|
|
3437
|
+
var TELEMETRY_STATE_RELATIVE_PATH = path5.join("runtime", "telemetry", "state.json");
|
|
3332
3438
|
var TELEMETRY_ENDPOINT_PROBE_TIMEOUT_MS = 2500;
|
|
3333
3439
|
var TELEMETRY_QUEUE_HIGH_WATER_MARK = 500;
|
|
3334
3440
|
var TELEMETRY_QUEUE_HIGH_RETRY_THRESHOLD = TELEMETRY_MAX_QUEUE_ENTRY_ATTEMPTS - 3;
|
|
@@ -3360,29 +3466,29 @@ function isExpectedUnmanagedExtension(name, directory) {
|
|
|
3360
3466
|
}
|
|
3361
3467
|
async function isDirectory(targetPath) {
|
|
3362
3468
|
try {
|
|
3363
|
-
const stats = await
|
|
3469
|
+
const stats = await fs5.stat(targetPath);
|
|
3364
3470
|
return stats.isDirectory();
|
|
3365
3471
|
} catch {
|
|
3366
3472
|
return false;
|
|
3367
3473
|
}
|
|
3368
3474
|
}
|
|
3369
3475
|
async function countHistoryStreams(pmRoot, compactPolicy) {
|
|
3370
|
-
const historyDir =
|
|
3476
|
+
const historyDir = path5.join(pmRoot, "history");
|
|
3371
3477
|
if (!await isDirectory(historyDir)) {
|
|
3372
3478
|
return { count: 0, warnings: [], over_threshold: [], max_entries: null };
|
|
3373
3479
|
}
|
|
3374
|
-
const historyFiles = (await
|
|
3480
|
+
const historyFiles = (await fs5.readdir(historyDir)).filter((entry) => entry.endsWith(".jsonl")).sort((left, right) => left.localeCompare(right));
|
|
3375
3481
|
const policyActive = compactPolicy.enabled;
|
|
3376
3482
|
const maxEntries = policyActive ? compactPolicy.max_entries : null;
|
|
3377
3483
|
const warnings = [];
|
|
3378
3484
|
const overThreshold = [];
|
|
3379
3485
|
for (const fileName of historyFiles) {
|
|
3380
|
-
const streamPath =
|
|
3486
|
+
const streamPath = path5.join(historyDir, fileName);
|
|
3381
3487
|
warnings.push(...await runActiveOnReadHooks({ path: streamPath, scope: "project" }));
|
|
3382
3488
|
if (!policyActive) {
|
|
3383
3489
|
continue;
|
|
3384
3490
|
}
|
|
3385
|
-
const raw = await
|
|
3491
|
+
const raw = await fs5.readFile(streamPath, "utf8");
|
|
3386
3492
|
let entries = 0;
|
|
3387
3493
|
for (const line of raw.split(/\r?\n/)) {
|
|
3388
3494
|
if (line.trim().length > 0) {
|
|
@@ -3404,16 +3510,16 @@ async function countHistoryStreams(pmRoot, compactPolicy) {
|
|
|
3404
3510
|
};
|
|
3405
3511
|
}
|
|
3406
3512
|
function normalizeRelativePath(pmRoot, targetPath) {
|
|
3407
|
-
return
|
|
3513
|
+
return path5.relative(pmRoot, targetPath).replaceAll("\\", "/");
|
|
3408
3514
|
}
|
|
3409
3515
|
async function listItemDocumentPaths(pmRoot, typeToFolder) {
|
|
3410
3516
|
const folders = [...new Set(Object.values(typeToFolder))].sort((left, right) => left.localeCompare(right));
|
|
3411
3517
|
const itemPaths = [];
|
|
3412
3518
|
for (const folder of folders) {
|
|
3413
|
-
const directoryPath =
|
|
3519
|
+
const directoryPath = path5.join(pmRoot, folder);
|
|
3414
3520
|
let entries = [];
|
|
3415
3521
|
try {
|
|
3416
|
-
entries = await
|
|
3522
|
+
entries = await fs5.readdir(directoryPath);
|
|
3417
3523
|
} catch (error) {
|
|
3418
3524
|
if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
|
|
3419
3525
|
continue;
|
|
@@ -3424,7 +3530,7 @@ async function listItemDocumentPaths(pmRoot, typeToFolder) {
|
|
|
3424
3530
|
if (!ITEM_FILE_EXTENSIONS.some((extension) => entry.toLowerCase().endsWith(extension))) {
|
|
3425
3531
|
continue;
|
|
3426
3532
|
}
|
|
3427
|
-
itemPaths.push(
|
|
3533
|
+
itemPaths.push(path5.join(directoryPath, entry));
|
|
3428
3534
|
}
|
|
3429
3535
|
}
|
|
3430
3536
|
itemPaths.sort((left, right) => normalizeRelativePath(pmRoot, left).localeCompare(normalizeRelativePath(pmRoot, right)));
|
|
@@ -3444,7 +3550,7 @@ async function buildIntegrityCheck(pmRoot, typeToFolder, schema) {
|
|
|
3444
3550
|
const relativePath = normalizeRelativePath(pmRoot, itemPath);
|
|
3445
3551
|
let raw = "";
|
|
3446
3552
|
try {
|
|
3447
|
-
raw = await
|
|
3553
|
+
raw = await fs5.readFile(itemPath, "utf8");
|
|
3448
3554
|
} catch {
|
|
3449
3555
|
itemUnreadable.push(relativePath);
|
|
3450
3556
|
continue;
|
|
@@ -3473,13 +3579,13 @@ async function buildIntegrityCheck(pmRoot, typeToFolder, schema) {
|
|
|
3473
3579
|
}
|
|
3474
3580
|
}
|
|
3475
3581
|
const formatVersionScan = scanItemFormatVersions(formatVersionEntries);
|
|
3476
|
-
const historyDir =
|
|
3582
|
+
const historyDir = path5.join(pmRoot, "history");
|
|
3477
3583
|
const historyUnreadable = [];
|
|
3478
3584
|
const historyConflictMarkers = [];
|
|
3479
3585
|
const historyInvalidJson = [];
|
|
3480
3586
|
let historyFiles = [];
|
|
3481
3587
|
try {
|
|
3482
|
-
historyFiles = (await
|
|
3588
|
+
historyFiles = (await fs5.readdir(historyDir)).filter((entry) => entry.endsWith(".jsonl")).sort((left, right) => left.localeCompare(right));
|
|
3483
3589
|
} catch (error) {
|
|
3484
3590
|
if (shouldReportHistoryDirectoryUnreadable(error)) {
|
|
3485
3591
|
historyUnreadable.push("history");
|
|
@@ -3487,10 +3593,10 @@ async function buildIntegrityCheck(pmRoot, typeToFolder, schema) {
|
|
|
3487
3593
|
}
|
|
3488
3594
|
for (const fileName of historyFiles) {
|
|
3489
3595
|
const itemId = fileName.slice(0, -".jsonl".length);
|
|
3490
|
-
const historyPath =
|
|
3596
|
+
const historyPath = path5.join(historyDir, fileName);
|
|
3491
3597
|
let raw = "";
|
|
3492
3598
|
try {
|
|
3493
|
-
raw = await
|
|
3599
|
+
raw = await fs5.readFile(historyPath, "utf8");
|
|
3494
3600
|
} catch {
|
|
3495
3601
|
historyUnreadable.push(itemId);
|
|
3496
3602
|
continue;
|
|
@@ -3966,8 +4072,19 @@ var HEALTH_DETAIL_SUMMARIZERS = {
|
|
|
3966
4072
|
capability_guidance: summarizeRecordList(details.capability_guidance, limit)
|
|
3967
4073
|
};
|
|
3968
4074
|
},
|
|
3969
|
-
|
|
3970
|
-
|
|
4075
|
+
storage: (details, limit) => {
|
|
4076
|
+
const authorAttribution = typeof details.author_attribution === "object" && details.author_attribution !== null ? details.author_attribution : void 0;
|
|
4077
|
+
return {
|
|
4078
|
+
...details,
|
|
4079
|
+
...authorAttribution ? {
|
|
4080
|
+
author_attribution: {
|
|
4081
|
+
...authorAttribution,
|
|
4082
|
+
affected_item_ids: summarizeStringList(authorAttribution.affected_item_ids, limit),
|
|
4083
|
+
samples: summarizeRecordList(authorAttribution.samples, limit)
|
|
4084
|
+
}
|
|
4085
|
+
} : {}
|
|
4086
|
+
};
|
|
4087
|
+
},
|
|
3971
4088
|
locks: (details) => ({
|
|
3972
4089
|
active_lock_count: details.active_lock_count,
|
|
3973
4090
|
stale_lock_count: details.stale_lock_count,
|
|
@@ -4273,8 +4390,8 @@ async function probeTelemetryEndpointHealth(endpoint) {
|
|
|
4273
4390
|
}
|
|
4274
4391
|
async function buildTelemetryCheck(settings, options) {
|
|
4275
4392
|
const globalPmRoot = resolveGlobalPmRoot(process.cwd());
|
|
4276
|
-
const queuePath =
|
|
4277
|
-
const statePath =
|
|
4393
|
+
const queuePath = path5.join(globalPmRoot, TELEMETRY_QUEUE_RELATIVE_PATH);
|
|
4394
|
+
const statePath = path5.join(globalPmRoot, TELEMETRY_STATE_RELATIVE_PATH);
|
|
4278
4395
|
const queueRaw = await readFileIfExists(queuePath);
|
|
4279
4396
|
const queueExists = queueRaw !== null;
|
|
4280
4397
|
const queueSizeBytes = queueRaw ? Buffer.byteLength(queueRaw, "utf8") : 0;
|
|
@@ -4605,7 +4722,7 @@ async function scanHealthDirectories(pmRoot, typeRegistry, strictDirectories) {
|
|
|
4605
4722
|
const missingOptionalDirs = [];
|
|
4606
4723
|
const hookWarnings = [];
|
|
4607
4724
|
for (const relativeDir of [...requiredDirs, ...optionalDirs]) {
|
|
4608
|
-
const directoryPath =
|
|
4725
|
+
const directoryPath = path5.join(pmRoot, relativeDir);
|
|
4609
4726
|
hookWarnings.push(...await runActiveOnReadHooks({
|
|
4610
4727
|
path: directoryPath,
|
|
4611
4728
|
scope: "project"
|
|
@@ -4685,13 +4802,20 @@ function buildSettingsValuesHealthCheck(settingWarnings) {
|
|
|
4685
4802
|
details: { warnings: settingWarnings }
|
|
4686
4803
|
};
|
|
4687
4804
|
}
|
|
4688
|
-
|
|
4805
|
+
var resolveUnknownAuthorEventCount = (authorAttribution) => authorAttribution.unknown_event_count ?? 0;
|
|
4806
|
+
var resolveActionableUnknownAuthorEventCount = (authorAttribution) => authorAttribution.actionable_unknown_event_count ?? resolveUnknownAuthorEventCount(authorAttribution);
|
|
4807
|
+
function buildStorageHealthCheck(items, settings, historySummary, authorAttribution) {
|
|
4808
|
+
const unknownAuthorEventCount = resolveUnknownAuthorEventCount(authorAttribution);
|
|
4809
|
+
const actionableUnknownAuthorEventCount = resolveActionableUnknownAuthorEventCount(authorAttribution);
|
|
4810
|
+
const hasAuthorEvents = unknownAuthorEventCount > 0;
|
|
4811
|
+
const hasActionableAuthorWarnings = actionableUnknownAuthorEventCount > 0;
|
|
4689
4812
|
return {
|
|
4690
4813
|
name: "storage",
|
|
4691
|
-
status: historySummary.over_threshold.length === 0 ? "ok" : "warn",
|
|
4814
|
+
status: historySummary.over_threshold.length === 0 && !hasActionableAuthorWarnings ? "ok" : "warn",
|
|
4692
4815
|
details: {
|
|
4693
4816
|
items: items.length,
|
|
4694
4817
|
history_streams: historySummary.count,
|
|
4818
|
+
...hasAuthorEvents ? { author_attribution: authorAttribution } : {},
|
|
4695
4819
|
...historySummary.max_entries !== null ? {
|
|
4696
4820
|
compact_policy: {
|
|
4697
4821
|
enabled: settings.history.compact_policy.enabled,
|
|
@@ -4714,6 +4838,7 @@ function collectHealthWarnings(params) {
|
|
|
4714
4838
|
...params.extensionCheck.warnings,
|
|
4715
4839
|
...params.historyPolicyWarnings,
|
|
4716
4840
|
...params.historySummary.warnings,
|
|
4841
|
+
...params.authorAttributionWarnings,
|
|
4717
4842
|
...params.locksCheck.warnings,
|
|
4718
4843
|
...params.integrityCheck.warnings,
|
|
4719
4844
|
...params.historyDriftCheck.warnings,
|
|
@@ -4733,7 +4858,10 @@ function buildHealthRemediationSources(params) {
|
|
|
4733
4858
|
settings_values: params.settingWarnings,
|
|
4734
4859
|
telemetry: params.telemetryCheck.warnings,
|
|
4735
4860
|
extensions: params.extensionCheck.warnings,
|
|
4736
|
-
storage:
|
|
4861
|
+
storage: [
|
|
4862
|
+
...params.historySummary.over_threshold.map((id) => `history_stream_over_compact_threshold:${id}`),
|
|
4863
|
+
...params.authorAttributionWarnings
|
|
4864
|
+
],
|
|
4737
4865
|
locks: params.locksCheck.warnings,
|
|
4738
4866
|
integrity: params.integrityCheck.warnings,
|
|
4739
4867
|
history_drift: params.historyDriftCheck.warnings,
|
|
@@ -4807,6 +4935,9 @@ async function runHealth(global, options = {}) {
|
|
|
4807
4935
|
commandLabel: "health"
|
|
4808
4936
|
});
|
|
4809
4937
|
const historySummary = await countHistoryStreams(pmRoot, settings.history.compact_policy);
|
|
4938
|
+
const authorAttribution = await scanHistoryAuthorAttribution(pmRoot);
|
|
4939
|
+
const actionableUnknownAuthorEventCount = resolveActionableUnknownAuthorEventCount(authorAttribution);
|
|
4940
|
+
const authorAttributionWarnings = actionableUnknownAuthorEventCount > 0 ? [`history_unknown_author_events:${actionableUnknownAuthorEventCount}`] : [];
|
|
4810
4941
|
const locksCheck = await buildLocksCheck(pmRoot);
|
|
4811
4942
|
const integrityCheck = skipPolicy.skipIntegrity ? buildSkippedHealthCheck("integrity") : await buildIntegrityCheck(pmRoot, typeRegistry.type_to_folder, settings.schema);
|
|
4812
4943
|
const historyDriftCheck = skipPolicy.skipDrift ? buildSkippedHealthCheck("history_drift") : await buildHistoryDriftCheck(pmRoot, itemsWithBody);
|
|
@@ -4817,7 +4948,7 @@ async function runHealth(global, options = {}) {
|
|
|
4817
4948
|
buildSettingsValuesHealthCheck(settingWarnings),
|
|
4818
4949
|
telemetryCheck.check,
|
|
4819
4950
|
extensionCheck.check,
|
|
4820
|
-
buildStorageHealthCheck(items, settings, historySummary),
|
|
4951
|
+
buildStorageHealthCheck(items, settings, historySummary, authorAttribution),
|
|
4821
4952
|
locksCheck.check,
|
|
4822
4953
|
integrityCheck.check,
|
|
4823
4954
|
historyDriftCheck.check,
|
|
@@ -4832,6 +4963,7 @@ async function runHealth(global, options = {}) {
|
|
|
4832
4963
|
extensionCheck,
|
|
4833
4964
|
historyPolicyWarnings: historyPolicy.warnings,
|
|
4834
4965
|
historySummary,
|
|
4966
|
+
authorAttributionWarnings,
|
|
4835
4967
|
locksCheck,
|
|
4836
4968
|
integrityCheck,
|
|
4837
4969
|
historyDriftCheck,
|
|
@@ -4846,6 +4978,7 @@ async function runHealth(global, options = {}) {
|
|
|
4846
4978
|
telemetryCheck,
|
|
4847
4979
|
extensionCheck,
|
|
4848
4980
|
historySummary,
|
|
4981
|
+
authorAttributionWarnings,
|
|
4849
4982
|
locksCheck,
|
|
4850
4983
|
integrityCheck,
|
|
4851
4984
|
historyDriftCheck,
|
|
@@ -4863,6 +4996,29 @@ async function runHealth(global, options = {}) {
|
|
|
4863
4996
|
};
|
|
4864
4997
|
return projectHealthResult(result, options, skipPolicy.summaryMode);
|
|
4865
4998
|
}
|
|
4999
|
+
var _testOnlyHealthCommand = {
|
|
5000
|
+
buildExtensionHealthTriageSummary,
|
|
5001
|
+
buildCapabilityContractMetadata,
|
|
5002
|
+
buildVectorizationProviderDetails,
|
|
5003
|
+
collectUnknownCapabilityGuidance,
|
|
5004
|
+
isAdvisoryHealthWarning,
|
|
5005
|
+
isDirectory,
|
|
5006
|
+
isExpectedUnmanagedExtension,
|
|
5007
|
+
listItemDocumentPaths,
|
|
5008
|
+
normalizeEndpointForDisplay,
|
|
5009
|
+
normalizeExtensionNameForMatch,
|
|
5010
|
+
parseTelemetryQueue,
|
|
5011
|
+
probeTelemetryEndpointHealth,
|
|
5012
|
+
resolveActionableUnknownAuthorEventCount,
|
|
5013
|
+
resolveUnknownAuthorEventCount,
|
|
5014
|
+
selectStaleItemDetail,
|
|
5015
|
+
summarizeHealthCheckDetails,
|
|
5016
|
+
summarizeExtensionList,
|
|
5017
|
+
summarizeRecordList,
|
|
5018
|
+
summarizeStringList,
|
|
5019
|
+
telemetryEnvFlagEnabled,
|
|
5020
|
+
warningCode
|
|
5021
|
+
};
|
|
4866
5022
|
|
|
4867
5023
|
// dist/cli/commands/scheduling-shortcuts.js
|
|
4868
5024
|
var DEFAULT_DURATION = "1h";
|
|
@@ -4927,8 +5083,8 @@ function runRemind(title, options, global) {
|
|
|
4927
5083
|
}
|
|
4928
5084
|
|
|
4929
5085
|
// dist/cli/commands/stats.js
|
|
4930
|
-
import
|
|
4931
|
-
import
|
|
5086
|
+
import fs6 from "node:fs/promises";
|
|
5087
|
+
import path6 from "node:path";
|
|
4932
5088
|
|
|
4933
5089
|
// dist/core/history/history-storage-stats.js
|
|
4934
5090
|
function shouldReplaceExtreme(candidate, current, candidateTieBreaker, currentTieBreaker, direction, tieDirection = "min") {
|
|
@@ -5038,7 +5194,7 @@ function isNotFoundError(error) {
|
|
|
5038
5194
|
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
5039
5195
|
}
|
|
5040
5196
|
async function readHistoryStreamContents(pmRoot) {
|
|
5041
|
-
const historyDir =
|
|
5197
|
+
const historyDir = path6.join(pmRoot, "history");
|
|
5042
5198
|
if (!await pathExists(historyDir)) {
|
|
5043
5199
|
return [];
|
|
5044
5200
|
}
|
|
@@ -5046,13 +5202,13 @@ async function readHistoryStreamContents(pmRoot) {
|
|
|
5046
5202
|
path: historyDir,
|
|
5047
5203
|
scope: "project"
|
|
5048
5204
|
});
|
|
5049
|
-
const historyFiles = (await
|
|
5205
|
+
const historyFiles = (await fs6.readdir(historyDir)).filter((entry) => entry.endsWith(".jsonl")).sort((a, b) => a.localeCompare(b));
|
|
5050
5206
|
const streams = [];
|
|
5051
5207
|
for (const file of historyFiles) {
|
|
5052
|
-
const historyPath =
|
|
5208
|
+
const historyPath = path6.join(historyDir, file);
|
|
5053
5209
|
let raw;
|
|
5054
5210
|
try {
|
|
5055
|
-
raw = await
|
|
5211
|
+
raw = await fs6.readFile(historyPath, "utf8");
|
|
5056
5212
|
} catch (error) {
|
|
5057
5213
|
if (isNotFoundError(error)) {
|
|
5058
5214
|
continue;
|
|
@@ -5127,11 +5283,11 @@ async function runStats(global, options = {}) {
|
|
|
5127
5283
|
}
|
|
5128
5284
|
|
|
5129
5285
|
// dist/cli/commands/telemetry.js
|
|
5130
|
-
import
|
|
5131
|
-
import
|
|
5132
|
-
var TELEMETRY_QUEUE_RELATIVE_PATH2 =
|
|
5133
|
-
var TELEMETRY_STATE_RELATIVE_PATH2 =
|
|
5134
|
-
var TELEMETRY_RUNTIME_RELATIVE_PATH =
|
|
5286
|
+
import fs7 from "node:fs/promises";
|
|
5287
|
+
import path7 from "node:path";
|
|
5288
|
+
var TELEMETRY_QUEUE_RELATIVE_PATH2 = path7.join("runtime", "telemetry", "events.jsonl");
|
|
5289
|
+
var TELEMETRY_STATE_RELATIVE_PATH2 = path7.join("runtime", "telemetry", "state.json");
|
|
5290
|
+
var TELEMETRY_RUNTIME_RELATIVE_PATH = path7.join("runtime", "telemetry");
|
|
5135
5291
|
var DEFAULT_STATS_LIMIT = 20;
|
|
5136
5292
|
var TELEMETRY_SUBCOMMANDS = [
|
|
5137
5293
|
"status",
|
|
@@ -5308,8 +5464,8 @@ async function readTelemetryRuntimeState(statePath) {
|
|
|
5308
5464
|
}
|
|
5309
5465
|
async function buildTelemetryStatusSummary(globalPmRoot) {
|
|
5310
5466
|
const settings = await readSettings(globalPmRoot);
|
|
5311
|
-
const queuePath =
|
|
5312
|
-
const statePath =
|
|
5467
|
+
const queuePath = path7.join(globalPmRoot, TELEMETRY_QUEUE_RELATIVE_PATH2);
|
|
5468
|
+
const statePath = path7.join(globalPmRoot, TELEMETRY_STATE_RELATIVE_PATH2);
|
|
5313
5469
|
const queueRaw = await readFileIfExists(queuePath);
|
|
5314
5470
|
const queue = parseTelemetryQueue2(queueRaw);
|
|
5315
5471
|
const runtimeState = await readTelemetryRuntimeState(statePath);
|
|
@@ -5339,8 +5495,8 @@ async function runTelemetry(options, _global) {
|
|
|
5339
5495
|
void _global;
|
|
5340
5496
|
const subcommand = normalizeTelemetrySubcommand(options.subcommand);
|
|
5341
5497
|
const globalPmRoot = resolveGlobalPmRoot(process.cwd());
|
|
5342
|
-
const queuePath =
|
|
5343
|
-
const statePath =
|
|
5498
|
+
const queuePath = path7.join(globalPmRoot, TELEMETRY_QUEUE_RELATIVE_PATH2);
|
|
5499
|
+
const statePath = path7.join(globalPmRoot, TELEMETRY_STATE_RELATIVE_PATH2);
|
|
5344
5500
|
if (subcommand === "status") {
|
|
5345
5501
|
return {
|
|
5346
5502
|
action: "telemetry",
|
|
@@ -5393,9 +5549,9 @@ async function runTelemetry(options, _global) {
|
|
|
5393
5549
|
if (settingsChanged) {
|
|
5394
5550
|
await writeSettings(globalPmRoot, settings, "telemetry:clear");
|
|
5395
5551
|
}
|
|
5396
|
-
const telemetryRuntimePath =
|
|
5552
|
+
const telemetryRuntimePath = path7.join(globalPmRoot, TELEMETRY_RUNTIME_RELATIVE_PATH);
|
|
5397
5553
|
const existed = await pathExists(telemetryRuntimePath);
|
|
5398
|
-
await
|
|
5554
|
+
await fs7.rm(telemetryRuntimePath, { recursive: true, force: true });
|
|
5399
5555
|
const queueExistsAfter = await pathExists(queuePath);
|
|
5400
5556
|
const stateExistsAfter = await pathExists(statePath);
|
|
5401
5557
|
return {
|
|
@@ -5414,7 +5570,7 @@ async function runTelemetry(options, _global) {
|
|
|
5414
5570
|
import { spawn } from "node:child_process";
|
|
5415
5571
|
import { cp, mkdir, mkdtemp, readdir, rm } from "node:fs/promises";
|
|
5416
5572
|
import { tmpdir } from "node:os";
|
|
5417
|
-
import
|
|
5573
|
+
import path8 from "node:path";
|
|
5418
5574
|
|
|
5419
5575
|
// dist/core/test/item-test-run-tracking.js
|
|
5420
5576
|
var DEFAULT_TRACKED_TEST_RUN_HISTORY_LIMIT = 20;
|
|
@@ -5569,14 +5725,227 @@ function resolveLinkedTestRunSelection(tests, selector) {
|
|
|
5569
5725
|
};
|
|
5570
5726
|
}
|
|
5571
5727
|
|
|
5572
|
-
// dist/
|
|
5573
|
-
var
|
|
5574
|
-
|
|
5575
|
-
"
|
|
5576
|
-
"
|
|
5577
|
-
"
|
|
5578
|
-
"
|
|
5728
|
+
// dist/sdk/test/linked-command-detection.js
|
|
5729
|
+
var PM_SUBCOMMANDS_WITH_ITEM_REFERENCE = /* @__PURE__ */ new Set([
|
|
5730
|
+
"get",
|
|
5731
|
+
"history",
|
|
5732
|
+
"restore",
|
|
5733
|
+
"update",
|
|
5734
|
+
"close",
|
|
5735
|
+
"delete",
|
|
5736
|
+
"append",
|
|
5737
|
+
"claim",
|
|
5738
|
+
"release",
|
|
5739
|
+
"comments",
|
|
5740
|
+
"notes",
|
|
5741
|
+
"learnings",
|
|
5742
|
+
"files",
|
|
5743
|
+
"docs",
|
|
5744
|
+
"deps",
|
|
5745
|
+
"test"
|
|
5746
|
+
]);
|
|
5747
|
+
var PM_GLOBAL_FLAGS_WITH_VALUE = /* @__PURE__ */ new Set([
|
|
5748
|
+
"--pm-path",
|
|
5749
|
+
"--path",
|
|
5750
|
+
"--author"
|
|
5579
5751
|
]);
|
|
5752
|
+
var PM_ITEM_REFERENCE_FLAGS_WITH_VALUE = {
|
|
5753
|
+
get: /* @__PURE__ */ new Set([
|
|
5754
|
+
"--depth",
|
|
5755
|
+
"--fields",
|
|
5756
|
+
"--tree-depth",
|
|
5757
|
+
"--tree_depth",
|
|
5758
|
+
"--at",
|
|
5759
|
+
"--format"
|
|
5760
|
+
]),
|
|
5761
|
+
history: /* @__PURE__ */ new Set(["--limit", "--field", "--format"]),
|
|
5762
|
+
restore: /* @__PURE__ */ new Set(["--message"]),
|
|
5763
|
+
update: /* @__PURE__ */ new Set([
|
|
5764
|
+
"--title",
|
|
5765
|
+
"-t",
|
|
5766
|
+
"--description",
|
|
5767
|
+
"-d",
|
|
5768
|
+
"--body",
|
|
5769
|
+
"-b",
|
|
5770
|
+
"--status",
|
|
5771
|
+
"-s",
|
|
5772
|
+
"--close-reason",
|
|
5773
|
+
"--close_reason",
|
|
5774
|
+
"--priority",
|
|
5775
|
+
"-p",
|
|
5776
|
+
"--type",
|
|
5777
|
+
"--tags",
|
|
5778
|
+
"--add-tags",
|
|
5779
|
+
"--add_tags",
|
|
5780
|
+
"--remove-tags",
|
|
5781
|
+
"--remove_tags",
|
|
5782
|
+
"--deadline",
|
|
5783
|
+
"--estimated-minutes",
|
|
5784
|
+
"--estimate",
|
|
5785
|
+
"--estimated_minutes",
|
|
5786
|
+
"--acceptance-criteria",
|
|
5787
|
+
"--ac",
|
|
5788
|
+
"--acceptance_criteria",
|
|
5789
|
+
"--definition-of-ready",
|
|
5790
|
+
"--definition_of_ready",
|
|
5791
|
+
"--order",
|
|
5792
|
+
"--rank",
|
|
5793
|
+
"--goal",
|
|
5794
|
+
"--objective",
|
|
5795
|
+
"--value",
|
|
5796
|
+
"--impact",
|
|
5797
|
+
"--outcome",
|
|
5798
|
+
"--why-now",
|
|
5799
|
+
"--why_now",
|
|
5800
|
+
"--message",
|
|
5801
|
+
"--assignee",
|
|
5802
|
+
"--parent",
|
|
5803
|
+
"--reviewer",
|
|
5804
|
+
"--risk",
|
|
5805
|
+
"--confidence",
|
|
5806
|
+
"--sprint",
|
|
5807
|
+
"--release",
|
|
5808
|
+
"--blocked-by",
|
|
5809
|
+
"--blocked_by",
|
|
5810
|
+
"--blocked-reason",
|
|
5811
|
+
"--blocked_reason",
|
|
5812
|
+
"--unblock-note",
|
|
5813
|
+
"--unblock_note",
|
|
5814
|
+
"--reporter",
|
|
5815
|
+
"--severity",
|
|
5816
|
+
"--environment",
|
|
5817
|
+
"--repro-steps",
|
|
5818
|
+
"--repro_steps",
|
|
5819
|
+
"--resolution",
|
|
5820
|
+
"--expected-result",
|
|
5821
|
+
"--expected_result",
|
|
5822
|
+
"--expected",
|
|
5823
|
+
"--actual-result",
|
|
5824
|
+
"--actual_result",
|
|
5825
|
+
"--actual",
|
|
5826
|
+
"--affected-version",
|
|
5827
|
+
"--affected_version",
|
|
5828
|
+
"--fixed-version",
|
|
5829
|
+
"--fixed_version",
|
|
5830
|
+
"--component",
|
|
5831
|
+
"--regression",
|
|
5832
|
+
"--customer-impact",
|
|
5833
|
+
"--customer_impact",
|
|
5834
|
+
"--dep",
|
|
5835
|
+
"--dep-remove",
|
|
5836
|
+
"--dep_remove",
|
|
5837
|
+
"--comment",
|
|
5838
|
+
"--note",
|
|
5839
|
+
"--learning",
|
|
5840
|
+
"--file",
|
|
5841
|
+
"--test",
|
|
5842
|
+
"--doc",
|
|
5843
|
+
"--reminder",
|
|
5844
|
+
"--event",
|
|
5845
|
+
"--type-option",
|
|
5846
|
+
"--type_option",
|
|
5847
|
+
"--field",
|
|
5848
|
+
"--unset",
|
|
5849
|
+
"--body-file"
|
|
5850
|
+
]),
|
|
5851
|
+
close: /* @__PURE__ */ new Set([
|
|
5852
|
+
"--reason",
|
|
5853
|
+
"-r",
|
|
5854
|
+
"--close-reason",
|
|
5855
|
+
"--duplicate-of",
|
|
5856
|
+
"-d",
|
|
5857
|
+
"--message",
|
|
5858
|
+
"-m",
|
|
5859
|
+
"--validate-close",
|
|
5860
|
+
"--resolution",
|
|
5861
|
+
"--expected-result",
|
|
5862
|
+
"--expected_result",
|
|
5863
|
+
"--expected",
|
|
5864
|
+
"--actual-result",
|
|
5865
|
+
"--actual_result",
|
|
5866
|
+
"--actual"
|
|
5867
|
+
]),
|
|
5868
|
+
delete: /* @__PURE__ */ new Set(["--message"]),
|
|
5869
|
+
append: /* @__PURE__ */ new Set(["--body", "--text", "--message"]),
|
|
5870
|
+
claim: /* @__PURE__ */ new Set([
|
|
5871
|
+
"--assignee",
|
|
5872
|
+
"--message",
|
|
5873
|
+
"--type",
|
|
5874
|
+
"--tag",
|
|
5875
|
+
"--priority",
|
|
5876
|
+
"--assignee-filter",
|
|
5877
|
+
"--parent",
|
|
5878
|
+
"--sprint",
|
|
5879
|
+
"--release",
|
|
5880
|
+
"--max-attempts"
|
|
5881
|
+
]),
|
|
5882
|
+
release: /* @__PURE__ */ new Set(["--assignee", "--message"]),
|
|
5883
|
+
comments: /* @__PURE__ */ new Set([
|
|
5884
|
+
"--add",
|
|
5885
|
+
"--body",
|
|
5886
|
+
"--comment",
|
|
5887
|
+
"--file",
|
|
5888
|
+
"--edit",
|
|
5889
|
+
"--delete",
|
|
5890
|
+
"--limit",
|
|
5891
|
+
"--message"
|
|
5892
|
+
]),
|
|
5893
|
+
notes: /* @__PURE__ */ new Set([
|
|
5894
|
+
"--add",
|
|
5895
|
+
"--file",
|
|
5896
|
+
"--edit",
|
|
5897
|
+
"--delete",
|
|
5898
|
+
"--limit",
|
|
5899
|
+
"--message"
|
|
5900
|
+
]),
|
|
5901
|
+
learnings: /* @__PURE__ */ new Set([
|
|
5902
|
+
"--add",
|
|
5903
|
+
"--file",
|
|
5904
|
+
"--edit",
|
|
5905
|
+
"--delete",
|
|
5906
|
+
"--limit",
|
|
5907
|
+
"--message"
|
|
5908
|
+
]),
|
|
5909
|
+
files: /* @__PURE__ */ new Set([
|
|
5910
|
+
"--add",
|
|
5911
|
+
"--add-glob",
|
|
5912
|
+
"--remove",
|
|
5913
|
+
"--migrate",
|
|
5914
|
+
"--note",
|
|
5915
|
+
"--message"
|
|
5916
|
+
]),
|
|
5917
|
+
docs: /* @__PURE__ */ new Set([
|
|
5918
|
+
"--add",
|
|
5919
|
+
"--add-glob",
|
|
5920
|
+
"--remove",
|
|
5921
|
+
"--migrate",
|
|
5922
|
+
"--note",
|
|
5923
|
+
"--message"
|
|
5924
|
+
]),
|
|
5925
|
+
deps: /* @__PURE__ */ new Set([
|
|
5926
|
+
"--format",
|
|
5927
|
+
"--max-depth",
|
|
5928
|
+
"--collapse",
|
|
5929
|
+
"--node-limit",
|
|
5930
|
+
"--edge-limit",
|
|
5931
|
+
"--token-budget",
|
|
5932
|
+
"--cursor"
|
|
5933
|
+
]),
|
|
5934
|
+
test: /* @__PURE__ */ new Set([
|
|
5935
|
+
"--add",
|
|
5936
|
+
"--add-json",
|
|
5937
|
+
"--remove",
|
|
5938
|
+
"--match",
|
|
5939
|
+
"--only-index",
|
|
5940
|
+
"--timeout",
|
|
5941
|
+
"--env-set",
|
|
5942
|
+
"--env-clear",
|
|
5943
|
+
"--pm-context",
|
|
5944
|
+
"--message"
|
|
5945
|
+
])
|
|
5946
|
+
};
|
|
5947
|
+
var NPX_FLAGS_WITH_VALUE = /* @__PURE__ */ new Set(["-p", "--package"]);
|
|
5948
|
+
var NPX_COMMAND_STRING_FLAGS = /* @__PURE__ */ new Set(["-c", "--call"]);
|
|
5580
5949
|
var PNPM_GLOBAL_FLAGS_WITH_VALUE = /* @__PURE__ */ new Set([
|
|
5581
5950
|
"-c",
|
|
5582
5951
|
"-C",
|
|
@@ -5606,6 +5975,37 @@ var SCRIPT_RUN_FLAGS_WITH_VALUE = /* @__PURE__ */ new Set([
|
|
|
5606
5975
|
function splitNormalizedCommandSegments(normalizedCommand) {
|
|
5607
5976
|
return normalizedCommand.split(/&&|\|\||\||;/).map((segment) => segment.trim()).filter((segment) => segment.length > 0);
|
|
5608
5977
|
}
|
|
5978
|
+
function extractPmInvocationArgsFromSegment(segment) {
|
|
5979
|
+
const tokens = stripLeadingEnvAssignments(segment.split(" ").filter((token) => token.length > 0));
|
|
5980
|
+
if (tokens.length === 0)
|
|
5981
|
+
return null;
|
|
5982
|
+
const [executable, ...args] = tokens;
|
|
5983
|
+
if (isPmExecutableToken(executable) || isPmCliScriptToken(executable)) {
|
|
5984
|
+
return args;
|
|
5985
|
+
}
|
|
5986
|
+
if (executable === "node" && args[0] && isPmCliScriptToken(args[0])) {
|
|
5987
|
+
return args.slice(1);
|
|
5988
|
+
}
|
|
5989
|
+
const invocation = executable === "npx" || executable === "bunx" ? parseNpxCommand(args) : executable === "pnpm" ? parsePnpmDlxCommand(args) : executable === "npm" ? parseNpmExecCommand(args) : null;
|
|
5990
|
+
return invocation && (isPmExecutableToken(invocation.command) || isPmCliPackageToken(invocation.command)) ? invocation.args : null;
|
|
5991
|
+
}
|
|
5992
|
+
var extractReferencedPmItemIdsFromCommand = (command, idPrefix = "pm") => {
|
|
5993
|
+
const normalizedPrefix = idPrefix.trim().toLowerCase().replace(/-+$/, "");
|
|
5994
|
+
if (normalizedPrefix.length === 0)
|
|
5995
|
+
return [];
|
|
5996
|
+
const normalizedCommand = command.trim().replaceAll("\\", "/").replaceAll('"', "").replaceAll("'", "").replaceAll(/\s+/g, " ").toLowerCase();
|
|
5997
|
+
const ids = /* @__PURE__ */ new Set();
|
|
5998
|
+
for (const segment of splitNormalizedCommandSegments(normalizedCommand)) {
|
|
5999
|
+
const invocationArgs = extractPmInvocationArgsFromSegment(segment);
|
|
6000
|
+
const context = invocationArgs ? resolvePmSubcommandContext(invocationArgs) : null;
|
|
6001
|
+
const candidate = context && PM_SUBCOMMANDS_WITH_ITEM_REFERENCE.has(context.subcommand) ? firstPositionalToken(context.remaining, PM_ITEM_REFERENCE_FLAGS_WITH_VALUE[context.subcommand]) : void 0;
|
|
6002
|
+
const normalizedCandidate = candidate?.trim().toLowerCase();
|
|
6003
|
+
if (normalizedCandidate?.startsWith(`${normalizedPrefix}-`) === true && normalizedCandidate.length > normalizedPrefix.length + 1) {
|
|
6004
|
+
ids.add(candidate);
|
|
6005
|
+
}
|
|
6006
|
+
}
|
|
6007
|
+
return [...ids].sort((left, right) => left.localeCompare(right));
|
|
6008
|
+
};
|
|
5609
6009
|
function stripLeadingEnvAssignments(tokens) {
|
|
5610
6010
|
let start = 0;
|
|
5611
6011
|
if (tokens[start] === "env") {
|
|
@@ -5675,15 +6075,16 @@ function parseNpxCommand(tokens) {
|
|
|
5675
6075
|
if (!token.startsWith("-")) {
|
|
5676
6076
|
break;
|
|
5677
6077
|
}
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
6078
|
+
const inlineCommandMatch = /^(?:-c|--call)=(.*)$/.exec(token);
|
|
6079
|
+
if (inlineCommandMatch) {
|
|
6080
|
+
const command2 = inlineCommandMatch[1];
|
|
6081
|
+
return command2 ? { command: command2, args: tokens.slice(index + 1) } : null;
|
|
5681
6082
|
}
|
|
5682
|
-
if (
|
|
5683
|
-
index +=
|
|
5684
|
-
|
|
6083
|
+
if (NPX_COMMAND_STRING_FLAGS.has(token)) {
|
|
6084
|
+
index += 1;
|
|
6085
|
+
break;
|
|
5685
6086
|
}
|
|
5686
|
-
index += 1;
|
|
6087
|
+
index += NPX_FLAGS_WITH_VALUE.has(token) && !token.includes("=") ? 2 : 1;
|
|
5687
6088
|
}
|
|
5688
6089
|
const command = tokens[index];
|
|
5689
6090
|
if (!command) {
|
|
@@ -5758,11 +6159,18 @@ function resolvePmSubcommandContext(args) {
|
|
|
5758
6159
|
}
|
|
5759
6160
|
return null;
|
|
5760
6161
|
}
|
|
5761
|
-
function firstPositionalToken(tokens) {
|
|
5762
|
-
for (
|
|
6162
|
+
function firstPositionalToken(tokens, flagsWithValue = /* @__PURE__ */ new Set()) {
|
|
6163
|
+
for (let index = 0; index < tokens.length; index += 1) {
|
|
6164
|
+
const token = tokens[index];
|
|
6165
|
+
if (token === "--") {
|
|
6166
|
+
return tokens[index + 1];
|
|
6167
|
+
}
|
|
5763
6168
|
if (!token.startsWith("-")) {
|
|
5764
6169
|
return token;
|
|
5765
6170
|
}
|
|
6171
|
+
if (!token.includes("=") && (PM_GLOBAL_FLAGS_WITH_VALUE.has(token) || flagsWithValue.has(token))) {
|
|
6172
|
+
index += 1;
|
|
6173
|
+
}
|
|
5766
6174
|
}
|
|
5767
6175
|
return void 0;
|
|
5768
6176
|
}
|
|
@@ -5793,24 +6201,6 @@ var LINKED_TEST_INFRA_COLLISION_PATTERNS = [
|
|
|
5793
6201
|
/web server[^.\n]*already running/i,
|
|
5794
6202
|
/failed to listen on/i
|
|
5795
6203
|
];
|
|
5796
|
-
var PM_SUBCOMMANDS_WITH_ITEM_REFERENCE = /* @__PURE__ */ new Set([
|
|
5797
|
-
"get",
|
|
5798
|
-
"history",
|
|
5799
|
-
"restore",
|
|
5800
|
-
"update",
|
|
5801
|
-
"close",
|
|
5802
|
-
"delete",
|
|
5803
|
-
"append",
|
|
5804
|
-
"claim",
|
|
5805
|
-
"release",
|
|
5806
|
-
"comments",
|
|
5807
|
-
"notes",
|
|
5808
|
-
"learnings",
|
|
5809
|
-
"files",
|
|
5810
|
-
"docs",
|
|
5811
|
-
"deps",
|
|
5812
|
-
"test"
|
|
5813
|
-
]);
|
|
5814
6204
|
var PM_TRACKER_READ_SUBCOMMANDS = /* @__PURE__ */ new Set([
|
|
5815
6205
|
"activity",
|
|
5816
6206
|
"calendar",
|
|
@@ -5987,51 +6377,6 @@ function mergeEnvClearDirectives(entries, optionName) {
|
|
|
5987
6377
|
}
|
|
5988
6378
|
return [...new Set(values)];
|
|
5989
6379
|
}
|
|
5990
|
-
function looksLikePrefixedItemId(token, idPrefix) {
|
|
5991
|
-
const normalizedPrefix = idPrefix.trim().toLowerCase().replace(/-+$/, "");
|
|
5992
|
-
if (normalizedPrefix.length === 0) {
|
|
5993
|
-
return false;
|
|
5994
|
-
}
|
|
5995
|
-
const normalized = token.trim().toLowerCase();
|
|
5996
|
-
if (!normalized.startsWith(`${normalizedPrefix}-`)) {
|
|
5997
|
-
return false;
|
|
5998
|
-
}
|
|
5999
|
-
return normalized.length > normalizedPrefix.length + 1;
|
|
6000
|
-
}
|
|
6001
|
-
function extractPmInvocationArgsFromSegment(segment) {
|
|
6002
|
-
const rawTokens = segment.split(" ").filter((token) => token.length > 0);
|
|
6003
|
-
const tokens = stripLeadingEnvAssignments(rawTokens);
|
|
6004
|
-
if (tokens.length === 0) {
|
|
6005
|
-
return null;
|
|
6006
|
-
}
|
|
6007
|
-
const [executable, ...args] = tokens;
|
|
6008
|
-
if (isPmExecutableToken(executable) || isPmCliScriptToken(executable)) {
|
|
6009
|
-
return args;
|
|
6010
|
-
}
|
|
6011
|
-
if (executable === "node" && args.length > 0 && isPmCliScriptToken(args[0])) {
|
|
6012
|
-
return args.slice(1);
|
|
6013
|
-
}
|
|
6014
|
-
return extractPackageManagerPmInvocationArgs(executable, args);
|
|
6015
|
-
}
|
|
6016
|
-
function extractPackageManagerPmInvocationArgs(executable, args) {
|
|
6017
|
-
const parsed = parsePackageManagerPmInvocation(executable, args);
|
|
6018
|
-
if (!parsed || !isPmExecutableToken(parsed.command) && !isPmCliPackageToken(parsed.command)) {
|
|
6019
|
-
return null;
|
|
6020
|
-
}
|
|
6021
|
-
return parsed.args;
|
|
6022
|
-
}
|
|
6023
|
-
function parsePackageManagerPmInvocation(executable, args) {
|
|
6024
|
-
if (executable === "npx" || executable === "bunx") {
|
|
6025
|
-
return parseNpxCommand(args);
|
|
6026
|
-
}
|
|
6027
|
-
if (executable === "pnpm") {
|
|
6028
|
-
return parsePnpmDlxCommand(args);
|
|
6029
|
-
}
|
|
6030
|
-
if (executable === "npm") {
|
|
6031
|
-
return parseNpmExecCommand(args);
|
|
6032
|
-
}
|
|
6033
|
-
return null;
|
|
6034
|
-
}
|
|
6035
6380
|
function commandInvokesPmCli(command) {
|
|
6036
6381
|
const normalizedCommand = normalizeCommandForValidation(command);
|
|
6037
6382
|
return splitNormalizedCommandSegments(normalizedCommand).some((segment) => extractPmInvocationArgsFromSegment(segment) !== null);
|
|
@@ -6050,31 +6395,6 @@ function commandInvokesPmTrackerReadCommand(command) {
|
|
|
6050
6395
|
return PM_TRACKER_READ_SUBCOMMANDS.has(context.subcommand);
|
|
6051
6396
|
});
|
|
6052
6397
|
}
|
|
6053
|
-
function extractReferencedPmItemIdsFromCommand(command, idPrefix = "pm") {
|
|
6054
|
-
const normalizedCommand = normalizeCommandForValidation(command);
|
|
6055
|
-
const ids = /* @__PURE__ */ new Set();
|
|
6056
|
-
for (const segment of splitNormalizedCommandSegments(normalizedCommand)) {
|
|
6057
|
-
const invocationArgs = extractPmInvocationArgsFromSegment(segment);
|
|
6058
|
-
if (!invocationArgs) {
|
|
6059
|
-
continue;
|
|
6060
|
-
}
|
|
6061
|
-
const context = resolvePmSubcommandContext(invocationArgs);
|
|
6062
|
-
if (!context) {
|
|
6063
|
-
continue;
|
|
6064
|
-
}
|
|
6065
|
-
if (!PM_SUBCOMMANDS_WITH_ITEM_REFERENCE.has(context.subcommand)) {
|
|
6066
|
-
continue;
|
|
6067
|
-
}
|
|
6068
|
-
const candidate = firstPositionalToken(context.remaining);
|
|
6069
|
-
if (!candidate) {
|
|
6070
|
-
continue;
|
|
6071
|
-
}
|
|
6072
|
-
if (looksLikePrefixedItemId(candidate, idPrefix)) {
|
|
6073
|
-
ids.add(candidate);
|
|
6074
|
-
}
|
|
6075
|
-
}
|
|
6076
|
-
return [...ids].sort((left, right) => left.localeCompare(right));
|
|
6077
|
-
}
|
|
6078
6398
|
function resolveDirectRunnerSubcommand(parsed) {
|
|
6079
6399
|
if (!parsed) {
|
|
6080
6400
|
return void 0;
|
|
@@ -6184,7 +6504,7 @@ function packageManagerInvokesUnsafeDirectTestRunner(executable, args) {
|
|
|
6184
6504
|
return isDirectTestRunnerSubcommand(parseNpxCommand(args)?.command);
|
|
6185
6505
|
}
|
|
6186
6506
|
if (executable === "pnpm" || executable === "npm") {
|
|
6187
|
-
return isDirectTestRunnerSubcommand(
|
|
6507
|
+
return isDirectTestRunnerSubcommand((executable === "pnpm" ? parsePnpmDlxCommand(args) : parseNpmExecCommand(args))?.command) || firstDirectTestRunnerSubcommand(executable, args) === "vitest";
|
|
6188
6508
|
}
|
|
6189
6509
|
return (executable === "yarn" || executable === "bun") && firstDirectTestRunnerSubcommand(executable, args) === "vitest";
|
|
6190
6510
|
}
|
|
@@ -6661,7 +6981,7 @@ async function copyIntoSandboxIfPresent(sourcePath, targetPath, recursive = fals
|
|
|
6661
6981
|
if (!await pathExists(sourcePath)) {
|
|
6662
6982
|
return;
|
|
6663
6983
|
}
|
|
6664
|
-
await mkdir(
|
|
6984
|
+
await mkdir(path8.dirname(targetPath), { recursive: true });
|
|
6665
6985
|
try {
|
|
6666
6986
|
if (recursive) {
|
|
6667
6987
|
await cp(sourcePath, targetPath, { recursive: true, force: true });
|
|
@@ -6677,9 +6997,9 @@ async function copyIntoSandboxIfPresent(sourcePath, targetPath, recursive = fals
|
|
|
6677
6997
|
}
|
|
6678
6998
|
async function seedLinkedTestSandbox(sandboxPmPath, sandboxGlobalPath, sourceRoots) {
|
|
6679
6999
|
await copyIntoSandboxIfPresent(getSettingsPath(sourceRoots.projectPmRoot), getSettingsPath(sandboxPmPath));
|
|
6680
|
-
await copyIntoSandboxIfPresent(
|
|
7000
|
+
await copyIntoSandboxIfPresent(path8.join(sourceRoots.projectPmRoot, "extensions"), path8.join(sandboxPmPath, "extensions"), true);
|
|
6681
7001
|
await copyIntoSandboxIfPresent(getSettingsPath(sourceRoots.globalPmRoot), getSettingsPath(sandboxGlobalPath));
|
|
6682
|
-
await copyIntoSandboxIfPresent(
|
|
7002
|
+
await copyIntoSandboxIfPresent(path8.join(sourceRoots.globalPmRoot, "extensions"), path8.join(sandboxGlobalPath, "extensions"), true);
|
|
6683
7003
|
}
|
|
6684
7004
|
async function seedLinkedTestTrackerData(sourceRoot, sandboxRoot) {
|
|
6685
7005
|
if (!await pathExists(sourceRoot)) {
|
|
@@ -6690,8 +7010,8 @@ async function seedLinkedTestTrackerData(sourceRoot, sandboxRoot) {
|
|
|
6690
7010
|
if (LINKED_TEST_TRACKER_DIRS_TO_SKIP.has(entry.name)) {
|
|
6691
7011
|
continue;
|
|
6692
7012
|
}
|
|
6693
|
-
const sourcePath =
|
|
6694
|
-
const targetPath =
|
|
7013
|
+
const sourcePath = path8.join(sourceRoot, entry.name);
|
|
7014
|
+
const targetPath = path8.join(sandboxRoot, entry.name);
|
|
6695
7015
|
if (entry.isDirectory()) {
|
|
6696
7016
|
await copyIntoSandboxIfPresent(sourcePath, targetPath, true);
|
|
6697
7017
|
continue;
|
|
@@ -6711,7 +7031,7 @@ async function countLinkedTestItemFiles(pmRoot) {
|
|
|
6711
7031
|
if (!entry.isDirectory() || LINKED_TEST_ITEM_COUNT_DIRS_TO_SKIP.has(entry.name)) {
|
|
6712
7032
|
continue;
|
|
6713
7033
|
}
|
|
6714
|
-
const folderPath =
|
|
7034
|
+
const folderPath = path8.join(pmRoot, entry.name);
|
|
6715
7035
|
let files;
|
|
6716
7036
|
try {
|
|
6717
7037
|
files = await readdir(folderPath, { withFileTypes: true });
|
|
@@ -6906,10 +7226,10 @@ ${stderr}`;
|
|
|
6906
7226
|
function createLinkedTestSandboxLayout(sandboxRoot) {
|
|
6907
7227
|
return {
|
|
6908
7228
|
root: sandboxRoot,
|
|
6909
|
-
schemaProjectPmPath:
|
|
6910
|
-
schemaGlobalPmPath:
|
|
6911
|
-
trackerProjectPmPath:
|
|
6912
|
-
trackerGlobalPmPath:
|
|
7229
|
+
schemaProjectPmPath: path8.join(sandboxRoot, "schema", "project", ".agents", "pm"),
|
|
7230
|
+
schemaGlobalPmPath: path8.join(sandboxRoot, "schema", "global"),
|
|
7231
|
+
trackerProjectPmPath: path8.join(sandboxRoot, "tracker", "project", ".agents", "pm"),
|
|
7232
|
+
trackerGlobalPmPath: path8.join(sandboxRoot, "tracker", "global")
|
|
6913
7233
|
};
|
|
6914
7234
|
}
|
|
6915
7235
|
async function initializeLinkedTestSandboxes(layout) {
|
|
@@ -7109,7 +7429,7 @@ async function runSingleLinkedTest(params) {
|
|
|
7109
7429
|
}
|
|
7110
7430
|
async function runLinkedTests(tests, defaultTimeoutSeconds, options) {
|
|
7111
7431
|
const results = [];
|
|
7112
|
-
const sandboxRoot = await mkdtemp(
|
|
7432
|
+
const sandboxRoot = await mkdtemp(path8.join(tmpdir(), "pm-linked-test-"));
|
|
7113
7433
|
const layout = createLinkedTestSandboxLayout(sandboxRoot);
|
|
7114
7434
|
const runLevelPmContextMode = parsePmContextMode(options?.pmContext);
|
|
7115
7435
|
const progressMode = options?.progress === true ? "always" : "auto";
|
|
@@ -7768,10 +8088,10 @@ async function runTestAll(options, global) {
|
|
|
7768
8088
|
import os from "node:os";
|
|
7769
8089
|
|
|
7770
8090
|
// dist/core/test/background-runs.js
|
|
7771
|
-
import
|
|
8091
|
+
import fs8 from "node:fs/promises";
|
|
7772
8092
|
import { spawn as spawn2 } from "node:child_process";
|
|
7773
8093
|
import { createHash, randomBytes } from "node:crypto";
|
|
7774
|
-
import
|
|
8094
|
+
import path9 from "node:path";
|
|
7775
8095
|
var BACKGROUND_RUN_ACTIVE_STATUSES = /* @__PURE__ */ new Set([
|
|
7776
8096
|
"queued",
|
|
7777
8097
|
"running"
|
|
@@ -7809,7 +8129,7 @@ function buildBackgroundTestRunFingerprint(kind, commandArgs, pmRoot) {
|
|
|
7809
8129
|
const payload = {
|
|
7810
8130
|
kind,
|
|
7811
8131
|
command: normalizeCommandArgs(commandArgs),
|
|
7812
|
-
pm_root:
|
|
8132
|
+
pm_root: path9.resolve(pmRoot)
|
|
7813
8133
|
};
|
|
7814
8134
|
return createHash("sha256").update(JSON.stringify(payload)).digest("hex");
|
|
7815
8135
|
}
|
|
@@ -7864,8 +8184,8 @@ async function listBackgroundRunRecordPaths(pmRoot) {
|
|
|
7864
8184
|
if (!await pathExists(recordsRoot)) {
|
|
7865
8185
|
return [];
|
|
7866
8186
|
}
|
|
7867
|
-
const entries = await
|
|
7868
|
-
return entries.filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) =>
|
|
8187
|
+
const entries = await fs8.readdir(recordsRoot, { withFileTypes: true });
|
|
8188
|
+
return entries.filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) => path9.join(recordsRoot, entry.name)).sort((left, right) => right.localeCompare(left));
|
|
7869
8189
|
}
|
|
7870
8190
|
function parseLinuxRssStatus(raw) {
|
|
7871
8191
|
const match = raw.match(/^VmRSS:\s+(\d+)\s+kB$/m);
|
|
@@ -7879,7 +8199,7 @@ async function readLinuxRssBytes(pid) {
|
|
|
7879
8199
|
return void 0;
|
|
7880
8200
|
}
|
|
7881
8201
|
try {
|
|
7882
|
-
const raw = await
|
|
8202
|
+
const raw = await fs8.readFile(`/proc/${pid}/status`, "utf8");
|
|
7883
8203
|
return parseLinuxRssStatus(raw);
|
|
7884
8204
|
} catch {
|
|
7885
8205
|
return void 0;
|
|
@@ -7907,7 +8227,7 @@ async function readLinuxCpuSeconds(pid) {
|
|
|
7907
8227
|
return {};
|
|
7908
8228
|
}
|
|
7909
8229
|
try {
|
|
7910
|
-
const raw = await
|
|
8230
|
+
const raw = await fs8.readFile(`/proc/${pid}/stat`, "utf8");
|
|
7911
8231
|
return parseLinuxCpuStat(raw);
|
|
7912
8232
|
} catch {
|
|
7913
8233
|
return {};
|
|
@@ -8043,18 +8363,18 @@ function tailLines(value, limit) {
|
|
|
8043
8363
|
async function resolveBackgroundCliEntry(cwd) {
|
|
8044
8364
|
const configured = process.env.PM_BACKGROUND_CLI_ENTRY?.trim();
|
|
8045
8365
|
if (configured && configured.length > 0) {
|
|
8046
|
-
const resolvedConfigured =
|
|
8366
|
+
const resolvedConfigured = path9.resolve(cwd, configured);
|
|
8047
8367
|
if (await pathExists(resolvedConfigured)) {
|
|
8048
8368
|
return resolvedConfigured;
|
|
8049
8369
|
}
|
|
8050
8370
|
}
|
|
8051
|
-
const distEntry =
|
|
8371
|
+
const distEntry = path9.resolve(cwd, "dist", "cli.js");
|
|
8052
8372
|
if (await pathExists(distEntry)) {
|
|
8053
8373
|
return distEntry;
|
|
8054
8374
|
}
|
|
8055
8375
|
const argvEntry = process.argv[1]?.trim();
|
|
8056
8376
|
if (argvEntry && argvEntry.length > 0) {
|
|
8057
|
-
const resolvedArgvEntry =
|
|
8377
|
+
const resolvedArgvEntry = path9.resolve(cwd, argvEntry);
|
|
8058
8378
|
if (await pathExists(resolvedArgvEntry)) {
|
|
8059
8379
|
return resolvedArgvEntry;
|
|
8060
8380
|
}
|
|
@@ -8111,8 +8431,8 @@ async function startBackgroundTestRun(options) {
|
|
|
8111
8431
|
const stdoutPath = getTestRunStdoutPath(options.pmRoot, runId);
|
|
8112
8432
|
const stderrPath = getTestRunStderrPath(options.pmRoot, runId);
|
|
8113
8433
|
const resultPath = getTestRunResultPath(options.pmRoot, runId);
|
|
8114
|
-
await
|
|
8115
|
-
await
|
|
8434
|
+
await fs8.writeFile(stdoutPath, "", "utf8");
|
|
8435
|
+
await fs8.writeFile(stderrPath, "", "utf8");
|
|
8116
8436
|
const record = {
|
|
8117
8437
|
id: runId,
|
|
8118
8438
|
kind: options.kind,
|
|
@@ -8191,7 +8511,7 @@ async function spawnBackgroundTestRunWorker(options) {
|
|
|
8191
8511
|
}
|
|
8192
8512
|
async function appendFileOrdered(queue, filePath, text) {
|
|
8193
8513
|
await queue;
|
|
8194
|
-
await
|
|
8514
|
+
await fs8.appendFile(filePath, text, "utf8");
|
|
8195
8515
|
}
|
|
8196
8516
|
function resolvePositiveEnvInteger(name, fallback) {
|
|
8197
8517
|
const parsed = Number.parseInt(process.env[name] ?? "", 10);
|
|
@@ -8770,11 +9090,11 @@ async function runTestRunsWorker(runId, global) {
|
|
|
8770
9090
|
};
|
|
8771
9091
|
}
|
|
8772
9092
|
|
|
8773
|
-
// dist/
|
|
8774
|
-
import
|
|
9093
|
+
// dist/sdk/governance/validate.js
|
|
9094
|
+
import fs9 from "node:fs/promises";
|
|
8775
9095
|
import { realpathSync } from "node:fs";
|
|
8776
9096
|
import { execFile } from "node:child_process";
|
|
8777
|
-
import
|
|
9097
|
+
import path10 from "node:path";
|
|
8778
9098
|
import { promisify } from "node:util";
|
|
8779
9099
|
|
|
8780
9100
|
// dist/core/validate/fix-planning.js
|
|
@@ -9080,8 +9400,8 @@ function buildMissingLinkedPathRows(rows, lookup) {
|
|
|
9080
9400
|
});
|
|
9081
9401
|
}
|
|
9082
9402
|
}
|
|
9083
|
-
return [...buckets.entries()].sort(([left], [right]) => left.localeCompare(right)).map(([
|
|
9084
|
-
path:
|
|
9403
|
+
return [...buckets.entries()].sort(([left], [right]) => left.localeCompare(right)).map(([path11, bucket]) => ({
|
|
9404
|
+
path: path11,
|
|
9085
9405
|
classification: bucket.classification,
|
|
9086
9406
|
items: [...bucket.owners.values()].map((owner) => {
|
|
9087
9407
|
const metadata = lookup(owner.item_id);
|
|
@@ -9111,7 +9431,7 @@ function summarizeMissingLinkedPathRows(rows) {
|
|
|
9111
9431
|
return lines;
|
|
9112
9432
|
}
|
|
9113
9433
|
|
|
9114
|
-
// dist/
|
|
9434
|
+
// dist/sdk/governance/validate.js
|
|
9115
9435
|
var FILE_SCAN_DIRECTORIES = ["src", "tests", "docs"];
|
|
9116
9436
|
var FILE_SCAN_ROOT_FILES = [
|
|
9117
9437
|
"README.md",
|
|
@@ -9222,6 +9542,7 @@ var METADATA_TRUNCATED_KEY_BY_FIELD = {
|
|
|
9222
9542
|
release: "missing_release_truncated"
|
|
9223
9543
|
};
|
|
9224
9544
|
var GIT_LS_FILES_MAX_BUFFER = 32 * 1024 * 1024;
|
|
9545
|
+
var GIT_LS_FILES_TIMEOUT_MS = 1e4;
|
|
9225
9546
|
var FILE_LIST_SUMMARY_LIMIT = 40;
|
|
9226
9547
|
var DIAGNOSTIC_LIST_SUMMARY_LIMIT = 5;
|
|
9227
9548
|
var LINKED_ARTIFACT_MAX_PATH_LENGTH = 4096;
|
|
@@ -9417,16 +9738,16 @@ function resolveFileScanMode(scanMode) {
|
|
|
9417
9738
|
throw new PmCliError(`Unknown --scan-mode value "${scanMode}". Supported values: ${VALIDATE_FILE_SCAN_MODES.join(", ")}.`, EXIT_CODE.USAGE);
|
|
9418
9739
|
}
|
|
9419
9740
|
function resolveWorkspaceRoot(pmRoot) {
|
|
9420
|
-
const resolvedPmRoot =
|
|
9741
|
+
const resolvedPmRoot = path10.resolve(pmRoot);
|
|
9421
9742
|
const normalizedPmRoot = resolvedPmRoot.replaceAll("\\", "/");
|
|
9422
9743
|
if (normalizedPmRoot.endsWith("/.agents/pm")) {
|
|
9423
|
-
return
|
|
9744
|
+
return path10.dirname(path10.dirname(resolvedPmRoot));
|
|
9424
9745
|
}
|
|
9425
|
-
const resolvedCwd =
|
|
9746
|
+
const resolvedCwd = path10.resolve(process.cwd());
|
|
9426
9747
|
const canonicalPmRoot = realpathForWorkspaceRoot(resolvedPmRoot);
|
|
9427
9748
|
const canonicalCwd = realpathForWorkspaceRoot(resolvedCwd);
|
|
9428
|
-
const relativeFromPmRoot =
|
|
9429
|
-
const cwdInsidePmRoot = relativeFromPmRoot.length === 0 || !relativeFromPmRoot.startsWith("..") && !
|
|
9749
|
+
const relativeFromPmRoot = path10.relative(canonicalPmRoot, canonicalCwd);
|
|
9750
|
+
const cwdInsidePmRoot = relativeFromPmRoot.length === 0 || !relativeFromPmRoot.startsWith("..") && !path10.isAbsolute(relativeFromPmRoot);
|
|
9430
9751
|
if (cwdInsidePmRoot) {
|
|
9431
9752
|
return resolvedPmRoot;
|
|
9432
9753
|
}
|
|
@@ -9436,14 +9757,14 @@ function realpathForWorkspaceRoot(inputPath) {
|
|
|
9436
9757
|
try {
|
|
9437
9758
|
return realpathSync.native(inputPath);
|
|
9438
9759
|
} catch {
|
|
9439
|
-
return
|
|
9760
|
+
return path10.resolve(inputPath);
|
|
9440
9761
|
}
|
|
9441
9762
|
}
|
|
9442
9763
|
async function listFilesRecursive(basePath, relativePath, output) {
|
|
9443
|
-
const targetDirectory = relativePath.length > 0 ?
|
|
9764
|
+
const targetDirectory = relativePath.length > 0 ? path10.join(basePath, relativePath) : basePath;
|
|
9444
9765
|
let entries;
|
|
9445
9766
|
try {
|
|
9446
|
-
entries = await
|
|
9767
|
+
entries = await fs9.readdir(targetDirectory, { withFileTypes: true });
|
|
9447
9768
|
} catch (error) {
|
|
9448
9769
|
if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
|
|
9449
9770
|
return;
|
|
@@ -9454,7 +9775,7 @@ async function listFilesRecursive(basePath, relativePath, output) {
|
|
|
9454
9775
|
if (entry.name.startsWith(".")) {
|
|
9455
9776
|
continue;
|
|
9456
9777
|
}
|
|
9457
|
-
const childRelative = relativePath.length > 0 ?
|
|
9778
|
+
const childRelative = relativePath.length > 0 ? path10.join(relativePath, entry.name) : entry.name;
|
|
9458
9779
|
if (entry.isDirectory()) {
|
|
9459
9780
|
if (DIRECTORY_IGNORE_SET.has(entry.name)) {
|
|
9460
9781
|
continue;
|
|
@@ -9474,9 +9795,9 @@ async function collectDefaultProjectFileCandidates(workspaceRoot) {
|
|
|
9474
9795
|
await listFilesRecursive(workspaceRoot, directory, discovered);
|
|
9475
9796
|
}
|
|
9476
9797
|
for (const candidate of FILE_SCAN_ROOT_FILES) {
|
|
9477
|
-
const absolute =
|
|
9798
|
+
const absolute = path10.join(workspaceRoot, candidate);
|
|
9478
9799
|
try {
|
|
9479
|
-
const stats = await
|
|
9800
|
+
const stats = await fs9.stat(absolute);
|
|
9480
9801
|
if (stats.isFile()) {
|
|
9481
9802
|
discovered.push(normalizeRelativePath2(candidate));
|
|
9482
9803
|
}
|
|
@@ -9491,7 +9812,8 @@ async function collectTrackedGitFileCandidates(workspaceRoot) {
|
|
|
9491
9812
|
cwd: workspaceRoot,
|
|
9492
9813
|
encoding: "utf8",
|
|
9493
9814
|
maxBuffer: GIT_LS_FILES_MAX_BUFFER,
|
|
9494
|
-
windowsHide: true
|
|
9815
|
+
windowsHide: true,
|
|
9816
|
+
timeout: GIT_LS_FILES_TIMEOUT_MS
|
|
9495
9817
|
});
|
|
9496
9818
|
const discovered = stdout.split("\0").map((value) => normalizeRelativePath2(value)).filter((value) => value.length > 0);
|
|
9497
9819
|
return [...new Set(discovered)].sort((left, right) => left.localeCompare(right));
|
|
@@ -9505,7 +9827,7 @@ function resolvePmInternalCandidatePrefixes(pmRoot, workspaceRoot) {
|
|
|
9505
9827
|
if (configuredDefault.length > 0) {
|
|
9506
9828
|
prefixes.add(configuredDefault);
|
|
9507
9829
|
}
|
|
9508
|
-
const relativePmRoot = normalizeRelativeDirectoryPath(
|
|
9830
|
+
const relativePmRoot = normalizeRelativeDirectoryPath(path10.relative(workspaceRoot, pmRoot));
|
|
9509
9831
|
if (relativePmRoot.length > 0 && !relativePmRoot.startsWith("..")) {
|
|
9510
9832
|
prefixes.add(relativePmRoot);
|
|
9511
9833
|
}
|
|
@@ -9851,7 +10173,7 @@ function buildResolutionCheck(items, statusRegistry, verboseDiagnostics) {
|
|
|
9851
10173
|
function escapeRegExp(value) {
|
|
9852
10174
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
9853
10175
|
}
|
|
9854
|
-
function buildLifecycleDependencyGraph(activeItems, idPrefix = "pm") {
|
|
10176
|
+
function buildLifecycleDependencyGraph(activeItems, idPrefix = "pm", relationshipRegistry = createRelationshipKindRegistry()) {
|
|
9855
10177
|
const activeItemIds = new Set(activeItems.map((item) => item.id));
|
|
9856
10178
|
const graph = /* @__PURE__ */ new Map();
|
|
9857
10179
|
const sortedItems = [...activeItems].sort((left, right) => left.id.localeCompare(right.id));
|
|
@@ -9862,6 +10184,12 @@ function buildLifecycleDependencyGraph(activeItems, idPrefix = "pm") {
|
|
|
9862
10184
|
edges.add(blockedBy);
|
|
9863
10185
|
}
|
|
9864
10186
|
for (const dependency of item.dependencies ?? []) {
|
|
10187
|
+
const dependencyKind = toMeaningfulString(dependency.kind);
|
|
10188
|
+
if (!dependencyKind)
|
|
10189
|
+
continue;
|
|
10190
|
+
const relationshipDefinition = relationshipRegistry.resolve(dependencyKind);
|
|
10191
|
+
if (!relationshipDefinition?.ordering)
|
|
10192
|
+
continue;
|
|
9865
10193
|
const dependencyId = toMeaningfulString(dependency.id);
|
|
9866
10194
|
if (!dependencyId || !activeItemIds.has(dependencyId)) {
|
|
9867
10195
|
continue;
|
|
@@ -9979,30 +10307,30 @@ function resolveLifecycleDependencyCycleSamplePath(component, graph) {
|
|
|
9979
10307
|
return [start, start];
|
|
9980
10308
|
}
|
|
9981
10309
|
const componentSet = new Set(component);
|
|
9982
|
-
const
|
|
10310
|
+
const path11 = [start];
|
|
9983
10311
|
const visited = /* @__PURE__ */ new Set([start]);
|
|
9984
10312
|
const search = (current) => {
|
|
9985
10313
|
const neighbors = (graph.get(current) ?? []).filter((candidate) => componentSet.has(candidate));
|
|
9986
10314
|
for (const next of neighbors) {
|
|
9987
|
-
if (next === start &&
|
|
9988
|
-
|
|
10315
|
+
if (next === start && path11.length > 1) {
|
|
10316
|
+
path11.push(start);
|
|
9989
10317
|
return true;
|
|
9990
10318
|
}
|
|
9991
10319
|
if (visited.has(next)) {
|
|
9992
10320
|
continue;
|
|
9993
10321
|
}
|
|
9994
10322
|
visited.add(next);
|
|
9995
|
-
|
|
10323
|
+
path11.push(next);
|
|
9996
10324
|
if (search(next)) {
|
|
9997
10325
|
return true;
|
|
9998
10326
|
}
|
|
9999
|
-
|
|
10327
|
+
path11.pop();
|
|
10000
10328
|
visited.delete(next);
|
|
10001
10329
|
}
|
|
10002
10330
|
return false;
|
|
10003
10331
|
};
|
|
10004
10332
|
if (search(start)) {
|
|
10005
|
-
return [...
|
|
10333
|
+
return [...path11];
|
|
10006
10334
|
}
|
|
10007
10335
|
return [...component, start];
|
|
10008
10336
|
}
|
|
@@ -10260,12 +10588,12 @@ function linkedArtifactPathExceedsFilesystemLimits(artifactPath) {
|
|
|
10260
10588
|
return normalized.length > LINKED_ARTIFACT_MAX_PATH_LENGTH || normalized.split(/[\\/]/).some((segment) => segment.length > LINKED_ARTIFACT_MAX_SEGMENT_LENGTH);
|
|
10261
10589
|
}
|
|
10262
10590
|
async function linkedArtifactIsMissing(workspaceRoot, artifactPath) {
|
|
10263
|
-
const absolutePath =
|
|
10591
|
+
const absolutePath = path10.isAbsolute(artifactPath) ? artifactPath : path10.resolve(workspaceRoot, artifactPath);
|
|
10264
10592
|
if (linkedArtifactPathExceedsFilesystemLimits(absolutePath)) {
|
|
10265
10593
|
return false;
|
|
10266
10594
|
}
|
|
10267
10595
|
try {
|
|
10268
|
-
const stats = await
|
|
10596
|
+
const stats = await fs9.stat(absolutePath);
|
|
10269
10597
|
return !stats.isFile() && !stats.isDirectory();
|
|
10270
10598
|
} catch (error) {
|
|
10271
10599
|
const code = typeof error === "object" && error !== null && "code" in error ? error.code : void 0;
|
|
@@ -10639,7 +10967,7 @@ function buildFormatVersionCheck(items, verboseDiagnostics) {
|
|
|
10639
10967
|
};
|
|
10640
10968
|
}
|
|
10641
10969
|
var VALIDATE_AUTO_FIX_MESSAGE = "pm validate auto-fix";
|
|
10642
|
-
async function applyValidateFix(fix, global) {
|
|
10970
|
+
async function applyValidateFix(fix, global, services) {
|
|
10643
10971
|
switch (fix.kind) {
|
|
10644
10972
|
case "set_resolution":
|
|
10645
10973
|
case "set_close_reason":
|
|
@@ -10660,7 +10988,10 @@ async function applyValidateFix(fix, global) {
|
|
|
10660
10988
|
} else {
|
|
10661
10989
|
updateOptions.unset = ["parent"];
|
|
10662
10990
|
}
|
|
10663
|
-
|
|
10991
|
+
if (!services.runUpdate) {
|
|
10992
|
+
throw new PmCliError("Applying validate metadata/lifecycle fixes requires a runUpdate mutation service.", EXIT_CODE.USAGE);
|
|
10993
|
+
}
|
|
10994
|
+
await services.runUpdate(fix.item_id, updateOptions, global);
|
|
10664
10995
|
return;
|
|
10665
10996
|
}
|
|
10666
10997
|
case "prune_file_link": {
|
|
@@ -10677,7 +11008,7 @@ function pruneBatchKey(fix) {
|
|
|
10677
11008
|
}
|
|
10678
11009
|
return `${fix.kind}:${fix.item_id}`;
|
|
10679
11010
|
}
|
|
10680
|
-
async function applyValidateFixes(applicable, global) {
|
|
11011
|
+
async function applyValidateFixes(applicable, global, services) {
|
|
10681
11012
|
const applied = [];
|
|
10682
11013
|
const failed = [];
|
|
10683
11014
|
const pruneBatches = /* @__PURE__ */ new Map();
|
|
@@ -10685,7 +11016,7 @@ async function applyValidateFixes(applicable, global) {
|
|
|
10685
11016
|
const batchKey = pruneBatchKey(fix);
|
|
10686
11017
|
if (batchKey === null) {
|
|
10687
11018
|
try {
|
|
10688
|
-
await applyValidateFix(fix, global);
|
|
11019
|
+
await applyValidateFix(fix, global, services);
|
|
10689
11020
|
applied.push(fix);
|
|
10690
11021
|
} catch (error) {
|
|
10691
11022
|
failed.push({ fix, error });
|
|
@@ -10718,6 +11049,44 @@ async function applyValidateFixes(applicable, global) {
|
|
|
10718
11049
|
}
|
|
10719
11050
|
return { applied, failed };
|
|
10720
11051
|
}
|
|
11052
|
+
var _testOnlyValidateCommand = {
|
|
11053
|
+
applyValidateFix,
|
|
11054
|
+
applyValidateFixes,
|
|
11055
|
+
attachValidateFixHints,
|
|
11056
|
+
buildCommandReferencesCheck,
|
|
11057
|
+
buildDependencyReferencesCheck,
|
|
11058
|
+
buildCloseReasonBackfillRows,
|
|
11059
|
+
buildFilesCheck,
|
|
11060
|
+
buildLifecycleCheck,
|
|
11061
|
+
buildLifecycleDependencyGraph,
|
|
11062
|
+
buildLifecycleParentGraph,
|
|
11063
|
+
buildEstimateBackfillRows,
|
|
11064
|
+
buildMetadataCounts,
|
|
11065
|
+
buildMissingFieldOccurrences,
|
|
11066
|
+
buildOrphanedPathRows,
|
|
11067
|
+
classifyOrphanedPath,
|
|
11068
|
+
collectDefaultProjectFileCandidates,
|
|
11069
|
+
collectTrackedGitFileCandidates,
|
|
11070
|
+
detectLifecycleDependencyCycles,
|
|
11071
|
+
detectLifecycleParentCycles,
|
|
11072
|
+
escapeRegExp,
|
|
11073
|
+
extractItemIds,
|
|
11074
|
+
findLifecycleDependencyCycleComponents,
|
|
11075
|
+
isMetadataFieldMissing,
|
|
11076
|
+
linkedArtifactPathExceedsFilesystemLimits,
|
|
11077
|
+
listFilesRecursive,
|
|
11078
|
+
resolveDependencyCycleSeverity,
|
|
11079
|
+
resolveParentCycleSeverity,
|
|
11080
|
+
resolveFileScanMode,
|
|
11081
|
+
resolveLifecycleDependencyCycleSamplePath,
|
|
11082
|
+
resolveRequestedChecks,
|
|
11083
|
+
resolveValidateMetadataProfile,
|
|
11084
|
+
resolveWorkspaceRoot,
|
|
11085
|
+
sharedDirectoryPrefixLength,
|
|
11086
|
+
summarizeOrphanedPathRows,
|
|
11087
|
+
summarizeDuplicateIssueCodes,
|
|
11088
|
+
toMeaningfulString
|
|
11089
|
+
};
|
|
10721
11090
|
function recordValidateCheck(state, built, fixHintsEnabled) {
|
|
10722
11091
|
if (fixHintsEnabled) {
|
|
10723
11092
|
attachValidateFixHints(built.check, built.warnings);
|
|
@@ -10783,7 +11152,7 @@ function planValidateFixes(options, state, settings) {
|
|
|
10783
11152
|
}
|
|
10784
11153
|
return planned;
|
|
10785
11154
|
}
|
|
10786
|
-
async function buildValidateFixesSummary(options, state, settings, grantedFixScopes, global) {
|
|
11155
|
+
async function buildValidateFixesSummary(options, state, settings, grantedFixScopes, global, services) {
|
|
10787
11156
|
if (options.autoFix !== true && options.pruneMissing !== true) {
|
|
10788
11157
|
return void 0;
|
|
10789
11158
|
}
|
|
@@ -10793,7 +11162,7 @@ async function buildValidateFixesSummary(options, state, settings, grantedFixSco
|
|
|
10793
11162
|
const appliedFixRows = [];
|
|
10794
11163
|
const failedFixRows = [];
|
|
10795
11164
|
if (!dryRun) {
|
|
10796
|
-
const applied = await applyValidateFixes(applicable, global);
|
|
11165
|
+
const applied = await applyValidateFixes(applicable, global, services);
|
|
10797
11166
|
appliedFixRows.push(...applied.applied.map(toFixOutputRow));
|
|
10798
11167
|
failedFixRows.push(...applied.failed.map(({ fix, error }) => ({
|
|
10799
11168
|
...toFixOutputRow(fix),
|
|
@@ -10818,7 +11187,7 @@ async function buildValidateFixesSummary(options, state, settings, grantedFixSco
|
|
|
10818
11187
|
failed_fixes: failedFixRows
|
|
10819
11188
|
};
|
|
10820
11189
|
}
|
|
10821
|
-
async function runValidate(options, global) {
|
|
11190
|
+
async function runValidate(options, global, services = {}) {
|
|
10822
11191
|
const fixesRequested = options.autoFix === true || options.pruneMissing === true;
|
|
10823
11192
|
if (options.dryRun === true && !fixesRequested) {
|
|
10824
11193
|
throw new PmCliError("--dry-run requires --auto-fix or --prune-missing (there is nothing to preview otherwise).", EXIT_CODE.USAGE);
|
|
@@ -10837,6 +11206,12 @@ async function runValidate(options, global) {
|
|
|
10837
11206
|
const itemReadWarnings = [];
|
|
10838
11207
|
const items = await listAllItemMetadataWithBody(pmRoot, settings.item_format, typeRegistry.type_to_folder, itemReadWarnings, settings.schema);
|
|
10839
11208
|
const requestedChecks = resolveRequestedChecks(options);
|
|
11209
|
+
if (requestedChecks.has("history_drift")) {
|
|
11210
|
+
const authorAttribution = await scanHistoryAuthorAttribution(pmRoot);
|
|
11211
|
+
if (authorAttribution.actionable_unknown_event_count > 0) {
|
|
11212
|
+
itemReadWarnings.push(`validate_history_unknown_author_events:${authorAttribution.actionable_unknown_event_count}`);
|
|
11213
|
+
}
|
|
11214
|
+
}
|
|
10840
11215
|
const metadataProfileSource = typeof options.metadataProfile === "string" ? "option" : "settings";
|
|
10841
11216
|
const metadataProfile = resolveValidateMetadataProfile(typeof options.metadataProfile === "string" ? options.metadataProfile : settings.validation.metadata_profile);
|
|
10842
11217
|
const metadataPolicy = resolveValidateMetadataPolicy(metadataProfile, metadataProfileSource, settings.validation.metadata_required_fields);
|
|
@@ -10861,7 +11236,7 @@ async function runValidate(options, global) {
|
|
|
10861
11236
|
fileScanMode,
|
|
10862
11237
|
initialWarnings: [...new Set(itemReadWarnings)]
|
|
10863
11238
|
});
|
|
10864
|
-
const fixes = fixesRequested ? await buildValidateFixesSummary(options, state, settings, grantedFixScopes, global) : void 0;
|
|
11239
|
+
const fixes = fixesRequested ? await buildValidateFixesSummary(options, state, settings, grantedFixScopes, global, services) : void 0;
|
|
10865
11240
|
const normalizedWarnings = [...new Set(state.warnings)].sort((left, right) => left.localeCompare(right));
|
|
10866
11241
|
const hasErrors = state.checks.some((check) => check.status === "error");
|
|
10867
11242
|
return {
|
|
@@ -10874,6 +11249,11 @@ async function runValidate(options, global) {
|
|
|
10874
11249
|
};
|
|
10875
11250
|
}
|
|
10876
11251
|
|
|
11252
|
+
// dist/cli/commands/validate.js
|
|
11253
|
+
var runValidate2 = (options, global) => runValidate(options, global, {
|
|
11254
|
+
runUpdate: (id, updateOptions, updateGlobal) => runUpdate(id, updateOptions, updateGlobal)
|
|
11255
|
+
});
|
|
11256
|
+
|
|
10877
11257
|
export {
|
|
10878
11258
|
resolveStartTaskInProgressStatus,
|
|
10879
11259
|
runClaim,
|
|
@@ -10881,7 +11261,10 @@ export {
|
|
|
10881
11261
|
runRelease,
|
|
10882
11262
|
runContracts,
|
|
10883
11263
|
runGc,
|
|
11264
|
+
inspectHistoryAuthorStream,
|
|
11265
|
+
scanHistoryAuthorAttribution,
|
|
10884
11266
|
runHealth,
|
|
11267
|
+
_testOnlyHealthCommand,
|
|
10885
11268
|
runMeet,
|
|
10886
11269
|
runEvent,
|
|
10887
11270
|
runRemind,
|
|
@@ -10896,8 +11279,10 @@ export {
|
|
|
10896
11279
|
runTestRunsStop,
|
|
10897
11280
|
runTestRunsResume,
|
|
10898
11281
|
runTestRunsWorker,
|
|
10899
|
-
|
|
11282
|
+
_testOnlyValidateCommand,
|
|
11283
|
+
runValidate,
|
|
11284
|
+
runValidate2
|
|
10900
11285
|
};
|
|
10901
|
-
//# sourceMappingURL=chunk-
|
|
11286
|
+
//# sourceMappingURL=chunk-5ZSLZLDN.js.map
|
|
10902
11287
|
|
|
10903
|
-
//# debugId=
|
|
11288
|
+
//# debugId=1a18538c-3ee2-5ab6-b7c2-b913c780563a
|