@unbrained/pm-cli 2026.6.5 → 2026.6.7
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/CHANGELOG.md +77 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +17 -5
- package/dist/cli/commander-usage.js +74 -4
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.d.ts +8 -0
- package/dist/cli/commands/aggregate.js +84 -7
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/calendar.js +10 -3
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close-many.js +13 -10
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/close.d.ts +1 -1
- package/dist/cli/commands/close.js +20 -10
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +87 -18
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +5 -4
- package/dist/cli/commands/config.js +50 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/contracts.js +6 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/copy.d.ts +14 -0
- package/dist/cli/commands/copy.js +153 -0
- package/dist/cli/commands/copy.js.map +1 -0
- package/dist/cli/commands/extension/doctor.js +62 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.d.ts +8 -0
- package/dist/cli/commands/extension/install-sources.js +82 -2
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +29 -0
- package/dist/cli/commands/extension.js +61 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/gc.d.ts +8 -1
- package/dist/cli/commands/gc.js +26 -3
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +9 -0
- package/dist/cli/commands/get.js +23 -2
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.js +15 -2
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.d.ts +39 -0
- package/dist/cli/commands/history-compact.js +262 -0
- package/dist/cli/commands/history-compact.js.map +1 -0
- package/dist/cli/commands/history.d.ts +4 -1
- package/dist/cli/commands/history.js +12 -24
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.js +5 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.js +87 -9
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/reindex.js +8 -4
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/search.d.ts +1 -0
- package/dist/cli/commands/search.js +232 -35
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +8 -1
- package/dist/cli/commands/stats.js +18 -17
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +8 -0
- package/dist/cli/commands/telemetry.js +253 -0
- package/dist/cli/commands/telemetry.js.map +1 -0
- package/dist/cli/error-guidance.js +26 -2
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +1 -0
- package/dist/cli/extension-command-help.js +3 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/help-content.js +19 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.js +13 -21
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +24 -6
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +52 -17
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +55 -8
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +5 -5
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.js +21 -3
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-5UROHJ3D.js +16 -0
- package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js → activity-YVB3QRTE.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-OOAGKWRG.js → aggregate-LH66F75F.js} +87 -17
- package/dist/cli-bundle/chunks/aggregate-LH66F75F.js.map +7 -0
- package/dist/cli-bundle/chunks/{aggregate-J35K7WZB.js → aggregate-OHSWFQJM.js} +88 -18
- package/dist/cli-bundle/chunks/aggregate-OHSWFQJM.js.map +1 -0
- package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js → append-2PPYFAG5.js} +8 -8
- package/dist/cli-bundle/chunks/{append-5JE3YGXU.js → append-AUGT5W6J.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js → chunk-2IF7WLB7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KA24HME7.js → chunk-2IXCHCLM.js} +5 -6
- package/dist/cli-bundle/chunks/chunk-2IXCHCLM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js → chunk-2OJHLWBZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js → chunk-3A2CMEM7.js} +5 -4
- package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js → chunk-3EOBJOF4.js} +5 -4
- package/dist/cli-bundle/chunks/{chunk-N5YF3VFN.js → chunk-42LOFGJS.js} +91 -16
- package/dist/cli-bundle/chunks/chunk-42LOFGJS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WIKR7KFL.js → chunk-4CHEG6UK.js} +108 -21
- package/dist/cli-bundle/chunks/chunk-4CHEG6UK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4QCR4QW3.js → chunk-4GHZR3BA.js} +56 -28
- package/dist/cli-bundle/chunks/chunk-4GHZR3BA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js → chunk-5AXMRKN5.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js → chunk-6J4K6JLA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-V3JQ4IPL.js → chunk-6RZXO5M2.js} +102 -22
- package/dist/cli-bundle/chunks/chunk-6RZXO5M2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js → chunk-AVJD6VTA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NQP3ECKF.js → chunk-B2KZGPM2.js} +39 -8
- package/dist/cli-bundle/chunks/chunk-B2KZGPM2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js → chunk-B5RF3IP7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js → chunk-C5W2UH56.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js → chunk-CKLBZHS7.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-GNHVV4SY.js → chunk-CLD3XNCH.js} +124 -20
- package/dist/cli-bundle/chunks/chunk-CLD3XNCH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RANZIID5.js → chunk-FHHBD7PN.js} +38 -7
- package/dist/cli-bundle/chunks/chunk-FHHBD7PN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js → chunk-FY6Z3FYY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js → chunk-GNIUOLZ2.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js → chunk-GPXQBR3H.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-SZQCER6S.js → chunk-GUZBNB3G.js} +27 -5
- package/dist/cli-bundle/chunks/chunk-GUZBNB3G.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js → chunk-H7EO3QA3.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js → chunk-HLC3KTLP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js → chunk-HMMMWBK2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4PJQSECJ.js → chunk-HRMHZ4RV.js} +26 -4
- package/dist/cli-bundle/chunks/chunk-HRMHZ4RV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js → chunk-HV5SSZXF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ATBVS6WW.js → chunk-IMCJBN2Q.js} +23 -14
- package/dist/cli-bundle/chunks/chunk-IMCJBN2Q.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js → chunk-KNGVP5WJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OIQIXTNB.js → chunk-KR6R465K.js} +304 -215
- package/dist/cli-bundle/chunks/chunk-KR6R465K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js → chunk-LI65XLJR.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js → chunk-LIN2BPJ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-LMTOY5HE.js +112 -0
- package/dist/cli-bundle/chunks/chunk-LMTOY5HE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js → chunk-LQHBENVW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js → chunk-LXO6V66E.js} +14 -14
- package/dist/cli-bundle/chunks/{chunk-TK633IVD.js → chunk-M2PW7EZU.js} +26 -7
- package/dist/cli-bundle/chunks/chunk-M2PW7EZU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js → chunk-MOYM2C3J.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-ZQ4F6EC4.js → chunk-MWRS7Z4P.js} +127 -23
- package/dist/cli-bundle/chunks/chunk-MWRS7Z4P.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5PAOPUZX.js → chunk-NHR2QXXZ.js} +24 -15
- package/dist/cli-bundle/chunks/chunk-NHR2QXXZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js → chunk-NQL32HQ5.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-TBQVUNVH.js → chunk-O7HSSFCC.js} +65 -16
- package/dist/cli-bundle/chunks/chunk-O7HSSFCC.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js → chunk-OKSKJKHX.js} +9 -9
- package/dist/cli-bundle/chunks/chunk-QQL5QSTZ.js +1572 -0
- package/dist/cli-bundle/chunks/chunk-QQL5QSTZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js → chunk-R3V3YCMH.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js → chunk-RVPTZKBC.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js → chunk-SFFVGNHC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js → chunk-SQPKRA54.js} +14 -14
- package/dist/cli-bundle/chunks/chunk-THDEID2Z.js +115 -0
- package/dist/cli-bundle/chunks/chunk-THDEID2Z.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-G5BACLYH.js → chunk-TINUJMWN.js} +92 -17
- package/dist/cli-bundle/chunks/chunk-TINUJMWN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js → chunk-TNPBPNII.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js → chunk-TP4DDY27.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js → chunk-TYJJOTUA.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js → chunk-UAQOQ7IE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js → chunk-UEWA73ZZ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js → chunk-UIIQC5YO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SRVKTWPR.js → chunk-UJUT6AHZ.js} +314 -39
- package/dist/cli-bundle/chunks/chunk-UJUT6AHZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SSFMJCPF.js → chunk-UT6WFXW2.js} +6 -7
- package/dist/cli-bundle/chunks/chunk-UT6WFXW2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KBG47ZOY.js → chunk-UYQ7HXH4.js} +10 -6
- package/dist/cli-bundle/chunks/chunk-UYQ7HXH4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js → chunk-V6EYFTRL.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5IRA6IYD.js → chunk-WAA7UI6M.js} +58 -30
- package/dist/cli-bundle/chunks/chunk-WAA7UI6M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js → chunk-WCQZBDDH.js} +10 -6
- package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js.map → chunk-WCQZBDDH.js.map} +2 -2
- package/dist/cli-bundle/chunks/chunk-WR5567FH.js +1582 -0
- package/dist/cli-bundle/chunks/chunk-WR5567FH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js → chunk-WYEXLDDY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4LTBNUYT.js → chunk-X4IZKYHP.js} +307 -32
- package/dist/cli-bundle/chunks/chunk-X4IZKYHP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js → chunk-X7UHMKPE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7K24QB23.js → chunk-XS3O2TFJ.js} +27 -8
- package/dist/cli-bundle/chunks/chunk-XS3O2TFJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EHXPIKKP.js → chunk-XYNT7UFP.js} +303 -207
- package/dist/cli-bundle/chunks/chunk-XYNT7UFP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js → chunk-YBZW2QQ7.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js → chunk-YO3THIJF.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5KB4X7YY.js → chunk-YPH4ESA2.js} +66 -17
- package/dist/cli-bundle/chunks/chunk-YPH4ESA2.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js → claim-BJ4QMPJC.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js → claim-KW743OSW.js} +10 -10
- package/dist/cli-bundle/chunks/close-P4ZBKODL.js +13 -0
- package/dist/cli-bundle/chunks/{close-65DFYAVS.js → close-SYHSRZDC.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-UKZSQGM7.js → close-many-DBLEYFOY.js} +29 -26
- package/dist/cli-bundle/chunks/close-many-DBLEYFOY.js.map +7 -0
- package/dist/cli-bundle/chunks/{close-many-AKPZNSGI.js → close-many-LAC5VR4G.js} +30 -27
- package/dist/cli-bundle/chunks/close-many-LAC5VR4G.js.map +1 -0
- package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js → comments-JEO6HHVM.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js → comments-YT2PQ5DD.js} +10 -10
- package/dist/cli-bundle/chunks/{config-DDPYIA6J.js → config-RZRVS3ZV.js} +127 -11
- package/dist/cli-bundle/chunks/config-RZRVS3ZV.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-5ON3ADRH.js → config-YJSAAADD.js} +128 -12
- package/dist/cli-bundle/chunks/config-YJSAAADD.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-E6U3DWVM.js → context-LGYEEKAW.js} +14 -14
- package/dist/cli-bundle/chunks/{context-E6U3DWVM.js.map → context-LGYEEKAW.js.map} +2 -2
- package/dist/cli-bundle/chunks/{context-ZOJEN5VT.js → context-ZUH5IOOI.js} +15 -15
- package/dist/cli-bundle/chunks/context-ZUH5IOOI.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-CXSFM45B.js → contracts-YXJ6NXKH.js} +11 -5
- package/dist/cli-bundle/chunks/contracts-YXJ6NXKH.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-LCSX5R53.js → contracts-ZIBXROPE.js} +12 -6
- package/dist/cli-bundle/chunks/contracts-ZIBXROPE.js.map +1 -0
- package/dist/cli-bundle/chunks/copy-BZALX5MQ.js +182 -0
- package/dist/cli-bundle/chunks/copy-BZALX5MQ.js.map +1 -0
- package/dist/cli-bundle/chunks/copy-YPWEIAPD.js +185 -0
- package/dist/cli-bundle/chunks/copy-YPWEIAPD.js.map +7 -0
- package/dist/cli-bundle/chunks/create-4DS2QWQC.js +27 -0
- package/dist/cli-bundle/chunks/{create-WYFKN2U4.js → create-CF7EVRX7.js} +13 -13
- package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js → delete-KR4VBWVE.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-RONNH4F4.js → delete-XLZRTRKR.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-WII3O4HB.js → deps-2YTXD3VM.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js → deps-GZMFMTGS.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-PDREIMLS.js → docs-SLROFEQ4.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js → docs-ZHISRR2D.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js → extension-3C7OOI4F.js} +8 -6
- package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js → extension-XYCUXICD.js} +8 -6
- package/dist/cli-bundle/chunks/{files-2PN7UM2D.js → files-FUWF2FYJ.js} +9 -9
- package/dist/cli-bundle/chunks/{files-MXYS5W4M.js → files-J4I5IU4O.js} +9 -9
- package/dist/cli-bundle/chunks/gc-34NXSNSN.js +362 -0
- package/dist/cli-bundle/chunks/gc-34NXSNSN.js.map +1 -0
- package/dist/cli-bundle/chunks/gc-SPIIZX3A.js +372 -0
- package/dist/cli-bundle/chunks/gc-SPIIZX3A.js.map +7 -0
- package/dist/cli-bundle/chunks/{get-WXMLRG7M.js → get-SZKNRHMA.js} +34 -12
- package/dist/cli-bundle/chunks/get-SZKNRHMA.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-CINFEUIY.js → get-VITKYP6S.js} +33 -11
- package/dist/cli-bundle/chunks/get-VITKYP6S.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-IT5DBPRJ.js → health-4SNTA2TF.js} +27 -13
- package/dist/cli-bundle/chunks/health-4SNTA2TF.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-5VPOJQ53.js → health-7G3EPM57.js} +28 -14
- package/dist/cli-bundle/chunks/health-7G3EPM57.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-FLZIP7PM.js → history-SDAWYZR3.js} +10 -10
- package/dist/cli-bundle/chunks/history-YDUEILKP.js +20 -0
- package/dist/cli-bundle/chunks/history-compact-DMW536VH.js +287 -0
- package/dist/cli-bundle/chunks/history-compact-DMW536VH.js.map +1 -0
- package/dist/cli-bundle/chunks/history-compact-POTZGG7K.js +290 -0
- package/dist/cli-bundle/chunks/history-compact-POTZGG7K.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js → history-redact-EPJ7GENL.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-KASLLPE7.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js → history-repair-IJ7LLBET.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js → history-repair-YNESJRT6.js} +11 -11
- package/dist/cli-bundle/chunks/init-IGSS4GNH.js +17 -0
- package/dist/cli-bundle/chunks/{init-6MRFVOLH.js → init-YHVBTEET.js} +9 -8
- package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js → learnings-4YBMIVCZ.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js → learnings-T4PF24YN.js} +10 -10
- package/dist/cli-bundle/chunks/{list-DBRECOG4.js → list-3KEVBOYW.js} +10 -10
- package/dist/cli-bundle/chunks/list-E44O2K64.js +20 -0
- package/dist/cli-bundle/chunks/{notes-42LIC3UE.js → notes-FLUCNJSH.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js → notes-GJKALVZM.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js → plan-T5MMZLI3.js} +13 -13
- package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js → plan-YYMIL3HV.js} +13 -13
- package/dist/cli-bundle/chunks/{register-list-query-EMNSIUO4.js → register-list-query-I65EZ3HB.js} +33 -27
- package/dist/cli-bundle/chunks/register-list-query-I65EZ3HB.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-AG3XKXWL.js → register-list-query-OECMHO4G.js} +32 -26
- package/dist/cli-bundle/chunks/register-list-query-OECMHO4G.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-M3YS6XDO.js → register-mutation-2FLXORLR.js} +65 -47
- package/dist/cli-bundle/chunks/register-mutation-2FLXORLR.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-RSMT6DPK.js → register-mutation-5GPDEKHR.js} +64 -46
- package/dist/cli-bundle/chunks/register-mutation-5GPDEKHR.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-KYUOOOOD.js → register-operations-BNGAUMGK.js} +71 -35
- package/dist/cli-bundle/chunks/register-operations-BNGAUMGK.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-Q54JQZUN.js → register-operations-GQKT35H5.js} +70 -34
- package/dist/cli-bundle/chunks/register-operations-GQKT35H5.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js → register-setup-DNDCGZ4O.js} +18 -18
- package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js.map → register-setup-DNDCGZ4O.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js → register-setup-EJY44FPH.js} +17 -17
- package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js.map → register-setup-EJY44FPH.js.map} +2 -2
- package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js → restore-DDJGVZIN.js} +11 -11
- package/dist/cli-bundle/chunks/restore-SJSASGZP.js +17 -0
- package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js → schema-B7NQ6XVP.js} +8 -8
- package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js → schema-HEGYH6CE.js} +8 -8
- package/dist/cli-bundle/chunks/{search-C7NPB7G7.js → search-DVVQ4UO2.js} +421 -42
- package/dist/cli-bundle/chunks/search-DVVQ4UO2.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-5A3BMFA7.js → search-JNEZJV7H.js} +427 -41
- package/dist/cli-bundle/chunks/search-JNEZJV7H.js.map +7 -0
- package/dist/cli-bundle/chunks/stats-7JDIJRDH.js +202 -0
- package/dist/cli-bundle/chunks/stats-7JDIJRDH.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-SYTJRR4Z.js +212 -0
- package/dist/cli-bundle/chunks/stats-SYTJRR4Z.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-4HHWD5Y7.js +251 -0
- package/dist/cli-bundle/chunks/telemetry-4HHWD5Y7.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-EGWP7ZUX.js +248 -0
- package/dist/cli-bundle/chunks/telemetry-EGWP7ZUX.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-OFYONO3C.js → test-IIELLSZX.js} +14 -13
- package/dist/cli-bundle/chunks/test-ML5RLWXE.js +32 -0
- package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js → test-all-7DNCMML7.js} +14 -13
- package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js.map → test-all-7DNCMML7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js → test-all-IHTUJRRC.js} +16 -15
- package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js.map → test-all-IHTUJRRC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js → test-runs-5FEMBV3A.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js → test-runs-RNKZ37PS.js} +5 -5
- package/dist/cli-bundle/chunks/update-6C67X4KS.js +21 -0
- package/dist/cli-bundle/chunks/update-VF26YPT3.js +25 -0
- package/dist/cli-bundle/chunks/{update-many-322CCH2L.js → update-many-BSZZZYXY.js} +22 -22
- package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js → update-many-BWKJJEBF.js} +22 -22
- package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js → upgrade-RSE5PC44.js} +7 -6
- package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js.map → upgrade-RSE5PC44.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js → upgrade-YWI5DJFA.js} +5 -4
- package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js.map → upgrade-YWI5DJFA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js → validate-NK3WKB7C.js} +18 -17
- package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js.map → validate-NK3WKB7C.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js → validate-UCEOB7S6.js} +20 -19
- package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js.map → validate-UCEOB7S6.js.map} +1 -1
- package/dist/cli-bundle/main.js +198 -1523
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/core/config/nested-settings.d.ts +8 -6
- package/dist/core/config/nested-settings.js +71 -5
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/config/positional-value.js +4 -2
- package/dist/core/config/positional-value.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +36 -0
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.js +46 -5
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/history/drift-scan.d.ts +3 -4
- package/dist/core/history/drift-scan.js +71 -18
- package/dist/core/history/drift-scan.js.map +1 -1
- package/dist/core/history/history-diff.d.ts +47 -0
- package/dist/core/history/history-diff.js +152 -0
- package/dist/core/history/history-diff.js.map +1 -0
- package/dist/core/history/history-storage-stats.d.ts +31 -0
- package/dist/core/history/history-storage-stats.js +101 -0
- package/dist/core/history/history-storage-stats.js.map +1 -0
- package/dist/core/item/id.js +4 -5
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/item-format.js +7 -3
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/toon-decode.d.ts +7 -0
- package/dist/core/item/toon-decode.js +11 -2
- package/dist/core/item/toon-decode.js.map +1 -1
- package/dist/core/item/type-registry.js +25 -7
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/lock/lock-gc.d.ts +46 -0
- package/dist/core/lock/lock-gc.js +194 -0
- package/dist/core/lock/lock-gc.js.map +1 -0
- package/dist/core/search/cache.js +5 -3
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/corpus.d.ts +6 -0
- package/dist/core/search/corpus.js +22 -9
- package/dist/core/search/corpus.js.map +1 -1
- package/dist/core/search/embedding-batches.js +10 -7
- package/dist/core/search/embedding-batches.js.map +1 -1
- package/dist/core/search/relevance.d.ts +29 -0
- package/dist/core/search/relevance.js +226 -0
- package/dist/core/search/relevance.js.map +1 -0
- package/dist/core/search/vector-stores.d.ts +3 -0
- package/dist/core/search/vector-stores.js +23 -10
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/shared/constants.js +15 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +6 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/primitives.d.ts +8 -0
- package/dist/core/shared/primitives.js +29 -2
- package/dist/core/shared/primitives.js.map +1 -1
- package/dist/core/shared/serial-queue.d.ts +12 -0
- package/dist/core/shared/serial-queue.js +43 -0
- package/dist/core/shared/serial-queue.js.map +1 -0
- package/dist/core/shared/time.js +42 -6
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/paths.js +25 -7
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +11 -0
- package/dist/core/store/settings-validator.js +14 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.d.ts +19 -1
- package/dist/core/store/settings.js +199 -17
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/observability.js +3 -3
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +99 -6
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +187 -42
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
- package/dist/sdk/cli-contracts/commander-types.js +13 -2
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +8 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +7 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +39 -7
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +26 -1
- package/dist/sdk/cli-contracts.js +75 -11
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +51 -1
- package/dist/sdk/testing.js +93 -2
- package/dist/sdk/testing.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/ARCHITECTURE.md +11 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +4 -4
- package/docs/CODEX_PLUGIN.md +1 -1
- package/docs/COMMANDS.md +42 -4
- package/docs/CONFIGURATION.md +31 -2
- package/docs/EXTENSIONS.md +28 -8
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +73 -0
- package/docs/ONBOARDING.md +165 -0
- package/docs/QUICKSTART.md +2 -2
- package/docs/README.md +12 -4
- package/docs/RELEASING.md +36 -1
- package/docs/SDK.md +66 -0
- package/docs/TESTING.md +33 -1
- package/package.json +6 -2
- package/packages/pm-governance-audit/README.md +14 -0
- package/packages/pm-governance-audit/extensions/governance-audit/index.js +39 -1
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +40 -2
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +1 -1
- package/packages/pm-governance-audit/package.json +4 -2
- package/packages/pm-lifecycle-hooks/README.md +21 -0
- package/packages/pm-search-advanced/README.md +38 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +17 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +17 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +216 -1
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +271 -2
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +11 -8
- package/plugins/pm-claude/agents/pm-coordinator.md +1 -1
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/plugins/pm-codex/README.md +1 -1
- package/dist/cli-bundle/chunks/activity-P5BUMWP3.js +0 -16
- package/dist/cli-bundle/chunks/aggregate-J35K7WZB.js.map +0 -1
- package/dist/cli-bundle/chunks/aggregate-OOAGKWRG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4LTBNUYT.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4PJQSECJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4QCR4QW3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5IRA6IYD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5KB4X7YY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5PAOPUZX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7K24QB23.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ATBVS6WW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EHXPIKKP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-G5BACLYH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GNHVV4SY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KA24HME7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KBG47ZOY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N5YF3VFN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NQP3ECKF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OIQIXTNB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RANZIID5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SRVKTWPR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SSFMJCPF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SZQCER6S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TBQVUNVH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TK633IVD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-V3JQ4IPL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WIKR7KFL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZQ4F6EC4.js.map +0 -7
- package/dist/cli-bundle/chunks/close-RMHQ3KWH.js +0 -13
- package/dist/cli-bundle/chunks/close-many-AKPZNSGI.js.map +0 -1
- package/dist/cli-bundle/chunks/close-many-UKZSQGM7.js.map +0 -7
- package/dist/cli-bundle/chunks/config-5ON3ADRH.js.map +0 -7
- package/dist/cli-bundle/chunks/config-DDPYIA6J.js.map +0 -1
- package/dist/cli-bundle/chunks/context-ZOJEN5VT.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-CXSFM45B.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-LCSX5R53.js.map +0 -1
- package/dist/cli-bundle/chunks/create-ATONSAZW.js +0 -27
- package/dist/cli-bundle/chunks/gc-GT552UJH.js +0 -178
- package/dist/cli-bundle/chunks/gc-GT552UJH.js.map +0 -1
- package/dist/cli-bundle/chunks/gc-QNBRJG6H.js +0 -181
- package/dist/cli-bundle/chunks/gc-QNBRJG6H.js.map +0 -7
- package/dist/cli-bundle/chunks/get-CINFEUIY.js.map +0 -7
- package/dist/cli-bundle/chunks/get-WXMLRG7M.js.map +0 -1
- package/dist/cli-bundle/chunks/health-5VPOJQ53.js.map +0 -1
- package/dist/cli-bundle/chunks/health-IT5DBPRJ.js.map +0 -7
- package/dist/cli-bundle/chunks/history-6FC4H6HI.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-XKYEZDBL.js +0 -19
- package/dist/cli-bundle/chunks/init-KHX3FEEM.js +0 -16
- package/dist/cli-bundle/chunks/list-53LZ2AEO.js +0 -20
- package/dist/cli-bundle/chunks/register-list-query-AG3XKXWL.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-EMNSIUO4.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-M3YS6XDO.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-RSMT6DPK.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-KYUOOOOD.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-Q54JQZUN.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-JL5QIH7H.js +0 -17
- package/dist/cli-bundle/chunks/search-5A3BMFA7.js.map +0 -7
- package/dist/cli-bundle/chunks/search-C7NPB7G7.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js +0 -120
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js +0 -123
- package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js.map +0 -7
- package/dist/cli-bundle/chunks/test-RJ4ZF35X.js +0 -31
- package/dist/cli-bundle/chunks/update-6YEHPVXH.js +0 -25
- package/dist/cli-bundle/chunks/update-PYLVHMRD.js +0 -21
- /package/dist/cli-bundle/chunks/{activity-P5BUMWP3.js.map → activity-5UROHJ3D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js.map → activity-YVB3QRTE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js.map → append-2PPYFAG5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-5JE3YGXU.js.map → append-AUGT5W6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js.map → chunk-2IF7WLB7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js.map → chunk-2OJHLWBZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js.map → chunk-3A2CMEM7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js.map → chunk-3EOBJOF4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js.map → chunk-5AXMRKN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js.map → chunk-6J4K6JLA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js.map → chunk-AVJD6VTA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js.map → chunk-B5RF3IP7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js.map → chunk-C5W2UH56.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js.map → chunk-CKLBZHS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js.map → chunk-FY6Z3FYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js.map → chunk-GNIUOLZ2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js.map → chunk-GPXQBR3H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js.map → chunk-H7EO3QA3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js.map → chunk-HLC3KTLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js.map → chunk-HMMMWBK2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js.map → chunk-HV5SSZXF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js.map → chunk-KNGVP5WJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js.map → chunk-LI65XLJR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js.map → chunk-LIN2BPJ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js.map → chunk-LQHBENVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js.map → chunk-LXO6V66E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js.map → chunk-MOYM2C3J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js.map → chunk-NQL32HQ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js.map → chunk-OKSKJKHX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js.map → chunk-R3V3YCMH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js.map → chunk-RVPTZKBC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js.map → chunk-SFFVGNHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js.map → chunk-SQPKRA54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js.map → chunk-TNPBPNII.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js.map → chunk-TP4DDY27.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js.map → chunk-TYJJOTUA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js.map → chunk-UAQOQ7IE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js.map → chunk-UEWA73ZZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js.map → chunk-UIIQC5YO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js.map → chunk-V6EYFTRL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js.map → chunk-WYEXLDDY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js.map → chunk-X7UHMKPE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js.map → chunk-YBZW2QQ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js.map → chunk-YO3THIJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js.map → claim-BJ4QMPJC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js.map → claim-KW743OSW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-RMHQ3KWH.js.map → close-P4ZBKODL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-65DFYAVS.js.map → close-SYHSRZDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js.map → comments-JEO6HHVM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js.map → comments-YT2PQ5DD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-ATONSAZW.js.map → create-4DS2QWQC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-WYFKN2U4.js.map → create-CF7EVRX7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js.map → delete-KR4VBWVE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-RONNH4F4.js.map → delete-XLZRTRKR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-WII3O4HB.js.map → deps-2YTXD3VM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js.map → deps-GZMFMTGS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-PDREIMLS.js.map → docs-SLROFEQ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js.map → docs-ZHISRR2D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js.map → extension-3C7OOI4F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js.map → extension-XYCUXICD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-2PN7UM2D.js.map → files-FUWF2FYJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-MXYS5W4M.js.map → files-J4I5IU4O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-FLZIP7PM.js.map → history-SDAWYZR3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-6FC4H6HI.js.map → history-YDUEILKP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js.map → history-redact-EPJ7GENL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-XKYEZDBL.js.map → history-redact-KASLLPE7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js.map → history-repair-IJ7LLBET.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js.map → history-repair-YNESJRT6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-KHX3FEEM.js.map → init-IGSS4GNH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-6MRFVOLH.js.map → init-YHVBTEET.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js.map → learnings-4YBMIVCZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js.map → learnings-T4PF24YN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-DBRECOG4.js.map → list-3KEVBOYW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-53LZ2AEO.js.map → list-E44O2K64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-42LIC3UE.js.map → notes-FLUCNJSH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js.map → notes-GJKALVZM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js.map → plan-T5MMZLI3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js.map → plan-YYMIL3HV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js.map → restore-DDJGVZIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-JL5QIH7H.js.map → restore-SJSASGZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js.map → schema-B7NQ6XVP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js.map → schema-HEGYH6CE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-OFYONO3C.js.map → test-IIELLSZX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-RJ4ZF35X.js.map → test-ML5RLWXE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js.map → test-runs-5FEMBV3A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js.map → test-runs-RNKZ37PS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-PYLVHMRD.js.map → update-6C67X4KS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-6YEHPVXH.js.map → update-VF26YPT3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-322CCH2L.js.map → update-many-BSZZZYXY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js.map → update-many-BWKJJEBF.js.map} +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Onboarding
|
|
2
|
+
|
|
3
|
+
Use this guide to become productive in your first two hours without breaking release flow or tracker integrity.
|
|
4
|
+
|
|
5
|
+
## Agent Quick Context
|
|
6
|
+
|
|
7
|
+
- Bootstrap with `npm install -g .`, verify toolchain versions, then run `pnpm build`.
|
|
8
|
+
- Use `pm context` + `pm search` before creating any new item.
|
|
9
|
+
- Claim before substantial edits and link files/docs/tests as you go.
|
|
10
|
+
- Run sandbox-safe tests before closing items.
|
|
11
|
+
- Never hand-edit tracker records or generated changelog output.
|
|
12
|
+
|
|
13
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon), [pm-oh5h](../.agents/pm/tasks/pm-oh5h.toon), [pm-10ml](../.agents/pm/stories/pm-10ml.toon).
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- Node.js 20 or newer
|
|
18
|
+
- pnpm 10 or newer
|
|
19
|
+
- Git + GitHub CLI (`gh`) authenticated for this repository
|
|
20
|
+
|
|
21
|
+
## First-Time Bootstrap (Real Repository Work)
|
|
22
|
+
|
|
23
|
+
Run from the repository root:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g .
|
|
27
|
+
pm --version
|
|
28
|
+
node -v
|
|
29
|
+
pnpm -v
|
|
30
|
+
pnpm build
|
|
31
|
+
export PM_AUTHOR="<stable-agent-id>"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For real repository tracking, do not set `PM_PATH`.
|
|
35
|
+
|
|
36
|
+
## First Read Path
|
|
37
|
+
|
|
38
|
+
Use progressive disclosure:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pm context --limit 10
|
|
42
|
+
pm search "<request keywords>" --limit 10
|
|
43
|
+
pm list-open --limit 20
|
|
44
|
+
pm list-in-progress --limit 20
|
|
45
|
+
pm install guide-shell --project
|
|
46
|
+
pm guide workflows
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then use:
|
|
50
|
+
|
|
51
|
+
- [Agent Guide](AGENT_GUIDE.md)
|
|
52
|
+
- [Command Reference](COMMANDS.md)
|
|
53
|
+
- [Testing](TESTING.md)
|
|
54
|
+
- [Releasing](RELEASING.md)
|
|
55
|
+
|
|
56
|
+
## Safe Local Verification
|
|
57
|
+
|
|
58
|
+
Use sandbox-safe wrappers for test execution:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node scripts/run-tests.mjs test
|
|
62
|
+
node scripts/run-tests.mjs coverage
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Standard local gate set:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pnpm build
|
|
69
|
+
pnpm typecheck
|
|
70
|
+
node scripts/run-tests.mjs coverage
|
|
71
|
+
pnpm quality:docs-skills
|
|
72
|
+
pm validate --check-resolution --check-history-drift
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Real Tracker Workflow (Canonical Loop)
|
|
76
|
+
|
|
77
|
+
1) Orient and dedupe
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pm context --limit 10
|
|
81
|
+
pm search "<keywords>" --limit 10
|
|
82
|
+
pm list-open --limit 20
|
|
83
|
+
pm list-in-progress --limit 20
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
2) Claim and start
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
pm claim <id>
|
|
90
|
+
pm update <id> --status in_progress --message "Start implementation"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
3) Link execution context while editing
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pm files <id> --add path=src/...,scope=project,note="implementation scope"
|
|
97
|
+
pm docs <id> --add path=docs/...,scope=project,note="user-facing behavior"
|
|
98
|
+
pm test <id> --add command="node scripts/run-tests.mjs test -- tests/unit/...",scope=project,timeout_seconds=240
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
4) Record progress
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
pm comments <id> "Progress update and rationale."
|
|
105
|
+
pm notes <id> --add "Design tradeoff."
|
|
106
|
+
pm learnings <id> --add "Durable lesson."
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
5) Verify, close, and release
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pm test <id> --run --progress
|
|
113
|
+
pm comments <id> "Evidence: linked tests and gates passed."
|
|
114
|
+
pm close <id> "Acceptance criteria met; verification passed." --validate-close warn
|
|
115
|
+
pm release <id>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Release Overview
|
|
119
|
+
|
|
120
|
+
- Daily release prep runs via `.github/workflows/auto-release.yml`.
|
|
121
|
+
- Tag-triggered publish runs via `.github/workflows/release.yml`.
|
|
122
|
+
- `CHANGELOG.md` is generated by `pm-changelog` and must stay package-generated.
|
|
123
|
+
|
|
124
|
+
Local parity:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
pnpm release:pipeline:dry-run
|
|
128
|
+
pnpm release:pipeline
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Hard Never-Do List
|
|
132
|
+
|
|
133
|
+
- Do not hand-edit `CHANGELOG.md` (use `pnpm changelog:pm` only).
|
|
134
|
+
- Do not run manual `npm publish` for this project.
|
|
135
|
+
- Do not set `PM_PATH` for real repository mutations.
|
|
136
|
+
- Do not edit `.agents/pm/**` files directly; mutate through `pm` commands.
|
|
137
|
+
- Do not bypass governance with destructive git commands unless explicitly approved.
|
|
138
|
+
|
|
139
|
+
## Diagnostics and Recovery
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pm health --check-only
|
|
143
|
+
pm validate --check-resolution --check-history-drift
|
|
144
|
+
pm normalize --dry-run --json
|
|
145
|
+
pm package doctor --project --detail summary
|
|
146
|
+
pm contracts --command <command> --flags-only --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
If history drift is reported:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
pm history-repair <id> --dry-run
|
|
153
|
+
pm history-repair <id>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If sensitive content is found in history:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
pm history-redact <id> --literal "<secret>" --replacement "[redacted]" --dry-run
|
|
160
|
+
pm history-redact <id> --literal "<secret>" --replacement "[redacted]"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Private Operations Boundary
|
|
164
|
+
|
|
165
|
+
Keep credentials, host-specific runbooks, internal topology, and raw private reliability logs out of tracked docs and package output. Keep those details in local, ignored operations notes.
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -11,7 +11,7 @@ Use this page to get from a clean repository to a tracked, verified item.
|
|
|
11
11
|
- Close only after evidence is recorded.
|
|
12
12
|
- Use `pm install guide-shell --project` before `pm guide quickstart` or `pm guide workflows` when you need local docs routing.
|
|
13
13
|
|
|
14
|
-
Tracked documentation work: [pm-
|
|
14
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
15
15
|
|
|
16
16
|
## Install
|
|
17
17
|
|
|
@@ -31,7 +31,7 @@ pm upgrade --cli-only
|
|
|
31
31
|
For one-off use:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npx @unbrained/pm-cli --help
|
|
34
|
+
npx --yes @unbrained/pm-cli@latest --help
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Optional first-party packages are installable during init or on demand:
|
package/docs/README.md
CHANGED
|
@@ -20,15 +20,18 @@ pm guide release --json
|
|
|
20
20
|
| Reader | First page | Then read |
|
|
21
21
|
|--------|------------|-----------|
|
|
22
22
|
| New user | [Quickstart](QUICKSTART.md) | [Command Reference](COMMANDS.md) |
|
|
23
|
+
| New maintainer | [Onboarding](ONBOARDING.md) | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md), [Releasing](RELEASING.md) |
|
|
23
24
|
| Coding agent | [Agent Guide](AGENT_GUIDE.md) | [Configuration](CONFIGURATION.md), then command help |
|
|
24
25
|
| Maintainer | [Contributing](../CONTRIBUTING.md) | [Testing](TESTING.md), [Releasing](RELEASING.md), [Architecture](ARCHITECTURE.md) |
|
|
25
26
|
| Package author | [Packages and Extensions](EXTENSIONS.md) | [SDK](SDK.md), [starter extension](examples/starter-extension/README.md) |
|
|
26
27
|
| Codex user | [Codex Plugin](CODEX_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
|
|
28
|
+
| Claude Code user | [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
|
|
27
29
|
| Machine client | `pm contracts --json` | [Command Reference](COMMANDS.md#machine-contracts), optionally `pm install guide-shell --project && pm guide commands` |
|
|
28
30
|
|
|
29
31
|
## Documentation Map
|
|
30
32
|
|
|
31
33
|
- [Quickstart](QUICKSTART.md) - install, initialize, create, claim, link, test, close.
|
|
34
|
+
- [Onboarding](ONBOARDING.md) - first-two-hours maintainer and contributor setup.
|
|
32
35
|
- [Agent Guide](AGENT_GUIDE.md) - canonical agent loop, tracker linking, and token-minimal command choices.
|
|
33
36
|
- [Command Reference](COMMANDS.md) - command families with examples and when to use each family.
|
|
34
37
|
- [Configuration](CONFIGURATION.md) - settings, storage formats, output, search, validation, and environment variables.
|
|
@@ -37,6 +40,7 @@ pm guide release --json
|
|
|
37
40
|
- [Packages and Extensions](EXTENSIONS.md) - package install workflows, runtime extension lifecycle, and API reference.
|
|
38
41
|
- [SDK](SDK.md) - public import surfaces and typed authoring examples.
|
|
39
42
|
- [Codex Plugin](CODEX_PLUGIN.md) - native MCP plugin install, tools, skills, and safety notes.
|
|
43
|
+
- [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) - native Claude Code plugin architecture and install flow.
|
|
40
44
|
- [Releasing](RELEASING.md) - maintainer release checklist and failure handling.
|
|
41
45
|
- [starter extension](examples/starter-extension/README.md) - compact extension scaffold reference.
|
|
42
46
|
|
|
@@ -71,11 +75,15 @@ Community files:
|
|
|
71
75
|
|
|
72
76
|
## Tracker References
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
Current documentation structure work is tracked through:
|
|
75
79
|
|
|
76
|
-
- [pm-
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
- [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon)
|
|
81
|
+
|
|
82
|
+
Legacy documentation baseline references (closed):
|
|
83
|
+
|
|
84
|
+
- [pm-3042](../.agents/pm/epics/pm-3042.toon) (closed)
|
|
85
|
+
- [pm-r9gu](../.agents/pm/features/pm-r9gu.toon) (closed)
|
|
86
|
+
- [pm-1sb2](../.agents/pm/tasks/pm-1sb2.toon) (closed)
|
|
79
87
|
|
|
80
88
|
When changing docs, link files back to the active item:
|
|
81
89
|
|
package/docs/RELEASING.md
CHANGED
|
@@ -12,7 +12,7 @@ For local progressive-disclosure routing, install `guide-shell` with `pm install
|
|
|
12
12
|
- Run local parity gates before pushing release tags.
|
|
13
13
|
- Use `pm guide release --json` for machine-readable release docs routing after `guide-shell` is installed.
|
|
14
14
|
|
|
15
|
-
Tracked documentation work: [pm-
|
|
15
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
16
16
|
|
|
17
17
|
## Version Policy
|
|
18
18
|
|
|
@@ -74,6 +74,41 @@ The pipeline performs:
|
|
|
74
74
|
|
|
75
75
|
The generated changelog includes clickable pm item links to the tracked `.toon` files. Missing release evidence should be fixed in pm item history, not by hand-editing `CHANGELOG.md`.
|
|
76
76
|
|
|
77
|
+
## Changelog Classification (Contributor-Facing)
|
|
78
|
+
|
|
79
|
+
`pnpm changelog:pm` routes closed pm items into keep-a-changelog sections using `pm-changelog` classification logic. Use explicit type/tag metadata when you want deterministic section routing.
|
|
80
|
+
|
|
81
|
+
Signal tiers:
|
|
82
|
+
|
|
83
|
+
- **Strong signals**: item `type` + `tags`
|
|
84
|
+
- **Weak signal**: item `title` (after stripping CLI-flag-like tokens such as `--add`)
|
|
85
|
+
|
|
86
|
+
Category precedence (first matching bucket wins):
|
|
87
|
+
|
|
88
|
+
| Priority | Category | Trigger terms (from strong + weak signals unless noted) |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| 1 | `Security` | `security`, `cve`, `vulnerability` |
|
|
91
|
+
| 2 | `Deprecated` | `deprecated`, `deprecation` |
|
|
92
|
+
| 3 | `Removed` | `removed`, `remove`, `deleted`, `delete` |
|
|
93
|
+
| 4 | `Fixed` | `fix`, `fixed`, `bug`, `bugfix`, `hotfix`, `regression` |
|
|
94
|
+
| 5 | `Added` | `feature`, `feat`, `added`, `add`, `new` |
|
|
95
|
+
| 6 | `Changed` | strong-signal `change`, `changed`, `refactor`, `update`, `updated`, `improve`; for non-bug-like types only, title fallback is also used |
|
|
96
|
+
| 7 | `Other` | no classifier match |
|
|
97
|
+
|
|
98
|
+
Bug-like default:
|
|
99
|
+
|
|
100
|
+
- Items with type `Issue`, `Bug`, `Bugfix`, or `Defect` default to `Fixed` unless a higher-priority category already matched.
|
|
101
|
+
- This bug-like default runs before title-only `Changed` fallback to avoid misrouting command-name issue titles (for example "`pm update ...`" issue reports).
|
|
102
|
+
|
|
103
|
+
Practical examples:
|
|
104
|
+
|
|
105
|
+
- `Issue` + title `pm update --add-tags fails` -> `Fixed`
|
|
106
|
+
- `Task` + tag `refactor` -> `Changed`
|
|
107
|
+
- `Feature` + tag `security` -> `Security`
|
|
108
|
+
- `Issue` + tag `feature` -> `Added` (explicit stronger signal beats default)
|
|
109
|
+
|
|
110
|
+
If a changelog routing rule appears incorrect, fix classifier behavior in the `pm-changelog` package/repo and then consume the updated package here. Do not patch generator internals in this repository.
|
|
111
|
+
|
|
77
112
|
## Local Release Parity Checklist
|
|
78
113
|
|
|
79
114
|
1. Confirm or compute the version.
|
package/docs/SDK.md
CHANGED
|
@@ -66,11 +66,13 @@ Command/action contract exports:
|
|
|
66
66
|
Testing helper exports (also under `@unbrained/pm-cli/sdk/testing`):
|
|
67
67
|
|
|
68
68
|
- `activateExtensionForTest`
|
|
69
|
+
- `assertPackageManifest`
|
|
69
70
|
- `assertRegisteredCommandContract`
|
|
70
71
|
- `assertRegisteredHook`
|
|
71
72
|
- `assertRegisteredSearchProvider`
|
|
72
73
|
- `assertRegisteredImporter`
|
|
73
74
|
- `assertRegisteredExporter`
|
|
75
|
+
- `assertRegisteredVectorStoreAdapter`
|
|
74
76
|
|
|
75
77
|
Commander option contract exports:
|
|
76
78
|
|
|
@@ -152,6 +154,28 @@ When a package-owned command is missing at runtime, CLI usage guidance now inclu
|
|
|
152
154
|
|
|
153
155
|
Package installs currently activate only extension resources. Additional package resource kinds (`docs`, `examples`) are metadata-first and available through package manifest/catalog inspection.
|
|
154
156
|
|
|
157
|
+
Package tests can assert the normalized manifest through the SDK without
|
|
158
|
+
reimplementing resource sorting, alias normalization, or package.json parsing:
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
import {
|
|
162
|
+
assertPackageManifest,
|
|
163
|
+
readPmPackageManifest,
|
|
164
|
+
} from "@unbrained/pm-cli/sdk";
|
|
165
|
+
|
|
166
|
+
const manifest = await readPmPackageManifest(packageRoot);
|
|
167
|
+
|
|
168
|
+
assertPackageManifest(manifest, {
|
|
169
|
+
packageName: "@acme/pm-incident-workflow",
|
|
170
|
+
aliases: ["incident-workflow"],
|
|
171
|
+
resources: {
|
|
172
|
+
extensions: ["extensions/incident-workflow"],
|
|
173
|
+
docs: ["README.md"],
|
|
174
|
+
examples: ["examples/basic.md"],
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
155
179
|
For provider-safe schemas, use `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`. It is flat and avoids advanced schema constructs such as root `oneOf`.
|
|
156
180
|
|
|
157
181
|
## Capability Requirements
|
|
@@ -332,6 +356,7 @@ import {
|
|
|
332
356
|
assertRegisteredExporter,
|
|
333
357
|
assertRegisteredImporter,
|
|
334
358
|
assertRegisteredSearchProvider,
|
|
359
|
+
assertRegisteredVectorStoreAdapter,
|
|
335
360
|
} from "@unbrained/pm-cli/sdk/testing";
|
|
336
361
|
|
|
337
362
|
assertRegisteredImporter(activation.registrations, { importer: "jsonl" });
|
|
@@ -340,6 +365,33 @@ assertRegisteredExporter(activation.registrations, {
|
|
|
340
365
|
extensionName: "my-ext",
|
|
341
366
|
});
|
|
342
367
|
assertRegisteredSearchProvider(activation.registrations, { provider: "semantic-local" });
|
|
368
|
+
assertRegisteredVectorStoreAdapter(activation.registrations, { adapter: "pinecone" });
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Use `assertRegisteredVectorStoreAdapter` for packages that call
|
|
372
|
+
`registerVectorStoreAdapter`. It proves the semantic-storage integration is
|
|
373
|
+
present without importing private registry internals or configuring a live
|
|
374
|
+
vector store in unit tests.
|
|
375
|
+
|
|
376
|
+
Assert package-owned schema registrations the same way. This lets packages prove
|
|
377
|
+
their custom project-management primitives without importing private registry
|
|
378
|
+
types or reading generated schema files:
|
|
379
|
+
|
|
380
|
+
```ts
|
|
381
|
+
import {
|
|
382
|
+
assertRegisteredItemField,
|
|
383
|
+
assertRegisteredItemType,
|
|
384
|
+
} from "@unbrained/pm-cli/sdk/testing";
|
|
385
|
+
|
|
386
|
+
assertRegisteredItemField(activation.registrations, {
|
|
387
|
+
field: "severity",
|
|
388
|
+
extensionName: "incident-ext",
|
|
389
|
+
type: "string",
|
|
390
|
+
});
|
|
391
|
+
assertRegisteredItemType(activation.registrations, {
|
|
392
|
+
itemType: "Incident",
|
|
393
|
+
folder: "incidents",
|
|
394
|
+
});
|
|
343
395
|
```
|
|
344
396
|
|
|
345
397
|
Hooks are surfaced via `activation.hooks` (an `ExtensionHookRegistry`), not the command
|
|
@@ -361,6 +413,12 @@ declares only the `hooks` capability and registers a default-inert `afterCommand
|
|
|
361
413
|
hook, so package authors can copy a lifecycle pattern that does not write files,
|
|
362
414
|
produce output, or alter command behavior.
|
|
363
415
|
|
|
416
|
+
The bundled `pm-governance-audit` package is the governance hook exemplar. It
|
|
417
|
+
combines package-owned commands with `onRead` and `onWrite` hooks, declares the
|
|
418
|
+
`hooks` capability, and only writes a compact JSONL sidecar when
|
|
419
|
+
`PM_GOVERNANCE_AUDIT_HOOK_LOG` is set. Use that pattern for audit/cache/telemetry
|
|
420
|
+
packages that need file-level context without storing item bodies by default.
|
|
421
|
+
|
|
364
422
|
`afterCommand` receives the command outcome plus an optional `affected` array for
|
|
365
423
|
item mutations. Each affected entry is a compact command context:
|
|
366
424
|
`id`, `op`, `item_type`, `previous_status`, `status`, `changed_fields`, and
|
|
@@ -500,6 +558,14 @@ embedding-backed providers (for example Ollama or a hosted model) implement
|
|
|
500
558
|
`embed`/`embedBatch` on the same `SearchProviderDefinition` shape, and may also
|
|
501
559
|
`registerVectorStoreAdapter` for a custom vector store.
|
|
502
560
|
|
|
561
|
+
Optional advanced relevance hooks:
|
|
562
|
+
|
|
563
|
+
- `queryExpansion` (or `query_expansion`) for `search.query_expansion.provider`
|
|
564
|
+
- `rerank` for hybrid rerank candidates when `search.rerank.enabled=true`
|
|
565
|
+
|
|
566
|
+
Both hooks are best-effort. If a hook throws or returns an invalid shape, core
|
|
567
|
+
search degrades gracefully and emits warning codes instead of hard-failing.
|
|
568
|
+
|
|
503
569
|
## Robust Automation Pattern
|
|
504
570
|
|
|
505
571
|
1. Read `PM_TOOL_ACTIONS` or `PM_TOOL_PARAMETERS_SCHEMA` for baseline static validation.
|
package/docs/TESTING.md
CHANGED
|
@@ -9,7 +9,7 @@ This page describes safe local tests, linked tests, coverage, and release-readin
|
|
|
9
9
|
- Linked tests added through `pm test` should use sandbox-safe commands.
|
|
10
10
|
- Run linked tests before closing the item that owns the work.
|
|
11
11
|
|
|
12
|
-
Tracked documentation work: [pm-
|
|
12
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
13
13
|
|
|
14
14
|
## Standard Local Checks
|
|
15
15
|
|
|
@@ -132,6 +132,20 @@ pm validate --check-resolution --check-history-drift
|
|
|
132
132
|
pm health --check-only
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
+
When release readiness requires external GitHub security telemetry in addition to
|
|
136
|
+
local checks, run:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
gh issue list --state open --limit 100 --json number,title,updatedAt,url
|
|
140
|
+
gh pr list --state open --limit 50 --json number,title,headRefName,reviewDecision,url
|
|
141
|
+
gh api "repos/unbraind/pm-cli/dependabot/alerts?state=open&per_page=100"
|
|
142
|
+
gh api "repos/unbraind/pm-cli/secret-scanning/alerts?state=open&per_page=100"
|
|
143
|
+
gh api "repos/unbraind/pm-cli/code-scanning/alerts?state=open&per_page=100"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`code-scanning/alerts` can return `404 no analysis found` until at least one
|
|
147
|
+
CodeQL run has completed.
|
|
148
|
+
|
|
135
149
|
For documentation-only changes, at minimum run:
|
|
136
150
|
|
|
137
151
|
```bash
|
|
@@ -140,3 +154,21 @@ rg -n "forbidden-private-token-or-path" README.md docs
|
|
|
140
154
|
```
|
|
141
155
|
|
|
142
156
|
Replace the placeholder pattern with the actual sensitive term being guarded in the current task.
|
|
157
|
+
|
|
158
|
+
## Contract Snapshot Gate
|
|
159
|
+
|
|
160
|
+
Tracked by [pm-d6kq](../.agents/pm/tasks/pm-d6kq.toon).
|
|
161
|
+
|
|
162
|
+
`pm contracts --full --json` is a public machine-readable SDK and agent surface.
|
|
163
|
+
Keep its committed golden snapshot current when command contracts, schemas,
|
|
164
|
+
aliases, or extension-provided command contracts intentionally change:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
pnpm build
|
|
168
|
+
pnpm contracts:update
|
|
169
|
+
pnpm contracts:check
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
CI runs `pnpm contracts:check` in the static gate. Snapshot diffs should be
|
|
173
|
+
reviewed like an API change and paired with the package-owned changelog flow
|
|
174
|
+
when the contract surface changes intentionally.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-cli",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.7",
|
|
4
4
|
"description": "Git-native project management CLI for humans and agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "unbrained",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"url": "https://github.com/unbraind/pm-cli/issues"
|
|
14
14
|
},
|
|
15
15
|
"bin": {
|
|
16
|
+
"pm-cli": "dist/cli.js",
|
|
16
17
|
"pm": "dist/cli.js",
|
|
17
18
|
"pm-mcp": "dist/mcp/server.js"
|
|
18
19
|
},
|
|
@@ -74,6 +75,9 @@
|
|
|
74
75
|
"test:coverage": "node scripts/run-tests.mjs coverage",
|
|
75
76
|
"quality:static": "node scripts/release/static-quality-gate.mjs",
|
|
76
77
|
"quality:docs-skills": "node scripts/release/docs-skills-gate.mjs",
|
|
78
|
+
"quality:docs-links": "node scripts/release/docs-skills-gate.mjs --links-only",
|
|
79
|
+
"contracts:update": "node scripts/contracts-snapshot.mjs --update",
|
|
80
|
+
"contracts:check": "node scripts/contracts-snapshot.mjs --check",
|
|
77
81
|
"dogfood:package-first": "node scripts/dogfood-package-first.mjs",
|
|
78
82
|
"smoke:external-packages": "node scripts/smoke-external-packages.mjs",
|
|
79
83
|
"smoke:codex-plugin": "node scripts/smoke-codex-plugin-mcp.mjs",
|
|
@@ -129,7 +133,7 @@
|
|
|
129
133
|
},
|
|
130
134
|
"devDependencies": {
|
|
131
135
|
"@sentry/cli": "^3.5.0",
|
|
132
|
-
"@types/node": "^25.9.
|
|
136
|
+
"@types/node": "^25.9.2",
|
|
133
137
|
"@vitest/coverage-v8": "^4.1.8",
|
|
134
138
|
"esbuild": "0.28.0",
|
|
135
139
|
"tsx": "^4.22.4",
|
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
First-party package that restores optional governance audit surfaces in bare-core `pm`.
|
|
4
4
|
|
|
5
|
+
## Hooks
|
|
6
|
+
|
|
7
|
+
The package also registers default-inert `onRead` and `onWrite` hooks as the
|
|
8
|
+
first-party governance hook exemplar. Set `PM_GOVERNANCE_AUDIT_HOOK_LOG` to a
|
|
9
|
+
JSONL sidecar path to capture compact read/write records:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
PM_GOVERNANCE_AUDIT_HOOK_LOG=.pm-local/governance-hooks.jsonl pm update pm-demo --status closed
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Records include `kind`, `path`, `scope`, and write metadata such as `op`,
|
|
16
|
+
`item_id`, `item_type`, and `changed_fields`. They intentionally omit item
|
|
17
|
+
bodies and full before/after snapshots.
|
|
18
|
+
|
|
5
19
|
## Commands
|
|
6
20
|
|
|
7
21
|
- `pm dedupe-audit`
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
1
3
|
import {
|
|
2
4
|
runCommentsAuditPackage,
|
|
3
5
|
runDedupeAuditPackage,
|
|
@@ -9,9 +11,12 @@ export const manifest = {
|
|
|
9
11
|
version: "0.1.0",
|
|
10
12
|
entry: "./index.js",
|
|
11
13
|
priority: 0,
|
|
12
|
-
capabilities: ["commands", "schema"],
|
|
14
|
+
capabilities: ["commands", "schema", "hooks"],
|
|
13
15
|
};
|
|
14
16
|
|
|
17
|
+
const HOOK_LOG_ENV = "PM_GOVERNANCE_AUDIT_HOOK_LOG";
|
|
18
|
+
const createdHookLogDirs = new Set();
|
|
19
|
+
|
|
15
20
|
const dedupeAuditFlags = [
|
|
16
21
|
{ long: "--mode", value_name: "value", value_type: "string", description: "Audit mode: title_exact|title_fuzzy|parent_scope." },
|
|
17
22
|
{ long: "--status", value_name: "value", value_type: "string", description: "Filter by status." },
|
|
@@ -105,10 +110,43 @@ function normalizeCommand() {
|
|
|
105
110
|
};
|
|
106
111
|
}
|
|
107
112
|
|
|
113
|
+
function appendHookAuditRecord(kind, context) {
|
|
114
|
+
const logPath = process.env[HOOK_LOG_ENV]?.trim();
|
|
115
|
+
if (!logPath) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
const absoluteLogPath = path.resolve(logPath);
|
|
120
|
+
const logDir = path.dirname(absoluteLogPath);
|
|
121
|
+
if (!createdHookLogDirs.has(logDir)) {
|
|
122
|
+
mkdirSync(logDir, { recursive: true });
|
|
123
|
+
createdHookLogDirs.add(logDir);
|
|
124
|
+
}
|
|
125
|
+
const writeContext = kind === "on_write" ? context : undefined;
|
|
126
|
+
appendFileSync(
|
|
127
|
+
absoluteLogPath,
|
|
128
|
+
`${JSON.stringify({
|
|
129
|
+
kind,
|
|
130
|
+
path: context.path,
|
|
131
|
+
scope: context.scope,
|
|
132
|
+
op: writeContext?.op,
|
|
133
|
+
item_id: writeContext?.item_id,
|
|
134
|
+
item_type: writeContext?.item_type,
|
|
135
|
+
changed_fields: writeContext?.changed_fields,
|
|
136
|
+
})}\n`,
|
|
137
|
+
"utf8",
|
|
138
|
+
);
|
|
139
|
+
} catch {
|
|
140
|
+
// Best-effort sidecar logging must not interrupt core read/write flows.
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
108
144
|
export function activate(api) {
|
|
109
145
|
api.registerCommand(dedupeAuditCommand());
|
|
110
146
|
api.registerCommand(commentsAuditCommand());
|
|
111
147
|
api.registerCommand(normalizeCommand());
|
|
148
|
+
api.hooks.onRead((context) => appendHookAuditRecord("on_read", context));
|
|
149
|
+
api.hooks.onWrite((context) => appendHookAuditRecord("on_write", context));
|
|
112
150
|
}
|
|
113
151
|
|
|
114
152
|
export default {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import type { CommandDefinition, ExtensionApi, OnReadHookContext, OnWriteHookContext } from "../../../../src/sdk/index.js";
|
|
2
4
|
import {
|
|
3
5
|
runCommentsAuditPackage,
|
|
4
6
|
runDedupeAuditPackage,
|
|
@@ -10,9 +12,12 @@ export const manifest = {
|
|
|
10
12
|
version: "0.1.0",
|
|
11
13
|
entry: "./index.js",
|
|
12
14
|
priority: 0,
|
|
13
|
-
capabilities: ["commands", "schema"],
|
|
15
|
+
capabilities: ["commands", "schema", "hooks"],
|
|
14
16
|
};
|
|
15
17
|
|
|
18
|
+
const HOOK_LOG_ENV = "PM_GOVERNANCE_AUDIT_HOOK_LOG";
|
|
19
|
+
const createdHookLogDirs = new Set<string>();
|
|
20
|
+
|
|
16
21
|
const dedupeAuditFlags = [
|
|
17
22
|
{ long: "--mode", value_name: "value", value_type: "string", description: "Audit mode: title_exact|title_fuzzy|parent_scope." },
|
|
18
23
|
{ long: "--status", value_name: "value", value_type: "string", description: "Filter by status." },
|
|
@@ -106,10 +111,43 @@ function normalizeCommand(): CommandDefinition {
|
|
|
106
111
|
};
|
|
107
112
|
}
|
|
108
113
|
|
|
114
|
+
function appendHookAuditRecord(kind: "on_read" | "on_write", context: OnReadHookContext | OnWriteHookContext): void {
|
|
115
|
+
const logPath = process.env[HOOK_LOG_ENV]?.trim();
|
|
116
|
+
if (!logPath) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const absoluteLogPath = path.resolve(logPath);
|
|
121
|
+
const logDir = path.dirname(absoluteLogPath);
|
|
122
|
+
if (!createdHookLogDirs.has(logDir)) {
|
|
123
|
+
mkdirSync(logDir, { recursive: true });
|
|
124
|
+
createdHookLogDirs.add(logDir);
|
|
125
|
+
}
|
|
126
|
+
const writeContext = kind === "on_write" ? (context as OnWriteHookContext) : undefined;
|
|
127
|
+
appendFileSync(
|
|
128
|
+
absoluteLogPath,
|
|
129
|
+
`${JSON.stringify({
|
|
130
|
+
kind,
|
|
131
|
+
path: context.path,
|
|
132
|
+
scope: context.scope,
|
|
133
|
+
op: writeContext?.op,
|
|
134
|
+
item_id: writeContext?.item_id,
|
|
135
|
+
item_type: writeContext?.item_type,
|
|
136
|
+
changed_fields: writeContext?.changed_fields,
|
|
137
|
+
})}\n`,
|
|
138
|
+
"utf8",
|
|
139
|
+
);
|
|
140
|
+
} catch {
|
|
141
|
+
// Best-effort sidecar logging must not interrupt core read/write flows.
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
109
145
|
export function activate(api: ExtensionApi): void {
|
|
110
146
|
api.registerCommand(dedupeAuditCommand());
|
|
111
147
|
api.registerCommand(commentsAuditCommand());
|
|
112
148
|
api.registerCommand(normalizeCommand());
|
|
149
|
+
api.hooks.onRead((context) => appendHookAuditRecord("on_read", context));
|
|
150
|
+
api.hooks.onWrite((context) => appendHookAuditRecord("on_write", context));
|
|
113
151
|
}
|
|
114
152
|
|
|
115
153
|
export default {
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"project-management",
|
|
19
19
|
"governance",
|
|
20
20
|
"audit",
|
|
21
|
-
"normalize"
|
|
21
|
+
"normalize",
|
|
22
|
+
"hooks"
|
|
22
23
|
],
|
|
23
24
|
"pm": {
|
|
24
25
|
"aliases": [
|
|
@@ -34,7 +35,8 @@
|
|
|
34
35
|
"tags": [
|
|
35
36
|
"governance",
|
|
36
37
|
"audit",
|
|
37
|
-
"normalize"
|
|
38
|
+
"normalize",
|
|
39
|
+
"hooks"
|
|
38
40
|
],
|
|
39
41
|
"links": {
|
|
40
42
|
"docs": "https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme",
|