@unbrained/pm-cli 2026.7.13 → 2026.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +28 -0
- package/dist/cli/commands/aggregate.d.ts +1 -1
- package/dist/cli/commands/aggregate.js +18 -6
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/context.d.ts +16 -1
- package/dist/cli/commands/context.js +98 -16
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -1
- package/dist/cli/commands/create.js +11 -7
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/deps.d.ts +6 -96
- package/dist/cli/commands/deps.js +4 -214
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/docs.d.ts +2 -44
- package/dist/cli/commands/docs.js +8 -13
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/files.d.ts +6 -134
- package/dist/cli/commands/files.js +4 -294
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/get.js +15 -2
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/list.js +5 -6
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/next.d.ts +3 -1
- package/dist/cli/commands/next.js +77 -20
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/update-many.js +6 -3
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.js +14 -7
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +1 -1
- package/dist/cli/commands/validate.js +32 -35
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/main.d.ts +2 -14
- package/dist/cli/main.js +27 -8
- package/dist/cli/main.js.map +1 -1
- package/dist/cli-bundle/chunks/append-DYQWQK2J.js +11 -0
- package/dist/cli-bundle/chunks/{append-2FS6MVG7.js → append-PVZJDM6J.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-J2WAWP4U.js → chunk-2FNWQXZ2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YFGYDZRP.js → chunk-2GA3NK35.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XFEIASAC.js → chunk-2QIQGYPW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3WCGYH5Q.js → chunk-3CMRNVTO.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-3HKUXVKV.js +9 -0
- package/dist/cli-bundle/chunks/{chunk-VDAZPPRU.js → chunk-3I3LRT2G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3P3RFJIQ.js → chunk-3TL7WOEF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4SHJ5JS3.js → chunk-44LNIULG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QFOAWBOB.js → chunk-4DY4KPQI.js} +11 -10
- package/dist/cli-bundle/chunks/{chunk-QFOAWBOB.js.map → chunk-4DY4KPQI.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BVCF4ULV.js → chunk-4RXTMU57.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-XMI2TRY5.js → chunk-4WREH7RT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JYUGUXFW.js → chunk-5CT5BW6E.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-NA5SBIB4.js → chunk-5URI7TPJ.js} +44 -44
- package/dist/cli-bundle/chunks/chunk-5URI7TPJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QGH6WL6L.js → chunk-655STMGA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DGKBWCMA.js → chunk-6IIVBC56.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SRQLQUO6.js → chunk-6MHSBDGD.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-SRQLQUO6.js.map → chunk-6MHSBDGD.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D4GPNYYP.js → chunk-6OTZMORS.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-JVRVXO6M.js → chunk-6PKA3SJQ.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-2PR4ZTRO.js → chunk-6TTOHMTB.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-2PR4ZTRO.js.map → chunk-6TTOHMTB.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-6X5MZ5R2.js +9 -0
- package/dist/cli-bundle/chunks/chunk-76UBY2EE.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-ZS2KPCJN.js → chunk-7QDSYUMF.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Z7TFPIJ6.js → chunk-7TQMR6LK.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-AHA4POA6.js → chunk-ABRCOSDC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XY3CC3EM.js → chunk-AFWZRL7M.js} +59 -53
- package/dist/cli-bundle/chunks/chunk-AFWZRL7M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KQJVTQVK.js → chunk-ANSJHDOZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OMT4NO7T.js → chunk-B5DZYTT3.js} +113 -24
- package/dist/cli-bundle/chunks/chunk-B5DZYTT3.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-B7SWOIP6.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-D2LXG7WX.js → chunk-BN62TO2S.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-BN62TO2S.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZTSV7P2T.js → chunk-BPD26E3P.js} +357 -42
- package/dist/cli-bundle/chunks/chunk-BPD26E3P.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RKGFUC4O.js → chunk-CDJYP7OQ.js} +36 -14
- package/dist/cli-bundle/chunks/chunk-CDJYP7OQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-VLFLRFJP.js → chunk-CIOZ376P.js} +20 -13
- package/dist/cli-bundle/chunks/chunk-CIOZ376P.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HXTCZSAI.js → chunk-DBZVUJTK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2QNOWOIB.js → chunk-DO5RGJXT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-MKONZ4UO.js → chunk-DRNJPEPQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XDT2PSXA.js → chunk-DVOLZJ3C.js} +12 -11
- package/dist/cli-bundle/chunks/{chunk-XDT2PSXA.js.map → chunk-DVOLZJ3C.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-H36FXA7B.js → chunk-DYEX6NFH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-G3IB5GTD.js → chunk-E2WC6S4P.js} +15 -11
- package/dist/cli-bundle/chunks/chunk-E2WC6S4P.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GAJ7U7B4.js → chunk-ERL2YFJ2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FPEYOFEF.js → chunk-F7PSHRNO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UH7OLT6F.js → chunk-FDSBDNYE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DGJF32JF.js → chunk-FIGXOCEQ.js} +66 -21
- package/dist/cli-bundle/chunks/chunk-FIGXOCEQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RQAY7C5T.js → chunk-FJZDA6MS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-B4TVNGRX.js → chunk-FO7GMJKG.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-FRQ63VPB.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-UTYNQ2WH.js → chunk-FS6UM5WH.js} +48 -27
- package/dist/cli-bundle/chunks/chunk-FS6UM5WH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-U252II47.js → chunk-FTQLW4JD.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TNGLCRKS.js → chunk-GSEADLRH.js} +1821 -1809
- package/dist/cli-bundle/chunks/chunk-GSEADLRH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TGG7YGMC.js → chunk-GXXC7QSK.js} +53 -47
- package/dist/cli-bundle/chunks/chunk-GXXC7QSK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AGD4VZXH.js → chunk-H2QBAKLQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CJVQ4XIG.js → chunk-HAMLIWAF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-56DX6QYG.js → chunk-HL7V2PHX.js} +19 -13
- package/dist/cli-bundle/chunks/chunk-HL7V2PHX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7QOIQTPB.js → chunk-HLHSQ5CA.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-AHC7J6XD.js → chunk-IA3YFTXT.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-5ZCVF4WF.js → chunk-IAPHYPRL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OCSQWIOW.js → chunk-IFZA4VB5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6O2HJENY.js → chunk-IGED7NH2.js} +61 -48
- package/dist/cli-bundle/chunks/chunk-IGED7NH2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RPCCQDG2.js → chunk-ILLUE5DI.js} +36 -14
- package/dist/cli-bundle/chunks/chunk-ILLUE5DI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4WMFM77X.js → chunk-J4NZOP3I.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-57JVERX3.js → chunk-JAF4TUQ7.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-JAF4TUQ7.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-MTNKSSSO.js → chunk-JL7WZ4O2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AZ52LTCY.js → chunk-K7WNZ7KD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2OLSXXIV.js → chunk-KADLSPIU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RQKORMM4.js → chunk-KB726FMH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-WKSFBBZT.js → chunk-L24HCJFC.js} +114 -25
- package/dist/cli-bundle/chunks/chunk-L24HCJFC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LDO24J5I.js → chunk-LWTIRS3Y.js} +365 -43
- package/dist/cli-bundle/chunks/chunk-LWTIRS3Y.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TZTQ4TVV.js → chunk-M6ASXYCU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-WDDOAU7Z.js → chunk-M7EWN4TF.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-327DSGW2.js → chunk-MD6ULIPJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OKDBHOON.js → chunk-MKL4CP2I.js} +61 -48
- package/dist/cli-bundle/chunks/chunk-MKL4CP2I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-M52DG2QJ.js → chunk-MQZ3PLCF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GQ2CQNGI.js → chunk-N3CMP4NI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J7SBFUZC.js → chunk-NAQYVWSQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-U2GMYP3L.js → chunk-NKW36AMT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5WEYOVZ7.js → chunk-OBDLEQG5.js} +19 -12
- package/dist/cli-bundle/chunks/chunk-OBDLEQG5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VL4LYTJN.js → chunk-OI4S4KCI.js} +18 -12
- package/dist/cli-bundle/chunks/chunk-OI4S4KCI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FCVVMAEX.js → chunk-P6MYFH6K.js} +60 -22
- package/dist/cli-bundle/chunks/chunk-P6MYFH6K.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FTQQAPRX.js → chunk-PHKP3AGR.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-WVUXNIYO.js → chunk-Q37E63AM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JVXV7ANV.js → chunk-Q7E6OYZK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WVUYATII.js → chunk-QABYZYLU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QRRUGIJN.js → chunk-QASRVKUQ.js} +45 -45
- package/dist/cli-bundle/chunks/chunk-QASRVKUQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-L4262MFB.js → chunk-QK2ZN6UL.js} +14 -5
- package/dist/cli-bundle/chunks/{chunk-L4262MFB.js.map → chunk-QK2ZN6UL.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-7TQPV7HR.js → chunk-QSPARJWF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GTKILM6F.js → chunk-QZ7LT3XE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-L3VKY6R6.js → chunk-RA5AIAMP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BJS27ALI.js → chunk-RGXD5JJR.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-TSEPW2P6.js → chunk-RMF3IOYQ.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-QXYKH56X.js → chunk-T4BRCB6Z.js} +1894 -1875
- package/dist/cli-bundle/chunks/chunk-T4BRCB6Z.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TGGTXC52.js → chunk-TH7U4KLY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LP4UATP6.js → chunk-TWLDBKQU.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OTZ3C2NE.js → chunk-TZ2PSLLT.js} +49 -28
- package/dist/cli-bundle/chunks/chunk-TZ2PSLLT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UK222BHQ.js → chunk-TZRTLMWM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6E6S2X6S.js → chunk-UB2QYSTO.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-S6CXUSYC.js → chunk-UGTVWL3E.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-BNS6QHTZ.js → chunk-UJ4HJYWL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BYVOEJPQ.js → chunk-UKUIIBDW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SGDBVR7X.js → chunk-UVBA6F5A.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DZRZMBBF.js → chunk-VJTAEIPC.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-74PWVJON.js → chunk-W6HZ55JO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HR2MQAO5.js → chunk-WD6MSYMP.js} +13 -4
- package/dist/cli-bundle/chunks/{chunk-HR2MQAO5.js.map → chunk-WD6MSYMP.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P7IFURWH.js → chunk-WPAWZW7S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-36LEOWSX.js → chunk-WQUEHPZB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FCKJF7G2.js → chunk-WRKB56FC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KR5EHAN4.js → chunk-X3GYR4P2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J567OZJY.js → chunk-X6BVXQ52.js} +16 -12
- package/dist/cli-bundle/chunks/chunk-X6BVXQ52.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-Y72FV7RM.js +178 -0
- package/dist/cli-bundle/chunks/chunk-Y72FV7RM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OWW2KXOV.js → chunk-YQYG2V23.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G2SCT7BC.js → chunk-YVKE5ZDM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QHIN4UTF.js → chunk-ZAYYDNB3.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-ZHBI2AP7.js +9 -0
- package/dist/cli-bundle/chunks/chunk-ZNP64HOW.js +175 -0
- package/dist/cli-bundle/chunks/chunk-ZNP64HOW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GNVBUNJQ.js → chunk-ZTRBSABY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-PY32KGQU.js → chunk-ZUKSZVBW.js} +5 -5
- package/dist/cli-bundle/chunks/{close-CU56F47E.js → close-LZECOMHO.js} +5 -5
- package/dist/cli-bundle/chunks/close-RI4JQQHU.js +12 -0
- package/dist/cli-bundle/chunks/close-many-LY2XJ52M.js +21 -0
- package/dist/cli-bundle/chunks/{close-many-ZQ2WP67J.js → close-many-ZHI6A5TN.js} +12 -12
- package/dist/cli-bundle/chunks/comments-35M273DN.js +13 -0
- package/dist/cli-bundle/chunks/{comments-UDUMKXL6.js → comments-AJWRTFZ5.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-VFHECFBV.js → copy-GMXYKBXT.js} +4 -4
- package/dist/cli-bundle/chunks/copy-NPYM7M7U.js +9 -0
- package/dist/cli-bundle/chunks/create-F53OBTOU.js +27 -0
- package/dist/cli-bundle/chunks/{create-CE2X3SGF.js → create-HU4Q7RJX.js} +11 -9
- package/dist/cli-bundle/chunks/{delete-2JXQCHHT.js → delete-GSDZLTRC.js} +4 -4
- package/dist/cli-bundle/chunks/delete-ODRWJWAM.js +10 -0
- package/dist/cli-bundle/chunks/deps-U57I7EAK.js +16 -0
- package/dist/cli-bundle/chunks/{deps-FPXNLO6C.js → deps-WWB7P2GT.js} +7 -4
- package/dist/cli-bundle/chunks/docs-G7N4E2JO.js +14 -0
- package/dist/cli-bundle/chunks/{docs-AMAR4OHU.js → docs-MQIY2ZQS.js} +7 -7
- package/dist/cli-bundle/chunks/files-TBZD7V6H.js +18 -0
- package/dist/cli-bundle/chunks/{files-JFHN7DYM.js → files-TTY6N2AV.js} +7 -7
- package/dist/cli-bundle/chunks/focus-U5TRVCRS.js +10 -0
- package/dist/cli-bundle/chunks/{focus-QFN2RRZ7.js → focus-XT6YVFFX.js} +5 -5
- package/dist/cli-bundle/chunks/{history-compact-G34XMABV.js → history-compact-KKVUWB4V.js} +8 -8
- package/dist/cli-bundle/chunks/{history-compact-SAHT5D46.js → history-compact-M7GHYVFN.js} +8 -8
- package/dist/cli-bundle/chunks/{history-redact-IFJDNKLZ.js → history-redact-3DVZOILD.js} +6 -6
- package/dist/cli-bundle/chunks/history-redact-JIHZLHDP.js +16 -0
- package/dist/cli-bundle/chunks/{history-repair-NXLQTCVN.js → history-repair-ITDUMK4N.js} +8 -8
- package/dist/cli-bundle/chunks/history-repair-NAFCHLH7.js +18 -0
- package/dist/cli-bundle/chunks/{learnings-5CZKAMBS.js → learnings-FGO3NSFW.js} +7 -7
- package/dist/cli-bundle/chunks/learnings-SONGPSHI.js +13 -0
- package/dist/cli-bundle/chunks/notes-BSD53H2W.js +13 -0
- package/dist/cli-bundle/chunks/{notes-POMK37UI.js → notes-NQ6RXVW6.js} +7 -7
- package/dist/cli-bundle/chunks/{plan-YBNYNT3A.js → plan-2NNEO46V.js} +10 -10
- package/dist/cli-bundle/chunks/plan-AWLYGBNV.js +24 -0
- package/dist/cli-bundle/chunks/{profile-JNKSU6EQ.js → profile-AAQUU6T3.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-A2WPVG6I.js → profile-U725ATWZ.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-UG4ZA5AU.js → register-list-query-BUWCYHBT.js} +14 -13
- package/dist/cli-bundle/chunks/{register-list-query-UG4ZA5AU.js.map → register-list-query-BUWCYHBT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-KJULL4W3.js → register-list-query-KTZ6AGE7.js} +16 -15
- package/dist/cli-bundle/chunks/{register-list-query-KJULL4W3.js.map → register-list-query-KTZ6AGE7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-3OXYXBKH.js → register-mutation-4FMGJJF7.js} +29 -29
- package/dist/cli-bundle/chunks/{register-mutation-WK265BM7.js → register-mutation-UELYYOR7.js} +29 -29
- package/dist/cli-bundle/chunks/{register-operations-C5SQH3FJ.js → register-operations-ISUX6LY5.js} +33 -29
- package/dist/cli-bundle/chunks/{register-operations-C5SQH3FJ.js.map → register-operations-ISUX6LY5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-FH3PBHYN.js → register-operations-JVW24J2Y.js} +35 -31
- package/dist/cli-bundle/chunks/{register-operations-FH3PBHYN.js.map → register-operations-JVW24J2Y.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-CCK7CJVR.js → register-setup-5XNGKJ22.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-CPZBGSOJ.js → register-setup-ZTNY6S7R.js} +15 -15
- package/dist/cli-bundle/chunks/restore-66GLMHIX.js +14 -0
- package/dist/cli-bundle/chunks/{restore-IVS5XGYR.js → restore-B3BAB6X2.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-P2MF23JO.js → schema-LZNUYHDB.js} +6 -6
- package/dist/cli-bundle/chunks/schema-LZNUYHDB.js.map +7 -0
- package/dist/cli-bundle/chunks/{schema-R3U2REY4.js → schema-U7IM2DXV.js} +6 -6
- package/dist/cli-bundle/chunks/schema-U7IM2DXV.js.map +1 -0
- package/dist/cli-bundle/chunks/update-2XGHIVQ2.js +21 -0
- package/dist/cli-bundle/chunks/update-2XGHIVQ2.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-YBIQESMH.js → update-Q3UCILNR.js} +12 -12
- package/dist/cli-bundle/chunks/update-Q3UCILNR.js.map +1 -0
- package/dist/cli-bundle/chunks/{update-many-F3CIV5SQ.js → update-many-75K57FS3.js} +19 -19
- package/dist/cli-bundle/chunks/update-many-75K57FS3.js.map +1 -0
- package/dist/cli-bundle/chunks/update-many-U42YA445.js +30 -0
- package/dist/cli-bundle/chunks/update-many-U42YA445.js.map +7 -0
- package/dist/cli-bundle/main.js +39 -16
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +56 -53
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +115 -55
- package/dist/cli-bundle/sdk.js.map +2 -2
- package/dist/core/extensions/command-hook-context.d.ts +40 -0
- package/dist/core/extensions/command-hook-context.js +14 -0
- package/dist/core/extensions/command-hook-context.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.js +4 -3
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/item/parse.d.ts +2 -0
- package/dist/core/item/parse.js +11 -2
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/store/paths.d.ts +2 -0
- package/dist/core/store/paths.js +10 -2
- package/dist/core/store/paths.js.map +1 -1
- package/dist/mcp/tool-definitions.js +12 -2
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/context-packing.d.ts +114 -0
- package/dist/sdk/context-packing.js +219 -0
- package/dist/sdk/context-packing.js.map +1 -0
- package/dist/sdk/context-relevance.d.ts +1 -1
- package/dist/sdk/context-relevance.js +4 -2
- package/dist/sdk/context-relevance.js.map +1 -1
- package/dist/sdk/context-usage.d.ts +79 -0
- package/dist/sdk/context-usage.js +193 -0
- package/dist/sdk/context-usage.js.map +1 -0
- package/dist/sdk/dependencies.d.ts +145 -0
- package/dist/sdk/dependencies.js +327 -0
- package/dist/sdk/dependencies.js.map +1 -0
- package/dist/sdk/docs.d.ts +48 -0
- package/dist/sdk/docs.js +15 -0
- package/dist/sdk/docs.js.map +1 -0
- package/dist/sdk/files.d.ts +135 -0
- package/dist/sdk/files.js +320 -0
- package/dist/sdk/files.js.map +1 -0
- package/dist/sdk/index.d.ts +6 -0
- package/dist/sdk/index.js +8 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/{cli/commands → sdk}/linked-artifacts.d.ts +11 -5
- package/dist/{cli/commands → sdk}/linked-artifacts.js +49 -25
- package/dist/sdk/linked-artifacts.js.map +1 -0
- package/dist/sdk/runtime.d.ts +4 -4
- package/dist/sdk/runtime.js +7 -4
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/workspace.js +3 -2
- package/dist/sdk/workspace.js.map +1 -1
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/CONFIGURATION.md +1 -0
- package/docs/PR_REVIEW_LOOP.md +21 -11
- package/docs/SDK.md +94 -0
- package/marketplace.json +2 -2
- package/package.json +1 -1
- 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/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli/commands/linked-artifacts.js.map +0 -1
- package/dist/cli-bundle/chunks/append-CTKFDEAX.js +0 -11
- package/dist/cli-bundle/chunks/chunk-56DX6QYG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-57JVERX3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5WEYOVZ7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6O2HJENY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CCAGZCZK.js +0 -17
- package/dist/cli-bundle/chunks/chunk-CCAGZCZK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-D2LXG7WX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DGJF32JF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FCVVMAEX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FUOK7JZ6.js +0 -14
- package/dist/cli-bundle/chunks/chunk-FUOK7JZ6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-G3IB5GTD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-J567OZJY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LDO24J5I.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NA5SBIB4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OKDBHOON.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OMT4NO7T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OTZ3C2NE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QRRUGIJN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QXYKH56X.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RKGFUC4O.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RPCCQDG2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TGG7YGMC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TNGLCRKS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UTYNQ2WH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VL4LYTJN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VLFLRFJP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WKSFBBZT.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XY3CC3EM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZTSV7P2T.js.map +0 -1
- package/dist/cli-bundle/chunks/close-BWM7FTF4.js +0 -12
- package/dist/cli-bundle/chunks/close-many-AUHTVFUQ.js +0 -21
- package/dist/cli-bundle/chunks/comments-7D5VPBZI.js +0 -13
- package/dist/cli-bundle/chunks/copy-QJ6ZVWZV.js +0 -9
- package/dist/cli-bundle/chunks/create-FGMTTYOI.js +0 -25
- package/dist/cli-bundle/chunks/delete-L2GMMMPR.js +0 -10
- package/dist/cli-bundle/chunks/deps-KTFI4RWD.js +0 -13
- package/dist/cli-bundle/chunks/docs-VNURA275.js +0 -14
- package/dist/cli-bundle/chunks/files-UNFPZLTG.js +0 -18
- package/dist/cli-bundle/chunks/focus-MI2UHBP4.js +0 -10
- package/dist/cli-bundle/chunks/history-redact-VAHGBUHI.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-DDYQXR43.js +0 -18
- package/dist/cli-bundle/chunks/learnings-VWJEKHEO.js +0 -13
- package/dist/cli-bundle/chunks/notes-NGVJJJQO.js +0 -13
- package/dist/cli-bundle/chunks/plan-U6SQJUFI.js +0 -24
- package/dist/cli-bundle/chunks/restore-AX6ZMGHZ.js +0 -14
- package/dist/cli-bundle/chunks/update-XYHF3YZF.js +0 -21
- package/dist/cli-bundle/chunks/update-many-5HKVHFUL.js +0 -30
- /package/dist/cli-bundle/chunks/{append-CTKFDEAX.js.map → append-DYQWQK2J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-2FS6MVG7.js.map → append-PVZJDM6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J2WAWP4U.js.map → chunk-2FNWQXZ2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YFGYDZRP.js.map → chunk-2GA3NK35.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XFEIASAC.js.map → chunk-2QIQGYPW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3WCGYH5Q.js.map → chunk-3CMRNVTO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-BWM7FTF4.js.map → chunk-3HKUXVKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VDAZPPRU.js.map → chunk-3I3LRT2G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3P3RFJIQ.js.map → chunk-3TL7WOEF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4SHJ5JS3.js.map → chunk-44LNIULG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BVCF4ULV.js.map → chunk-4RXTMU57.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XMI2TRY5.js.map → chunk-4WREH7RT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JYUGUXFW.js.map → chunk-5CT5BW6E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QGH6WL6L.js.map → chunk-655STMGA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DGKBWCMA.js.map → chunk-6IIVBC56.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D4GPNYYP.js.map → chunk-6OTZMORS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JVRVXO6M.js.map → chunk-6PKA3SJQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-AUHTVFUQ.js.map → chunk-6X5MZ5R2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-CU56F47E.js.map → chunk-76UBY2EE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZS2KPCJN.js.map → chunk-7QDSYUMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z7TFPIJ6.js.map → chunk-7TQMR6LK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AHA4POA6.js.map → chunk-ABRCOSDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KQJVTQVK.js.map → chunk-ANSJHDOZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-ZQ2WP67J.js.map → chunk-B7SWOIP6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HXTCZSAI.js.map → chunk-DBZVUJTK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2QNOWOIB.js.map → chunk-DO5RGJXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MKONZ4UO.js.map → chunk-DRNJPEPQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H36FXA7B.js.map → chunk-DYEX6NFH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GAJ7U7B4.js.map → chunk-ERL2YFJ2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FPEYOFEF.js.map → chunk-F7PSHRNO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UH7OLT6F.js.map → chunk-FDSBDNYE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RQAY7C5T.js.map → chunk-FJZDA6MS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B4TVNGRX.js.map → chunk-FO7GMJKG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-UDUMKXL6.js.map → chunk-FRQ63VPB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U252II47.js.map → chunk-FTQLW4JD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AGD4VZXH.js.map → chunk-H2QBAKLQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CJVQ4XIG.js.map → chunk-HAMLIWAF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7QOIQTPB.js.map → chunk-HLHSQ5CA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AHC7J6XD.js.map → chunk-IA3YFTXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5ZCVF4WF.js.map → chunk-IAPHYPRL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OCSQWIOW.js.map → chunk-IFZA4VB5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4WMFM77X.js.map → chunk-J4NZOP3I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MTNKSSSO.js.map → chunk-JL7WZ4O2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AZ52LTCY.js.map → chunk-K7WNZ7KD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2OLSXXIV.js.map → chunk-KADLSPIU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RQKORMM4.js.map → chunk-KB726FMH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZTQ4TVV.js.map → chunk-M6ASXYCU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WDDOAU7Z.js.map → chunk-M7EWN4TF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-327DSGW2.js.map → chunk-MD6ULIPJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M52DG2QJ.js.map → chunk-MQZ3PLCF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GQ2CQNGI.js.map → chunk-N3CMP4NI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J7SBFUZC.js.map → chunk-NAQYVWSQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U2GMYP3L.js.map → chunk-NKW36AMT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FTQQAPRX.js.map → chunk-PHKP3AGR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WVUXNIYO.js.map → chunk-Q37E63AM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JVXV7ANV.js.map → chunk-Q7E6OYZK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WVUYATII.js.map → chunk-QABYZYLU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7TQPV7HR.js.map → chunk-QSPARJWF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GTKILM6F.js.map → chunk-QZ7LT3XE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L3VKY6R6.js.map → chunk-RA5AIAMP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BJS27ALI.js.map → chunk-RGXD5JJR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TSEPW2P6.js.map → chunk-RMF3IOYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TGGTXC52.js.map → chunk-TH7U4KLY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LP4UATP6.js.map → chunk-TWLDBKQU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UK222BHQ.js.map → chunk-TZRTLMWM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6E6S2X6S.js.map → chunk-UB2QYSTO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S6CXUSYC.js.map → chunk-UGTVWL3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BNS6QHTZ.js.map → chunk-UJ4HJYWL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BYVOEJPQ.js.map → chunk-UKUIIBDW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SGDBVR7X.js.map → chunk-UVBA6F5A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DZRZMBBF.js.map → chunk-VJTAEIPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-74PWVJON.js.map → chunk-W6HZ55JO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P7IFURWH.js.map → chunk-WPAWZW7S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-36LEOWSX.js.map → chunk-WQUEHPZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FCKJF7G2.js.map → chunk-WRKB56FC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KR5EHAN4.js.map → chunk-X3GYR4P2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OWW2KXOV.js.map → chunk-YQYG2V23.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G2SCT7BC.js.map → chunk-YVKE5ZDM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QHIN4UTF.js.map → chunk-ZAYYDNB3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-7D5VPBZI.js.map → chunk-ZHBI2AP7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GNVBUNJQ.js.map → chunk-ZTRBSABY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PY32KGQU.js.map → chunk-ZUKSZVBW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-VFHECFBV.js.map → close-LZECOMHO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-QJ6ZVWZV.js.map → close-RI4JQQHU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-FGMTTYOI.js.map → close-many-LY2XJ52M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-CE2X3SGF.js.map → close-many-ZHI6A5TN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-L2GMMMPR.js.map → comments-35M273DN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-2JXQCHHT.js.map → comments-AJWRTFZ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-FPXNLO6C.js.map → copy-GMXYKBXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-KTFI4RWD.js.map → copy-NPYM7M7U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-VNURA275.js.map → create-F53OBTOU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-AMAR4OHU.js.map → create-HU4Q7RJX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-JFHN7DYM.js.map → delete-GSDZLTRC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-UNFPZLTG.js.map → delete-ODRWJWAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-MI2UHBP4.js.map → deps-U57I7EAK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-QFN2RRZ7.js.map → deps-WWB7P2GT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-SAHT5D46.js.map → docs-G7N4E2JO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-G34XMABV.js.map → docs-MQIY2ZQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-VAHGBUHI.js.map → files-TBZD7V6H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-IFJDNKLZ.js.map → files-TTY6N2AV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-DDYQXR43.js.map → focus-U5TRVCRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-NXLQTCVN.js.map → focus-XT6YVFFX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-5CZKAMBS.js.map → history-compact-KKVUWB4V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-VWJEKHEO.js.map → history-compact-M7GHYVFN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-POMK37UI.js.map → history-redact-3DVZOILD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-NGVJJJQO.js.map → history-redact-JIHZLHDP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-YBNYNT3A.js.map → history-repair-ITDUMK4N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-U6SQJUFI.js.map → history-repair-NAFCHLH7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-JNKSU6EQ.js.map → learnings-FGO3NSFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-A2WPVG6I.js.map → learnings-SONGPSHI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-AX6ZMGHZ.js.map → notes-BSD53H2W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-IVS5XGYR.js.map → notes-NQ6RXVW6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-R3U2REY4.js.map → plan-2NNEO46V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-P2MF23JO.js.map → plan-AWLYGBNV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-YBIQESMH.js.map → profile-AAQUU6T3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-XYHF3YZF.js.map → profile-U725ATWZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-3OXYXBKH.js.map → register-mutation-4FMGJJF7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-WK265BM7.js.map → register-mutation-UELYYOR7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-CCK7CJVR.js.map → register-setup-5XNGKJ22.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-CPZBGSOJ.js.map → register-setup-ZTNY6S7R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-5HKVHFUL.js.map → restore-66GLMHIX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-F3CIV5SQ.js.map → restore-B3BAB6X2.js.map} +0 -0
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
deleteItem,
|
|
6
6
|
readSettings,
|
|
7
7
|
toItemRecord
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T4BRCB6Z.js";
|
|
9
9
|
import {
|
|
10
10
|
EXIT_CODE,
|
|
11
11
|
PmCliError,
|
|
12
12
|
getSettingsPath,
|
|
13
13
|
pathExists,
|
|
14
14
|
resolvePmRoot
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-AFWZRL7M.js";
|
|
16
16
|
|
|
17
17
|
// dist/cli/commands/delete.js
|
|
18
18
|
import path from "node:path";
|
|
@@ -52,4 +52,4 @@ async function runDelete(id, options, global2) {
|
|
|
52
52
|
export {
|
|
53
53
|
runDelete
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-TH7U4KLY.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalizeItemId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-T4BRCB6Z.js";
|
|
4
4
|
import {
|
|
5
5
|
EXIT_CODE,
|
|
6
6
|
PmCliError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AFWZRL7M.js";
|
|
8
8
|
|
|
9
9
|
// dist/core/item/parent-reference-policy.js
|
|
10
10
|
!(function() {
|
|
@@ -107,4 +107,4 @@ export {
|
|
|
107
107
|
normalizeSprintReleaseFormatPolicy,
|
|
108
108
|
validateSprintOrReleaseValue
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-TWLDBKQU.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
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]="584aa37d-a8a7-5b1c-83cc-06948ba76568")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
dedupeLinkedArtifacts,
|
|
5
5
|
normalizeLinkedPath,
|
|
6
6
|
renameArtifactsResultKey,
|
|
7
7
|
runLinkedArtifacts,
|
|
8
8
|
sortLinkedArtifacts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P6MYFH6K.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveAuthor
|
|
12
12
|
} from "./chunk-CUFW7ITY.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
mutateItem,
|
|
17
17
|
readLocatedItem,
|
|
18
18
|
readSettings
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-GSEADLRH.js";
|
|
20
20
|
import {
|
|
21
21
|
EXIT_CODE,
|
|
22
22
|
PmCliError,
|
|
@@ -24,12 +24,14 @@ import {
|
|
|
24
24
|
isPathWithinDirectory,
|
|
25
25
|
pathExists,
|
|
26
26
|
resolveItemTypeRegistry,
|
|
27
|
-
resolvePmRoot
|
|
28
|
-
|
|
27
|
+
resolvePmRoot,
|
|
28
|
+
resolveWorkspaceRoot
|
|
29
|
+
} from "./chunk-GXXC7QSK.js";
|
|
29
30
|
|
|
30
|
-
// dist/
|
|
31
|
+
// dist/sdk/files.js
|
|
31
32
|
import fs from "node:fs/promises";
|
|
32
33
|
import path from "node:path";
|
|
34
|
+
var RELATIVE_REFERENCE_SCAN_MAX_CHARS = 32768;
|
|
33
35
|
function normalizeCandidatePathForOutput(value) {
|
|
34
36
|
return normalizeLinkedPath(path.normalize(value));
|
|
35
37
|
}
|
|
@@ -83,10 +85,14 @@ function extractRawPathReferences(references) {
|
|
|
83
85
|
const relativePattern = /(?:\.{1,2}[\\/])?(?:(?:[A-Za-z0-9_.@-]+[\\/])+[A-Za-z0-9_.@-]+|[A-Za-z0-9_.@-]+\.[A-Za-z0-9][A-Za-z0-9._-]*)/gu;
|
|
84
86
|
for (const reference of references) {
|
|
85
87
|
const seenInField = /* @__PURE__ */ new Set();
|
|
86
|
-
|
|
88
|
+
const boundedRelativeValue = reference.value.slice(0, RELATIVE_REFERENCE_SCAN_MAX_CHARS);
|
|
89
|
+
for (const [pattern, input] of [
|
|
90
|
+
[absolutePattern, reference.value],
|
|
91
|
+
[relativePattern, boundedRelativeValue]
|
|
92
|
+
]) {
|
|
87
93
|
pattern.lastIndex = 0;
|
|
88
|
-
for (const match of
|
|
89
|
-
const token = cleanupPathToken(match[0]
|
|
94
|
+
for (const match of input.matchAll(pattern)) {
|
|
95
|
+
const token = cleanupPathToken(match[0]);
|
|
90
96
|
if (!token || seenInField.has(token)) {
|
|
91
97
|
continue;
|
|
92
98
|
}
|
|
@@ -97,8 +103,8 @@ function extractRawPathReferences(references) {
|
|
|
97
103
|
}
|
|
98
104
|
return rawReferences;
|
|
99
105
|
}
|
|
100
|
-
async function resolveDiscoveredFile(rawPath,
|
|
101
|
-
const absolutePath = path.isAbsolute(rawPath) ? path.resolve(rawPath) : path.resolve(
|
|
106
|
+
async function resolveDiscoveredFile(rawPath, workspaceRoot, invocationRoot = workspaceRoot) {
|
|
107
|
+
const absolutePath = path.isAbsolute(rawPath) ? path.resolve(rawPath) : path.resolve(invocationRoot, rawPath);
|
|
102
108
|
let stats;
|
|
103
109
|
try {
|
|
104
110
|
stats = await fs.stat(absolutePath);
|
|
@@ -109,7 +115,7 @@ async function resolveDiscoveredFile(rawPath, projectRoot) {
|
|
|
109
115
|
return void 0;
|
|
110
116
|
}
|
|
111
117
|
const [canonicalProjectRoot, canonicalAbsolutePath] = await Promise.all([
|
|
112
|
-
realpathForContainment(
|
|
118
|
+
realpathForContainment(workspaceRoot),
|
|
113
119
|
realpathForContainment(absolutePath)
|
|
114
120
|
]);
|
|
115
121
|
if (isPathWithinDirectory(canonicalProjectRoot, canonicalAbsolutePath)) {
|
|
@@ -127,16 +133,23 @@ async function resolveDiscoveredFile(rawPath, projectRoot) {
|
|
|
127
133
|
scope: "global"
|
|
128
134
|
};
|
|
129
135
|
}
|
|
130
|
-
async function discoverReferencedFiles(document,
|
|
131
|
-
const existingResolvedKeys = new Set((document.metadata.files ?? []).map((entry) => linkedFileResolvedKey(entry,
|
|
136
|
+
async function discoverReferencedFiles(document, workspaceRoot, invocationRoot = workspaceRoot) {
|
|
137
|
+
const existingResolvedKeys = new Set((document.metadata.files ?? []).map((entry) => linkedFileResolvedKey(entry, workspaceRoot)));
|
|
132
138
|
const grouped = /* @__PURE__ */ new Map();
|
|
133
139
|
const rawReferences = extractRawPathReferences(collectItemTextReferences(document));
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
const resolvedByValue = /* @__PURE__ */ new Map();
|
|
141
|
+
await Promise.all([...new Set(rawReferences.map((reference) => reference.value))].map(async (value) => {
|
|
142
|
+
resolvedByValue.set(value, await resolveDiscoveredFile(value, workspaceRoot, invocationRoot));
|
|
143
|
+
}));
|
|
144
|
+
const resolvedReferences = rawReferences.map((reference) => ({
|
|
145
|
+
reference,
|
|
146
|
+
resolved: resolvedByValue.get(reference.value)
|
|
147
|
+
}));
|
|
148
|
+
for (const { reference, resolved } of resolvedReferences) {
|
|
136
149
|
if (!resolved) {
|
|
137
150
|
continue;
|
|
138
151
|
}
|
|
139
|
-
const key = linkedFileResolvedKey(resolved,
|
|
152
|
+
const key = linkedFileResolvedKey(resolved, workspaceRoot);
|
|
140
153
|
const existing = grouped.get(key) ?? {
|
|
141
154
|
path: resolved.path,
|
|
142
155
|
scope: resolved.scope,
|
|
@@ -167,6 +180,7 @@ async function discoverReferencedFiles(document, projectRoot) {
|
|
|
167
180
|
});
|
|
168
181
|
}
|
|
169
182
|
var _testOnly = {
|
|
183
|
+
relativeReferenceScanMaxChars: RELATIVE_REFERENCE_SCAN_MAX_CHARS,
|
|
170
184
|
normalizeCandidatePathForOutput,
|
|
171
185
|
realpathForContainment,
|
|
172
186
|
linkedFileResolvedKey,
|
|
@@ -188,6 +202,7 @@ async function runFiles(id, options, global) {
|
|
|
188
202
|
}
|
|
189
203
|
async function runFilesDiscover(id, options, global) {
|
|
190
204
|
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
205
|
+
const workspaceRoot = resolveWorkspaceRoot(pmRoot);
|
|
191
206
|
if (!await pathExists(getSettingsPath(pmRoot))) {
|
|
192
207
|
throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
|
|
193
208
|
}
|
|
@@ -198,7 +213,7 @@ async function runFilesDiscover(id, options, global) {
|
|
|
198
213
|
throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);
|
|
199
214
|
}
|
|
200
215
|
const loaded = await readLocatedItem(located, { schema: settings.schema });
|
|
201
|
-
const candidates = await discoverReferencedFiles(loaded.document, process.cwd());
|
|
216
|
+
const candidates = await discoverReferencedFiles(loaded.document, workspaceRoot, process.cwd());
|
|
202
217
|
const addableCandidates = candidates.filter((candidate) => candidate.status === "addable");
|
|
203
218
|
const skippedExisting = candidates.filter((candidate) => candidate.status === "already_linked");
|
|
204
219
|
const requestedApply = options.apply === true;
|
|
@@ -226,6 +241,8 @@ async function runFilesDiscover(id, options, global) {
|
|
|
226
241
|
scope: candidate.scope,
|
|
227
242
|
note
|
|
228
243
|
}));
|
|
244
|
+
let appliedAdds = [];
|
|
245
|
+
const appliedCandidateIndices = /* @__PURE__ */ new Set();
|
|
229
246
|
const result = await mutateItem({
|
|
230
247
|
pmRoot,
|
|
231
248
|
settings,
|
|
@@ -236,16 +253,18 @@ async function runFilesDiscover(id, options, global) {
|
|
|
236
253
|
force: options.force,
|
|
237
254
|
mutate(document) {
|
|
238
255
|
const next = [...document.metadata.files ?? []];
|
|
239
|
-
const existingResolvedKeys = new Set(next.map((entry) => linkedFileResolvedKey(entry,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
256
|
+
const existingResolvedKeys = new Set(next.map((entry) => linkedFileResolvedKey(entry, workspaceRoot)));
|
|
257
|
+
appliedAdds = [];
|
|
258
|
+
appliedCandidateIndices.clear();
|
|
259
|
+
for (const [index, add] of discoveredAdds.entries()) {
|
|
260
|
+
const resolvedKey = linkedFileResolvedKey(add, workspaceRoot);
|
|
243
261
|
if (existingResolvedKeys.has(resolvedKey)) {
|
|
244
262
|
continue;
|
|
245
263
|
}
|
|
246
264
|
next.push(add);
|
|
247
265
|
existingResolvedKeys.add(resolvedKey);
|
|
248
266
|
appliedAdds.push(add);
|
|
267
|
+
appliedCandidateIndices.add(index);
|
|
249
268
|
}
|
|
250
269
|
const deduped = dedupeLinkedArtifacts(next);
|
|
251
270
|
const normalized = options.appendStable ? deduped : sortLinkedArtifacts(deduped);
|
|
@@ -265,8 +284,10 @@ async function runFilesDiscover(id, options, global) {
|
|
|
265
284
|
}
|
|
266
285
|
});
|
|
267
286
|
const files = result.item.files ?? [];
|
|
268
|
-
const addedResolvedKeys = new Set(
|
|
269
|
-
const added = files.filter((entry) => addedResolvedKeys.has(linkedFileResolvedKey(entry,
|
|
287
|
+
const addedResolvedKeys = new Set(appliedAdds.map((entry) => linkedFileResolvedKey(entry, workspaceRoot)));
|
|
288
|
+
const added = files.filter((entry) => addedResolvedKeys.has(linkedFileResolvedKey(entry, workspaceRoot)));
|
|
289
|
+
const skippedDuringApply = addableCandidates.filter((_candidate, index) => !appliedCandidateIndices.has(index));
|
|
290
|
+
const allSkippedExisting = [...skippedExisting, ...skippedDuringApply];
|
|
270
291
|
return {
|
|
271
292
|
id: result.item.id,
|
|
272
293
|
files,
|
|
@@ -276,10 +297,10 @@ async function runFilesDiscover(id, options, global) {
|
|
|
276
297
|
candidate_count: candidates.length,
|
|
277
298
|
addable_count: addableCandidates.length,
|
|
278
299
|
added_count: added.length,
|
|
279
|
-
skipped_existing_count:
|
|
300
|
+
skipped_existing_count: allSkippedExisting.length,
|
|
280
301
|
candidates,
|
|
281
302
|
added,
|
|
282
|
-
skipped_existing:
|
|
303
|
+
skipped_existing: allSkippedExisting
|
|
283
304
|
};
|
|
284
305
|
}
|
|
285
306
|
|
|
@@ -288,6 +309,6 @@ export {
|
|
|
288
309
|
runFiles,
|
|
289
310
|
runFilesDiscover
|
|
290
311
|
};
|
|
291
|
-
//# sourceMappingURL=chunk-
|
|
312
|
+
//# sourceMappingURL=chunk-TZ2PSLLT.js.map
|
|
292
313
|
|
|
293
|
-
//# debugId=
|
|
314
|
+
//# debugId=584aa37d-a8a7-5b1c-83cc-06948ba76568
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../sdk/files.ts"],"sourcesContent":["/**\n * @module sdk/files\n *\n * Implements the pm files command surface and its agent-facing runtime behavior.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../core/extensions/index.js\";\nimport { resolveItemTypeRegistry } from \"../core/item/type-registry.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 {\n locateItem,\n mutateItem,\n readLocatedItem,\n} from \"../core/store/item-store.js\";\nimport {\n getSettingsPath,\n resolvePmRoot,\n resolveWorkspaceRoot,\n} from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport { resolveAuthor } from \"../core/shared/author.js\";\nimport { isPathWithinDirectory } from \"../core/fs/path-utils.js\";\nimport type { ItemDocument, LinkedFile, LinkScope } from \"../types/index.js\";\nimport {\n dedupeLinkedArtifacts,\n normalizeLinkedPath,\n renameArtifactsResultKey,\n runLinkedArtifacts,\n sortLinkedArtifacts,\n type LinkedArtifactResult,\n type LinkedPathValidation,\n} from \"./linked-artifacts.js\";\n\n/** Documents the files command options payload exchanged by command, SDK, and package integrations. */\nexport interface FilesCommandOptions {\n /** Value that configures or reports add for this contract. */\n add?: string[];\n /** Value that configures or reports add glob for this contract. */\n addGlob?: string[];\n /** Value that configures or reports remove for this contract. */\n remove?: string[];\n /** Value that configures or reports migrate for this contract. */\n migrate?: string[];\n /** GH-170 (pm-pfnx): standalone note applied to every --add/--add-glob link in this invocation. */\n note?: string;\n /** Value that configures or reports list for this contract. */\n list?: boolean;\n /** Value that configures or reports append stable for this contract. */\n appendStable?: boolean;\n /** Value that configures or reports validate paths for this contract. */\n validatePaths?: boolean;\n /** Value that configures or reports author for this contract. */\n author?: string;\n /** Human-readable explanation suitable for logs and agent-facing output. */\n message?: string;\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n}\n\n/** Documents the files discover options payload exchanged by command, SDK, and package integrations. */\nexport interface FilesDiscoverOptions {\n /** Value that configures or reports apply for this contract. */\n apply?: boolean;\n /** Value that configures or reports append stable for this contract. */\n appendStable?: boolean;\n /** Value that configures or reports note for this contract. */\n note?: string;\n /** Value that configures or reports author for this contract. */\n author?: string;\n /** Human-readable explanation suitable for logs and agent-facing output. */\n message?: string;\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n}\n\n/** Documents the files discovery candidate payload exchanged by command, SDK, and package integrations. */\nexport interface FilesDiscoveryCandidate {\n /** Filesystem path used for path resolution. */\n path: string;\n /** Value that configures or reports scope for this contract. */\n scope: LinkScope;\n /** Lifecycle state reported for status. */\n status: \"addable\" | \"already_linked\";\n /** Number of source entries represented by this result. */\n source_count: number;\n /** Value that configures or reports source fields for this contract. */\n source_fields: string[];\n /** Value that configures or reports original paths for this contract. */\n original_paths: string[];\n}\n\n/** Documents the files result payload exchanged by command, SDK, and package integrations. */\nexport interface FilesResult {\n /** Stable identifier used to reference this record across commands and storage. */\n id: string;\n /** Value that configures or reports files for this contract. */\n files: LinkedFile[];\n /** Value that configures or reports changed for this contract. */\n changed: boolean;\n /** Value that configures or reports count for this contract. */\n count: number;\n /** Value that configures or reports migrations applied for this contract. */\n migrations_applied?: number;\n /** Value that configures or reports validation for this contract. */\n validation?: LinkedPathValidation;\n}\n\n/** Documents the files discover result payload exchanged by command, SDK, and package integrations. */\nexport interface FilesDiscoverResult {\n /** Stable identifier used to reference this record across commands and storage. */\n id: string;\n /** Value that configures or reports files for this contract. */\n files: LinkedFile[];\n /** Value that configures or reports changed for this contract. */\n changed: boolean;\n /** Value that configures or reports apply for this contract. */\n apply: boolean;\n /** Value that configures or reports count for this contract. */\n count: number;\n /** Number of candidate entries represented by this result. */\n candidate_count: number;\n /** Number of addable entries represented by this result. */\n addable_count: number;\n /** Number of added entries represented by this result. */\n added_count: number;\n /** Number of skipped existing entries represented by this result. */\n skipped_existing_count: number;\n /** Value that configures or reports candidates for this contract. */\n candidates: FilesDiscoveryCandidate[];\n /** Value that configures or reports added for this contract. */\n added: LinkedFile[];\n /** Value that configures or reports skipped existing for this contract. */\n skipped_existing: FilesDiscoveryCandidate[];\n}\n\ninterface TextReference {\n field: string;\n value: string;\n}\n\ninterface RawPathReference {\n field: string;\n value: string;\n}\n\n/** Bounds fuzzy relative-path scanning while preserving full absolute-path discovery. */\nconst RELATIVE_REFERENCE_SCAN_MAX_CHARS = 32_768;\n\nfunction normalizeCandidatePathForOutput(value: string): string {\n return normalizeLinkedPath(path.normalize(value));\n}\n\nasync function realpathForContainment(inputPath: string): Promise<string> {\n try {\n return await fs.realpath(inputPath);\n } catch {\n return path.resolve(inputPath);\n }\n}\n\nfunction linkedFileResolvedKey(\n linkedFile: Pick<LinkedFile, \"path\" | \"scope\">,\n projectRoot: string,\n): string {\n const resolvedPath = path.isAbsolute(linkedFile.path)\n ? path.resolve(linkedFile.path)\n : path.resolve(projectRoot, linkedFile.path);\n return `${normalizeCandidatePathForOutput(resolvedPath)}::${linkedFile.scope}`;\n}\n\nfunction collectTextReferences(\n value: unknown,\n fieldPath: string,\n references: TextReference[],\n): void {\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed.length > 0) {\n references.push({ field: fieldPath, value: trimmed });\n }\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((entry, index) =>\n collectTextReferences(entry, `${fieldPath}[${index}]`, references),\n );\n return;\n }\n if (typeof value === \"object\" && value !== null) {\n for (const [key, nested] of Object.entries(value)) {\n /* c8 ignore next -- root-level object traversal always carries a non-empty field path in current callers. */\n collectTextReferences(\n nested,\n fieldPath ? `${fieldPath}.${key}` : key,\n references,\n );\n }\n }\n}\n\nfunction collectItemTextReferences(document: ItemDocument): TextReference[] {\n const references: TextReference[] = [];\n collectTextReferences(document.metadata, \"metadata\", references);\n collectTextReferences(document.body, \"body\", references);\n return references;\n}\n\nfunction cleanupPathToken(value: string): string {\n let next = value.trim();\n next = next.replace(/^[`\"'<([{]+/u, \"\");\n next = next.replace(/[`\"'>)\\]},;!?]+$/u, \"\");\n next = next.replace(/[.]+$/u, \"\");\n next = next.replace(/:(?:\\d+)(?::\\d+)?$/u, \"\");\n next = next.replace(/[.]+$/u, \"\");\n return next;\n}\n\nfunction extractRawPathReferences(\n references: TextReference[],\n): RawPathReference[] {\n const rawReferences: RawPathReference[] = [];\n const absolutePattern = /(?:[A-Za-z]:[\\\\/]|\\/)[^\\s\"'`<>()[\\]{},;]+/gu;\n const relativePattern =\n /(?:\\.{1,2}[\\\\/])?(?:(?:[A-Za-z0-9_.@-]+[\\\\/])+[A-Za-z0-9_.@-]+|[A-Za-z0-9_.@-]+\\.[A-Za-z0-9][A-Za-z0-9._-]*)/gu;\n for (const reference of references) {\n const seenInField = new Set<string>();\n const boundedRelativeValue = reference.value.slice(\n 0,\n RELATIVE_REFERENCE_SCAN_MAX_CHARS,\n );\n for (const [pattern, input] of [\n [absolutePattern, reference.value],\n [relativePattern, boundedRelativeValue],\n ] as const) {\n pattern.lastIndex = 0;\n for (const match of input.matchAll(pattern)) {\n const token = cleanupPathToken(match[0]);\n if (!token || seenInField.has(token)) {\n continue;\n }\n seenInField.add(token);\n rawReferences.push({ field: reference.field, value: token });\n }\n }\n }\n return rawReferences;\n}\n\nasync function resolveDiscoveredFile(\n rawPath: string,\n workspaceRoot: string,\n invocationRoot: string = workspaceRoot,\n): Promise<Pick<LinkedFile, \"path\" | \"scope\"> | undefined> {\n const absolutePath = path.isAbsolute(rawPath)\n ? path.resolve(rawPath)\n : path.resolve(invocationRoot, rawPath);\n let stats;\n try {\n stats = await fs.stat(absolutePath);\n } catch {\n return undefined;\n }\n if (!stats.isFile()) {\n return undefined;\n }\n const [canonicalProjectRoot, canonicalAbsolutePath] = await Promise.all([\n realpathForContainment(workspaceRoot),\n realpathForContainment(absolutePath),\n ]);\n if (isPathWithinDirectory(canonicalProjectRoot, canonicalAbsolutePath)) {\n const relativePath = path.relative(\n canonicalProjectRoot,\n canonicalAbsolutePath,\n );\n if (\n !relativePath ||\n relativePath.startsWith(\"..\") ||\n path.isAbsolute(relativePath)\n ) {\n return undefined;\n }\n return {\n path: normalizeCandidatePathForOutput(relativePath),\n scope: \"project\",\n };\n }\n return {\n path: normalizeCandidatePathForOutput(absolutePath),\n scope: \"global\",\n };\n}\n\nasync function discoverReferencedFiles(\n document: ItemDocument,\n workspaceRoot: string,\n invocationRoot: string = workspaceRoot,\n): Promise<FilesDiscoveryCandidate[]> {\n const existingResolvedKeys = new Set(\n (document.metadata.files ?? []).map((entry) =>\n linkedFileResolvedKey(entry, workspaceRoot),\n ),\n );\n const grouped = new Map<\n string,\n {\n path: string;\n scope: LinkScope;\n sourceFields: Set<string>;\n originalPaths: Set<string>;\n sourceCount: number;\n }\n >();\n const rawReferences = extractRawPathReferences(\n collectItemTextReferences(document),\n );\n const resolvedByValue = new Map<\n string,\n Pick<LinkedFile, \"path\" | \"scope\"> | undefined\n >();\n await Promise.all(\n [...new Set(rawReferences.map((reference) => reference.value))].map(\n async (value) => {\n resolvedByValue.set(\n value,\n await resolveDiscoveredFile(value, workspaceRoot, invocationRoot),\n );\n },\n ),\n );\n const resolvedReferences = rawReferences.map((reference) => ({\n reference,\n resolved: resolvedByValue.get(reference.value),\n }));\n for (const { reference, resolved } of resolvedReferences) {\n if (!resolved) {\n continue;\n }\n const key = linkedFileResolvedKey(resolved, workspaceRoot);\n const existing = grouped.get(key) ?? {\n path: resolved.path,\n scope: resolved.scope,\n sourceFields: new Set<string>(),\n originalPaths: new Set<string>(),\n sourceCount: 0,\n };\n existing.sourceFields.add(reference.field);\n existing.originalPaths.add(reference.value);\n existing.sourceCount += 1;\n grouped.set(key, existing);\n }\n return [...grouped.entries()]\n .map(([key, entry]) => ({\n path: entry.path,\n scope: entry.scope,\n status: existingResolvedKeys.has(key)\n ? (\"already_linked\" as const)\n : (\"addable\" as const),\n source_count: entry.sourceCount,\n source_fields: [...entry.sourceFields].sort((left, right) =>\n left.localeCompare(right),\n ),\n original_paths: [...entry.originalPaths].sort((left, right) =>\n left.localeCompare(right),\n ),\n }))\n .sort((left, right) => {\n const byStatus = left.status.localeCompare(right.status);\n if (byStatus !== 0) return byStatus;\n const byPath = left.path.localeCompare(right.path);\n if (byPath !== 0) return byPath;\n /* c8 ignore next -- path+status collisions are uncommon in deterministic fixtures. */\n return left.scope.localeCompare(right.scope);\n });\n}\n\n/** Public contract for test only, shared by SDK and presentation-layer consumers. */\nexport const _testOnly = {\n relativeReferenceScanMaxChars: RELATIVE_REFERENCE_SCAN_MAX_CHARS,\n normalizeCandidatePathForOutput,\n realpathForContainment,\n linkedFileResolvedKey,\n collectTextReferences,\n collectItemTextReferences,\n cleanupPathToken,\n extractRawPathReferences,\n resolveDiscoveredFile,\n discoverReferencedFiles,\n};\n\n/** Implements run files for the public runtime surface of this module. */\nexport async function runFiles(\n id: string,\n options: FilesCommandOptions,\n global: GlobalOptions,\n): Promise<FilesResult> {\n const result: LinkedArtifactResult = await runLinkedArtifacts(\n id,\n options,\n global,\n {\n metadataKey: \"files\",\n op: \"files_add\",\n bareNoun: \"file\",\n supportsAppendStable: true,\n },\n );\n return renameArtifactsResultKey(result, \"files\");\n}\n\n/** Implements run files discover for the public runtime surface of this module. */\nexport async function runFilesDiscover(\n id: string,\n options: FilesDiscoverOptions,\n global: GlobalOptions,\n): Promise<FilesDiscoverResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const workspaceRoot = resolveWorkspaceRoot(pmRoot);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n /* c8 ignore next -- not-found behavior is validated by CLI integration coverage. */\n if (!located) {\n throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);\n }\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n const candidates = await discoverReferencedFiles(\n loaded.document,\n workspaceRoot,\n process.cwd(),\n );\n const addableCandidates = candidates.filter(\n (candidate) => candidate.status === \"addable\",\n );\n const skippedExisting = candidates.filter(\n (candidate) => candidate.status === \"already_linked\",\n );\n const requestedApply = options.apply === true;\n const note = options.note?.trim() || \"discovered from item text\";\n\n if (!requestedApply || addableCandidates.length === 0) {\n const files = loaded.document.metadata.files ?? [];\n return {\n id: located.id,\n files,\n changed: false,\n apply: requestedApply,\n count: files.length,\n candidate_count: candidates.length,\n addable_count: addableCandidates.length,\n added_count: 0,\n skipped_existing_count: skippedExisting.length,\n candidates,\n added: [],\n skipped_existing: skippedExisting,\n };\n }\n\n const author = resolveAuthor(options.author, settings.author_default);\n const discoveredAdds: LinkedFile[] = addableCandidates.map((candidate) => ({\n path: candidate.path,\n scope: candidate.scope,\n note,\n }));\n let appliedAdds: LinkedFile[] = [];\n const appliedCandidateIndices = new Set<number>();\n const result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"files_discover\",\n author,\n message: options.message ?? \"Discover referenced file links\",\n force: options.force,\n mutate(document) {\n const next = [...(document.metadata.files ?? [])];\n const existingResolvedKeys = new Set(\n next.map((entry) => linkedFileResolvedKey(entry, workspaceRoot)),\n );\n appliedAdds = [];\n appliedCandidateIndices.clear();\n for (const [index, add] of discoveredAdds.entries()) {\n const resolvedKey = linkedFileResolvedKey(add, workspaceRoot);\n /* c8 ignore next -- duplicate-key race paths are exercised in broader CLI race tests. */\n if (existingResolvedKeys.has(resolvedKey)) {\n continue;\n }\n next.push(add);\n existingResolvedKeys.add(resolvedKey);\n appliedAdds.push(add);\n appliedCandidateIndices.add(index);\n }\n const deduped = dedupeLinkedArtifacts(next);\n /* c8 ignore next -- appendStable branch is covered through runFiles command contract tests. */\n const normalized = options.appendStable\n ? deduped\n : sortLinkedArtifacts(deduped);\n if (normalized.length > 0) {\n document.metadata.files = normalized;\n } else {\n delete document.metadata.files;\n }\n return {\n /* c8 ignore next -- no-op mutation responses may emit empty changedFields for skipped discover batches. */\n changedFields: appliedAdds.length > 0 ? [\"files\"] : [],\n /* c8 ignore next -- warning emission is exercised by race-aware integration tests. */\n warnings:\n appliedAdds.length !== discoveredAdds.length\n ? [\n `files_discover_skipped_existing:${discoveredAdds.length - appliedAdds.length}`,\n ]\n : [],\n };\n },\n });\n\n const files = result.item.files ?? [];\n const addedResolvedKeys = new Set(\n appliedAdds.map((entry) => linkedFileResolvedKey(entry, workspaceRoot)),\n );\n const added = files.filter((entry) =>\n addedResolvedKeys.has(linkedFileResolvedKey(entry, workspaceRoot)),\n );\n const skippedDuringApply = addableCandidates.filter(\n (_candidate, index) => !appliedCandidateIndices.has(index),\n );\n const allSkippedExisting = [...skippedExisting, ...skippedDuringApply];\n return {\n id: result.item.id,\n files,\n changed: added.length > 0,\n apply: true,\n count: files.length,\n candidate_count: candidates.length,\n addable_count: addableCandidates.length,\n added_count: added.length,\n skipped_existing_count: allSkippedExisting.length,\n candidates,\n added,\n skipped_existing: allSkippedExisting,\n };\n}\n"],"names":["files"],"mappings":"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","debugId":"584aa37d-a8a7-5b1c-83cc-06948ba76568"}
|
|
@@ -2,7 +2,7 @@
|
|
|
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]="995076bc-3f7f-5d6c-ba7e-30c43a08674c")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
collectBlockedByIds
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-X3GYR4P2.js";
|
|
6
6
|
import {
|
|
7
7
|
buildItemNotFoundError,
|
|
8
8
|
isTerminalStatus,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
readLocatedItem,
|
|
13
13
|
readSettings,
|
|
14
14
|
toItemRecord
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-GSEADLRH.js";
|
|
16
16
|
import {
|
|
17
17
|
EXIT_CODE,
|
|
18
18
|
PmCliError,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
resolveItemTypeRegistry,
|
|
22
22
|
resolvePmRoot,
|
|
23
23
|
resolveRuntimeStatusRegistry
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-GXXC7QSK.js";
|
|
25
25
|
|
|
26
26
|
// dist/cli/commands/close.js
|
|
27
27
|
function toAuthor(candidate, defaultAuthor) {
|
|
@@ -458,6 +458,6 @@ export {
|
|
|
458
458
|
_testOnlyCloseCommand,
|
|
459
459
|
runClose
|
|
460
460
|
};
|
|
461
|
-
//# sourceMappingURL=chunk-
|
|
461
|
+
//# sourceMappingURL=chunk-TZRTLMWM.js.map
|
|
462
462
|
|
|
463
463
|
//# debugId=995076bc-3f7f-5d6c-ba7e-30c43a08674c
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
lintProjectProfile,
|
|
8
8
|
resolveProfileCatalog,
|
|
9
9
|
resolveProfileEntry
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HAMLIWAF.js";
|
|
11
11
|
import {
|
|
12
12
|
parseNestedSettingValue,
|
|
13
13
|
readNestedSettingValue,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-DJAGYYCQ.js";
|
|
17
17
|
import {
|
|
18
18
|
ensureTypeFolderScaffold
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UGTVWL3E.js";
|
|
20
20
|
import {
|
|
21
21
|
normalizeAddFieldInput,
|
|
22
22
|
normalizeAddStatusInput,
|
|
@@ -26,16 +26,16 @@ import {
|
|
|
26
26
|
serializeStatusDefsFile,
|
|
27
27
|
upsertField,
|
|
28
28
|
upsertStatusDef
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ABRCOSDC.js";
|
|
30
30
|
import {
|
|
31
31
|
CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-N3CMP4NI.js";
|
|
33
33
|
import {
|
|
34
34
|
normalizeAddTypeInput,
|
|
35
35
|
parseItemTypesFile,
|
|
36
36
|
serializeItemTypesFile,
|
|
37
37
|
upsertItemType
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-3TL7WOEF.js";
|
|
39
39
|
import {
|
|
40
40
|
acquireLock,
|
|
41
41
|
getActiveExtensionRegistrations,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
resolveGovernanceKnobs,
|
|
45
45
|
runActiveOnWriteHooks,
|
|
46
46
|
writeSettings
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-GSEADLRH.js";
|
|
48
48
|
import {
|
|
49
49
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
50
50
|
EXIT_CODE,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
readFileIfExists,
|
|
57
57
|
resolvePmRoot,
|
|
58
58
|
writeFileAtomic
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-GXXC7QSK.js";
|
|
60
60
|
|
|
61
61
|
// dist/cli/commands/profile.js
|
|
62
62
|
import path2 from "node:path";
|
|
@@ -832,6 +832,6 @@ export {
|
|
|
832
832
|
formatProfileLintHuman,
|
|
833
833
|
formatProfileApplyHuman
|
|
834
834
|
};
|
|
835
|
-
//# sourceMappingURL=chunk-
|
|
835
|
+
//# sourceMappingURL=chunk-UB2QYSTO.js.map
|
|
836
836
|
|
|
837
837
|
//# debugId=a881d2f4-ed91-55ba-b881-706e0f472cd0
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
serializeStatusDefsFile,
|
|
19
19
|
upsertField,
|
|
20
20
|
upsertStatusDef
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ABRCOSDC.js";
|
|
22
22
|
import {
|
|
23
23
|
assertAliasesAvailable,
|
|
24
24
|
assertTypeFolderAvailable,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
removeItemType,
|
|
30
30
|
serializeItemTypesFile,
|
|
31
31
|
upsertItemType
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-3TL7WOEF.js";
|
|
33
33
|
import {
|
|
34
34
|
acquireLock,
|
|
35
35
|
getActiveExtensionRegistrations,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
readSettings,
|
|
39
39
|
resolveGovernanceKnobs,
|
|
40
40
|
runActiveOnWriteHooks
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-GSEADLRH.js";
|
|
42
42
|
import {
|
|
43
43
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
44
44
|
EXIT_CODE,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
resolveRuntimeStatusRegistry,
|
|
55
55
|
toDefaultFolder,
|
|
56
56
|
writeFileAtomic
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-GXXC7QSK.js";
|
|
58
58
|
|
|
59
59
|
// dist/cli/commands/schema.js
|
|
60
60
|
import path from "node:path";
|
|
@@ -1234,6 +1234,6 @@ export {
|
|
|
1234
1234
|
formatSchemaInferTypesHuman,
|
|
1235
1235
|
_testOnlySchemaCommand
|
|
1236
1236
|
};
|
|
1237
|
-
//# sourceMappingURL=chunk-
|
|
1237
|
+
//# sourceMappingURL=chunk-UGTVWL3E.js.map
|
|
1238
1238
|
|
|
1239
1239
|
//# debugId=46e1dd18-6b92-508e-98ca-4914b8c2edc5
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isTerminalStatus,
|
|
3
3
|
normalizeStatusForRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-T4BRCB6Z.js";
|
|
5
5
|
|
|
6
6
|
// dist/core/item/actionability.js
|
|
7
7
|
!(function() {
|
|
@@ -129,4 +129,4 @@ export {
|
|
|
129
129
|
collectBlockedByIds,
|
|
130
130
|
computeActionabilityReport
|
|
131
131
|
};
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
132
|
+
//# sourceMappingURL=chunk-UJ4HJYWL.js.map
|
|
@@ -9,15 +9,15 @@ import {
|
|
|
9
9
|
TYPE_PRESET_DEFINITIONS,
|
|
10
10
|
normalizeAddFieldInput,
|
|
11
11
|
normalizeAddStatusInput
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DO5RGJXT.js";
|
|
13
13
|
import {
|
|
14
14
|
normalizeAddTypeInput
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ANSJHDOZ.js";
|
|
16
16
|
import {
|
|
17
17
|
BUILTIN_ITEM_TYPE_VALUES,
|
|
18
18
|
DEFAULT_RUNTIME_STATUS_DEFINITIONS,
|
|
19
19
|
toErrorMessage
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-AFWZRL7M.js";
|
|
21
21
|
|
|
22
22
|
// dist/core/profile/profile-presets.js
|
|
23
23
|
!(function() {
|
|
@@ -680,4 +680,4 @@ export {
|
|
|
680
680
|
PROFILE_LINT_CODES,
|
|
681
681
|
lintProjectProfile
|
|
682
682
|
};
|
|
683
|
-
//# sourceMappingURL=chunk-
|
|
683
|
+
//# sourceMappingURL=chunk-UKUIIBDW.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
parseAnnotationTextInput,
|
|
5
5
|
resolveAnnotationInput,
|
|
6
6
|
runAnnotationCommand
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4RXTMU57.js";
|
|
8
8
|
|
|
9
9
|
// dist/cli/commands/learnings.js
|
|
10
10
|
async function runLearnings(id, options, global) {
|
|
@@ -30,6 +30,6 @@ async function runLearnings(id, options, global) {
|
|
|
30
30
|
export {
|
|
31
31
|
runLearnings
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-UVBA6F5A.js.map
|
|
34
34
|
|
|
35
35
|
//# debugId=1bec9be5-4967-5914-933d-cf3ebd310ca5
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "./chunk-YRYYFGV3.js";
|
|
4
4
|
import {
|
|
5
5
|
parseLimit
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YQYG2V23.js";
|
|
7
7
|
import {
|
|
8
8
|
createStdinTokenResolver,
|
|
9
9
|
parseCsvKv
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WD6MSYMP.js";
|
|
11
11
|
import {
|
|
12
12
|
getActiveExtensionRegistrations,
|
|
13
13
|
locateItem,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
nowIso,
|
|
16
16
|
readLocatedItem,
|
|
17
17
|
readSettings
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-T4BRCB6Z.js";
|
|
19
19
|
import {
|
|
20
20
|
EXIT_CODE,
|
|
21
21
|
PmCliError,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
pathExists,
|
|
24
24
|
resolveItemTypeRegistry,
|
|
25
25
|
resolvePmRoot
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-AFWZRL7M.js";
|
|
27
27
|
|
|
28
28
|
// dist/sdk/annotations.js
|
|
29
29
|
import { readFile } from "node:fs/promises";
|
|
@@ -313,4 +313,4 @@ export {
|
|
|
313
313
|
runAnnotationCommand,
|
|
314
314
|
resolveAnnotationIndex
|
|
315
315
|
};
|
|
316
|
-
//# sourceMappingURL=chunk-
|
|
316
|
+
//# sourceMappingURL=chunk-VJTAEIPC.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
toNonEmptyStringOrUndefined
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AFWZRL7M.js";
|
|
4
4
|
|
|
5
5
|
// dist/core/governance/metadata-coverage.js
|
|
6
6
|
!(function() {
|
|
@@ -262,4 +262,4 @@ export {
|
|
|
262
262
|
computeMetadataCoverage,
|
|
263
263
|
groupItemsByDimension
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-W6HZ55JO.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EXIT_CODE,
|
|
3
3
|
PmCliError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AFWZRL7M.js";
|
|
5
5
|
|
|
6
6
|
// dist/core/item/parse.js
|
|
7
7
|
!(function() {
|
|
8
8
|
try {
|
|
9
9
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
10
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
10
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "fb39edac-1965-5a52-9c0c-c4330fe3a8c7");
|
|
11
11
|
} catch (e2) {
|
|
12
12
|
}
|
|
13
13
|
})();
|
|
@@ -345,6 +345,14 @@ function parseOptionalNumber(raw, optionName) {
|
|
|
345
345
|
}
|
|
346
346
|
return value;
|
|
347
347
|
}
|
|
348
|
+
function parseOptionalNonNegativeInteger(raw, optionName) {
|
|
349
|
+
const trimmed = raw.trim();
|
|
350
|
+
const value = Number(trimmed);
|
|
351
|
+
if (trimmed === "" || !Number.isInteger(value) || value < 0) {
|
|
352
|
+
throw new PmCliError(`Invalid ${optionName} value "${raw}". Expected a non-negative integer.`, EXIT_CODE.USAGE);
|
|
353
|
+
}
|
|
354
|
+
return value;
|
|
355
|
+
}
|
|
348
356
|
|
|
349
357
|
export {
|
|
350
358
|
parseTags,
|
|
@@ -354,6 +362,7 @@ export {
|
|
|
354
362
|
looksLikeGenericKeyValueEntry,
|
|
355
363
|
assertNoUnknownCsvKeys,
|
|
356
364
|
createStdinTokenResolver,
|
|
357
|
-
parseOptionalNumber
|
|
365
|
+
parseOptionalNumber,
|
|
366
|
+
parseOptionalNonNegativeInteger
|
|
358
367
|
};
|
|
359
|
-
//# sourceMappingURL=chunk-
|
|
368
|
+
//# sourceMappingURL=chunk-WD6MSYMP.js.map
|