@unbrained/pm-cli 2026.7.19 → 2026.7.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +2 -0
- package/CHANGELOG.md +36 -0
- package/dist/cli/commands/append.js +13 -6
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/calendar.d.ts +1 -1
- package/dist/cli/commands/calendar.js +2 -2
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/comments.js +2 -5
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +11 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +1 -1
- package/dist/cli/commands/context.js +2 -2
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/copy.js +5 -3
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.d.ts +3 -1
- package/dist/cli/commands/create.js +5 -3
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/merge.d.ts +8 -0
- package/dist/cli/commands/merge.js +12 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +1 -1
- package/dist/cli/commands/plan.js +2 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +5 -0
- package/dist/cli/commands/update-many.js +81 -6
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +5 -1
- package/dist/cli/commands/update.js +50 -4
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/register-list-query.js +14 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +61 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +5 -3
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/registration-helpers.js +4 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +365 -333
- package/dist/cli-bundle/chunks/{append-MBXHNWSX.js → append-E6V54WOQ.js} +5 -5
- package/dist/cli-bundle/chunks/append-NNJ3EFIT.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js → chunk-2BO4CA46.js} +14 -238
- package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js.map → chunk-2BO4CA46.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MQOSMBWV.js → chunk-3AO5VSDR.js} +25 -6
- package/dist/cli-bundle/chunks/chunk-3AO5VSDR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ODEIDKGW.js → chunk-3LPFHE3P.js} +596 -154
- package/dist/cli-bundle/chunks/chunk-3LPFHE3P.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js → chunk-3MCTMJXI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js → chunk-3P7UJQOX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js → chunk-3VY6MIEO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3EZZTFL2.js → chunk-4F6BWJ4J.js} +51 -43
- package/dist/cli-bundle/chunks/chunk-4F6BWJ4J.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VA3H7VVC.js → chunk-4L23AGQ7.js} +9 -7
- package/dist/cli-bundle/chunks/chunk-4L23AGQ7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js → chunk-4U4Z6AHI.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js → chunk-4XGJLADW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js → chunk-5IZJWSDB.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js → chunk-5NTE36LD.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js → chunk-5OK4UGFV.js} +5 -8
- package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js.map → chunk-5OK4UGFV.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H3YKUVDR.js → chunk-5UX66S6U.js} +26 -7
- package/dist/cli-bundle/chunks/chunk-5UX66S6U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js → chunk-6C2ZZX5Z.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js → chunk-6JUTHVQS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js → chunk-6VIJ7UA5.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-BBGR4FKQ.js → chunk-6XMUURSS.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-6XMUURSS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js → chunk-72LQ4TKV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WCBB6VI3.js → chunk-7AVEY74G.js} +8 -5
- package/dist/cli-bundle/chunks/chunk-7AVEY74G.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YG56M3NE.js → chunk-7DOJC3HS.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-7DOJC3HS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js → chunk-7WCE6Y64.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js → chunk-AF2CCM5U.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-P24ZU5QV.js → chunk-AOEOYL3S.js} +49 -12
- package/dist/cli-bundle/chunks/chunk-AOEOYL3S.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BZKE2O5V.js → chunk-BKIAH72N.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-BKIAH72N.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RWAIRGBC.js → chunk-C3KD7U3T.js} +12 -243
- package/dist/cli-bundle/chunks/chunk-C3KD7U3T.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js +334 -0
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TELI67UP.js → chunk-CQTQKUUV.js} +6 -9
- package/dist/cli-bundle/chunks/{chunk-TELI67UP.js.map → chunk-CQTQKUUV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZUCBPXNA.js → chunk-D6NXDNP3.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-D6NXDNP3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js → chunk-DAQ45GCS.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6V4T4RD3.js → chunk-DVDBQA3B.js} +79 -22
- package/dist/cli-bundle/chunks/chunk-DVDBQA3B.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js +249 -0
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZF52NVRT.js → chunk-E7ICD63T.js} +131 -179
- package/dist/cli-bundle/chunks/chunk-E7ICD63T.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js → chunk-EJDGV4GR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js → chunk-FDHPAVVB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KAE727L2.js → chunk-FSRHYUDA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FSRHYUDA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-46Z6FAVP.js → chunk-G3COA6GS.js} +51 -43
- package/dist/cli-bundle/chunks/chunk-G3COA6GS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A4FVWFZY.js → chunk-GFQP7HAZ.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-GFQP7HAZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2XPDCXK5.js → chunk-GIQSU6S2.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-GIQSU6S2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js → chunk-GROYI4RB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js → chunk-GSJSM5BJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js → chunk-GTLCVJOE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js → chunk-GV2262OF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-N2TEEOXJ.js → chunk-GVI6FAFG.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-GVI6FAFG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A5EQPNV7.js → chunk-GVT754PX.js} +44 -3
- package/dist/cli-bundle/chunks/chunk-GVT754PX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Y2VSGFT4.js → chunk-HB3P4M52.js} +22 -7
- package/dist/cli-bundle/chunks/chunk-HB3P4M52.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js → chunk-HCEBZNC3.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-EEECAV5M.js → chunk-HEWM6CEN.js} +80 -25
- package/dist/cli-bundle/chunks/chunk-HEWM6CEN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js → chunk-HQ3SB4CN.js} +21 -6
- package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js.map → chunk-HQ3SB4CN.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-U6RYD446.js → chunk-HRW7GF6T.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-D35WYXWC.js → chunk-HYW67VJ5.js} +6 -3
- package/dist/cli-bundle/chunks/chunk-HYW67VJ5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js → chunk-I577UHC7.js} +16 -9
- package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js.map → chunk-I577UHC7.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js → chunk-IAQE32BI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js → chunk-IJNK6WW2.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js +623 -0
- package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A3GAQLBH.js → chunk-IX677TRO.js} +75 -12
- package/dist/cli-bundle/chunks/chunk-IX677TRO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RLLOZAM2.js → chunk-IY6VZ3IW.js} +29 -8
- package/dist/cli-bundle/chunks/chunk-IY6VZ3IW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SVAWG7EE.js → chunk-J4FBIFU6.js} +45 -4
- package/dist/cli-bundle/chunks/chunk-J4FBIFU6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js → chunk-JAPE62Y5.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js → chunk-JGUKMMRS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js → chunk-JH2ZSLO3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js → chunk-JHJSFOAM.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js → chunk-JM6YAXTR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js → chunk-JSLT7WVE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js → chunk-K4CI6Y45.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js → chunk-KSPWRNVP.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js → chunk-KZEANWJS.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js.map → chunk-KZEANWJS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js → chunk-L7BH7IWU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js → chunk-LPEYZRUR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js → chunk-MYSS5H2A.js} +9 -7
- package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js.map → chunk-MYSS5H2A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js → chunk-NHT3F4WZ.js} +15 -15
- package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js → chunk-NLR32VFS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BDC4TW4B.js → chunk-OV7MSW3I.js} +15 -13
- package/dist/cli-bundle/chunks/chunk-OV7MSW3I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js → chunk-OWXOPDHD.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js +246 -0
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js → chunk-PEQGTJ5Q.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QFG4MB7P.js → chunk-POG76WWZ.js} +28 -7
- package/dist/cli-bundle/chunks/chunk-POG76WWZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MI3346YW.js → chunk-QANSTTC7.js} +129 -170
- package/dist/cli-bundle/chunks/chunk-QANSTTC7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js → chunk-QJKL5PHS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SBW7EQC4.js → chunk-QLZ643FM.js} +76 -13
- package/dist/cli-bundle/chunks/chunk-QLZ643FM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js → chunk-QWRVBJ4D.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js +106 -0
- package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js +344 -0
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js → chunk-R7QV7ICM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js → chunk-RDV4ZFYS.js} +12 -10
- package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js.map → chunk-RDV4ZFYS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js → chunk-RJO3YAFM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js → chunk-RMF7LMBS.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js.map → chunk-RMF7LMBS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MRXAHR4B.js → chunk-RZJLNXFG.js} +50 -13
- package/dist/cli-bundle/chunks/chunk-RZJLNXFG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DJAGYYCQ.js → chunk-SC2HMDGB.js} +19 -3
- package/dist/cli-bundle/chunks/chunk-SC2HMDGB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js → chunk-SF3DT5HJ.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-SG74J6MV.js +604 -0
- package/dist/cli-bundle/chunks/chunk-SG74J6MV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Q3K5XPAQ.js → chunk-SR3JOATZ.js} +18 -2
- package/dist/cli-bundle/chunks/chunk-SR3JOATZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js → chunk-SSKOQNMS.js} +14 -12
- package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js.map → chunk-SSKOQNMS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js → chunk-SZVB53Y3.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JBW2S2C6.js → chunk-T44FMVRL.js} +613 -157
- package/dist/cli-bundle/chunks/chunk-T44FMVRL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js → chunk-T6PPNM7V.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UE7LK3RE.js → chunk-THAOZG4U.js} +9 -7
- package/dist/cli-bundle/chunks/chunk-THAOZG4U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IGBBTPM5.js → chunk-TOBGV45Y.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-TOBGV45Y.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js → chunk-TVYYO5A7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js +109 -0
- package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js → chunk-UQLXSG72.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IDUTGRDM.js → chunk-URXVHN3L.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-URXVHN3L.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js → chunk-UVN66B3M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js → chunk-UX6SSO2I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JPWUZOMR.js → chunk-UZDQXNUB.js} +75 -20
- package/dist/cli-bundle/chunks/chunk-UZDQXNUB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js → chunk-UZLJOEAC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js → chunk-VDO2JMD4.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js → chunk-VQIHNHMJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js → chunk-WUVEBQW6.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js.map → chunk-WUVEBQW6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js → chunk-WVA4DVNV.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js.map → chunk-WVA4DVNV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4M6RZJXF.js → chunk-WWNL6WMH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-WWNL6WMH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3KPNOZOH.js → chunk-X6K5XTTN.js} +78 -21
- package/dist/cli-bundle/chunks/chunk-X6K5XTTN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js → chunk-XJF7CDNH.js} +17 -10
- package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js.map → chunk-XJF7CDNH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AR24KW26.js → chunk-YBT7O4KT.js} +17 -112
- package/dist/cli-bundle/chunks/chunk-YBT7O4KT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CZA2DXCV.js → chunk-YQQNAKW3.js} +17 -105
- package/dist/cli-bundle/chunks/chunk-YQQNAKW3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js → chunk-YQWCZ5AC.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js.map → chunk-YQWCZ5AC.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js → chunk-ZOJ3LR7O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js → chunk-ZOY5K4D3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js → chunk-ZV2NTVMJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js → chunk-ZYPFOO3L.js} +9 -9
- package/dist/cli-bundle/chunks/close-O5QVZ6ET.js +12 -0
- package/dist/cli-bundle/chunks/{close-7NWA3GLA.js → close-QEMOYZN3.js} +5 -5
- package/dist/cli-bundle/chunks/close-many-SDA426VT.js +24 -0
- package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js → close-many-UTZANOCQ.js} +15 -14
- package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js → comments-LZN6FXXC.js} +7 -7
- package/dist/cli-bundle/chunks/comments-VBQ345ND.js +13 -0
- package/dist/cli-bundle/chunks/{copy-YDAMENCP.js → copy-DKTSSCK7.js} +4 -4
- package/dist/cli-bundle/chunks/copy-M7DDI6LS.js +9 -0
- package/dist/cli-bundle/chunks/{create-JSL6CXU3.js → create-GG4RBCGC.js} +11 -11
- package/dist/cli-bundle/chunks/create-JBC5KUW6.js +29 -0
- package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js → delete-LCS3VPDH.js} +4 -4
- package/dist/cli-bundle/chunks/delete-MD7YXQLH.js +10 -0
- package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js → deps-DELOO4TL.js} +6 -6
- package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js → deps-FI4O6NQS.js} +6 -6
- package/dist/cli-bundle/chunks/docs-2UYBP5D6.js +14 -0
- package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js → docs-6Z2MP526.js} +6 -6
- package/dist/cli-bundle/chunks/{files-XUUBQ76I.js → files-HEUGSJZL.js} +6 -6
- package/dist/cli-bundle/chunks/{files-PVWEPT5J.js → files-HKEAN5MA.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js → focus-7SOUT5PZ.js} +5 -5
- package/dist/cli-bundle/chunks/focus-DRQ6FQH6.js +10 -0
- package/dist/cli-bundle/chunks/history-compact-65YVN5DB.js +17 -0
- package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js → history-compact-7NDVP3PT.js} +7 -6
- package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js → history-redact-7YBL4XSG.js} +5 -4
- package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js → history-redact-IZGNJBU4.js} +5 -4
- package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js → history-repair-7M4PYQUH.js} +8 -6
- package/dist/cli-bundle/chunks/history-repair-GNGETJLI.js +18 -0
- package/dist/cli-bundle/chunks/learnings-3YXDRWFT.js +13 -0
- package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js → learnings-ALC6IMNL.js} +7 -7
- package/dist/cli-bundle/chunks/notes-7JMLQ447.js +13 -0
- package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js → notes-JFCLTC5C.js} +7 -7
- package/dist/cli-bundle/chunks/plan-KOIPWVOZ.js +26 -0
- package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js → plan-T3XB3WTK.js} +12 -12
- package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js → profile-OILJHKUW.js} +12 -11
- package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js → profile-RJXA7PGS.js} +12 -11
- package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js → register-list-query-CFVG75P3.js} +30 -21
- package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js.map → register-list-query-CFVG75P3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js → register-list-query-E7UVY4TN.js} +29 -20
- package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js.map → register-list-query-E7UVY4TN.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-BLEWM5I6.js → register-mutation-4VJTXBZW.js} +86 -32
- package/dist/cli-bundle/chunks/register-mutation-4VJTXBZW.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-OTYHR7J6.js → register-mutation-IQ55E25C.js} +78 -33
- package/dist/cli-bundle/chunks/register-mutation-IQ55E25C.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-AMCUFYEW.js → register-operations-AR7RMX4W.js} +42 -38
- package/dist/cli-bundle/chunks/register-operations-AR7RMX4W.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-MRLHOZYR.js → register-operations-NOLZGORC.js} +41 -37
- package/dist/cli-bundle/chunks/register-operations-NOLZGORC.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js → register-setup-BB77VUEE.js} +17 -16
- package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js.map → register-setup-BB77VUEE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js → register-setup-EYZ7VTPZ.js} +15 -14
- package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js.map → register-setup-EYZ7VTPZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/restore-L6IAGOD7.js +15 -0
- package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js → restore-ZH65GZFB.js} +7 -6
- package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js → schema-4ERWM5QJ.js} +7 -6
- package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js → schema-55DL3Q52.js} +7 -6
- package/dist/cli-bundle/chunks/{update-DWFXXJKP.js → update-FW6FKDOP.js} +15 -15
- package/dist/cli-bundle/chunks/update-TJHSPRPT.js +23 -0
- package/dist/cli-bundle/chunks/update-many-NNALYQCN.js +35 -0
- package/dist/cli-bundle/chunks/update-many-PWXX5WHO.js +39 -0
- package/dist/cli-bundle/main.js +62 -59
- package/dist/cli-bundle/main.js.map +1 -1
- package/dist/cli-bundle/sdk-runtime.js +62 -59
- package/dist/cli-bundle/sdk-testing.js +8 -8
- package/dist/cli-bundle/sdk.js +327 -57
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/config/nested-settings.d.ts +2 -0
- package/dist/core/config/nested-settings.js +18 -2
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +38 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +1 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/item/id.d.ts +19 -2
- package/dist/core/item/id.js +27 -6
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/parse.d.ts +7 -0
- package/dist/core/item/parse.js +48 -2
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/schema/item-types-file.d.ts +2 -2
- package/dist/core/schema/item-types-file.js +2 -2
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-schema.d.ts +3 -3
- package/dist/core/schema/runtime-schema.js +2 -2
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/type-workflows.d.ts +2 -2
- package/dist/core/schema/type-workflows.js +2 -2
- package/dist/core/schema/type-workflows.js.map +1 -1
- package/dist/core/shared/constants.js +5 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +8 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +8 -2
- package/dist/core/store/settings.js.map +1 -1
- package/dist/sdk/annotations.js +24 -2
- package/dist/sdk/annotations.js.map +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +3 -3
- package/dist/sdk/cli-bootstrap.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +22 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +17 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +512 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +21 -11
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +13 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -0
- package/dist/sdk/cli-contracts/tool-schema.js +14 -10
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +69 -0
- package/dist/sdk/cli-contracts/typed-action-inputs.js +5 -0
- package/dist/sdk/cli-contracts/typed-action-inputs.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +4 -3
- package/dist/sdk/cli-contracts.js +5 -5
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/extension/describe.d.ts +1 -1
- package/dist/sdk/extension/describe.js +2 -2
- package/dist/sdk/extension/describe.js.map +1 -1
- package/dist/sdk/extension/install-runtime.js +5 -3
- package/dist/sdk/extension/install-runtime.js.map +1 -1
- package/dist/sdk/extension.d.ts +2 -2
- package/dist/sdk/extension.js +2 -2
- package/dist/sdk/extension.js.map +1 -1
- package/dist/sdk/governance/gc.d.ts +14 -1
- package/dist/sdk/governance/gc.js +38 -2
- package/dist/sdk/governance/gc.js.map +1 -1
- package/dist/sdk/governance/storage-integrity.d.ts +84 -0
- package/dist/sdk/governance/storage-integrity.js +240 -0
- package/dist/sdk/governance/storage-integrity.js.map +1 -0
- package/dist/sdk/governance/validate.d.ts +3 -1
- package/dist/sdk/governance/validate.js +56 -2
- package/dist/sdk/governance/validate.js.map +1 -1
- package/dist/sdk/history-read.d.ts +1 -1
- package/dist/sdk/history-read.js +2 -2
- package/dist/sdk/history-read.js.map +1 -1
- package/dist/sdk/history-repair.d.ts +36 -0
- package/dist/sdk/history-repair.js +69 -4
- package/dist/sdk/history-repair.js.map +1 -1
- package/dist/sdk/index.d.ts +5 -2
- package/dist/sdk/index.js +5 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/init.js +3 -3
- package/dist/sdk/init.js.map +1 -1
- package/dist/sdk/item-transaction.d.ts +131 -0
- package/dist/sdk/item-transaction.js +280 -0
- package/dist/sdk/item-transaction.js.map +1 -0
- package/dist/sdk/merge/driver.d.ts +75 -0
- package/dist/sdk/merge/driver.js +166 -0
- package/dist/sdk/merge/driver.js.map +1 -0
- package/dist/sdk/merge/index.d.ts +11 -0
- package/dist/sdk/merge/index.js +15 -0
- package/dist/sdk/merge/index.js.map +1 -0
- package/dist/sdk/merge/install.d.ts +90 -0
- package/dist/sdk/merge/install.js +318 -0
- package/dist/sdk/merge/install.js.map +1 -0
- package/dist/sdk/merge/three-way.d.ts +126 -0
- package/dist/sdk/merge/three-way.js +545 -0
- package/dist/sdk/merge/three-way.js.map +1 -0
- package/dist/sdk/query/list.d.ts +19 -2
- package/dist/sdk/query/list.js +5 -2
- package/dist/sdk/query/list.js.map +1 -1
- package/dist/sdk/runtime.d.ts +17 -14
- package/dist/sdk/runtime.js +5 -5
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/schema.d.ts +2 -2
- package/dist/sdk/schema.js +29 -2
- package/dist/sdk/schema.js.map +1 -1
- package/dist/sdk/stats.d.ts +1 -1
- package/dist/sdk/stats.js +2 -2
- package/dist/sdk/stats.js.map +1 -1
- package/dist/sdk/workspace-transaction-gc.d.ts +46 -0
- package/dist/sdk/workspace-transaction-gc.js +155 -0
- package/dist/sdk/workspace-transaction-gc.js.map +1 -0
- package/dist/sdk/workspace.d.ts +28 -4
- package/dist/sdk/workspace.js +61 -15
- package/dist/sdk/workspace.js.map +1 -1
- package/dist/types.d.ts +11 -7
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +58 -47
- package/docs/COMMANDS.md +7 -0
- package/docs/CONFIGURATION.md +2 -0
- package/docs/MERGE_SAFETY.md +99 -0
- package/docs/README.md +1 -0
- package/docs/SDK.md +56 -0
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/append-XUYF7NON.js +0 -11
- package/dist/cli-bundle/chunks/chunk-2XPDCXK5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3EZZTFL2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3KPNOZOH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-46Z6FAVP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4M6RZJXF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6V4T4RD3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-A3GAQLBH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A4FVWFZY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A5EQPNV7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AR24KW26.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BBGR4FKQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BDC4TW4B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BZKE2O5V.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CZA2DXCV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-D35WYXWC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DJAGYYCQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EEECAV5M.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-H3YKUVDR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IDUTGRDM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-IGBBTPM5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JBW2S2C6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JPWUZOMR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KAE727L2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MI3346YW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MQOSMBWV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MRXAHR4B.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N2TEEOXJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ODEIDKGW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-P24ZU5QV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Q3K5XPAQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QFG4MB7P.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RLLOZAM2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RWAIRGBC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SBW7EQC4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SVAWG7EE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UE7LK3RE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VA3H7VVC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WCBB6VI3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y2VSGFT4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YG56M3NE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZF52NVRT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZUCBPXNA.js.map +0 -7
- package/dist/cli-bundle/chunks/close-ZZCDDWJT.js +0 -12
- package/dist/cli-bundle/chunks/close-many-QCZHFCON.js +0 -23
- package/dist/cli-bundle/chunks/comments-FMQNYPSZ.js +0 -13
- package/dist/cli-bundle/chunks/copy-GI3RCVZP.js +0 -9
- package/dist/cli-bundle/chunks/create-LXMLYJNM.js +0 -29
- package/dist/cli-bundle/chunks/delete-5DFAXJNI.js +0 -10
- package/dist/cli-bundle/chunks/docs-KCWPLQOV.js +0 -14
- package/dist/cli-bundle/chunks/focus-3EJVFI3D.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-JHYVDYLW.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-REMI7DDI.js +0 -16
- package/dist/cli-bundle/chunks/learnings-O6V5WDCV.js +0 -13
- package/dist/cli-bundle/chunks/notes-ZSZREWZA.js +0 -13
- package/dist/cli-bundle/chunks/plan-EZW2YDDY.js +0 -26
- package/dist/cli-bundle/chunks/register-mutation-BLEWM5I6.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-OTYHR7J6.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-AMCUFYEW.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-MRLHOZYR.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-A55MLFAI.js +0 -14
- package/dist/cli-bundle/chunks/update-5DTSCWVF.js +0 -23
- package/dist/cli-bundle/chunks/update-many-6T4ZLZS7.js +0 -34
- package/dist/cli-bundle/chunks/update-many-MYRK6VBJ.js +0 -38
- /package/dist/cli-bundle/chunks/{append-MBXHNWSX.js.map → append-E6V54WOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-XUYF7NON.js.map → append-NNJ3EFIT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js.map → chunk-3MCTMJXI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js.map → chunk-3P7UJQOX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js.map → chunk-3VY6MIEO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js.map → chunk-4U4Z6AHI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js.map → chunk-4XGJLADW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js.map → chunk-5IZJWSDB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js.map → chunk-5NTE36LD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js.map → chunk-6C2ZZX5Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js.map → chunk-6JUTHVQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js.map → chunk-6VIJ7UA5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js.map → chunk-72LQ4TKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js.map → chunk-7WCE6Y64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js.map → chunk-AF2CCM5U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js.map → chunk-DAQ45GCS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js.map → chunk-EJDGV4GR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js.map → chunk-FDHPAVVB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js.map → chunk-GROYI4RB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js.map → chunk-GSJSM5BJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js.map → chunk-GTLCVJOE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js.map → chunk-GV2262OF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js.map → chunk-HCEBZNC3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U6RYD446.js.map → chunk-HRW7GF6T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js.map → chunk-IAQE32BI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js.map → chunk-IJNK6WW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js.map → chunk-JAPE62Y5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js.map → chunk-JGUKMMRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js.map → chunk-JH2ZSLO3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js.map → chunk-JHJSFOAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js.map → chunk-JM6YAXTR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js.map → chunk-JSLT7WVE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js.map → chunk-K4CI6Y45.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js.map → chunk-KSPWRNVP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js.map → chunk-L7BH7IWU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js.map → chunk-LPEYZRUR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js.map → chunk-NHT3F4WZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js.map → chunk-NLR32VFS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js.map → chunk-OWXOPDHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js.map → chunk-PEQGTJ5Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js.map → chunk-QJKL5PHS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js.map → chunk-QWRVBJ4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js.map → chunk-R7QV7ICM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js.map → chunk-RJO3YAFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js.map → chunk-SF3DT5HJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js.map → chunk-SZVB53Y3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js.map → chunk-T6PPNM7V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js.map → chunk-TVYYO5A7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js.map → chunk-UQLXSG72.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js.map → chunk-UVN66B3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js.map → chunk-UX6SSO2I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js.map → chunk-UZLJOEAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js.map → chunk-VDO2JMD4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js.map → chunk-VQIHNHMJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js.map → chunk-ZOJ3LR7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js.map → chunk-ZOY5K4D3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js.map → chunk-ZV2NTVMJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js.map → chunk-ZYPFOO3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-ZZCDDWJT.js.map → close-O5QVZ6ET.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-7NWA3GLA.js.map → close-QEMOYZN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-QCZHFCON.js.map → close-many-SDA426VT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js.map → close-many-UTZANOCQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js.map → comments-LZN6FXXC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-FMQNYPSZ.js.map → comments-VBQ345ND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-YDAMENCP.js.map → copy-DKTSSCK7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-GI3RCVZP.js.map → copy-M7DDI6LS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-JSL6CXU3.js.map → create-GG4RBCGC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-LXMLYJNM.js.map → create-JBC5KUW6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js.map → delete-LCS3VPDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-5DFAXJNI.js.map → delete-MD7YXQLH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js.map → deps-DELOO4TL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js.map → deps-FI4O6NQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-KCWPLQOV.js.map → docs-2UYBP5D6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js.map → docs-6Z2MP526.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-XUUBQ76I.js.map → files-HEUGSJZL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-PVWEPT5J.js.map → files-HKEAN5MA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js.map → focus-7SOUT5PZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-3EJVFI3D.js.map → focus-DRQ6FQH6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-JHYVDYLW.js.map → history-compact-65YVN5DB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js.map → history-compact-7NDVP3PT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js.map → history-redact-7YBL4XSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js.map → history-redact-IZGNJBU4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js.map → history-repair-7M4PYQUH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-REMI7DDI.js.map → history-repair-GNGETJLI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-O6V5WDCV.js.map → learnings-3YXDRWFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js.map → learnings-ALC6IMNL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-ZSZREWZA.js.map → notes-7JMLQ447.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js.map → notes-JFCLTC5C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-EZW2YDDY.js.map → plan-KOIPWVOZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js.map → plan-T3XB3WTK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js.map → profile-OILJHKUW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js.map → profile-RJXA7PGS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-A55MLFAI.js.map → restore-L6IAGOD7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js.map → restore-ZH65GZFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js.map → schema-4ERWM5QJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js.map → schema-55DL3Q52.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-DWFXXJKP.js.map → update-FW6FKDOP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-5DTSCWVF.js.map → update-TJHSPRPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-6T4ZLZS7.js.map → update-many-NNALYQCN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-MYRK6VBJ.js.map → update-many-PWXX5WHO.js.map} +0 -0
|
@@ -1,29 +1,32 @@
|
|
|
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]="17c1b721-84a1-59e2-8865-f28ad0b84cc7")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
EXECUTABLE_COMMAND_ALIASES,
|
|
5
5
|
PM_CORE_COMMAND_NAMES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UZDQXNUB.js";
|
|
7
7
|
import {
|
|
8
8
|
ensureTypeFolderScaffold
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5UX66S6U.js";
|
|
10
|
+
import {
|
|
11
|
+
ensurePmGitignore
|
|
12
|
+
} from "./chunk-CFHAODHQ.js";
|
|
10
13
|
import {
|
|
11
14
|
splitCommaList
|
|
12
15
|
} from "./chunk-NETP4DY4.js";
|
|
13
16
|
import {
|
|
14
17
|
describeExtensionActivation,
|
|
15
18
|
renderExtensionSurfaceMarkdown
|
|
16
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-6JUTHVQS.js";
|
|
17
20
|
import {
|
|
18
21
|
TYPE_PRESET_NAMES,
|
|
19
22
|
normalizeTypePresetName,
|
|
20
23
|
resolveTypePresetDefinitions
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-SZVB53Y3.js";
|
|
22
25
|
import {
|
|
23
26
|
parseItemTypesFile,
|
|
24
27
|
serializeItemTypesFile,
|
|
25
28
|
upsertItemType
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-TOBGV45Y.js";
|
|
27
30
|
import {
|
|
28
31
|
createSerialQueue,
|
|
29
32
|
getActiveExtensionRegistrations,
|
|
@@ -32,7 +35,7 @@ import {
|
|
|
32
35
|
readSettings,
|
|
33
36
|
runActiveOnWriteHooks,
|
|
34
37
|
writeSettings
|
|
35
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-POG76WWZ.js";
|
|
36
39
|
import {
|
|
37
40
|
DEFAULT_EXTENSION_PRIORITY,
|
|
38
41
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
@@ -64,47 +67,7 @@ import {
|
|
|
64
67
|
resolvePmPackageRootFromModule,
|
|
65
68
|
resolvePmRoot,
|
|
66
69
|
writeFileAtomic
|
|
67
|
-
} from "./chunk-
|
|
68
|
-
|
|
69
|
-
// dist/sdk/workspace.js
|
|
70
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
71
|
-
import path from "node:path";
|
|
72
|
-
var PM_GITIGNORE_START = "# pm-cli:runtime-cache:start";
|
|
73
|
-
var PM_GITIGNORE_END = "# pm-cli:runtime-cache:end";
|
|
74
|
-
var PM_GITIGNORE_BLOCK = [
|
|
75
|
-
PM_GITIGNORE_START,
|
|
76
|
-
".agents/pm/runtime/",
|
|
77
|
-
".agents/pm/search/",
|
|
78
|
-
".agents/pm/locks/",
|
|
79
|
-
PM_GITIGNORE_END
|
|
80
|
-
].join("\n");
|
|
81
|
-
function getPmGitignoreBlock() {
|
|
82
|
-
return PM_GITIGNORE_BLOCK;
|
|
83
|
-
}
|
|
84
|
-
async function ensurePmGitignore(workspaceRoot) {
|
|
85
|
-
const gitignorePath = path.join(workspaceRoot, ".gitignore");
|
|
86
|
-
let current = "";
|
|
87
|
-
try {
|
|
88
|
-
current = await readFile(gitignorePath, "utf8");
|
|
89
|
-
} catch (error) {
|
|
90
|
-
if (!(error instanceof Error && "code" in error && error.code === "ENOENT")) {
|
|
91
|
-
throw error;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
const start = current.indexOf(PM_GITIGNORE_START);
|
|
95
|
-
const end = current.indexOf(PM_GITIGNORE_END);
|
|
96
|
-
const withoutManagedBlock = start >= 0 && end >= start ? `${current.slice(0, start)}${current.slice(end + PM_GITIGNORE_END.length)}` : current;
|
|
97
|
-
const prefix = withoutManagedBlock.trimEnd();
|
|
98
|
-
const next = `${prefix.length > 0 ? `${prefix}
|
|
99
|
-
|
|
100
|
-
` : ""}${PM_GITIGNORE_BLOCK}
|
|
101
|
-
`;
|
|
102
|
-
if (next === current) {
|
|
103
|
-
return { path: gitignorePath, changed: false };
|
|
104
|
-
}
|
|
105
|
-
await writeFile(gitignorePath, next, "utf8");
|
|
106
|
-
return { path: gitignorePath, changed: true };
|
|
107
|
-
}
|
|
70
|
+
} from "./chunk-HYW67VJ5.js";
|
|
108
71
|
|
|
109
72
|
// dist/sdk/command-line.js
|
|
110
73
|
var quoteWindowsCommandArg = (arg) => {
|
|
@@ -138,7 +101,7 @@ var renderPmCommand = (argv, platform = process.platform) => {
|
|
|
138
101
|
|
|
139
102
|
// dist/core/packages/manifest.js
|
|
140
103
|
import fs from "node:fs/promises";
|
|
141
|
-
import
|
|
104
|
+
import path from "node:path";
|
|
142
105
|
var PM_PACKAGE_RESOURCE_KINDS = [
|
|
143
106
|
"extensions",
|
|
144
107
|
"docs",
|
|
@@ -256,7 +219,7 @@ function normalizePackageCatalogMetadata(raw) {
|
|
|
256
219
|
return Object.values(catalog).some((value) => value !== void 0) ? catalog : void 0;
|
|
257
220
|
}
|
|
258
221
|
async function readPmPackageManifest(packageRoot) {
|
|
259
|
-
const packageJsonPath =
|
|
222
|
+
const packageJsonPath = path.join(packageRoot, "package.json");
|
|
260
223
|
if (!await pathExists(packageJsonPath)) {
|
|
261
224
|
return {
|
|
262
225
|
source: "convention",
|
|
@@ -302,15 +265,15 @@ async function listExtensionManifestDirectories(parentDirectory) {
|
|
|
302
265
|
if (!entry.isDirectory()) {
|
|
303
266
|
continue;
|
|
304
267
|
}
|
|
305
|
-
const directory =
|
|
306
|
-
if (await pathExists(
|
|
268
|
+
const directory = path.join(parentDirectory, entry.name);
|
|
269
|
+
if (await pathExists(path.join(directory, "manifest.json"))) {
|
|
307
270
|
candidates.push(directory);
|
|
308
271
|
}
|
|
309
272
|
}
|
|
310
273
|
return candidates.sort((left, right) => left.localeCompare(right));
|
|
311
274
|
}
|
|
312
275
|
async function collectPackageExtensionDirectories(packageRoot) {
|
|
313
|
-
if (await pathExists(
|
|
276
|
+
if (await pathExists(path.join(packageRoot, "manifest.json"))) {
|
|
314
277
|
return [packageRoot];
|
|
315
278
|
}
|
|
316
279
|
const manifest = await readPmPackageManifest(packageRoot);
|
|
@@ -320,11 +283,11 @@ async function collectPackageExtensionDirectories(packageRoot) {
|
|
|
320
283
|
if (entry.includes("*") || entry.startsWith("!")) {
|
|
321
284
|
throw new PmCliError(`Package extension entry "${entry}" uses a glob/exclusion pattern. pm package installs currently require concrete extension paths or directories.`, EXIT_CODE.USAGE);
|
|
322
285
|
}
|
|
323
|
-
const absolute =
|
|
286
|
+
const absolute = path.resolve(packageRoot, entry);
|
|
324
287
|
if (!isPathWithinDirectory(packageRoot, absolute)) {
|
|
325
288
|
throw new PmCliError(`Package extension entry "${entry}" resolves outside package root.`, EXIT_CODE.USAGE);
|
|
326
289
|
}
|
|
327
|
-
if (await pathExists(
|
|
290
|
+
if (await pathExists(path.join(absolute, "manifest.json"))) {
|
|
328
291
|
discovered.add(absolute);
|
|
329
292
|
continue;
|
|
330
293
|
}
|
|
@@ -334,7 +297,7 @@ async function collectPackageExtensionDirectories(packageRoot) {
|
|
|
334
297
|
}
|
|
335
298
|
if (manifestEntries.length === 0) {
|
|
336
299
|
for (const root of PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS.extensions) {
|
|
337
|
-
for (const child of await listExtensionManifestDirectories(
|
|
300
|
+
for (const child of await listExtensionManifestDirectories(path.join(packageRoot, root))) {
|
|
338
301
|
discovered.add(child);
|
|
339
302
|
}
|
|
340
303
|
}
|
|
@@ -344,11 +307,11 @@ async function collectPackageExtensionDirectories(packageRoot) {
|
|
|
344
307
|
|
|
345
308
|
// dist/sdk/extension/scaffold.js
|
|
346
309
|
import fs3 from "node:fs/promises";
|
|
347
|
-
import
|
|
310
|
+
import path3 from "node:path";
|
|
348
311
|
|
|
349
312
|
// dist/sdk/extension/shared.js
|
|
350
313
|
import fs2 from "node:fs/promises";
|
|
351
|
-
import
|
|
314
|
+
import path2 from "node:path";
|
|
352
315
|
function normalizeStringList(values) {
|
|
353
316
|
return [
|
|
354
317
|
...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))
|
|
@@ -419,7 +382,7 @@ function parseExtensionManifest(raw) {
|
|
|
419
382
|
};
|
|
420
383
|
}
|
|
421
384
|
async function validateExtensionDirectory(directory) {
|
|
422
|
-
const manifestPath =
|
|
385
|
+
const manifestPath = path2.join(directory, "manifest.json");
|
|
423
386
|
if (!await pathExists(manifestPath)) {
|
|
424
387
|
throw new PmCliError(`Extension manifest is missing at "${manifestPath}".`, EXIT_CODE.USAGE);
|
|
425
388
|
}
|
|
@@ -433,7 +396,7 @@ async function validateExtensionDirectory(directory) {
|
|
|
433
396
|
if (!manifest) {
|
|
434
397
|
throw new PmCliError(`Extension manifest at "${manifestPath}" is invalid.`, EXIT_CODE.USAGE);
|
|
435
398
|
}
|
|
436
|
-
const entryPath =
|
|
399
|
+
const entryPath = path2.resolve(directory, manifest.entry);
|
|
437
400
|
if (!isPathWithinDirectory(directory, entryPath)) {
|
|
438
401
|
throw new PmCliError(`Extension entry "${manifest.entry}" resolves outside extension directory "${directory}".`, EXIT_CODE.USAGE);
|
|
439
402
|
}
|
|
@@ -2558,8 +2521,8 @@ async function scaffoldExtensionProject(target, vocabulary = "extension", capabi
|
|
|
2558
2521
|
}
|
|
2559
2522
|
const style = declarative ? "declarative" : "imperative";
|
|
2560
2523
|
const normalizedTarget = target.trim();
|
|
2561
|
-
const targetPath =
|
|
2562
|
-
const extensionName = normalizeManagedDirectoryName(
|
|
2524
|
+
const targetPath = path3.resolve(process.cwd(), normalizedTarget);
|
|
2525
|
+
const extensionName = normalizeManagedDirectoryName(path3.basename(targetPath));
|
|
2563
2526
|
const commandName = buildScaffoldCommandName(extensionName);
|
|
2564
2527
|
const scaffoldFiles = buildStarterExtensionScaffoldFiles(extensionName, commandName, vocabulary, resolvedCapability, declarative);
|
|
2565
2528
|
let createdDirectory = false;
|
|
@@ -2573,7 +2536,7 @@ async function scaffoldExtensionProject(target, vocabulary = "extension", capabi
|
|
|
2573
2536
|
createdDirectory = true;
|
|
2574
2537
|
}
|
|
2575
2538
|
for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
|
|
2576
|
-
const absolutePath =
|
|
2539
|
+
const absolutePath = path3.join(targetPath, relativePath);
|
|
2577
2540
|
if (!await pathExists(absolutePath)) {
|
|
2578
2541
|
continue;
|
|
2579
2542
|
}
|
|
@@ -2584,7 +2547,7 @@ async function scaffoldExtensionProject(target, vocabulary = "extension", capabi
|
|
|
2584
2547
|
}
|
|
2585
2548
|
const files = [];
|
|
2586
2549
|
for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
|
|
2587
|
-
const absolutePath =
|
|
2550
|
+
const absolutePath = path3.join(targetPath, relativePath);
|
|
2588
2551
|
if (await pathExists(absolutePath)) {
|
|
2589
2552
|
files.push({
|
|
2590
2553
|
path: relativePath,
|
|
@@ -2592,7 +2555,7 @@ async function scaffoldExtensionProject(target, vocabulary = "extension", capabi
|
|
|
2592
2555
|
});
|
|
2593
2556
|
continue;
|
|
2594
2557
|
}
|
|
2595
|
-
await fs3.mkdir(
|
|
2558
|
+
await fs3.mkdir(path3.dirname(absolutePath), { recursive: true });
|
|
2596
2559
|
await fs3.writeFile(absolutePath, content, "utf8");
|
|
2597
2560
|
files.push({
|
|
2598
2561
|
path: relativePath,
|
|
@@ -2681,15 +2644,15 @@ function renderExtensionDescribeMarkdown(result, noun) {
|
|
|
2681
2644
|
|
|
2682
2645
|
// dist/sdk/extension.js
|
|
2683
2646
|
import fs9 from "node:fs/promises";
|
|
2684
|
-
import
|
|
2647
|
+
import path9 from "node:path";
|
|
2685
2648
|
|
|
2686
2649
|
// dist/sdk/extension/managed-state.js
|
|
2687
2650
|
import fs4 from "node:fs/promises";
|
|
2688
|
-
import
|
|
2651
|
+
import path4 from "node:path";
|
|
2689
2652
|
var MANAGED_EXTENSION_STATE_FILENAME = ".managed-extensions.json";
|
|
2690
2653
|
var MANAGED_EXTENSION_STATE_VERSION = 1;
|
|
2691
2654
|
function resolveManagedExtensionStatePath(extensionsRoot) {
|
|
2692
|
-
return
|
|
2655
|
+
return path4.join(extensionsRoot, MANAGED_EXTENSION_STATE_FILENAME);
|
|
2693
2656
|
}
|
|
2694
2657
|
function createEmptyManagedExtensionState() {
|
|
2695
2658
|
return {
|
|
@@ -2858,13 +2821,13 @@ function upsertManagedEntry(state, entry) {
|
|
|
2858
2821
|
import { execFile } from "node:child_process";
|
|
2859
2822
|
import fs6 from "node:fs/promises";
|
|
2860
2823
|
import os from "node:os";
|
|
2861
|
-
import
|
|
2824
|
+
import path6 from "node:path";
|
|
2862
2825
|
import { fileURLToPath } from "node:url";
|
|
2863
2826
|
import { promisify } from "node:util";
|
|
2864
2827
|
|
|
2865
2828
|
// dist/sdk/extension/bundled-catalog.js
|
|
2866
2829
|
import fs5 from "node:fs/promises";
|
|
2867
|
-
import
|
|
2830
|
+
import path5 from "node:path";
|
|
2868
2831
|
var PM_PACKAGE_ROOT_ENV = "PM_CLI_PACKAGE_ROOT";
|
|
2869
2832
|
var LEGACY_BUNDLED_PACKAGE_ALIASES = {
|
|
2870
2833
|
beads: {
|
|
@@ -2881,7 +2844,7 @@ function resolvePackageRootCandidates() {
|
|
|
2881
2844
|
const candidates = [];
|
|
2882
2845
|
const envRoot = process.env[PM_PACKAGE_ROOT_ENV];
|
|
2883
2846
|
if (typeof envRoot === "string" && envRoot.trim().length > 0) {
|
|
2884
|
-
candidates.push(
|
|
2847
|
+
candidates.push(path5.resolve(envRoot.trim()));
|
|
2885
2848
|
}
|
|
2886
2849
|
candidates.push(resolvePmPackageRootFromModule(import.meta.url, ["../../.."]));
|
|
2887
2850
|
return [...new Set(candidates)];
|
|
@@ -2897,8 +2860,8 @@ async function resolveBundledExtensionAliasSource(input3) {
|
|
|
2897
2860
|
return null;
|
|
2898
2861
|
}
|
|
2899
2862
|
for (const packageRoot2 of resolvePackageRootCandidates()) {
|
|
2900
|
-
const legacyExtensionPath =
|
|
2901
|
-
if (await pathExists(
|
|
2863
|
+
const legacyExtensionPath = path5.join(packageRoot2, ".agents", "pm", "extensions", alias.legacy_extension_directory);
|
|
2864
|
+
if (await pathExists(path5.join(legacyExtensionPath, "manifest.json"))) {
|
|
2902
2865
|
return legacyExtensionPath;
|
|
2903
2866
|
}
|
|
2904
2867
|
}
|
|
@@ -2916,8 +2879,8 @@ async function collectManifestPackageEntries(packagesRoot, entriesByAlias) {
|
|
|
2916
2879
|
if (!entry.isDirectory() || !entry.name.startsWith("pm-")) {
|
|
2917
2880
|
continue;
|
|
2918
2881
|
}
|
|
2919
|
-
const candidateRoot =
|
|
2920
|
-
if (!await pathExists(
|
|
2882
|
+
const candidateRoot = path5.join(packagesRoot, entry.name);
|
|
2883
|
+
if (!await pathExists(path5.join(candidateRoot, "package.json"))) {
|
|
2921
2884
|
continue;
|
|
2922
2885
|
}
|
|
2923
2886
|
const manifest = await readPmPackageManifest(candidateRoot);
|
|
@@ -2939,7 +2902,7 @@ async function collectManifestPackageEntries(packagesRoot, entriesByAlias) {
|
|
|
2939
2902
|
async function collectBundledPackageEntries() {
|
|
2940
2903
|
const entriesByAlias = /* @__PURE__ */ new Map();
|
|
2941
2904
|
for (const packageRoot of resolvePackageRootCandidates()) {
|
|
2942
|
-
const packagesRoot =
|
|
2905
|
+
const packagesRoot = path5.join(packageRoot, "packages");
|
|
2943
2906
|
if (!await pathExists(packagesRoot)) {
|
|
2944
2907
|
continue;
|
|
2945
2908
|
}
|
|
@@ -2950,8 +2913,8 @@ async function collectBundledPackageEntries() {
|
|
|
2950
2913
|
continue;
|
|
2951
2914
|
}
|
|
2952
2915
|
for (const packageRoot of resolvePackageRootCandidates()) {
|
|
2953
|
-
const packagePath =
|
|
2954
|
-
if (await pathExists(
|
|
2916
|
+
const packagePath = path5.join(packageRoot, "packages", legacy.package_directory);
|
|
2917
|
+
if (await pathExists(path5.join(packagePath, "package.json"))) {
|
|
2955
2918
|
entriesByAlias.set(alias, {
|
|
2956
2919
|
alias,
|
|
2957
2920
|
package_directory: legacy.package_directory,
|
|
@@ -3014,7 +2977,7 @@ function buildBundledCatalogPackageEntry(manifest, bundledEntry, scope, installe
|
|
|
3014
2977
|
alias: bundledEntry.alias,
|
|
3015
2978
|
bundled: true,
|
|
3016
2979
|
available: true,
|
|
3017
|
-
installed: installedBuiltinAliases.has(bundledEntry.alias) || installedLocations.has(
|
|
2980
|
+
installed: installedBuiltinAliases.has(bundledEntry.alias) || installedLocations.has(path5.resolve(bundledEntry.package_root)),
|
|
3018
2981
|
install_target: bundledEntry.alias,
|
|
3019
2982
|
install_command: `pm install ${bundledEntry.alias} ${installScopeFlag}`,
|
|
3020
2983
|
package_name: manifest.package_name,
|
|
@@ -3039,7 +3002,7 @@ async function buildBundledPackageCatalog(scope, global, options = {}) {
|
|
|
3039
3002
|
const roots = resolveExtensionRoots(resolvePmRoot(process.cwd(), global.path), process.cwd());
|
|
3040
3003
|
const selectedRoot = scope === "global" ? roots.global : roots.project;
|
|
3041
3004
|
const managedStateRead = await readManagedExtensionState(selectedRoot);
|
|
3042
|
-
const installedLocations = new Set(managedStateRead.state.entries.filter((entry) => entry.scope === scope).filter((entry) => entry.source.kind !== "builtin").map((entry) =>
|
|
3005
|
+
const installedLocations = new Set(managedStateRead.state.entries.filter((entry) => entry.scope === scope).filter((entry) => entry.source.kind !== "builtin").map((entry) => path5.resolve(entry.source.location)));
|
|
3043
3006
|
const installedBuiltinAliases = new Set(managedStateRead.state.entries.filter((entry) => entry.scope === scope && entry.source.kind === "builtin").flatMap((entry) => [
|
|
3044
3007
|
entry.source.name,
|
|
3045
3008
|
entry.source.input,
|
|
@@ -3209,7 +3172,7 @@ function parseExtensionInstallSource(input3, options = {}) {
|
|
|
3209
3172
|
return {
|
|
3210
3173
|
kind: "local",
|
|
3211
3174
|
input: normalizedInput,
|
|
3212
|
-
absolute_path:
|
|
3175
|
+
absolute_path: path6.resolve(process.cwd(), normalizedInput)
|
|
3213
3176
|
};
|
|
3214
3177
|
}
|
|
3215
3178
|
async function runGitCommand(args, execRunner = execFileAsync, timeoutMs) {
|
|
@@ -3317,8 +3280,8 @@ function wrapNpmPackResolutionError(spec, error) {
|
|
|
3317
3280
|
return new PmCliError(recovery.message, EXIT_CODE.NOT_FOUND, recovery.context);
|
|
3318
3281
|
}
|
|
3319
3282
|
async function resolveLocalNpmPackagePath(spec) {
|
|
3320
|
-
if (
|
|
3321
|
-
const absolutePath =
|
|
3283
|
+
if (path6.isAbsolute(spec) || spec.startsWith(".") || spec.startsWith("..")) {
|
|
3284
|
+
const absolutePath = path6.resolve(process.cwd(), spec);
|
|
3322
3285
|
return await pathExists(absolutePath) ? absolutePath : null;
|
|
3323
3286
|
}
|
|
3324
3287
|
try {
|
|
@@ -3330,7 +3293,7 @@ async function resolveLocalNpmPackagePath(spec) {
|
|
|
3330
3293
|
} catch {
|
|
3331
3294
|
}
|
|
3332
3295
|
if (!/^[a-z][a-z0-9+.-]*:/i.test(spec)) {
|
|
3333
|
-
const absolutePath =
|
|
3296
|
+
const absolutePath = path6.resolve(process.cwd(), spec);
|
|
3334
3297
|
if (await pathExists(absolutePath)) {
|
|
3335
3298
|
return absolutePath;
|
|
3336
3299
|
}
|
|
@@ -3366,7 +3329,7 @@ function normalizeNpmLocalFileAliasSpec(spec, cwd = process.cwd()) {
|
|
|
3366
3329
|
return spec;
|
|
3367
3330
|
}
|
|
3368
3331
|
if (!target.startsWith("/")) {
|
|
3369
|
-
return `${packageName}@${
|
|
3332
|
+
return `${packageName}@${path6.resolve(cwd, target)}`;
|
|
3370
3333
|
}
|
|
3371
3334
|
let decodedPath;
|
|
3372
3335
|
try {
|
|
@@ -3383,7 +3346,7 @@ function parsePackedNpmPackage(stdout, packDirectory) {
|
|
|
3383
3346
|
const first = Array.isArray(parsed) ? parsed[0] : void 0;
|
|
3384
3347
|
if (first && typeof first.filename === "string" && first.filename.trim().length > 0) {
|
|
3385
3348
|
return {
|
|
3386
|
-
tarball:
|
|
3349
|
+
tarball: path6.resolve(packDirectory, first.filename),
|
|
3387
3350
|
package: typeof first.name === "string" ? first.name : void 0,
|
|
3388
3351
|
version: typeof first.version === "string" ? first.version : void 0
|
|
3389
3352
|
};
|
|
@@ -3395,7 +3358,7 @@ function parsePackedNpmPackage(stdout, packDirectory) {
|
|
|
3395
3358
|
throw new PmCliError("npm pack did not report a tarball filename.", EXIT_CODE.GENERIC_FAILURE);
|
|
3396
3359
|
}
|
|
3397
3360
|
return {
|
|
3398
|
-
tarball:
|
|
3361
|
+
tarball: path6.resolve(packDirectory, lastLine)
|
|
3399
3362
|
};
|
|
3400
3363
|
}
|
|
3401
3364
|
async function resolveNpmSourceDirectory(source) {
|
|
@@ -3404,7 +3367,7 @@ async function resolveNpmSourceDirectory(source) {
|
|
|
3404
3367
|
async function resolveNpmSourceDirectoryWithRunner(source, npmRunner) {
|
|
3405
3368
|
const localPackageRoot = await resolveLocalNpmPackagePath(source.spec);
|
|
3406
3369
|
if (localPackageRoot) {
|
|
3407
|
-
const packageJsonPath =
|
|
3370
|
+
const packageJsonPath = path6.join(localPackageRoot, "package.json");
|
|
3408
3371
|
const packageJson = await pathExists(packageJsonPath) ? JSON.parse(await fs6.readFile(packageJsonPath, "utf8")) : {};
|
|
3409
3372
|
return {
|
|
3410
3373
|
directory: await resolvePackageExtensionDirectory(localPackageRoot, source.input),
|
|
@@ -3414,9 +3377,9 @@ async function resolveNpmSourceDirectoryWithRunner(source, npmRunner) {
|
|
|
3414
3377
|
}
|
|
3415
3378
|
};
|
|
3416
3379
|
}
|
|
3417
|
-
const tempRoot = await fs6.mkdtemp(
|
|
3418
|
-
const packDirectory =
|
|
3419
|
-
const extractDirectory =
|
|
3380
|
+
const tempRoot = await fs6.mkdtemp(path6.join(os.tmpdir(), "pm-npm-package-source-"));
|
|
3381
|
+
const packDirectory = path6.join(tempRoot, "pack");
|
|
3382
|
+
const extractDirectory = path6.join(tempRoot, "extract");
|
|
3420
3383
|
await fs6.mkdir(packDirectory, { recursive: true });
|
|
3421
3384
|
await fs6.mkdir(extractDirectory, { recursive: true });
|
|
3422
3385
|
try {
|
|
@@ -3430,7 +3393,7 @@ async function resolveNpmSourceDirectoryWithRunner(source, npmRunner) {
|
|
|
3430
3393
|
]);
|
|
3431
3394
|
const packed = parsePackedNpmPackage(packStdout, packDirectory);
|
|
3432
3395
|
await execFileAsync("tar", ["-xzf", packed.tarball, "-C", extractDirectory], { encoding: "utf8" });
|
|
3433
|
-
const packageRoot =
|
|
3396
|
+
const packageRoot = path6.join(extractDirectory, "package");
|
|
3434
3397
|
await installNpmPackageRuntimeDependencies(packageRoot);
|
|
3435
3398
|
const directory = await resolvePackageExtensionDirectory(packageRoot, source.input);
|
|
3436
3399
|
return {
|
|
@@ -3451,7 +3414,7 @@ async function resolveNpmSourceDirectoryWithRunner(source, npmRunner) {
|
|
|
3451
3414
|
}
|
|
3452
3415
|
}
|
|
3453
3416
|
async function installNpmPackageRuntimeDependencies(packageRoot) {
|
|
3454
|
-
const packageJsonPath =
|
|
3417
|
+
const packageJsonPath = path6.join(packageRoot, "package.json");
|
|
3455
3418
|
if (!await pathExists(packageJsonPath)) {
|
|
3456
3419
|
return;
|
|
3457
3420
|
}
|
|
@@ -3478,8 +3441,8 @@ async function installNpmPackageRuntimeDependencies(packageRoot) {
|
|
|
3478
3441
|
`, "utf8");
|
|
3479
3442
|
try {
|
|
3480
3443
|
await Promise.all([
|
|
3481
|
-
fs6.rm(
|
|
3482
|
-
fs6.rm(
|
|
3444
|
+
fs6.rm(path6.join(packageRoot, "package-lock.json"), { force: true }),
|
|
3445
|
+
fs6.rm(path6.join(packageRoot, "npm-shrinkwrap.json"), { force: true })
|
|
3483
3446
|
]);
|
|
3484
3447
|
if (dependencySpecs.length > 0) {
|
|
3485
3448
|
await runNpmCommand([
|
|
@@ -3537,8 +3500,8 @@ async function linkHostedPmCliDependency(packageRoot) {
|
|
|
3537
3500
|
"../../.."
|
|
3538
3501
|
]);
|
|
3539
3502
|
const [scope, packageName] = PM_CLI_PACKAGE_NAME.split("/");
|
|
3540
|
-
const scopedDirectory =
|
|
3541
|
-
const linkPath =
|
|
3503
|
+
const scopedDirectory = path6.join(packageRoot, "node_modules", scope);
|
|
3504
|
+
const linkPath = path6.join(scopedDirectory, packageName);
|
|
3542
3505
|
await fs6.mkdir(scopedDirectory, { recursive: true });
|
|
3543
3506
|
await fs6.rm(linkPath, { recursive: true, force: true });
|
|
3544
3507
|
await fs6.symlink(hostPackageRoot, linkPath, resolveDirectorySymlinkType(process.platform));
|
|
@@ -3571,7 +3534,7 @@ async function resolvePackageExtensionDirectory(packageRoot, sourceLabel) {
|
|
|
3571
3534
|
return discovered[0];
|
|
3572
3535
|
}
|
|
3573
3536
|
if (discovered.length > 1) {
|
|
3574
|
-
const choices = discovered.map((entry) =>
|
|
3537
|
+
const choices = discovered.map((entry) => path6.relative(packageRoot, entry).replaceAll(path6.sep, "/")).sort((left, right) => left.localeCompare(right));
|
|
3575
3538
|
throw new PmCliError(`Package source "${sourceLabel}" contains multiple extension manifests. Provide an explicit extension path. Candidates: ${choices.join(", ")}`, EXIT_CODE.USAGE);
|
|
3576
3539
|
}
|
|
3577
3540
|
throw new PmCliError(`Unable to locate a pm extension manifest in package source "${sourceLabel}". Package installs currently activate only extension resources, so add package.json pm.extensions or an extensions/ directory. Metadata-only resources like pm.docs/pm.examples are catalog metadata and do not activate commands.`, EXIT_CODE.USAGE);
|
|
@@ -3580,26 +3543,26 @@ async function resolveGithubSourceDirectory(cloneDirectory, source) {
|
|
|
3580
3543
|
const candidatePaths = [];
|
|
3581
3544
|
if (source.subpath) {
|
|
3582
3545
|
candidatePaths.push(source.subpath);
|
|
3583
|
-
candidatePaths.push(
|
|
3584
|
-
candidatePaths.push(
|
|
3585
|
-
candidatePaths.push(
|
|
3546
|
+
candidatePaths.push(path6.posix.join(".agents/pm/extensions", source.subpath));
|
|
3547
|
+
candidatePaths.push(path6.posix.join(".custom/pm-extensions", source.subpath));
|
|
3548
|
+
candidatePaths.push(path6.posix.join(".custom/pm-extension", source.subpath));
|
|
3586
3549
|
}
|
|
3587
3550
|
for (const candidate of candidatePaths) {
|
|
3588
|
-
const absolute =
|
|
3551
|
+
const absolute = path6.resolve(cloneDirectory, candidate);
|
|
3589
3552
|
if (!isPathWithinDirectory(cloneDirectory, absolute)) {
|
|
3590
3553
|
continue;
|
|
3591
3554
|
}
|
|
3592
|
-
if (await pathExists(
|
|
3555
|
+
if (await pathExists(path6.join(absolute, "manifest.json"))) {
|
|
3593
3556
|
return { directory: absolute, resolved_subpath: candidate };
|
|
3594
3557
|
}
|
|
3595
3558
|
}
|
|
3596
|
-
if (await pathExists(
|
|
3559
|
+
if (await pathExists(path6.join(cloneDirectory, "manifest.json"))) {
|
|
3597
3560
|
return { directory: cloneDirectory, resolved_subpath: "." };
|
|
3598
3561
|
}
|
|
3599
3562
|
const discoveredDirectory = await resolvePackageExtensionDirectory(cloneDirectory, source.input);
|
|
3600
3563
|
return {
|
|
3601
3564
|
directory: discoveredDirectory,
|
|
3602
|
-
resolved_subpath:
|
|
3565
|
+
resolved_subpath: path6.relative(cloneDirectory, discoveredDirectory).replaceAll(path6.sep, "/")
|
|
3603
3566
|
};
|
|
3604
3567
|
}
|
|
3605
3568
|
function looksLikeBarePackageName(input3) {
|
|
@@ -3621,7 +3584,7 @@ async function buildLocalSourceNotFoundError(source) {
|
|
|
3621
3584
|
let bundledAliases = [];
|
|
3622
3585
|
try {
|
|
3623
3586
|
const envPackageRoot = process.env.PM_CLI_PACKAGE_ROOT;
|
|
3624
|
-
const cacheKey = typeof envPackageRoot === "string" && envPackageRoot.trim().length > 0 ?
|
|
3587
|
+
const cacheKey = typeof envPackageRoot === "string" && envPackageRoot.trim().length > 0 ? path6.resolve(envPackageRoot.trim()) : "";
|
|
3625
3588
|
if (bundledPackageAliasesCache?.key !== cacheKey) {
|
|
3626
3589
|
bundledPackageAliasesCache = {
|
|
3627
3590
|
key: cacheKey,
|
|
@@ -3674,12 +3637,12 @@ async function resolveInstallSource(source) {
|
|
|
3674
3637
|
source,
|
|
3675
3638
|
directory: resolved.directory,
|
|
3676
3639
|
cleanup: resolved.cleanup,
|
|
3677
|
-
resolved_subpath:
|
|
3640
|
+
resolved_subpath: path6.relative(path6.dirname(resolved.directory), resolved.directory).replaceAll(path6.sep, "/"),
|
|
3678
3641
|
npm_package: resolved.package,
|
|
3679
3642
|
npm_version: resolved.version
|
|
3680
3643
|
};
|
|
3681
3644
|
}
|
|
3682
|
-
const cloneDirectory = await fs6.mkdtemp(
|
|
3645
|
+
const cloneDirectory = await fs6.mkdtemp(path6.join(os.tmpdir(), "pm-extension-source-"));
|
|
3683
3646
|
const cloneArgs = ["clone", "--depth", "1"];
|
|
3684
3647
|
if (source.ref) {
|
|
3685
3648
|
cloneArgs.push("--branch", source.ref);
|
|
@@ -4233,7 +4196,7 @@ function buildDoctorConsistencySummary(scope, installedExtensions, loadedExtensi
|
|
|
4233
4196
|
import { randomUUID } from "node:crypto";
|
|
4234
4197
|
import fs7 from "node:fs/promises";
|
|
4235
4198
|
import os2 from "node:os";
|
|
4236
|
-
import
|
|
4199
|
+
import path7 from "node:path";
|
|
4237
4200
|
var EXTENSION_INSTALL_COPY_ATTEMPTS = 3;
|
|
4238
4201
|
var EXTENSION_INSTALL_LOCK_ATTEMPTS = 120;
|
|
4239
4202
|
var EXTENSION_INSTALL_LOCK_DELAY_MS = 250;
|
|
@@ -4250,7 +4213,7 @@ var sleep = (ms) => new Promise((resolve) => {
|
|
|
4250
4213
|
setTimeout(resolve, ms);
|
|
4251
4214
|
});
|
|
4252
4215
|
var ensureExtensionModuleTypeMarker = async (destinationDirectory) => {
|
|
4253
|
-
const markerPath =
|
|
4216
|
+
const markerPath = path7.join(destinationDirectory, "package.json");
|
|
4254
4217
|
if (await pathExists(markerPath)) {
|
|
4255
4218
|
return;
|
|
4256
4219
|
}
|
|
@@ -4258,25 +4221,25 @@ var ensureExtensionModuleTypeMarker = async (destinationDirectory) => {
|
|
|
4258
4221
|
`, "utf8");
|
|
4259
4222
|
};
|
|
4260
4223
|
var resolveCanonicalExtensionInstallDestination = async (destinationDirectory) => {
|
|
4261
|
-
const resolvedDestination =
|
|
4262
|
-
const destinationParent =
|
|
4263
|
-
const destinationRoot =
|
|
4224
|
+
const resolvedDestination = path7.resolve(destinationDirectory);
|
|
4225
|
+
const destinationParent = path7.dirname(resolvedDestination);
|
|
4226
|
+
const destinationRoot = path7.parse(destinationParent).root;
|
|
4264
4227
|
let canonicalDestinationParent = await fs7.realpath(destinationRoot).catch(() => destinationRoot);
|
|
4265
|
-
const relativeDestinationParent =
|
|
4266
|
-
const destinationSegments = relativeDestinationParent === "" ? [] : relativeDestinationParent.split(
|
|
4228
|
+
const relativeDestinationParent = path7.relative(destinationRoot, destinationParent);
|
|
4229
|
+
const destinationSegments = relativeDestinationParent === "" ? [] : relativeDestinationParent.split(path7.sep);
|
|
4267
4230
|
for (const [index, segment] of destinationSegments.entries()) {
|
|
4268
|
-
const candidate =
|
|
4231
|
+
const candidate = path7.join(canonicalDestinationParent, segment);
|
|
4269
4232
|
try {
|
|
4270
4233
|
canonicalDestinationParent = await fs7.realpath(candidate);
|
|
4271
4234
|
} catch {
|
|
4272
|
-
canonicalDestinationParent =
|
|
4235
|
+
canonicalDestinationParent = path7.join(canonicalDestinationParent, ...destinationSegments.slice(index));
|
|
4273
4236
|
break;
|
|
4274
4237
|
}
|
|
4275
4238
|
}
|
|
4276
|
-
return
|
|
4239
|
+
return path7.join(canonicalDestinationParent, path7.basename(resolvedDestination));
|
|
4277
4240
|
};
|
|
4278
4241
|
var copyExtensionDirectoryWithoutSelfNesting = async (sourceDirectory, destinationDirectory, copyDirectory, temporaryDirectory = os2.tmpdir()) => {
|
|
4279
|
-
const resolvedSource =
|
|
4242
|
+
const resolvedSource = path7.resolve(sourceDirectory);
|
|
4280
4243
|
const canonicalSource = await fs7.realpath(resolvedSource).catch(() => resolvedSource);
|
|
4281
4244
|
const canonicalDestination = await resolveCanonicalExtensionInstallDestination(destinationDirectory);
|
|
4282
4245
|
if (canonicalSource === canonicalDestination) {
|
|
@@ -4289,13 +4252,13 @@ var copyExtensionDirectoryWithoutSelfNesting = async (sourceDirectory, destinati
|
|
|
4289
4252
|
});
|
|
4290
4253
|
return;
|
|
4291
4254
|
}
|
|
4292
|
-
const systemTempDirectory =
|
|
4293
|
-
const stagingBase = isPathWithinDirectory(canonicalSource, systemTempDirectory) ?
|
|
4255
|
+
const systemTempDirectory = await fs7.realpath(path7.resolve(temporaryDirectory)).catch(() => resolveCanonicalExtensionInstallDestination(temporaryDirectory));
|
|
4256
|
+
const stagingBase = isPathWithinDirectory(canonicalSource, systemTempDirectory) ? path7.dirname(canonicalSource) : systemTempDirectory;
|
|
4294
4257
|
if (isPathWithinDirectory(canonicalSource, stagingBase)) {
|
|
4295
4258
|
throw new PmCliError(`Extension source "${sourceDirectory}" contains its install destination and no external staging directory is available. Install a narrower package directory instead.`, EXIT_CODE.USAGE, { code: "extension_install_source_contains_destination" });
|
|
4296
4259
|
}
|
|
4297
|
-
const stagingRoot = await fs7.mkdtemp(
|
|
4298
|
-
const stagedDirectory =
|
|
4260
|
+
const stagingRoot = await fs7.mkdtemp(path7.join(stagingBase, "pm-extension-copy-"));
|
|
4261
|
+
const stagedDirectory = path7.join(stagingRoot, "extension");
|
|
4299
4262
|
try {
|
|
4300
4263
|
await copyDirectory(sourceDirectory, stagedDirectory, {
|
|
4301
4264
|
recursive: true,
|
|
@@ -4326,7 +4289,7 @@ var copyExtensionDirectoryForInstall = async (sourceDirectory, destinationDirect
|
|
|
4326
4289
|
var readExtensionInstallLockOwnerToken = async (lockPath) => {
|
|
4327
4290
|
let ownerContents;
|
|
4328
4291
|
try {
|
|
4329
|
-
ownerContents = await fs7.readFile(
|
|
4292
|
+
ownerContents = await fs7.readFile(path7.join(lockPath, "owner.json"), "utf8");
|
|
4330
4293
|
} catch (error) {
|
|
4331
4294
|
if (!isErrnoCode(error, "ENOENT"))
|
|
4332
4295
|
throw error;
|
|
@@ -4389,7 +4352,7 @@ var startExtensionInstallLockHeartbeat = (lockPath, ownerToken, intervalMs) => {
|
|
|
4389
4352
|
var createExtensionInstallLock = async (lockPath, owner) => {
|
|
4390
4353
|
await fs7.mkdir(lockPath);
|
|
4391
4354
|
try {
|
|
4392
|
-
await fs7.writeFile(
|
|
4355
|
+
await fs7.writeFile(path7.join(lockPath, "owner.json"), `${JSON.stringify(owner, null, 2)}
|
|
4393
4356
|
`, "utf8");
|
|
4394
4357
|
} catch (error) {
|
|
4395
4358
|
await fs7.rm(lockPath, { recursive: true, force: true }).catch(() => {
|
|
@@ -4416,8 +4379,8 @@ var acquireExtensionInstallLock = async (lockPath, owner, attempts, delayMs, sta
|
|
|
4416
4379
|
return false;
|
|
4417
4380
|
};
|
|
4418
4381
|
var withExtensionInstallLock = async (settingsRoot, destinationDirectoryName, run, options) => {
|
|
4419
|
-
const lockRoot =
|
|
4420
|
-
const lockPath =
|
|
4382
|
+
const lockRoot = path7.join(settingsRoot, "runtime", "extension-install-locks");
|
|
4383
|
+
const lockPath = path7.join(lockRoot, "scope.lock");
|
|
4421
4384
|
await fs7.mkdir(lockRoot, { recursive: true });
|
|
4422
4385
|
const { attempts: rawAttempts = EXTENSION_INSTALL_LOCK_ATTEMPTS, delay_ms: rawDelayMs = EXTENSION_INSTALL_LOCK_DELAY_MS, stale_ms: rawStaleMs = EXTENSION_INSTALL_LOCK_STALE_MS, heartbeat_ms: rawHeartbeatMs } = options ?? {};
|
|
4423
4386
|
if (![rawAttempts, rawDelayMs, rawStaleMs, rawHeartbeatMs].filter((value) => value !== void 0).every(Number.isFinite)) {
|
|
@@ -4518,7 +4481,7 @@ var checkGithubUpdate = async (source, gitCommandRunner = runGitCommand) => {
|
|
|
4518
4481
|
|
|
4519
4482
|
// dist/sdk/extension/install-snapshot.js
|
|
4520
4483
|
import fs8 from "node:fs/promises";
|
|
4521
|
-
import
|
|
4484
|
+
import path8 from "node:path";
|
|
4522
4485
|
var readOptionalMetadataFile = async (filePath) => fs8.readFile(filePath).catch((error) => {
|
|
4523
4486
|
if (isErrnoCode(error, "ENOENT"))
|
|
4524
4487
|
return null;
|
|
@@ -4562,7 +4525,7 @@ var restoreExtensionInstallSnapshot = async (snapshot) => {
|
|
|
4562
4525
|
if (contents === null) {
|
|
4563
4526
|
await fs8.rm(filePath, { force: true });
|
|
4564
4527
|
} else {
|
|
4565
|
-
await fs8.mkdir(
|
|
4528
|
+
await fs8.mkdir(path8.dirname(filePath), { recursive: true });
|
|
4566
4529
|
await fs8.writeFile(filePath, contents);
|
|
4567
4530
|
}
|
|
4568
4531
|
}
|
|
@@ -4962,8 +4925,8 @@ var buildMissingManifestInspection = (directoryName, scope, settings, managedEnt
|
|
|
4962
4925
|
};
|
|
4963
4926
|
};
|
|
4964
4927
|
var inspectInstalledExtensionDirectory = async (extensionsRoot, directoryName, scope, settings, managedByName, managedByDirectory) => {
|
|
4965
|
-
const extensionDirectory =
|
|
4966
|
-
const manifestPath =
|
|
4928
|
+
const extensionDirectory = path9.join(extensionsRoot, directoryName);
|
|
4929
|
+
const manifestPath = path9.join(extensionDirectory, "manifest.json");
|
|
4967
4930
|
const managedDirectoryEntry = managedByDirectory.get(normalizeExtensionNameForMatch(directoryName));
|
|
4968
4931
|
if (!await pathExists(manifestPath)) {
|
|
4969
4932
|
return buildMissingManifestInspection(directoryName, scope, settings, managedDirectoryEntry);
|
|
@@ -5135,7 +5098,7 @@ var adoptUnmanagedExtensions = async (extensionsRoot, scope, installedExtensions
|
|
|
5135
5098
|
let nextState = state;
|
|
5136
5099
|
const adoptedEntries = [];
|
|
5137
5100
|
for (const candidate of sortedCandidates) {
|
|
5138
|
-
const extensionDirectory =
|
|
5101
|
+
const extensionDirectory = path9.join(extensionsRoot, candidate.directory);
|
|
5139
5102
|
const validated = await validateExtensionDirectory(extensionDirectory);
|
|
5140
5103
|
const now = nowIso();
|
|
5141
5104
|
const sourceRecord = {
|
|
@@ -5543,12 +5506,12 @@ var persistExtensionInstall = async (ctx, input3) => {
|
|
|
5543
5506
|
const settings = await readSettings(resolvedRoots.settings_root);
|
|
5544
5507
|
const managedStateRead = await readManagedExtensionState(resolvedRoots.selected_root);
|
|
5545
5508
|
warnings.push(...managedStateRead.warnings);
|
|
5546
|
-
const destinationDirectory =
|
|
5509
|
+
const destinationDirectory = path9.join(resolvedRoots.selected_root, destinationDirectoryName);
|
|
5547
5510
|
const destinationExists = await pathExists(destinationDirectory);
|
|
5548
5511
|
const installInPlace = await areDirectoriesEquivalent(validated.directory, destinationDirectory);
|
|
5549
5512
|
await fs9.mkdir(resolvedRoots.selected_root, { recursive: true });
|
|
5550
|
-
const backupRoot = await fs9.mkdtemp(
|
|
5551
|
-
const backupDirectory =
|
|
5513
|
+
const backupRoot = await fs9.mkdtemp(path9.join(resolvedRoots.selected_root, ".pm-extension-install-backup-"));
|
|
5514
|
+
const backupDirectory = path9.join(backupRoot, "destination");
|
|
5552
5515
|
try {
|
|
5553
5516
|
const snapshot = await captureExtensionInstallSnapshot(resolvedRoots.selected_root, resolvedRoots.settings_root, destinationDirectory, destinationExists, backupDirectory);
|
|
5554
5517
|
const sourceRecord = buildInstallManagedSource(input3.bundledAliasName, input3.bundledPackageName, input3.installSource, input3.resolvedSource);
|
|
@@ -5849,7 +5812,7 @@ var runExtensionAdoptAction = async (ctx) => {
|
|
|
5849
5812
|
}
|
|
5850
5813
|
});
|
|
5851
5814
|
}
|
|
5852
|
-
const extensionDirectory =
|
|
5815
|
+
const extensionDirectory = path9.join(resolvedRoots.selected_root, candidate.directory);
|
|
5853
5816
|
const validated = await validateExtensionDirectory(extensionDirectory);
|
|
5854
5817
|
const now = nowIso();
|
|
5855
5818
|
const sourceRecord = buildAdoptedExtensionSource(githubOption, extensionTarget, extensionDirectory, options.ref);
|
|
@@ -5897,7 +5860,7 @@ var resolveRequiredInstalledExtension = async (ctx) => {
|
|
|
5897
5860
|
var runExtensionUninstallAction = async (ctx) => {
|
|
5898
5861
|
const { resolvedRoots, withResult } = ctx;
|
|
5899
5862
|
const { settings, managedStateRead, candidate } = await resolveRequiredInstalledExtension(ctx);
|
|
5900
|
-
const destinationDirectory =
|
|
5863
|
+
const destinationDirectory = path9.join(resolvedRoots.selected_root, candidate.directory);
|
|
5901
5864
|
await fs9.rm(destinationDirectory, { recursive: true, force: true });
|
|
5902
5865
|
const updatedState = {
|
|
5903
5866
|
...managedStateRead.state,
|
|
@@ -6389,7 +6352,7 @@ var dispatchExtensionAction = (ctx) => requiresExtensionStateLock(ctx) ? withExt
|
|
|
6389
6352
|
|
|
6390
6353
|
// dist/sdk/init-agent-guidance.js
|
|
6391
6354
|
import fs10 from "node:fs/promises";
|
|
6392
|
-
import
|
|
6355
|
+
import path10 from "node:path";
|
|
6393
6356
|
import readline from "node:readline/promises";
|
|
6394
6357
|
import { stdin as input, stdout as output } from "node:process";
|
|
6395
6358
|
var INIT_AGENT_GUIDANCE_MODE_VALUES = [
|
|
@@ -6440,11 +6403,11 @@ function setAgentGuidanceReadlineFactoryForTests(factory) {
|
|
|
6440
6403
|
createAgentGuidanceReadlineInterface = factory ?? (() => readline.createInterface({ input, output }));
|
|
6441
6404
|
}
|
|
6442
6405
|
function toPortableRelativePath(projectRoot, targetPath) {
|
|
6443
|
-
const relative =
|
|
6406
|
+
const relative = path10.relative(projectRoot, targetPath);
|
|
6444
6407
|
if (relative.length === 0) {
|
|
6445
|
-
return
|
|
6408
|
+
return path10.basename(targetPath);
|
|
6446
6409
|
}
|
|
6447
|
-
return relative.split(
|
|
6410
|
+
return relative.split(path10.sep).join("/");
|
|
6448
6411
|
}
|
|
6449
6412
|
function ensureTrailingNewline(value) {
|
|
6450
6413
|
return value.endsWith("\n") ? value : `${value}
|
|
@@ -6507,14 +6470,14 @@ function upsertAgentGuidanceBlock(existingContent) {
|
|
|
6507
6470
|
};
|
|
6508
6471
|
}
|
|
6509
6472
|
function resolveProjectRoot(pmRoot, cwd) {
|
|
6510
|
-
const parent =
|
|
6511
|
-
if (
|
|
6512
|
-
return
|
|
6473
|
+
const parent = path10.dirname(pmRoot);
|
|
6474
|
+
if (path10.basename(pmRoot) === "pm" && path10.basename(parent) === ".agents") {
|
|
6475
|
+
return path10.dirname(parent);
|
|
6513
6476
|
}
|
|
6514
|
-
return
|
|
6477
|
+
return path10.resolve(cwd, pmRoot);
|
|
6515
6478
|
}
|
|
6516
6479
|
function resolveTargetGuidancePath(scans, projectRoot) {
|
|
6517
|
-
const existingAgents = scans.find((entry) =>
|
|
6480
|
+
const existingAgents = scans.find((entry) => path10.basename(entry.file_path) === "AGENTS.md" && entry.exists);
|
|
6518
6481
|
if (existingAgents) {
|
|
6519
6482
|
return existingAgents.file_path;
|
|
6520
6483
|
}
|
|
@@ -6522,7 +6485,7 @@ function resolveTargetGuidancePath(scans, projectRoot) {
|
|
|
6522
6485
|
if (existingAny) {
|
|
6523
6486
|
return existingAny.file_path;
|
|
6524
6487
|
}
|
|
6525
|
-
return
|
|
6488
|
+
return path10.join(projectRoot, "AGENTS.md");
|
|
6526
6489
|
}
|
|
6527
6490
|
function parsePromptChoice(answer, currentDefault) {
|
|
6528
6491
|
const normalized = answer.trim().toLowerCase();
|
|
@@ -6564,7 +6527,7 @@ function normalizeAgentGuidanceState(settings) {
|
|
|
6564
6527
|
async function scanGuidanceFiles(projectRoot) {
|
|
6565
6528
|
const scans = [];
|
|
6566
6529
|
for (const filename of AGENT_GUIDANCE_TARGET_FILENAMES) {
|
|
6567
|
-
const filePath =
|
|
6530
|
+
const filePath = path10.join(projectRoot, filename);
|
|
6568
6531
|
const exists = await pathExists(filePath);
|
|
6569
6532
|
if (!exists) {
|
|
6570
6533
|
scans.push({
|
|
@@ -6792,7 +6755,7 @@ async function runInitAgentGuidance(options) {
|
|
|
6792
6755
|
|
|
6793
6756
|
// dist/sdk/init.js
|
|
6794
6757
|
import fs11 from "node:fs/promises";
|
|
6795
|
-
import
|
|
6758
|
+
import path11 from "node:path";
|
|
6796
6759
|
import readline2 from "node:readline/promises";
|
|
6797
6760
|
import { stdin as input2, stdout as output2 } from "node:process";
|
|
6798
6761
|
import { hostname, userInfo } from "node:os";
|
|
@@ -6896,7 +6859,7 @@ function isPathLikeInitTarget(rawValue) {
|
|
|
6896
6859
|
if (trimmed.length === 0) {
|
|
6897
6860
|
return false;
|
|
6898
6861
|
}
|
|
6899
|
-
return
|
|
6862
|
+
return path11.isAbsolute(trimmed) || /^[a-z]:/iu.test(trimmed) || trimmed.startsWith(".") || trimmed.includes("/") || trimmed.includes("\\");
|
|
6900
6863
|
}
|
|
6901
6864
|
function resolveInitInvocation(cwd, global, prefixArg, workspaceArg) {
|
|
6902
6865
|
const normalizedWorkspace = workspaceArg?.trim();
|
|
@@ -6907,8 +6870,8 @@ function resolveInitInvocation(cwd, global, prefixArg, workspaceArg) {
|
|
|
6907
6870
|
if (global.path !== void 0 || isPathLikeInitTarget(prefixArg)) {
|
|
6908
6871
|
throw new PmCliError("--workspace cannot be combined with --pm-path/--path or a path-like positional target.", EXIT_CODE.USAGE);
|
|
6909
6872
|
}
|
|
6910
|
-
const workspaceRoot =
|
|
6911
|
-
const pmRoot2 =
|
|
6873
|
+
const workspaceRoot = path11.resolve(cwd, normalizedWorkspace);
|
|
6874
|
+
const pmRoot2 = path11.join(workspaceRoot, ".agents", "pm");
|
|
6912
6875
|
return {
|
|
6913
6876
|
pmRoot: pmRoot2,
|
|
6914
6877
|
prefixArg,
|
|
@@ -6920,7 +6883,7 @@ function resolveInitInvocation(cwd, global, prefixArg, workspaceArg) {
|
|
|
6920
6883
|
};
|
|
6921
6884
|
}
|
|
6922
6885
|
if (global.path === void 0 && isPathLikeInitTarget(prefixArg)) {
|
|
6923
|
-
const positionalTarget =
|
|
6886
|
+
const positionalTarget = path11.resolve(cwd, prefixArg.trim());
|
|
6924
6887
|
return {
|
|
6925
6888
|
pmRoot: positionalTarget,
|
|
6926
6889
|
prefixArg: void 0,
|
|
@@ -7042,10 +7005,10 @@ async function isLikelyWorkspaceRoot(candidate) {
|
|
|
7042
7005
|
"package.json",
|
|
7043
7006
|
"pnpm-workspace.yaml",
|
|
7044
7007
|
"AGENTS.md",
|
|
7045
|
-
|
|
7008
|
+
path11.join(".agents", "pm")
|
|
7046
7009
|
];
|
|
7047
7010
|
for (const indicator of indicators) {
|
|
7048
|
-
if (await pathExists(
|
|
7011
|
+
if (await pathExists(path11.join(candidate, indicator))) {
|
|
7049
7012
|
return true;
|
|
7050
7013
|
}
|
|
7051
7014
|
}
|
|
@@ -7055,13 +7018,13 @@ async function assertExplicitTrackerPathIsNotWorkspaceRoot(pmRoot, explicitTrack
|
|
|
7055
7018
|
if (!explicitTrackerTarget || force) {
|
|
7056
7019
|
return;
|
|
7057
7020
|
}
|
|
7058
|
-
if (await pathExists(
|
|
7021
|
+
if (await pathExists(path11.join(pmRoot, "settings.json"))) {
|
|
7059
7022
|
return;
|
|
7060
7023
|
}
|
|
7061
7024
|
if (!await isLikelyWorkspaceRoot(pmRoot)) {
|
|
7062
7025
|
return;
|
|
7063
7026
|
}
|
|
7064
|
-
const nestedTracker =
|
|
7027
|
+
const nestedTracker = path11.join(pmRoot, ".agents", "pm");
|
|
7065
7028
|
throw new PmCliError(`Refusing to initialize tracker files directly in workspace root "${pmRoot}".`, EXIT_CODE.USAGE, {
|
|
7066
7029
|
code: "workspace_root_pm_path",
|
|
7067
7030
|
type: "urn:pm-cli:error:workspace_root_pm_path",
|
|
@@ -7085,7 +7048,7 @@ async function ensureInitDirectories(pmRoot, subdirs) {
|
|
|
7085
7048
|
const createdDirs = [];
|
|
7086
7049
|
const warnings = [];
|
|
7087
7050
|
for (const subdir of subdirs) {
|
|
7088
|
-
const target = subdir ?
|
|
7051
|
+
const target = subdir ? path11.join(pmRoot, subdir) : pmRoot;
|
|
7089
7052
|
const existed = await pathExists(target);
|
|
7090
7053
|
await fs11.mkdir(target, { recursive: true });
|
|
7091
7054
|
if (existed) {
|
|
@@ -7320,10 +7283,10 @@ async function ensureInitTypeDirectories(params) {
|
|
|
7320
7283
|
params.warnings.push(...scaffold.warnings);
|
|
7321
7284
|
}
|
|
7322
7285
|
function resolveInitWorkspaceRoot(target) {
|
|
7323
|
-
const trackerRoot =
|
|
7324
|
-
const agentsRoot =
|
|
7325
|
-
if (
|
|
7326
|
-
return
|
|
7286
|
+
const trackerRoot = path11.resolve(target.tracker_root);
|
|
7287
|
+
const agentsRoot = path11.dirname(trackerRoot);
|
|
7288
|
+
if (path11.basename(trackerRoot) === "pm" && path11.basename(agentsRoot) === ".agents") {
|
|
7289
|
+
return path11.dirname(agentsRoot);
|
|
7327
7290
|
}
|
|
7328
7291
|
return target.workspace_root;
|
|
7329
7292
|
}
|
|
@@ -7380,7 +7343,7 @@ async function runInit(prefixArg, global, options = {}) {
|
|
|
7380
7343
|
const baseDirs = await ensureInitDirectories(pmRoot, PM_REQUIRED_SUBDIRS);
|
|
7381
7344
|
createdDirs.push(...baseDirs.createdDirs);
|
|
7382
7345
|
warnings.push(...baseDirs.warnings);
|
|
7383
|
-
const settingsPath =
|
|
7346
|
+
const settingsPath = path11.join(pmRoot, "settings.json");
|
|
7384
7347
|
const settingsExists = await pathExists(settingsPath);
|
|
7385
7348
|
const settingsResolution = await resolveInitSettings({
|
|
7386
7349
|
pmRoot,
|
|
@@ -7415,7 +7378,7 @@ async function runInit(prefixArg, global, options = {}) {
|
|
|
7415
7378
|
}
|
|
7416
7379
|
await ensureInitTypeDirectories({ pmRoot, settings, createdDirs, warnings });
|
|
7417
7380
|
if (workspaceRoot) {
|
|
7418
|
-
const gitignore = await ensurePmGitignore(workspaceRoot);
|
|
7381
|
+
const gitignore = await ensurePmGitignore(workspaceRoot, { pmRoot });
|
|
7419
7382
|
if (gitignore.changed) {
|
|
7420
7383
|
warnings.push(`updated:gitignore:${gitignore.path}`);
|
|
7421
7384
|
}
|
|
@@ -7444,10 +7407,6 @@ async function runInit(prefixArg, global, options = {}) {
|
|
|
7444
7407
|
}
|
|
7445
7408
|
|
|
7446
7409
|
export {
|
|
7447
|
-
PM_GITIGNORE_START,
|
|
7448
|
-
PM_GITIGNORE_END,
|
|
7449
|
-
getPmGitignoreBlock,
|
|
7450
|
-
ensurePmGitignore,
|
|
7451
7410
|
quoteWindowsCommandArg,
|
|
7452
7411
|
quoteCommandArg,
|
|
7453
7412
|
renderPmCommand,
|
|
@@ -7470,6 +7429,6 @@ export {
|
|
|
7470
7429
|
_testOnly2,
|
|
7471
7430
|
runInit
|
|
7472
7431
|
};
|
|
7473
|
-
//# sourceMappingURL=chunk-
|
|
7432
|
+
//# sourceMappingURL=chunk-QANSTTC7.js.map
|
|
7474
7433
|
|
|
7475
|
-
//# debugId=
|
|
7434
|
+
//# debugId=17c1b721-84a1-59e2-8865-f28ad0b84cc7
|