@unbrained/pm-cli 2026.6.7 → 2026.6.9
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 +1 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +68 -6
- package/CONTRIBUTING.md +1 -1
- package/README.md +1 -1
- package/dist/cli/bootstrap-args.js +30 -13
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/close-many.js +9 -3
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/close.js +15 -3
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.js +4 -3
- package/dist/cli/commands/comments-audit.js.map +1 -1
- package/dist/cli/commands/completion.js +40 -33
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +6 -14
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/gc.js +10 -2
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/health.js +10 -2
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -1
- package/dist/cli/commands/index.js +3 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.js +48 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.d.ts +11 -2
- package/dist/cli/commands/list.js +104 -2
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/normalize.js +6 -4
- package/dist/cli/commands/normalize.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +13 -2
- package/dist/cli/commands/schema.js +66 -12
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +10 -2
- package/dist/cli/commands/search.js +94 -5
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/upgrade.js +4 -12
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/extension-command-options.js +40 -17
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/main.js +7 -18
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +5 -3
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +33 -24
- 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 +7 -3
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-HF3VJYKH.js +16 -0
- package/dist/cli-bundle/chunks/{activity-YVB3QRTE.js → activity-RUJATACW.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-LH66F75F.js → aggregate-IQ27NFBI.js} +10 -11
- package/dist/cli-bundle/chunks/{aggregate-LH66F75F.js.map → aggregate-IQ27NFBI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{aggregate-OHSWFQJM.js → aggregate-TT7OCHHT.js} +12 -13
- package/dist/cli-bundle/chunks/{aggregate-OHSWFQJM.js.map → aggregate-TT7OCHHT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-2PPYFAG5.js → append-CWQZBUWV.js} +8 -8
- package/dist/cli-bundle/chunks/{append-AUGT5W6J.js → append-E7AJ5RTR.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-UIIQC5YO.js → chunk-23WNCJBA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GPXQBR3H.js → chunk-3RHE76G6.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-GUZBNB3G.js → chunk-42IULX44.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HLC3KTLP.js → chunk-44JP4PYY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MWRS7Z4P.js → chunk-4LRVXVJK.js} +15 -13
- package/dist/cli-bundle/chunks/chunk-4LRVXVJK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HV5SSZXF.js → chunk-4TJWRPIH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UYQ7HXH4.js → chunk-5ATRWEZO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-X4IZKYHP.js → chunk-5JF76OJF.js} +246 -17
- package/dist/cli-bundle/chunks/chunk-5JF76OJF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WYEXLDDY.js → chunk-5MMLINZB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2IF7WLB7.js → chunk-6IGTNFE3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UT6WFXW2.js → chunk-7CR4GAYN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NHR2QXXZ.js → chunk-7YTWXGE3.js} +20 -8
- package/dist/cli-bundle/chunks/chunk-7YTWXGE3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SQPKRA54.js → chunk-A5342JVL.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-H7EO3QA3.js → chunk-AM2AXVFS.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-LIN2BPJ7.js → chunk-ANKG2JKL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YBZW2QQ7.js → chunk-AVGOVJGV.js} +10 -13
- package/dist/cli-bundle/chunks/chunk-AVGOVJGV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4GHZR3BA.js → chunk-BACSNVWE.js} +10 -14
- package/dist/cli-bundle/chunks/chunk-BACSNVWE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NQL32HQ5.js → chunk-BIRVSIM2.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-UJUT6AHZ.js → chunk-C72IQIBT.js} +271 -21
- package/dist/cli-bundle/chunks/chunk-C72IQIBT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-42LOFGJS.js → chunk-CAXUGAAF.js} +108 -9
- package/dist/cli-bundle/chunks/chunk-CAXUGAAF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QQL5QSTZ.js → chunk-D5D7VKIC.js} +6 -5
- package/dist/cli-bundle/chunks/chunk-D5D7VKIC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-C5W2UH56.js → chunk-E7LOIIFP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TINUJMWN.js → chunk-EFRHTZO4.js} +109 -10
- package/dist/cli-bundle/chunks/chunk-EFRHTZO4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LXO6V66E.js → chunk-ENCVPOID.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-4CHEG6UK.js → chunk-EQ6N6IDR.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-B5RF3IP7.js → chunk-F2REA7VW.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-B5RF3IP7.js.map → chunk-F2REA7VW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6J4K6JLA.js → chunk-FHUI7AXS.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-6J4K6JLA.js.map → chunk-FHUI7AXS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6RZXO5M2.js → chunk-FJNJEWU4.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-R3V3YCMH.js → chunk-FKH7K6YP.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-CLD3XNCH.js → chunk-GPOSGWCN.js} +14 -12
- package/dist/cli-bundle/chunks/chunk-GPOSGWCN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3EOBJOF4.js → chunk-H37YPWLM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XYNT7UFP.js → chunk-I26E6XA7.js} +17 -7
- package/dist/cli-bundle/chunks/chunk-I26E6XA7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-THDEID2Z.js → chunk-I3UILOUU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YPH4ESA2.js → chunk-I4FGL3K2.js} +11 -6
- package/dist/cli-bundle/chunks/chunk-I4FGL3K2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HMMMWBK2.js → chunk-JEGFLKSI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OKSKJKHX.js → chunk-JN3BT7UY.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-XS3O2TFJ.js → chunk-JVMAOD54.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-JVMAOD54.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KNGVP5WJ.js → chunk-KDX6VC3P.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TNPBPNII.js → chunk-KTVXLI54.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-TP4DDY27.js → chunk-LF2VNLEZ.js} +9 -12
- package/dist/cli-bundle/chunks/chunk-LF2VNLEZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-X7UHMKPE.js → chunk-LU2HE272.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WAA7UI6M.js → chunk-LU54Z4QI.js} +10 -14
- package/dist/cli-bundle/chunks/chunk-LU54Z4QI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-MOYM2C3J.js → chunk-MNXJ6YDO.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-WCQZBDDH.js → chunk-NHRZSYAA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3A2CMEM7.js → chunk-NJRZIJ4N.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2OJHLWBZ.js → chunk-NUGAWYEN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LQHBENVW.js → chunk-O4L7Z6LB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-V6EYFTRL.js → chunk-OPYA2HIU.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-KR6R465K.js → chunk-OT6XAMO5.js} +17 -7
- package/dist/cli-bundle/chunks/chunk-OT6XAMO5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FY6Z3FYY.js → chunk-P2NVFE4L.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UEWA73ZZ.js → chunk-PUSOAQCR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-B2KZGPM2.js → chunk-PW7C262O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AVJD6VTA.js → chunk-RE2JQJZJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GNIUOLZ2.js → chunk-RKCJ2JMA.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5AXMRKN5.js → chunk-RLVI7KDW.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-IMCJBN2Q.js → chunk-RMTI5R76.js} +19 -7
- package/dist/cli-bundle/chunks/chunk-RMTI5R76.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FHHBD7PN.js → chunk-SAUXUI6U.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O7HSSFCC.js → chunk-SD6H3RLA.js} +10 -5
- package/dist/cli-bundle/chunks/{chunk-O7HSSFCC.js.map → chunk-SD6H3RLA.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-M2PW7EZU.js → chunk-T7B5VAKD.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-T7B5VAKD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YO3THIJF.js → chunk-T7NWFVOA.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-WR5567FH.js → chunk-TLD3UYGY.js} +5 -4
- package/dist/cli-bundle/chunks/chunk-TLD3UYGY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HRMHZ4RV.js → chunk-U3Z4OCZC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SFFVGNHC.js → chunk-VDVVOLR6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2IXCHCLM.js → chunk-WCWIDJII.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LI65XLJR.js → chunk-WQZCEEQN.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-RVPTZKBC.js → chunk-XEOO6K5J.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-TYJJOTUA.js → chunk-YI6W2DBN.js} +54 -8
- package/dist/cli-bundle/chunks/chunk-YI6W2DBN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UAQOQ7IE.js → chunk-YSANBZAE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LMTOY5HE.js → chunk-YX5LAKFJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CKLBZHS7.js → chunk-ZPXDD6RQ.js} +53 -7
- package/dist/cli-bundle/chunks/chunk-ZPXDD6RQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{claim-BJ4QMPJC.js → claim-RV6WYUF7.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-KW743OSW.js → claim-UXFGCF3P.js} +10 -10
- package/dist/cli-bundle/chunks/close-JTTGW7TS.js +13 -0
- package/dist/cli-bundle/chunks/{close-SYHSRZDC.js → close-O4JK2JKD.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-LAC5VR4G.js → close-many-EQO4TPIE.js} +24 -19
- package/dist/cli-bundle/chunks/close-many-EQO4TPIE.js.map +1 -0
- package/dist/cli-bundle/chunks/{close-many-DBLEYFOY.js → close-many-SRDBV3SI.js} +23 -18
- package/dist/cli-bundle/chunks/close-many-SRDBV3SI.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-YT2PQ5DD.js → comments-OMB7YE27.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-JEO6HHVM.js → comments-TTZUIB2O.js} +10 -10
- package/dist/cli-bundle/chunks/{config-RZRVS3ZV.js → config-5VPR42A6.js} +10 -11
- package/dist/cli-bundle/chunks/config-5VPR42A6.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-YJSAAADD.js → config-NNLXVGVC.js} +9 -10
- package/dist/cli-bundle/chunks/config-NNLXVGVC.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-ZUH5IOOI.js → context-4N7GYTVQ.js} +16 -18
- package/dist/cli-bundle/chunks/{context-ZUH5IOOI.js.map → context-4N7GYTVQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{context-LGYEEKAW.js → context-4QK6GRXO.js} +14 -16
- package/dist/cli-bundle/chunks/{context-LGYEEKAW.js.map → context-4QK6GRXO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{contracts-YXJ6NXKH.js → contracts-AOBNEBVT.js} +4 -4
- package/dist/cli-bundle/chunks/{contracts-ZIBXROPE.js → contracts-DXCWXOSP.js} +4 -4
- package/dist/cli-bundle/chunks/{copy-BZALX5MQ.js → copy-5NM3SVJA.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-YPWEIAPD.js → copy-XSYEQTLA.js} +7 -7
- package/dist/cli-bundle/chunks/{create-CF7EVRX7.js → create-FCCAATQV.js} +13 -13
- package/dist/cli-bundle/chunks/create-JAPLFDGJ.js +27 -0
- package/dist/cli-bundle/chunks/{delete-XLZRTRKR.js → delete-5JFP6OG7.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-KR4VBWVE.js → delete-PQXJQXQ7.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-GZMFMTGS.js → deps-S5322EOQ.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-2YTXD3VM.js → deps-XXKBOQUA.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-SLROFEQ4.js → docs-C7CCVWAJ.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-ZHISRR2D.js → docs-DZRPAW5S.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-3C7OOI4F.js → extension-CSHP6FZX.js} +5 -5
- package/dist/cli-bundle/chunks/{extension-XYCUXICD.js → extension-XNNVUVAY.js} +5 -5
- package/dist/cli-bundle/chunks/{files-J4I5IU4O.js → files-OBWYYPKM.js} +9 -9
- package/dist/cli-bundle/chunks/{files-FUWF2FYJ.js → files-UPCNKEIZ.js} +9 -9
- package/dist/cli-bundle/chunks/{gc-34NXSNSN.js → gc-FA2ONELT.js} +13 -5
- package/dist/cli-bundle/chunks/gc-FA2ONELT.js.map +1 -0
- package/dist/cli-bundle/chunks/{gc-SPIIZX3A.js → gc-KXK6KBRN.js} +12 -4
- package/dist/cli-bundle/chunks/gc-KXK6KBRN.js.map +7 -0
- package/dist/cli-bundle/chunks/{get-VITKYP6S.js → get-FLHYTOBA.js} +11 -11
- package/dist/cli-bundle/chunks/{get-SZKNRHMA.js → get-PNTSONGB.js} +11 -11
- package/dist/cli-bundle/chunks/{health-7G3EPM57.js → health-CS5RNTJX.js} +21 -14
- package/dist/cli-bundle/chunks/health-CS5RNTJX.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-4SNTA2TF.js → health-KCRVYIYY.js} +20 -13
- package/dist/cli-bundle/chunks/health-KCRVYIYY.js.map +7 -0
- package/dist/cli-bundle/chunks/history-6624XISO.js +20 -0
- package/dist/cli-bundle/chunks/{history-SDAWYZR3.js → history-COQTPBEU.js} +10 -10
- package/dist/cli-bundle/chunks/{history-compact-POTZGG7K.js → history-compact-66PSRYL3.js} +11 -11
- package/dist/cli-bundle/chunks/{history-compact-DMW536VH.js → history-compact-PVS2A3FS.js} +11 -11
- package/dist/cli-bundle/chunks/{history-redact-EPJ7GENL.js → history-redact-DCXAWGTF.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-ZRQTI7NB.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-YNESJRT6.js → history-repair-SEQDFTGW.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-IJ7LLBET.js → history-repair-TA3NRIFO.js} +11 -11
- package/dist/cli-bundle/chunks/{init-YHVBTEET.js → init-IQJE3EKJ.js} +9 -9
- package/dist/cli-bundle/chunks/init-ZVE2HMKK.js +17 -0
- package/dist/cli-bundle/chunks/{learnings-T4PF24YN.js → learnings-RJPGH2ME.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-4YBMIVCZ.js → learnings-XC6EMW5E.js} +10 -10
- package/dist/cli-bundle/chunks/{list-3KEVBOYW.js → list-NJV6WBT4.js} +10 -11
- package/dist/cli-bundle/chunks/list-OO5P472O.js +19 -0
- package/dist/cli-bundle/chunks/{notes-GJKALVZM.js → notes-2KWHADK3.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-FLUCNJSH.js → notes-FNCDMZW2.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-T5MMZLI3.js → plan-CYK2P5PD.js} +13 -13
- package/dist/cli-bundle/chunks/{plan-YYMIL3HV.js → plan-MQO5JTSV.js} +13 -13
- package/dist/cli-bundle/chunks/{register-list-query-I65EZ3HB.js → register-list-query-6RA24SIZ.js} +23 -21
- package/dist/cli-bundle/chunks/register-list-query-6RA24SIZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-OECMHO4G.js → register-list-query-IO3RR5K6.js} +22 -20
- package/dist/cli-bundle/chunks/register-list-query-IO3RR5K6.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-5GPDEKHR.js → register-mutation-KVFUXCAZ.js} +40 -36
- package/dist/cli-bundle/chunks/{register-mutation-5GPDEKHR.js.map → register-mutation-KVFUXCAZ.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-2FLXORLR.js → register-mutation-VV2SC2KL.js} +41 -37
- package/dist/cli-bundle/chunks/{register-mutation-2FLXORLR.js.map → register-mutation-VV2SC2KL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-BNGAUMGK.js → register-operations-DFNVRSJ5.js} +30 -30
- package/dist/cli-bundle/chunks/{register-operations-GQKT35H5.js → register-operations-TAUUTRJ4.js} +30 -30
- package/dist/cli-bundle/chunks/{register-setup-DNDCGZ4O.js → register-setup-GAQZZRUA.js} +20 -19
- package/dist/cli-bundle/chunks/register-setup-GAQZZRUA.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-EJY44FPH.js → register-setup-X2R5CFDV.js} +19 -18
- package/dist/cli-bundle/chunks/{register-setup-EJY44FPH.js.map → register-setup-X2R5CFDV.js.map} +2 -2
- package/dist/cli-bundle/chunks/{restore-DDJGVZIN.js → restore-E3GZKRRK.js} +11 -11
- package/dist/cli-bundle/chunks/restore-F4ALFV4D.js +17 -0
- package/dist/cli-bundle/chunks/{schema-HEGYH6CE.js → schema-3CPFLDAY.js} +77 -21
- package/dist/cli-bundle/chunks/schema-3CPFLDAY.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-B7NQ6XVP.js → schema-7EHBPNXM.js} +76 -20
- package/dist/cli-bundle/chunks/schema-7EHBPNXM.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-DVVQ4UO2.js → search-2T3NCCUR.js} +104 -16
- package/dist/cli-bundle/chunks/search-2T3NCCUR.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-JNEZJV7H.js → search-OBZVYJJ2.js} +103 -15
- package/dist/cli-bundle/chunks/search-OBZVYJJ2.js.map +7 -0
- package/dist/cli-bundle/chunks/{stats-SYTJRR4Z.js → stats-6LVK4JER.js} +7 -7
- package/dist/cli-bundle/chunks/{stats-7JDIJRDH.js → stats-ULGQACF7.js} +7 -7
- package/dist/cli-bundle/chunks/{telemetry-4HHWD5Y7.js → telemetry-6G27FLCP.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-EGWP7ZUX.js → telemetry-HHKRTMZA.js} +4 -4
- package/dist/cli-bundle/chunks/{test-IIELLSZX.js → test-2PP4YBV6.js} +14 -14
- package/dist/cli-bundle/chunks/test-PPOLRIBA.js +32 -0
- package/dist/cli-bundle/chunks/{test-all-7DNCMML7.js → test-all-6Z272JRI.js} +14 -14
- package/dist/cli-bundle/chunks/{test-all-IHTUJRRC.js → test-all-NETGVNM6.js} +14 -14
- package/dist/cli-bundle/chunks/{test-runs-RNKZ37PS.js → test-runs-CRPQVMMG.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-5FEMBV3A.js → test-runs-M24WA6TI.js} +5 -5
- package/dist/cli-bundle/chunks/update-MCPCPMHV.js +25 -0
- package/dist/cli-bundle/chunks/update-O7TBOUVQ.js +21 -0
- package/dist/cli-bundle/chunks/{update-many-BSZZZYXY.js → update-many-JSRF5EH5.js} +22 -23
- package/dist/cli-bundle/chunks/{update-many-BSZZZYXY.js.map → update-many-JSRF5EH5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-BWKJJEBF.js → update-many-Y3HOL7WA.js} +24 -25
- package/dist/cli-bundle/chunks/{update-many-BWKJJEBF.js.map → update-many-Y3HOL7WA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-YWI5DJFA.js → upgrade-5RTQVKKE.js} +8 -15
- package/dist/cli-bundle/chunks/upgrade-5RTQVKKE.js.map +7 -0
- package/dist/cli-bundle/chunks/{upgrade-RSE5PC44.js → upgrade-ECB6GH3M.js} +9 -16
- package/dist/cli-bundle/chunks/upgrade-ECB6GH3M.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-NK3WKB7C.js → validate-J6Q444SD.js} +16 -16
- package/dist/cli-bundle/chunks/{validate-UCEOB7S6.js → validate-MCNMAXVA.js} +16 -16
- package/dist/cli-bundle/main.js +77 -81
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/core/config/nested-settings.d.ts +0 -2
- package/dist/core/config/nested-settings.js +2 -4
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +7 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +59 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/flag-value-types.d.ts +29 -0
- package/dist/core/extensions/flag-value-types.js +78 -0
- package/dist/core/extensions/flag-value-types.js.map +1 -0
- package/dist/core/extensions/item-field-types.d.ts +22 -0
- package/dist/core/extensions/item-field-types.js +43 -0
- package/dist/core/extensions/item-field-types.js.map +1 -0
- package/dist/core/extensions/item-fields.js +4 -11
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +14 -1
- package/dist/core/extensions/loader.js +141 -10
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/fs/fs-utils.js +29 -4
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/packages/manifest.d.ts +1 -1
- package/dist/core/packages/manifest.js +12 -2
- package/dist/core/packages/manifest.js.map +1 -1
- package/dist/core/packages/root.d.ts +10 -0
- package/dist/core/packages/root.js +24 -2
- package/dist/core/packages/root.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +3 -6
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/background-refresh.d.ts +0 -8
- package/dist/core/search/background-refresh.js +2 -9
- package/dist/core/search/background-refresh.js.map +1 -1
- package/dist/core/search/vector-stores.js +6 -8
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/sentry/instrument.js +4 -17
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/store/paths.js +17 -3
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +3 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.js +131 -42
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.js +4 -4
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +3 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.js +10 -8
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +7 -2
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +55 -1
- package/dist/sdk/testing.js +92 -2
- package/dist/sdk/testing.js.map +1 -1
- package/docs/AGENT_GUIDE.md +3 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +6 -4
- package/docs/CONFIGURATION.md +6 -0
- package/docs/EXTENSIONS.md +7 -8
- package/docs/RELEASING.md +17 -0
- package/docs/SDK.md +98 -0
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +3 -3
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/dist/cli-bundle/chunks/activity-5UROHJ3D.js +0 -16
- package/dist/cli-bundle/chunks/chunk-42LOFGJS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4GHZR3BA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CKLBZHS7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CLD3XNCH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EAOG77HM.js +0 -56
- package/dist/cli-bundle/chunks/chunk-EAOG77HM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IMCJBN2Q.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KR6R465K.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-M2PW7EZU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MWRS7Z4P.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NHR2QXXZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QQL5QSTZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TINUJMWN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TP4DDY27.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TYJJOTUA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UJUT6AHZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-WAA7UI6M.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-WR5567FH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-X4IZKYHP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XS3O2TFJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +0 -53
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XYNT7UFP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YBZW2QQ7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YPH4ESA2.js.map +0 -1
- package/dist/cli-bundle/chunks/close-P4ZBKODL.js +0 -13
- package/dist/cli-bundle/chunks/close-many-DBLEYFOY.js.map +0 -7
- package/dist/cli-bundle/chunks/close-many-LAC5VR4G.js.map +0 -1
- package/dist/cli-bundle/chunks/config-RZRVS3ZV.js.map +0 -1
- package/dist/cli-bundle/chunks/config-YJSAAADD.js.map +0 -7
- package/dist/cli-bundle/chunks/create-4DS2QWQC.js +0 -27
- package/dist/cli-bundle/chunks/gc-34NXSNSN.js.map +0 -1
- package/dist/cli-bundle/chunks/gc-SPIIZX3A.js.map +0 -7
- package/dist/cli-bundle/chunks/health-4SNTA2TF.js.map +0 -7
- package/dist/cli-bundle/chunks/health-7G3EPM57.js.map +0 -1
- package/dist/cli-bundle/chunks/history-YDUEILKP.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-KASLLPE7.js +0 -19
- package/dist/cli-bundle/chunks/init-IGSS4GNH.js +0 -17
- package/dist/cli-bundle/chunks/list-E44O2K64.js +0 -20
- package/dist/cli-bundle/chunks/register-list-query-I65EZ3HB.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-OECMHO4G.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-DNDCGZ4O.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-SJSASGZP.js +0 -17
- package/dist/cli-bundle/chunks/schema-B7NQ6XVP.js.map +0 -7
- package/dist/cli-bundle/chunks/schema-HEGYH6CE.js.map +0 -1
- package/dist/cli-bundle/chunks/search-DVVQ4UO2.js.map +0 -1
- package/dist/cli-bundle/chunks/search-JNEZJV7H.js.map +0 -7
- package/dist/cli-bundle/chunks/test-ML5RLWXE.js +0 -32
- package/dist/cli-bundle/chunks/update-6C67X4KS.js +0 -21
- package/dist/cli-bundle/chunks/update-VF26YPT3.js +0 -25
- package/dist/cli-bundle/chunks/upgrade-RSE5PC44.js.map +0 -1
- package/dist/cli-bundle/chunks/upgrade-YWI5DJFA.js.map +0 -7
- /package/dist/cli-bundle/chunks/{activity-5UROHJ3D.js.map → activity-HF3VJYKH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-YVB3QRTE.js.map → activity-RUJATACW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-2PPYFAG5.js.map → append-CWQZBUWV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-AUGT5W6J.js.map → append-E7AJ5RTR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UIIQC5YO.js.map → chunk-23WNCJBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GPXQBR3H.js.map → chunk-3RHE76G6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GUZBNB3G.js.map → chunk-42IULX44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HLC3KTLP.js.map → chunk-44JP4PYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HV5SSZXF.js.map → chunk-4TJWRPIH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UYQ7HXH4.js.map → chunk-5ATRWEZO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WYEXLDDY.js.map → chunk-5MMLINZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2IF7WLB7.js.map → chunk-6IGTNFE3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UT6WFXW2.js.map → chunk-7CR4GAYN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SQPKRA54.js.map → chunk-A5342JVL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H7EO3QA3.js.map → chunk-AM2AXVFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LIN2BPJ7.js.map → chunk-ANKG2JKL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NQL32HQ5.js.map → chunk-BIRVSIM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C5W2UH56.js.map → chunk-E7LOIIFP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LXO6V66E.js.map → chunk-ENCVPOID.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4CHEG6UK.js.map → chunk-EQ6N6IDR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6RZXO5M2.js.map → chunk-FJNJEWU4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R3V3YCMH.js.map → chunk-FKH7K6YP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3EOBJOF4.js.map → chunk-H37YPWLM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-THDEID2Z.js.map → chunk-I3UILOUU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HMMMWBK2.js.map → chunk-JEGFLKSI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OKSKJKHX.js.map → chunk-JN3BT7UY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KNGVP5WJ.js.map → chunk-KDX6VC3P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TNPBPNII.js.map → chunk-KTVXLI54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X7UHMKPE.js.map → chunk-LU2HE272.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MOYM2C3J.js.map → chunk-MNXJ6YDO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WCQZBDDH.js.map → chunk-NHRZSYAA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3A2CMEM7.js.map → chunk-NJRZIJ4N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2OJHLWBZ.js.map → chunk-NUGAWYEN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LQHBENVW.js.map → chunk-O4L7Z6LB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V6EYFTRL.js.map → chunk-OPYA2HIU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FY6Z3FYY.js.map → chunk-P2NVFE4L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UEWA73ZZ.js.map → chunk-PUSOAQCR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B2KZGPM2.js.map → chunk-PW7C262O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AVJD6VTA.js.map → chunk-RE2JQJZJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GNIUOLZ2.js.map → chunk-RKCJ2JMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5AXMRKN5.js.map → chunk-RLVI7KDW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FHHBD7PN.js.map → chunk-SAUXUI6U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YO3THIJF.js.map → chunk-T7NWFVOA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HRMHZ4RV.js.map → chunk-U3Z4OCZC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SFFVGNHC.js.map → chunk-VDVVOLR6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2IXCHCLM.js.map → chunk-WCWIDJII.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LI65XLJR.js.map → chunk-WQZCEEQN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RVPTZKBC.js.map → chunk-XEOO6K5J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UAQOQ7IE.js.map → chunk-YSANBZAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LMTOY5HE.js.map → chunk-YX5LAKFJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-BJ4QMPJC.js.map → claim-RV6WYUF7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-KW743OSW.js.map → claim-UXFGCF3P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-P4ZBKODL.js.map → close-JTTGW7TS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-SYHSRZDC.js.map → close-O4JK2JKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-YT2PQ5DD.js.map → comments-OMB7YE27.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-JEO6HHVM.js.map → comments-TTZUIB2O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-YXJ6NXKH.js.map → contracts-AOBNEBVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-ZIBXROPE.js.map → contracts-DXCWXOSP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-BZALX5MQ.js.map → copy-5NM3SVJA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-YPWEIAPD.js.map → copy-XSYEQTLA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-CF7EVRX7.js.map → create-FCCAATQV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-4DS2QWQC.js.map → create-JAPLFDGJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-XLZRTRKR.js.map → delete-5JFP6OG7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-KR4VBWVE.js.map → delete-PQXJQXQ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-GZMFMTGS.js.map → deps-S5322EOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-2YTXD3VM.js.map → deps-XXKBOQUA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-SLROFEQ4.js.map → docs-C7CCVWAJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-ZHISRR2D.js.map → docs-DZRPAW5S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-3C7OOI4F.js.map → extension-CSHP6FZX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-XYCUXICD.js.map → extension-XNNVUVAY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-J4I5IU4O.js.map → files-OBWYYPKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-FUWF2FYJ.js.map → files-UPCNKEIZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-VITKYP6S.js.map → get-FLHYTOBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-SZKNRHMA.js.map → get-PNTSONGB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-YDUEILKP.js.map → history-6624XISO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-SDAWYZR3.js.map → history-COQTPBEU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-POTZGG7K.js.map → history-compact-66PSRYL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-DMW536VH.js.map → history-compact-PVS2A3FS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-EPJ7GENL.js.map → history-redact-DCXAWGTF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KASLLPE7.js.map → history-redact-ZRQTI7NB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-YNESJRT6.js.map → history-repair-SEQDFTGW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-IJ7LLBET.js.map → history-repair-TA3NRIFO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-YHVBTEET.js.map → init-IQJE3EKJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-IGSS4GNH.js.map → init-ZVE2HMKK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-T4PF24YN.js.map → learnings-RJPGH2ME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-4YBMIVCZ.js.map → learnings-XC6EMW5E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-3KEVBOYW.js.map → list-NJV6WBT4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-E44O2K64.js.map → list-OO5P472O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-GJKALVZM.js.map → notes-2KWHADK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-FLUCNJSH.js.map → notes-FNCDMZW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-T5MMZLI3.js.map → plan-CYK2P5PD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-YYMIL3HV.js.map → plan-MQO5JTSV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-BNGAUMGK.js.map → register-operations-DFNVRSJ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-GQKT35H5.js.map → register-operations-TAUUTRJ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-DDJGVZIN.js.map → restore-E3GZKRRK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-SJSASGZP.js.map → restore-F4ALFV4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-SYTJRR4Z.js.map → stats-6LVK4JER.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-7JDIJRDH.js.map → stats-ULGQACF7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-4HHWD5Y7.js.map → telemetry-6G27FLCP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-EGWP7ZUX.js.map → telemetry-HHKRTMZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-IIELLSZX.js.map → test-2PP4YBV6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-ML5RLWXE.js.map → test-PPOLRIBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-7DNCMML7.js.map → test-all-6Z272JRI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-IHTUJRRC.js.map → test-all-NETGVNM6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-RNKZ37PS.js.map → test-runs-CRPQVMMG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-5FEMBV3A.js.map → test-runs-M24WA6TI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-VF26YPT3.js.map → update-MCPCPMHV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-6C67X4KS.js.map → update-O7TBOUVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-NK3WKB7C.js.map → validate-J6Q444SD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-UCEOB7S6.js.map → validate-MCNMAXVA.js.map} +0 -0
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
parseLogSeed,
|
|
7
7
|
parseTests,
|
|
8
8
|
runCreate
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-3RHE76G6.js";
|
|
10
|
+
import "./chunk-LU2HE272.js";
|
|
11
|
+
import "./chunk-23WNCJBA.js";
|
|
12
|
+
import "./chunk-44JP4PYY.js";
|
|
13
|
+
import "./chunk-6IGTNFE3.js";
|
|
14
|
+
import "./chunk-ANKG2JKL.js";
|
|
15
15
|
import "./chunk-LXYVKYMQ.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-AVGOVJGV.js";
|
|
17
|
+
import "./chunk-7CR4GAYN.js";
|
|
18
|
+
import "./chunk-5ATRWEZO.js";
|
|
19
|
+
import "./chunk-42IULX44.js";
|
|
20
|
+
import "./chunk-PW7C262O.js";
|
|
21
|
+
import "./chunk-5JF76OJF.js";
|
|
22
22
|
export {
|
|
23
23
|
parseDocs,
|
|
24
24
|
parseFiles,
|
|
@@ -26,6 +26,6 @@ export {
|
|
|
26
26
|
parseTests,
|
|
27
27
|
runCreate
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=create-
|
|
29
|
+
//# sourceMappingURL=create-FCCAATQV.js.map
|
|
30
30
|
|
|
31
31
|
//# debugId=45eac7fa-f181-5cca-93b7-cfb58909dbb3
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseDocs,
|
|
3
|
+
parseFiles,
|
|
4
|
+
parseLogSeed,
|
|
5
|
+
parseTests,
|
|
6
|
+
runCreate
|
|
7
|
+
} from "./chunk-BIRVSIM2.js";
|
|
8
|
+
import "./chunk-O4L7Z6LB.js";
|
|
9
|
+
import "./chunk-4TJWRPIH.js";
|
|
10
|
+
import "./chunk-NUGAWYEN.js";
|
|
11
|
+
import "./chunk-JEGFLKSI.js";
|
|
12
|
+
import "./chunk-YSANBZAE.js";
|
|
13
|
+
import "./chunk-3HUE7XOF.js";
|
|
14
|
+
import "./chunk-LF2VNLEZ.js";
|
|
15
|
+
import "./chunk-WCWIDJII.js";
|
|
16
|
+
import "./chunk-NHRZSYAA.js";
|
|
17
|
+
import "./chunk-U3Z4OCZC.js";
|
|
18
|
+
import "./chunk-SAUXUI6U.js";
|
|
19
|
+
import "./chunk-C72IQIBT.js";
|
|
20
|
+
export {
|
|
21
|
+
parseDocs,
|
|
22
|
+
parseFiles,
|
|
23
|
+
parseLogSeed,
|
|
24
|
+
parseTests,
|
|
25
|
+
runCreate
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=create-JAPLFDGJ.js.map
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
deleteItem,
|
|
6
6
|
toItemRecord
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-LF2VNLEZ.js";
|
|
8
|
+
import "./chunk-WCWIDJII.js";
|
|
9
|
+
import "./chunk-NHRZSYAA.js";
|
|
10
|
+
import "./chunk-U3Z4OCZC.js";
|
|
11
|
+
import "./chunk-SAUXUI6U.js";
|
|
12
12
|
import {
|
|
13
13
|
EXIT_CODE,
|
|
14
14
|
PmCliError,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
pathExists,
|
|
17
17
|
readSettings,
|
|
18
18
|
resolvePmRoot
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-C72IQIBT.js";
|
|
20
20
|
|
|
21
21
|
// dist/cli/commands/delete.js
|
|
22
22
|
import path from "node:path";
|
|
@@ -55,4 +55,4 @@ async function runDelete(id, options, global2) {
|
|
|
55
55
|
export {
|
|
56
56
|
runDelete
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=delete-
|
|
58
|
+
//# sourceMappingURL=delete-5JFP6OG7.js.map
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
deleteItem,
|
|
8
8
|
toItemRecord
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-AVGOVJGV.js";
|
|
10
|
+
import "./chunk-7CR4GAYN.js";
|
|
11
|
+
import "./chunk-5ATRWEZO.js";
|
|
12
|
+
import "./chunk-42IULX44.js";
|
|
13
|
+
import "./chunk-PW7C262O.js";
|
|
14
14
|
import {
|
|
15
15
|
EXIT_CODE,
|
|
16
16
|
PmCliError,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
pathExists,
|
|
19
19
|
readSettings,
|
|
20
20
|
resolvePmRoot
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5JF76OJF.js";
|
|
22
22
|
|
|
23
23
|
// dist/cli/commands/delete.js
|
|
24
24
|
import path from "node:path";
|
|
@@ -50,6 +50,6 @@ async function runDelete(id, options, global) {
|
|
|
50
50
|
export {
|
|
51
51
|
runDelete
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=delete-
|
|
53
|
+
//# sourceMappingURL=delete-PQXJQXQ7.js.map
|
|
54
54
|
|
|
55
55
|
//# debugId=6251a40d-ca0d-55b9-8ec0-960064565032
|
|
@@ -2,13 +2,13 @@
|
|
|
2
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]="6da7beb3-25f2-5c8f-9186-6c5066ef02c8")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
listAllFrontMatterLight
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-AVGOVJGV.js";
|
|
6
|
+
import "./chunk-7CR4GAYN.js";
|
|
7
|
+
import "./chunk-5ATRWEZO.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveItemTypeRegistry
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-42IULX44.js";
|
|
11
|
+
import "./chunk-PW7C262O.js";
|
|
12
12
|
import {
|
|
13
13
|
EXIT_CODE,
|
|
14
14
|
PmCliError,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
pathExists,
|
|
18
18
|
readSettings,
|
|
19
19
|
resolvePmRoot
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-5JF76OJF.js";
|
|
21
21
|
|
|
22
22
|
// dist/cli/commands/deps.js
|
|
23
23
|
var DEPS_FORMAT_VALUES = ["tree", "graph"];
|
|
@@ -220,6 +220,6 @@ export {
|
|
|
220
220
|
DEPS_FORMAT_VALUES,
|
|
221
221
|
runDeps
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=deps-
|
|
223
|
+
//# sourceMappingURL=deps-S5322EOQ.js.map
|
|
224
224
|
|
|
225
225
|
//# debugId=6da7beb3-25f2-5c8f-9186-6c5066ef02c8
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listAllFrontMatterLight
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-LF2VNLEZ.js";
|
|
4
|
+
import "./chunk-WCWIDJII.js";
|
|
5
|
+
import "./chunk-NHRZSYAA.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveItemTypeRegistry
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-U3Z4OCZC.js";
|
|
9
|
+
import "./chunk-SAUXUI6U.js";
|
|
10
10
|
import {
|
|
11
11
|
EXIT_CODE,
|
|
12
12
|
PmCliError,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
pathExists,
|
|
16
16
|
readSettings,
|
|
17
17
|
resolvePmRoot
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-C72IQIBT.js";
|
|
19
19
|
|
|
20
20
|
// dist/cli/commands/deps.js
|
|
21
21
|
!(function() {
|
|
@@ -225,4 +225,4 @@ export {
|
|
|
225
225
|
DEPS_FORMAT_VALUES,
|
|
226
226
|
runDeps
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=deps-
|
|
228
|
+
//# sourceMappingURL=deps-XXKBOQUA.js.map
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
import {
|
|
4
4
|
renameArtifactsResultKey,
|
|
5
5
|
runLinkedArtifacts
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AM2AXVFS.js";
|
|
7
7
|
import "./chunk-J27KIHTG.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-23WNCJBA.js";
|
|
9
|
+
import "./chunk-AVGOVJGV.js";
|
|
10
|
+
import "./chunk-7CR4GAYN.js";
|
|
11
|
+
import "./chunk-5ATRWEZO.js";
|
|
12
|
+
import "./chunk-42IULX44.js";
|
|
13
|
+
import "./chunk-PW7C262O.js";
|
|
14
|
+
import "./chunk-5JF76OJF.js";
|
|
15
15
|
|
|
16
16
|
// dist/cli/commands/docs.js
|
|
17
17
|
async function runDocs(id, options, global) {
|
|
@@ -26,6 +26,6 @@ async function runDocs(id, options, global) {
|
|
|
26
26
|
export {
|
|
27
27
|
runDocs
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=docs-
|
|
29
|
+
//# sourceMappingURL=docs-C7CCVWAJ.js.map
|
|
30
30
|
|
|
31
31
|
//# debugId=339a5d11-6712-52d2-9904-0960437e7557
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renameArtifactsResultKey,
|
|
3
3
|
runLinkedArtifacts
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PUSOAQCR.js";
|
|
5
5
|
import "./chunk-O7IWB35H.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-4TJWRPIH.js";
|
|
7
|
+
import "./chunk-LF2VNLEZ.js";
|
|
8
|
+
import "./chunk-WCWIDJII.js";
|
|
9
|
+
import "./chunk-NHRZSYAA.js";
|
|
10
|
+
import "./chunk-U3Z4OCZC.js";
|
|
11
|
+
import "./chunk-SAUXUI6U.js";
|
|
12
|
+
import "./chunk-C72IQIBT.js";
|
|
13
13
|
|
|
14
14
|
// dist/cli/commands/docs.js
|
|
15
15
|
!(function() {
|
|
@@ -31,4 +31,4 @@ async function runDocs(id, options, global2) {
|
|
|
31
31
|
export {
|
|
32
32
|
runDocs
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=docs-
|
|
34
|
+
//# sourceMappingURL=docs-DZRPAW5S.js.map
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
resolveManagedExtensionStatePath,
|
|
6
6
|
runExtension,
|
|
7
7
|
writeManagedExtensionState
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OT6XAMO5.js";
|
|
9
9
|
import {
|
|
10
10
|
parseExtensionManifest,
|
|
11
11
|
validateExtensionDirectory
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-I3UILOUU.js";
|
|
13
13
|
import "./chunk-3HUE7XOF.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-SAUXUI6U.js";
|
|
15
|
+
import "./chunk-C72IQIBT.js";
|
|
16
16
|
export {
|
|
17
17
|
copyExtensionDirectoryForInstall,
|
|
18
18
|
parseExtensionInstallSource,
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
validateExtensionDirectory,
|
|
24
24
|
writeManagedExtensionState
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=extension-
|
|
26
|
+
//# sourceMappingURL=extension-CSHP6FZX.js.map
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
resolveManagedExtensionStatePath,
|
|
8
8
|
runExtension,
|
|
9
9
|
writeManagedExtensionState
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-I26E6XA7.js";
|
|
11
11
|
import {
|
|
12
12
|
parseExtensionManifest,
|
|
13
13
|
validateExtensionDirectory
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YX5LAKFJ.js";
|
|
15
15
|
import "./chunk-LXYVKYMQ.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-PW7C262O.js";
|
|
17
|
+
import "./chunk-5JF76OJF.js";
|
|
18
18
|
export {
|
|
19
19
|
copyExtensionDirectoryForInstall,
|
|
20
20
|
parseExtensionInstallSource,
|
|
@@ -25,6 +25,6 @@ export {
|
|
|
25
25
|
validateExtensionDirectory,
|
|
26
26
|
writeManagedExtensionState
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=extension-
|
|
28
|
+
//# sourceMappingURL=extension-XNNVUVAY.js.map
|
|
29
29
|
|
|
30
30
|
//# debugId=45eac7fa-f181-5cca-93b7-cfb58909dbb3
|
|
@@ -4,22 +4,22 @@ import {
|
|
|
4
4
|
renameArtifactsResultKey,
|
|
5
5
|
runLinkedArtifacts,
|
|
6
6
|
sortLinkedArtifacts
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PUSOAQCR.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveAuthor
|
|
10
10
|
} from "./chunk-O7IWB35H.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4TJWRPIH.js";
|
|
12
12
|
import {
|
|
13
13
|
locateItem,
|
|
14
14
|
mutateItem,
|
|
15
15
|
readLocatedItem
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-LF2VNLEZ.js";
|
|
17
|
+
import "./chunk-WCWIDJII.js";
|
|
18
|
+
import "./chunk-NHRZSYAA.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveItemTypeRegistry
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-U3Z4OCZC.js";
|
|
22
|
+
import "./chunk-SAUXUI6U.js";
|
|
23
23
|
import {
|
|
24
24
|
EXIT_CODE,
|
|
25
25
|
PmCliError,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
pathExists,
|
|
30
30
|
readSettings,
|
|
31
31
|
resolvePmRoot
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-C72IQIBT.js";
|
|
33
33
|
|
|
34
34
|
// dist/cli/commands/files.js
|
|
35
35
|
import fs from "node:fs/promises";
|
|
@@ -282,4 +282,4 @@ export {
|
|
|
282
282
|
runFiles,
|
|
283
283
|
runFilesDiscover
|
|
284
284
|
};
|
|
285
|
-
//# sourceMappingURL=files-
|
|
285
|
+
//# sourceMappingURL=files-OBWYYPKM.js.map
|
|
@@ -6,22 +6,22 @@ import {
|
|
|
6
6
|
renameArtifactsResultKey,
|
|
7
7
|
runLinkedArtifacts,
|
|
8
8
|
sortLinkedArtifacts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AM2AXVFS.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveAuthor
|
|
12
12
|
} from "./chunk-J27KIHTG.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-23WNCJBA.js";
|
|
14
14
|
import {
|
|
15
15
|
locateItem,
|
|
16
16
|
mutateItem,
|
|
17
17
|
readLocatedItem
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-AVGOVJGV.js";
|
|
19
|
+
import "./chunk-7CR4GAYN.js";
|
|
20
|
+
import "./chunk-5ATRWEZO.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveItemTypeRegistry
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-42IULX44.js";
|
|
24
|
+
import "./chunk-PW7C262O.js";
|
|
25
25
|
import {
|
|
26
26
|
EXIT_CODE,
|
|
27
27
|
PmCliError,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
pathExists,
|
|
32
32
|
readSettings,
|
|
33
33
|
resolvePmRoot
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-5JF76OJF.js";
|
|
35
35
|
|
|
36
36
|
// dist/cli/commands/files.js
|
|
37
37
|
import fs from "node:fs/promises";
|
|
@@ -277,6 +277,6 @@ export {
|
|
|
277
277
|
runFiles,
|
|
278
278
|
runFilesDiscover
|
|
279
279
|
};
|
|
280
|
-
//# sourceMappingURL=files-
|
|
280
|
+
//# sourceMappingURL=files-UPCNKEIZ.js.map
|
|
281
281
|
|
|
282
282
|
//# debugId=2fdc8a3e-c4aa-531a-bd76-1570005b876f
|
|
@@ -1,8 +1,8 @@
|
|
|
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]="
|
|
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]="ad200c72-c878-50dd-8e2f-6dd46e979296")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
nowIso
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PW7C262O.js";
|
|
6
6
|
import {
|
|
7
7
|
EXIT_CODE,
|
|
8
8
|
PmCliError,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
runActiveOnIndexHooks,
|
|
14
14
|
runActiveOnReadHooks,
|
|
15
15
|
runActiveOnWriteHooks
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-5JF76OJF.js";
|
|
17
17
|
|
|
18
18
|
// dist/cli/commands/gc.js
|
|
19
19
|
import fs2 from "node:fs/promises";
|
|
@@ -209,6 +209,11 @@ var GC_TARGETS = [
|
|
|
209
209
|
scope: "runtime",
|
|
210
210
|
relativePath: "runtime/test-runs",
|
|
211
211
|
kind: "directory"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
scope: "runtime",
|
|
215
|
+
relativePath: "runtime/history-drift-cache.json",
|
|
216
|
+
kind: "file"
|
|
212
217
|
}
|
|
213
218
|
];
|
|
214
219
|
function isErrno2(error, code) {
|
|
@@ -292,6 +297,9 @@ function buildGcGuidance(params) {
|
|
|
292
297
|
if (searchScopeSelected && searchArtifactsAffected) {
|
|
293
298
|
guidance.push('Search artifacts were removed; run "pm install search-advanced --project" if reindex is unavailable, then "pm reindex --mode keyword" (and "--mode semantic" when semantic search is enabled) before search-heavy workflows.');
|
|
294
299
|
}
|
|
300
|
+
if (params.removed.includes("runtime/history-drift-cache.json")) {
|
|
301
|
+
guidance.push('History drift cache was removed; the next "pm health" run performs a full history-drift re-scan.');
|
|
302
|
+
}
|
|
295
303
|
return guidance;
|
|
296
304
|
}
|
|
297
305
|
async function runGc(global, options = {}) {
|
|
@@ -357,6 +365,6 @@ async function runGc(global, options = {}) {
|
|
|
357
365
|
export {
|
|
358
366
|
runGc
|
|
359
367
|
};
|
|
360
|
-
//# sourceMappingURL=gc-
|
|
368
|
+
//# sourceMappingURL=gc-FA2ONELT.js.map
|
|
361
369
|
|
|
362
|
-
//# debugId=
|
|
370
|
+
//# debugId=ad200c72-c878-50dd-8e2f-6dd46e979296
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../cli/commands/gc.ts","../../../../../../../../core/lock/lock-gc.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { runActiveOnIndexHooks, runActiveOnReadHooks, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { runLockGc } from \"../../core/lock/lock-gc.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\n\nconst GC_SCOPE_VALUES = [\"index\", \"embeddings\", \"runtime\", \"locks\"] as const;\ntype GcScope = (typeof GC_SCOPE_VALUES)[number];\n\ninterface GcTarget {\n scope: GcScope;\n relativePath: string;\n kind: \"file\" | \"directory\";\n}\n\nconst GC_TARGETS: readonly GcTarget[] = [\n {\n scope: \"index\",\n relativePath: \"index/manifest.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/embeddings.jsonl\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/vectorization-status.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/lancedb\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/test-runs\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/history-drift-cache.json\",\n kind: \"file\",\n },\n] as const;\n\nexport interface GcCommandOptions {\n dryRun?: boolean;\n scope?: string[];\n}\n\nexport interface GcLocksSummary {\n scanned: number;\n removed: number;\n retained: number;\n}\n\nexport interface GcResult {\n ok: boolean;\n dry_run: boolean;\n scope: GcScope[];\n removed: string[];\n retained: string[];\n warnings: string[];\n guidance: string[];\n /** Present only when the locks scope was selected. Summarizes the stale-lock sweep. */\n locks?: GcLocksSummary;\n generated_at: string;\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code;\n}\n\nasync function removeCacheFile(\n pmRoot: string,\n target: GcTarget,\n dryRun: boolean,\n): Promise<{ removed: boolean; warnings: string[] }> {\n const relativePath = target.relativePath;\n const absolutePath = path.join(pmRoot, relativePath);\n const warnings = await runActiveOnReadHooks({\n path: absolutePath,\n scope: \"project\",\n });\n try {\n const stats = await fs.stat(absolutePath);\n if (target.kind === \"file\" && !stats.isFile()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_file:${relativePath}`],\n };\n }\n if (target.kind === \"directory\" && !stats.isDirectory()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_directory:${relativePath}`],\n };\n }\n if (dryRun) {\n return {\n removed: true,\n warnings,\n };\n }\n if (target.kind === \"file\") {\n await fs.unlink(absolutePath);\n } else {\n await fs.rm(absolutePath, { recursive: true, force: true });\n }\n const writeWarnings = await runActiveOnWriteHooks({\n path: absolutePath,\n scope: \"project\",\n op: \"gc:remove\",\n });\n return {\n removed: true,\n warnings: [...warnings, ...writeWarnings],\n };\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return {\n removed: false,\n warnings,\n };\n }\n throw error;\n }\n}\n\nfunction parseScopes(raw: string[] | undefined): GcScope[] {\n if (!raw || raw.length === 0) {\n return [...GC_SCOPE_VALUES];\n }\n const tokens = raw\n .flatMap((entry) => entry.split(\",\"))\n .map((entry) => entry.trim().toLowerCase())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n throw new PmCliError(`--scope requires at least one value (${GC_SCOPE_VALUES.join(\",\")})`, EXIT_CODE.USAGE);\n }\n const resolved = new Set<GcScope>();\n for (const token of tokens) {\n if (!(GC_SCOPE_VALUES as readonly string[]).includes(token)) {\n throw new PmCliError(\n `Invalid --scope value \"${token}\". Expected one or more of: ${GC_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.add(token as GcScope);\n }\n return GC_SCOPE_VALUES.filter((scope) => resolved.has(scope));\n}\n\nfunction buildGcGuidance(params: {\n dryRun: boolean;\n scopes: GcScope[];\n removed: string[];\n}): string[] {\n const guidance: string[] = [];\n if (params.dryRun) {\n guidance.push(\"Dry-run preview only: no cache artifacts were deleted.\");\n }\n const searchScopeSelected = params.scopes.includes(\"index\") || params.scopes.includes(\"embeddings\");\n const searchArtifactsAffected = params.removed.some(\n (entry) =>\n entry === \"index/manifest.json\" ||\n entry === \"search/embeddings.jsonl\" ||\n entry === \"search/vectorization-status.json\" ||\n entry === \"search/lancedb\",\n );\n if (searchScopeSelected && searchArtifactsAffected) {\n guidance.push(\n 'Search artifacts were removed; run \"pm install search-advanced --project\" if reindex is unavailable, then \"pm reindex --mode keyword\" (and \"--mode semantic\" when semantic search is enabled) before search-heavy workflows.',\n );\n }\n if (params.removed.includes(\"runtime/history-drift-cache.json\")) {\n guidance.push('History drift cache was removed; the next \"pm health\" run performs a full history-drift re-scan.');\n }\n return guidance;\n}\n\nexport async function runGc(global: GlobalOptions, options: GcCommandOptions = {}): Promise<GcResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n await readSettings(pmRoot);\n const dryRun = options.dryRun === true;\n const scopes = parseScopes(options.scope);\n const selectedTargets = GC_TARGETS.filter((target) => scopes.includes(target.scope));\n\n const removed: string[] = [];\n const retained: string[] = [];\n const warnings: string[] = [];\n\n for (const target of selectedTargets) {\n const result = await removeCacheFile(pmRoot, target, dryRun);\n if (result.removed) {\n removed.push(target.relativePath);\n } else {\n retained.push(target.relativePath);\n }\n warnings.push(...result.warnings);\n }\n\n // The locks scope is not a path-based GC_TARGET: it sweeps the locks/ directory\n // and removes only locks whose own embedded ttl has expired (crashed-process\n // debris), retaining active and unparseable locks. See core/lock/lock-gc.ts.\n let locksSummary: GcLocksSummary | undefined;\n if (scopes.includes(\"locks\")) {\n const lockResult = await runLockGc(pmRoot, {\n dryRun,\n hooks: {\n onRead: (lockPath) => runActiveOnReadHooks({ path: lockPath, scope: \"project\" }),\n onWrite: (lockPath) => runActiveOnWriteHooks({ path: lockPath, scope: \"project\", op: \"gc:lock_remove\" }),\n },\n });\n removed.push(...lockResult.removed);\n retained.push(...lockResult.retained);\n warnings.push(...lockResult.warnings);\n locksSummary = {\n scanned: lockResult.scanned,\n removed: lockResult.removed.length,\n retained: lockResult.retained.length,\n };\n }\n\n warnings.push(\n ...(await runActiveOnIndexHooks({\n mode: dryRun ? \"gc:dry-run\" : \"gc\",\n total_items: selectedTargets.length,\n })),\n );\n const guidance = buildGcGuidance({\n dryRun,\n scopes,\n removed,\n });\n\n return {\n ok: warnings.length === 0,\n dry_run: dryRun,\n scope: scopes,\n removed,\n retained,\n warnings,\n ...(locksSummary ? { locks: locksSummary } : {}),\n guidance,\n generated_at: nowIso(),\n };\n}\n","/**\n * lock-gc.ts — Stale lock file garbage collector.\n *\n * Safety-first policy: if a lock file cannot be read or parsed, it is RETAINED\n * rather than deleted. We only remove locks whose staleness can be conclusively\n * determined from the lock's own embedded `ttl_seconds` field.\n *\n * Staleness formula: (now_ms - Date.parse(created_at)) > ttl_seconds * 1000\n * Zero ttl means any lock older than 0 ms is stale. Negative ttl means always stale.\n */\n\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport interface StaleLockScanEntry {\n /** e.g. \"pm-abc1.lock\" */\n file: string;\n /** parsed id, or null if unparseable */\n id: string | null;\n owner: string | null;\n created_at: string | null;\n ttl_seconds: number | null;\n /** floor((now - created_at)/1000), null if unparseable */\n age_seconds: number | null;\n /** true only when classified expired */\n stale: boolean;\n reason: \"expired\" | \"active\" | \"unparseable\";\n}\n\nexport interface LockGcHooks {\n onRead?: (lockPath: string) => Promise<string[]> | string[];\n onWrite?: (lockPath: string) => Promise<string[]> | string[];\n}\n\nexport interface LockGcOptions {\n dryRun: boolean;\n /** epoch ms; defaults to Date.now() — injectable for deterministic tests */\n now?: number;\n hooks?: LockGcHooks;\n}\n\nexport interface LockGcResult {\n /** number of *.lock files examined */\n scanned: number;\n /** relative paths like \"locks/pm-abc1.lock\" (removed, or would-remove under dryRun) */\n removed: string[];\n /** relative paths retained (active OR unparseable — never delete what we can't reason about) */\n retained: string[];\n warnings: string[];\n /** one per scanned *.lock file, sorted by file name asc */\n entries: StaleLockScanEntry[];\n}\n\ninterface ParsedLock {\n id: string;\n owner: string;\n created_at: string;\n ttl_seconds: number;\n}\n\nfunction parseLock(raw: string): ParsedLock | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n return null;\n }\n const candidate = parsed as Record<string, unknown>;\n const { id, owner, created_at, ttl_seconds } = candidate;\n if (\n typeof id !== \"string\" ||\n typeof owner !== \"string\" ||\n typeof created_at !== \"string\" ||\n typeof ttl_seconds !== \"number\" ||\n !Number.isFinite(ttl_seconds)\n ) {\n return null;\n }\n return { id, owner, created_at, ttl_seconds };\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: string }).code === code\n );\n}\n\nexport async function runLockGc(pmRoot: string, options: LockGcOptions): Promise<LockGcResult> {\n const { dryRun, hooks } = options;\n const nowMs = options.now ?? Date.now();\n const locksDir = path.join(pmRoot, \"locks\");\n\n const result: LockGcResult = {\n scanned: 0,\n removed: [],\n retained: [],\n warnings: [],\n entries: [],\n };\n\n let dirEntries: string[];\n try {\n const raw = await fs.readdir(locksDir);\n dirEntries = raw.filter((f) => f.endsWith(\".lock\")).sort();\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return result;\n }\n throw error;\n }\n\n for (const file of dirEntries) {\n result.scanned += 1;\n const absPath = path.join(locksDir, file);\n const relPath = `locks/${file}`;\n\n // --- onRead hook ---\n if (hooks?.onRead) {\n const hookWarnings = await hooks.onRead(absPath);\n result.warnings.push(...hookWarnings);\n }\n\n // --- read file ---\n let raw: string;\n try {\n raw = await fs.readFile(absPath, \"utf8\");\n } catch (readError: unknown) {\n if (isErrno(readError, \"ENOENT\")) {\n // Disappeared between readdir and readFile — treat as a ghost; skip quietly.\n result.scanned -= 1;\n continue;\n }\n result.warnings.push(`lock_unreadable:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: null,\n owner: null,\n created_at: null,\n ttl_seconds: null,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n // --- parse ---\n const lock = parseLock(raw);\n if (lock === null) {\n result.warnings.push(`lock_unparseable:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: null,\n owner: null,\n created_at: null,\n ttl_seconds: null,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n // --- validate timestamp ---\n const createdAtMs = Date.parse(lock.created_at);\n if (!Number.isFinite(createdAtMs)) {\n result.warnings.push(`lock_invalid_timestamp:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n const ageMs = nowMs - createdAtMs;\n const age_seconds = Math.floor(ageMs / 1000);\n const stale = ageMs > lock.ttl_seconds * 1000;\n\n if (!stale) {\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: false,\n reason: \"active\",\n });\n continue;\n }\n\n // --- stale: remove or preview ---\n if (!dryRun) {\n try {\n await fs.unlink(absPath);\n } catch (unlinkError: unknown) {\n if (!isErrno(unlinkError, \"ENOENT\")) {\n result.warnings.push(`lock_remove_failed:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: true,\n reason: \"expired\",\n });\n continue;\n }\n // ENOENT on unlink = already gone (race); treat as removed\n }\n // onWrite hook after successful removal\n if (hooks?.onWrite) {\n const hookWarnings = await hooks.onWrite(absPath);\n result.warnings.push(...hookWarnings);\n }\n }\n\n result.removed.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: true,\n reason: \"expired\",\n });\n }\n\n return result;\n}\n"],"names":["fs","path","isErrno","path","fs"],"mappings":"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","debugId":"ad200c72-c878-50dd-8e2f-6dd46e979296"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
nowIso
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SAUXUI6U.js";
|
|
4
4
|
import {
|
|
5
5
|
EXIT_CODE,
|
|
6
6
|
PmCliError,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
runActiveOnIndexHooks,
|
|
12
12
|
runActiveOnReadHooks,
|
|
13
13
|
runActiveOnWriteHooks
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-C72IQIBT.js";
|
|
15
15
|
|
|
16
16
|
// dist/cli/commands/gc.js
|
|
17
17
|
import fs2 from "node:fs/promises";
|
|
@@ -191,7 +191,7 @@ async function runLockGc(pmRoot, options) {
|
|
|
191
191
|
!(function() {
|
|
192
192
|
try {
|
|
193
193
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
194
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
194
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "abfb11ce-9272-5c0e-8fae-25ea38f31327");
|
|
195
195
|
} catch (e2) {
|
|
196
196
|
}
|
|
197
197
|
})();
|
|
@@ -221,6 +221,11 @@ var GC_TARGETS = [
|
|
|
221
221
|
scope: "runtime",
|
|
222
222
|
relativePath: "runtime/test-runs",
|
|
223
223
|
kind: "directory"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
scope: "runtime",
|
|
227
|
+
relativePath: "runtime/history-drift-cache.json",
|
|
228
|
+
kind: "file"
|
|
224
229
|
}
|
|
225
230
|
];
|
|
226
231
|
function isErrno2(error, code) {
|
|
@@ -304,6 +309,9 @@ function buildGcGuidance(params) {
|
|
|
304
309
|
if (searchScopeSelected && searchArtifactsAffected) {
|
|
305
310
|
guidance.push('Search artifacts were removed; run "pm install search-advanced --project" if reindex is unavailable, then "pm reindex --mode keyword" (and "--mode semantic" when semantic search is enabled) before search-heavy workflows.');
|
|
306
311
|
}
|
|
312
|
+
if (params.removed.includes("runtime/history-drift-cache.json")) {
|
|
313
|
+
guidance.push('History drift cache was removed; the next "pm health" run performs a full history-drift re-scan.');
|
|
314
|
+
}
|
|
307
315
|
return guidance;
|
|
308
316
|
}
|
|
309
317
|
async function runGc(global2, options = {}) {
|
|
@@ -369,4 +377,4 @@ async function runGc(global2, options = {}) {
|
|
|
369
377
|
export {
|
|
370
378
|
runGc
|
|
371
379
|
};
|
|
372
|
-
//# sourceMappingURL=gc-
|
|
380
|
+
//# sourceMappingURL=gc-KXK6KBRN.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../cli/commands/gc.ts", "../../../../../../../../core/lock/lock-gc.ts"],
|
|
4
|
+
"sourcesContent": ["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { runActiveOnIndexHooks, runActiveOnReadHooks, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { runLockGc } from \"../../core/lock/lock-gc.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\n\nconst GC_SCOPE_VALUES = [\"index\", \"embeddings\", \"runtime\", \"locks\"] as const;\ntype GcScope = (typeof GC_SCOPE_VALUES)[number];\n\ninterface GcTarget {\n scope: GcScope;\n relativePath: string;\n kind: \"file\" | \"directory\";\n}\n\nconst GC_TARGETS: readonly GcTarget[] = [\n {\n scope: \"index\",\n relativePath: \"index/manifest.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/embeddings.jsonl\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/vectorization-status.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/lancedb\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/test-runs\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/history-drift-cache.json\",\n kind: \"file\",\n },\n] as const;\n\nexport interface GcCommandOptions {\n dryRun?: boolean;\n scope?: string[];\n}\n\nexport interface GcLocksSummary {\n scanned: number;\n removed: number;\n retained: number;\n}\n\nexport interface GcResult {\n ok: boolean;\n dry_run: boolean;\n scope: GcScope[];\n removed: string[];\n retained: string[];\n warnings: string[];\n guidance: string[];\n /** Present only when the locks scope was selected. Summarizes the stale-lock sweep. */\n locks?: GcLocksSummary;\n generated_at: string;\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code;\n}\n\nasync function removeCacheFile(\n pmRoot: string,\n target: GcTarget,\n dryRun: boolean,\n): Promise<{ removed: boolean; warnings: string[] }> {\n const relativePath = target.relativePath;\n const absolutePath = path.join(pmRoot, relativePath);\n const warnings = await runActiveOnReadHooks({\n path: absolutePath,\n scope: \"project\",\n });\n try {\n const stats = await fs.stat(absolutePath);\n if (target.kind === \"file\" && !stats.isFile()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_file:${relativePath}`],\n };\n }\n if (target.kind === \"directory\" && !stats.isDirectory()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_directory:${relativePath}`],\n };\n }\n if (dryRun) {\n return {\n removed: true,\n warnings,\n };\n }\n if (target.kind === \"file\") {\n await fs.unlink(absolutePath);\n } else {\n await fs.rm(absolutePath, { recursive: true, force: true });\n }\n const writeWarnings = await runActiveOnWriteHooks({\n path: absolutePath,\n scope: \"project\",\n op: \"gc:remove\",\n });\n return {\n removed: true,\n warnings: [...warnings, ...writeWarnings],\n };\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return {\n removed: false,\n warnings,\n };\n }\n throw error;\n }\n}\n\nfunction parseScopes(raw: string[] | undefined): GcScope[] {\n if (!raw || raw.length === 0) {\n return [...GC_SCOPE_VALUES];\n }\n const tokens = raw\n .flatMap((entry) => entry.split(\",\"))\n .map((entry) => entry.trim().toLowerCase())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n throw new PmCliError(`--scope requires at least one value (${GC_SCOPE_VALUES.join(\",\")})`, EXIT_CODE.USAGE);\n }\n const resolved = new Set<GcScope>();\n for (const token of tokens) {\n if (!(GC_SCOPE_VALUES as readonly string[]).includes(token)) {\n throw new PmCliError(\n `Invalid --scope value \"${token}\". Expected one or more of: ${GC_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.add(token as GcScope);\n }\n return GC_SCOPE_VALUES.filter((scope) => resolved.has(scope));\n}\n\nfunction buildGcGuidance(params: {\n dryRun: boolean;\n scopes: GcScope[];\n removed: string[];\n}): string[] {\n const guidance: string[] = [];\n if (params.dryRun) {\n guidance.push(\"Dry-run preview only: no cache artifacts were deleted.\");\n }\n const searchScopeSelected = params.scopes.includes(\"index\") || params.scopes.includes(\"embeddings\");\n const searchArtifactsAffected = params.removed.some(\n (entry) =>\n entry === \"index/manifest.json\" ||\n entry === \"search/embeddings.jsonl\" ||\n entry === \"search/vectorization-status.json\" ||\n entry === \"search/lancedb\",\n );\n if (searchScopeSelected && searchArtifactsAffected) {\n guidance.push(\n 'Search artifacts were removed; run \"pm install search-advanced --project\" if reindex is unavailable, then \"pm reindex --mode keyword\" (and \"--mode semantic\" when semantic search is enabled) before search-heavy workflows.',\n );\n }\n if (params.removed.includes(\"runtime/history-drift-cache.json\")) {\n guidance.push('History drift cache was removed; the next \"pm health\" run performs a full history-drift re-scan.');\n }\n return guidance;\n}\n\nexport async function runGc(global: GlobalOptions, options: GcCommandOptions = {}): Promise<GcResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n await readSettings(pmRoot);\n const dryRun = options.dryRun === true;\n const scopes = parseScopes(options.scope);\n const selectedTargets = GC_TARGETS.filter((target) => scopes.includes(target.scope));\n\n const removed: string[] = [];\n const retained: string[] = [];\n const warnings: string[] = [];\n\n for (const target of selectedTargets) {\n const result = await removeCacheFile(pmRoot, target, dryRun);\n if (result.removed) {\n removed.push(target.relativePath);\n } else {\n retained.push(target.relativePath);\n }\n warnings.push(...result.warnings);\n }\n\n // The locks scope is not a path-based GC_TARGET: it sweeps the locks/ directory\n // and removes only locks whose own embedded ttl has expired (crashed-process\n // debris), retaining active and unparseable locks. See core/lock/lock-gc.ts.\n let locksSummary: GcLocksSummary | undefined;\n if (scopes.includes(\"locks\")) {\n const lockResult = await runLockGc(pmRoot, {\n dryRun,\n hooks: {\n onRead: (lockPath) => runActiveOnReadHooks({ path: lockPath, scope: \"project\" }),\n onWrite: (lockPath) => runActiveOnWriteHooks({ path: lockPath, scope: \"project\", op: \"gc:lock_remove\" }),\n },\n });\n removed.push(...lockResult.removed);\n retained.push(...lockResult.retained);\n warnings.push(...lockResult.warnings);\n locksSummary = {\n scanned: lockResult.scanned,\n removed: lockResult.removed.length,\n retained: lockResult.retained.length,\n };\n }\n\n warnings.push(\n ...(await runActiveOnIndexHooks({\n mode: dryRun ? \"gc:dry-run\" : \"gc\",\n total_items: selectedTargets.length,\n })),\n );\n const guidance = buildGcGuidance({\n dryRun,\n scopes,\n removed,\n });\n\n return {\n ok: warnings.length === 0,\n dry_run: dryRun,\n scope: scopes,\n removed,\n retained,\n warnings,\n ...(locksSummary ? { locks: locksSummary } : {}),\n guidance,\n generated_at: nowIso(),\n };\n}\n", "/**\n * lock-gc.ts — Stale lock file garbage collector.\n *\n * Safety-first policy: if a lock file cannot be read or parsed, it is RETAINED\n * rather than deleted. We only remove locks whose staleness can be conclusively\n * determined from the lock's own embedded `ttl_seconds` field.\n *\n * Staleness formula: (now_ms - Date.parse(created_at)) > ttl_seconds * 1000\n * Zero ttl means any lock older than 0 ms is stale. Negative ttl means always stale.\n */\n\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport interface StaleLockScanEntry {\n /** e.g. \"pm-abc1.lock\" */\n file: string;\n /** parsed id, or null if unparseable */\n id: string | null;\n owner: string | null;\n created_at: string | null;\n ttl_seconds: number | null;\n /** floor((now - created_at)/1000), null if unparseable */\n age_seconds: number | null;\n /** true only when classified expired */\n stale: boolean;\n reason: \"expired\" | \"active\" | \"unparseable\";\n}\n\nexport interface LockGcHooks {\n onRead?: (lockPath: string) => Promise<string[]> | string[];\n onWrite?: (lockPath: string) => Promise<string[]> | string[];\n}\n\nexport interface LockGcOptions {\n dryRun: boolean;\n /** epoch ms; defaults to Date.now() — injectable for deterministic tests */\n now?: number;\n hooks?: LockGcHooks;\n}\n\nexport interface LockGcResult {\n /** number of *.lock files examined */\n scanned: number;\n /** relative paths like \"locks/pm-abc1.lock\" (removed, or would-remove under dryRun) */\n removed: string[];\n /** relative paths retained (active OR unparseable — never delete what we can't reason about) */\n retained: string[];\n warnings: string[];\n /** one per scanned *.lock file, sorted by file name asc */\n entries: StaleLockScanEntry[];\n}\n\ninterface ParsedLock {\n id: string;\n owner: string;\n created_at: string;\n ttl_seconds: number;\n}\n\nfunction parseLock(raw: string): ParsedLock | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n return null;\n }\n const candidate = parsed as Record<string, unknown>;\n const { id, owner, created_at, ttl_seconds } = candidate;\n if (\n typeof id !== \"string\" ||\n typeof owner !== \"string\" ||\n typeof created_at !== \"string\" ||\n typeof ttl_seconds !== \"number\" ||\n !Number.isFinite(ttl_seconds)\n ) {\n return null;\n }\n return { id, owner, created_at, ttl_seconds };\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: string }).code === code\n );\n}\n\nexport async function runLockGc(pmRoot: string, options: LockGcOptions): Promise<LockGcResult> {\n const { dryRun, hooks } = options;\n const nowMs = options.now ?? Date.now();\n const locksDir = path.join(pmRoot, \"locks\");\n\n const result: LockGcResult = {\n scanned: 0,\n removed: [],\n retained: [],\n warnings: [],\n entries: [],\n };\n\n let dirEntries: string[];\n try {\n const raw = await fs.readdir(locksDir);\n dirEntries = raw.filter((f) => f.endsWith(\".lock\")).sort();\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return result;\n }\n throw error;\n }\n\n for (const file of dirEntries) {\n result.scanned += 1;\n const absPath = path.join(locksDir, file);\n const relPath = `locks/${file}`;\n\n // --- onRead hook ---\n if (hooks?.onRead) {\n const hookWarnings = await hooks.onRead(absPath);\n result.warnings.push(...hookWarnings);\n }\n\n // --- read file ---\n let raw: string;\n try {\n raw = await fs.readFile(absPath, \"utf8\");\n } catch (readError: unknown) {\n if (isErrno(readError, \"ENOENT\")) {\n // Disappeared between readdir and readFile — treat as a ghost; skip quietly.\n result.scanned -= 1;\n continue;\n }\n result.warnings.push(`lock_unreadable:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: null,\n owner: null,\n created_at: null,\n ttl_seconds: null,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n // --- parse ---\n const lock = parseLock(raw);\n if (lock === null) {\n result.warnings.push(`lock_unparseable:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: null,\n owner: null,\n created_at: null,\n ttl_seconds: null,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n // --- validate timestamp ---\n const createdAtMs = Date.parse(lock.created_at);\n if (!Number.isFinite(createdAtMs)) {\n result.warnings.push(`lock_invalid_timestamp:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n const ageMs = nowMs - createdAtMs;\n const age_seconds = Math.floor(ageMs / 1000);\n const stale = ageMs > lock.ttl_seconds * 1000;\n\n if (!stale) {\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: false,\n reason: \"active\",\n });\n continue;\n }\n\n // --- stale: remove or preview ---\n if (!dryRun) {\n try {\n await fs.unlink(absPath);\n } catch (unlinkError: unknown) {\n if (!isErrno(unlinkError, \"ENOENT\")) {\n result.warnings.push(`lock_remove_failed:${file}`);\n result.retained.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: true,\n reason: \"expired\",\n });\n continue;\n }\n // ENOENT on unlink = already gone (race); treat as removed\n }\n // onWrite hook after successful removal\n if (hooks?.onWrite) {\n const hookWarnings = await hooks.onWrite(absPath);\n result.warnings.push(...hookWarnings);\n }\n }\n\n result.removed.push(relPath);\n result.entries.push({\n file,\n id: lock.id,\n owner: lock.owner,\n created_at: lock.created_at,\n ttl_seconds: lock.ttl_seconds,\n age_seconds,\n stale: true,\n reason: \"expired\",\n });\n }\n\n return result;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fs", "path", "isErrno", "path", "fs", "global"]
|
|
7
|
+
}
|