@unbrained/pm-cli 2026.5.31 → 2026.6.6
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 +167 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +12 -4
- package/dist/cli/argv-utils.js +7 -3
- package/dist/cli/argv-utils.js.map +1 -1
- package/dist/cli/bootstrap-args.d.ts +1 -0
- package/dist/cli/bootstrap-args.js +23 -3
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/calendar.js +17 -3
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close-many.d.ts +63 -0
- package/dist/cli/commands/close-many.js +302 -0
- package/dist/cli/commands/close-many.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +1 -0
- package/dist/cli/commands/completion.js +260 -32
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +4 -4
- package/dist/cli/commands/config.js +115 -3
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/contracts.js +193 -162
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -0
- package/dist/cli/commands/create.js +77 -114
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/doctor.d.ts +12 -0
- package/dist/cli/commands/extension/doctor.js +97 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.js +49 -48
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.js +51 -23
- 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.js +7 -7
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.js +51 -3
- package/dist/cli/commands/health.js.map +1 -1
- 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 -1
- package/dist/cli/commands/index.js +5 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +10 -0
- package/dist/cli/commands/init.js +107 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.d.ts +5 -0
- package/dist/cli/commands/list.js +58 -26
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/reindex.js +163 -47
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/repeatable-metadata-parsers.d.ts +15 -0
- package/dist/cli/commands/repeatable-metadata-parsers.js +120 -0
- package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -0
- package/dist/cli/commands/restore.js +25 -4
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +122 -1
- package/dist/cli/commands/schema.js +536 -6
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +1 -0
- package/dist/cli/commands/search.js +18 -4
- 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/commands/test.js +4 -3
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.js +69 -140
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -0
- package/dist/cli/commands/update.js +138 -119
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +1 -0
- package/dist/cli/commands/validate.js +63 -33
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +26 -3
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/help-content.js +91 -3
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.js +377 -23
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +14 -5
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +200 -28
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +31 -6
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +4 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.js +31 -4
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-CVXTCHYY.js +16 -0
- package/dist/cli-bundle/chunks/activity-JM6DTDND.js +20 -0
- package/dist/cli-bundle/chunks/activity-JM6DTDND.js.map +1 -0
- package/dist/cli-bundle/chunks/aggregate-GI7WSZPH.js +206 -0
- package/dist/cli-bundle/chunks/aggregate-GI7WSZPH.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js → aggregate-VNAHUNNF.js} +11 -11
- package/dist/cli-bundle/chunks/{append-JD2DETU7.js → append-7H5N64R2.js} +8 -9
- package/dist/cli-bundle/chunks/{append-JD2DETU7.js.map → append-7H5N64R2.js.map} +1 -1
- package/dist/cli-bundle/chunks/append-WMKRXKCE.js +69 -0
- package/dist/cli-bundle/chunks/append-WMKRXKCE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3M73P3G6.js → chunk-23YFZ3IG.js} +210 -132
- package/dist/cli-bundle/chunks/chunk-23YFZ3IG.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-2HVRUSQA.js +128 -0
- package/dist/cli-bundle/chunks/chunk-2HVRUSQA.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js +266 -0
- package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-2VBQ6ZXS.js +631 -0
- package/dist/cli-bundle/chunks/chunk-2VBQ6ZXS.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-2VVCGBNV.js +380 -0
- package/dist/cli-bundle/chunks/chunk-2VVCGBNV.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-3BWOVLTH.js +1664 -0
- package/dist/cli-bundle/chunks/chunk-3BWOVLTH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6HT2F4TK.js → chunk-3FI4SEFT.js} +175 -54
- package/dist/cli-bundle/chunks/chunk-3FI4SEFT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-JULRTHJQ.js → chunk-3LB74A67.js} +119 -6
- package/dist/cli-bundle/chunks/chunk-3LB74A67.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-3VAM3NNM.js +57 -0
- package/dist/cli-bundle/chunks/chunk-3VAM3NNM.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4LL6TK5B.js +1832 -0
- package/dist/cli-bundle/chunks/chunk-4LL6TK5B.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-52MAOQ6J.js +422 -0
- package/dist/cli-bundle/chunks/chunk-52MAOQ6J.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-5FDATVEZ.js +412 -0
- package/dist/cli-bundle/chunks/chunk-5FDATVEZ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-5SFCOO6B.js +5622 -0
- package/dist/cli-bundle/chunks/chunk-5SFCOO6B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-U7FMKRXH.js → chunk-6ER6DXH5.js} +37 -16
- package/dist/cli-bundle/chunks/chunk-6ER6DXH5.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-6P6GGMOG.js +218 -0
- package/dist/cli-bundle/chunks/chunk-6P6GGMOG.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-77GFDHGF.js +80 -0
- package/dist/cli-bundle/chunks/chunk-77GFDHGF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MD7K4JYF.js → chunk-AO442XLN.js} +26 -15
- package/dist/cli-bundle/chunks/chunk-AO442XLN.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-AY43SBIN.js +751 -0
- package/dist/cli-bundle/chunks/chunk-AY43SBIN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js → chunk-BQHUILZS.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-E5FJNAZA.js +242 -0
- package/dist/cli-bundle/chunks/chunk-E5FJNAZA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OGZEG5TT.js → chunk-ECCMVXGM.js} +164 -53
- package/dist/cli-bundle/chunks/chunk-ECCMVXGM.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-FRAUKRU2.js +182 -0
- package/dist/cli-bundle/chunks/chunk-FRAUKRU2.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GCOQW437.js +130 -0
- package/dist/cli-bundle/chunks/chunk-GCOQW437.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GGYWB3Y2.js +1340 -0
- package/dist/cli-bundle/chunks/chunk-GGYWB3Y2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js → chunk-GU2ZJ2VV.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-GXSUPCBV.js +231 -0
- package/dist/cli-bundle/chunks/chunk-GXSUPCBV.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-HZGUAH22.js +76 -0
- package/dist/cli-bundle/chunks/chunk-HZGUAH22.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-I2HSTRJF.js +346 -0
- package/dist/cli-bundle/chunks/chunk-I2HSTRJF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-I6BNFU5X.js +140 -0
- package/dist/cli-bundle/chunks/chunk-I6BNFU5X.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-JTWRXG4B.js → chunk-IJGCZSIQ.js} +251 -251
- package/dist/cli-bundle/chunks/chunk-IJGCZSIQ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js +1491 -0
- package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-IUV734HF.js +17 -0
- package/dist/cli-bundle/chunks/chunk-IUV734HF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-J27KIHTG.js +15 -0
- package/dist/cli-bundle/chunks/chunk-J27KIHTG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AKOOMO3T.js → chunk-KAG77BY3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js → chunk-KJ33AOCY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WDPXDQFG.js → chunk-KJE2FOS4.js} +6 -4
- package/dist/cli-bundle/chunks/chunk-KJE2FOS4.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-KWU6HG75.js +3883 -0
- package/dist/cli-bundle/chunks/chunk-KWU6HG75.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-LB3RUL2N.js +1325 -0
- package/dist/cli-bundle/chunks/chunk-LB3RUL2N.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5HSEP75M.js → chunk-LCM63IXU.js} +18 -6
- package/dist/cli-bundle/chunks/chunk-LCM63IXU.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-LXYVKYMQ.js +24 -0
- package/dist/cli-bundle/chunks/chunk-LXYVKYMQ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-ME2YH6FN.js +182 -0
- package/dist/cli-bundle/chunks/chunk-ME2YH6FN.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-MITFDD35.js +1809 -0
- package/dist/cli-bundle/chunks/chunk-MITFDD35.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js → chunk-N7ACFE26.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-NUZ5HKR4.js +332 -0
- package/dist/cli-bundle/chunks/chunk-NUZ5HKR4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7Y53ZJIQ.js → chunk-OVQCEJPG.js} +22 -3
- package/dist/cli-bundle/chunks/chunk-OVQCEJPG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PXUAZUUY.js → chunk-OZ7NSQHL.js} +12 -11
- package/dist/cli-bundle/chunks/chunk-OZ7NSQHL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-P53TN6IA.js → chunk-PDDFYW4X.js} +35 -8
- package/dist/cli-bundle/chunks/chunk-PDDFYW4X.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js → chunk-PIU6RSL3.js} +10 -12
- package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js.map → chunk-PIU6RSL3.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-PO3GSVFV.js +338 -0
- package/dist/cli-bundle/chunks/chunk-PO3GSVFV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LRBOHPUE.js → chunk-PRJCELV4.js} +108 -21
- package/dist/cli-bundle/chunks/chunk-PRJCELV4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GN7IJPCD.js → chunk-PROOHX4K.js} +332 -32
- package/dist/cli-bundle/chunks/chunk-PROOHX4K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FQE6XZDB.js → chunk-Q7SPNHLW.js} +54 -32
- package/dist/cli-bundle/chunks/chunk-Q7SPNHLW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js → chunk-QO7EBBOM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js → chunk-R6UFP2GE.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-RWPSOIEE.js +154 -0
- package/dist/cli-bundle/chunks/chunk-RWPSOIEE.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-RZN6VURO.js +119 -0
- package/dist/cli-bundle/chunks/chunk-RZN6VURO.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js +1501 -0
- package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js → chunk-T3LC5LKB.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TCD3R2PF.js +173 -0
- package/dist/cli-bundle/chunks/chunk-TCD3R2PF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-TPH5XEVD.js +2988 -0
- package/dist/cli-bundle/chunks/chunk-TPH5XEVD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LSXGH6NE.js → chunk-U5SXYXSY.js} +821 -200
- package/dist/cli-bundle/chunks/chunk-U5SXYXSY.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-UBOPJT3S.js +540 -0
- package/dist/cli-bundle/chunks/chunk-UBOPJT3S.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js → chunk-UM2GBHS4.js} +5 -4
- package/dist/cli-bundle/chunks/chunk-W7XABV4H.js +454 -0
- package/dist/cli-bundle/chunks/chunk-W7XABV4H.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js → chunk-WKY2IBOQ.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-WOPXVEZP.js +698 -0
- package/dist/cli-bundle/chunks/chunk-WOPXVEZP.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-WSMOSYRD.js +1704 -0
- package/dist/cli-bundle/chunks/chunk-WSMOSYRD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js → chunk-XLTD2HN3.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-XSJCLN2R.js +131 -0
- package/dist/cli-bundle/chunks/chunk-XSJCLN2R.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +53 -0
- package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BUPWJ3IJ.js → chunk-XTGLRY2Y.js} +484 -49
- package/dist/cli-bundle/chunks/chunk-XTGLRY2Y.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-L2FXEKDB.js → chunk-YL2DJGYS.js} +7 -7
- package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js → claim-4DBF6RVG.js} +10 -11
- package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js.map → claim-4DBF6RVG.js.map} +1 -1
- package/dist/cli-bundle/chunks/claim-X2P4IB7J.js +129 -0
- package/dist/cli-bundle/chunks/claim-X2P4IB7J.js.map +1 -0
- package/dist/cli-bundle/chunks/close-3HDWDA3L.js +13 -0
- package/dist/cli-bundle/chunks/close-PTYFA45H.js +17 -0
- package/dist/cli-bundle/chunks/close-PTYFA45H.js.map +1 -0
- package/dist/cli-bundle/chunks/close-many-7CGIDPTJ.js +314 -0
- package/dist/cli-bundle/chunks/close-many-7CGIDPTJ.js.map +7 -0
- package/dist/cli-bundle/chunks/close-many-ERFO6LHR.js +311 -0
- package/dist/cli-bundle/chunks/close-many-ERFO6LHR.js.map +1 -0
- package/dist/cli-bundle/chunks/comments-OONGABK5.js +100 -0
- package/dist/cli-bundle/chunks/comments-OONGABK5.js.map +1 -0
- package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js → comments-QKBYCWKD.js} +10 -11
- package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js.map → comments-QKBYCWKD.js.map} +1 -1
- package/dist/cli-bundle/chunks/config-6FXCQKIF.js +1671 -0
- package/dist/cli-bundle/chunks/config-6FXCQKIF.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-V3FZOKLI.js → config-U4RZ4CQB.js} +121 -10
- package/dist/cli-bundle/chunks/config-U4RZ4CQB.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js → context-FYYJGFWS.js} +32 -19
- package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js.map → context-FYYJGFWS.js.map} +2 -2
- package/dist/cli-bundle/chunks/context-YMJ3Z2HQ.js +1461 -0
- package/dist/cli-bundle/chunks/context-YMJ3Z2HQ.js.map +1 -0
- package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js +1278 -0
- package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-YLMH33VU.js → contracts-RFSPGVVJ.js} +198 -162
- package/dist/cli-bundle/chunks/contracts-RFSPGVVJ.js.map +7 -0
- package/dist/cli-bundle/chunks/create-I5L4EYYZ.js +31 -0
- package/dist/cli-bundle/chunks/create-I5L4EYYZ.js.map +1 -0
- package/dist/cli-bundle/chunks/create-JTZNCTQC.js +27 -0
- package/dist/cli-bundle/chunks/delete-7HPGI4GZ.js +55 -0
- package/dist/cli-bundle/chunks/delete-7HPGI4GZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{delete-RHCTEORS.js → delete-VXUPH5RS.js} +7 -8
- package/dist/cli-bundle/chunks/{delete-RHCTEORS.js.map → delete-VXUPH5RS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js → deps-JSRRWC3Z.js} +7 -8
- package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js.map → deps-JSRRWC3Z.js.map} +1 -1
- package/dist/cli-bundle/chunks/deps-SCZIFK2Z.js +225 -0
- package/dist/cli-bundle/chunks/deps-SCZIFK2Z.js.map +1 -0
- package/dist/cli-bundle/chunks/docs-GJK6K4VP.js +31 -0
- package/dist/cli-bundle/chunks/docs-GJK6K4VP.js.map +1 -0
- package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js → docs-WW4N3MBM.js} +9 -10
- package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js.map → docs-WW4N3MBM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js → extension-J7IBMFTD.js} +4 -5
- package/dist/cli-bundle/chunks/extension-VDY2U33M.js +28 -0
- package/dist/cli-bundle/chunks/extension-VDY2U33M.js.map +1 -0
- package/dist/cli-bundle/chunks/files-ISZJGILQ.js +282 -0
- package/dist/cli-bundle/chunks/files-ISZJGILQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{files-WVOX67PE.js → files-WKOD326U.js} +9 -10
- package/dist/cli-bundle/chunks/{files-WVOX67PE.js.map → files-WKOD326U.js.map} +1 -1
- package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js +362 -0
- package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js.map +1 -0
- package/dist/cli-bundle/chunks/gc-ULPVWMTN.js +372 -0
- package/dist/cli-bundle/chunks/gc-ULPVWMTN.js.map +7 -0
- package/dist/cli-bundle/chunks/get-RV37HT3G.js +194 -0
- package/dist/cli-bundle/chunks/get-RV37HT3G.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-LTK3HOCQ.js → get-WXU6WI5P.js} +16 -17
- package/dist/cli-bundle/chunks/get-WXU6WI5P.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-TCWL55KM.js → health-6L6EH4WR.js} +57 -16
- package/dist/cli-bundle/chunks/health-6L6EH4WR.js.map +7 -0
- package/dist/cli-bundle/chunks/health-LOI2HHKB.js +1271 -0
- package/dist/cli-bundle/chunks/health-LOI2HHKB.js.map +1 -0
- package/dist/cli-bundle/chunks/history-2BA3T5AE.js +20 -0
- package/dist/cli-bundle/chunks/history-PKN67D5O.js +24 -0
- package/dist/cli-bundle/chunks/history-PKN67D5O.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-JBZNXHGR.js +19 -0
- package/dist/cli-bundle/chunks/history-redact-V4FOJGS7.js +23 -0
- package/dist/cli-bundle/chunks/history-redact-V4FOJGS7.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js → history-repair-HIBCBIKK.js} +12 -14
- package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js.map → history-repair-HIBCBIKK.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-repair-SDMHR7JT.js +193 -0
- package/dist/cli-bundle/chunks/history-repair-SDMHR7JT.js.map +1 -0
- package/dist/cli-bundle/chunks/init-HIVSNX3O.js +16 -0
- package/dist/cli-bundle/chunks/init-P56QYWJF.js +20 -0
- package/dist/cli-bundle/chunks/init-P56QYWJF.js.map +1 -0
- package/dist/cli-bundle/chunks/learnings-GDFRG5J7.js +44 -0
- package/dist/cli-bundle/chunks/learnings-GDFRG5J7.js.map +1 -0
- package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js → learnings-MIXSESLK.js} +10 -11
- package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js.map → learnings-MIXSESLK.js.map} +1 -1
- package/dist/cli-bundle/chunks/list-FGOWQMSM.js +24 -0
- package/dist/cli-bundle/chunks/list-FGOWQMSM.js.map +1 -0
- package/dist/cli-bundle/chunks/list-MUSQNMTD.js +20 -0
- package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js → notes-4XVSH2AZ.js} +10 -11
- package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js.map → notes-4XVSH2AZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/notes-5UK3GEH2.js +44 -0
- package/dist/cli-bundle/chunks/notes-5UK3GEH2.js.map +1 -0
- package/dist/cli-bundle/chunks/plan-DUMBV3QB.js +1171 -0
- package/dist/cli-bundle/chunks/plan-DUMBV3QB.js.map +1 -0
- package/dist/cli-bundle/chunks/{plan-67AB2PLM.js → plan-SLMODHWX.js} +13 -14
- package/dist/cli-bundle/chunks/{plan-67AB2PLM.js.map → plan-SLMODHWX.js.map} +1 -1
- package/dist/cli-bundle/chunks/register-list-query-POCFZ5JW.js +229 -0
- package/dist/cli-bundle/chunks/register-list-query-POCFZ5JW.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-UP3VRUFS.js → register-list-query-WST76HSQ.js} +26 -26
- package/dist/cli-bundle/chunks/register-list-query-WST76HSQ.js.map +7 -0
- package/dist/cli-bundle/chunks/register-mutation-N5GSUZJV.js +813 -0
- package/dist/cli-bundle/chunks/register-mutation-N5GSUZJV.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-YWSBF545.js → register-mutation-OA675SOU.js} +154 -43
- package/dist/cli-bundle/chunks/register-mutation-OA675SOU.js.map +7 -0
- package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js +383 -0
- package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-3BDTGSDH.js → register-operations-N3PMHXH5.js} +49 -37
- package/dist/cli-bundle/chunks/register-operations-N3PMHXH5.js.map +7 -0
- package/dist/cli-bundle/chunks/register-setup-JIMPKJKV.js +242 -0
- package/dist/cli-bundle/chunks/register-setup-JIMPKJKV.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js → register-setup-ZHJI2DI3.js} +18 -19
- package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js.map → register-setup-ZHJI2DI3.js.map} +2 -2
- package/dist/cli-bundle/chunks/restore-D4RGNX33.js +17 -0
- package/dist/cli-bundle/chunks/restore-PBL6T5TW.js +21 -0
- package/dist/cli-bundle/chunks/restore-PBL6T5TW.js.map +1 -0
- package/dist/cli-bundle/chunks/schema-2NOO6NGB.js +780 -0
- package/dist/cli-bundle/chunks/schema-2NOO6NGB.js.map +7 -0
- package/dist/cli-bundle/chunks/schema-EBI4NLUO.js +770 -0
- package/dist/cli-bundle/chunks/schema-EBI4NLUO.js.map +1 -0
- package/dist/cli-bundle/chunks/search-JPUQTVCY.js +1127 -0
- package/dist/cli-bundle/chunks/search-JPUQTVCY.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-HENBL456.js → search-OA6JX27A.js} +25 -16
- package/dist/cli-bundle/chunks/search-OA6JX27A.js.map +7 -0
- package/dist/cli-bundle/chunks/stats-CV54BAWY.js +202 -0
- package/dist/cli-bundle/chunks/stats-CV54BAWY.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-XYB6KTFG.js +212 -0
- package/dist/cli-bundle/chunks/stats-XYB6KTFG.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js +251 -0
- package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js +248 -0
- package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js.map +1 -0
- package/dist/cli-bundle/chunks/test-MXX3E5JL.js +31 -0
- package/dist/cli-bundle/chunks/test-WBROAJIE.js +35 -0
- package/dist/cli-bundle/chunks/test-WBROAJIE.js.map +1 -0
- package/dist/cli-bundle/chunks/test-all-N6NSRDTV.js +328 -0
- package/dist/cli-bundle/chunks/test-all-N6NSRDTV.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js → test-all-NTOZ7C3M.js} +13 -14
- package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js.map → test-all-NTOZ7C3M.js.map} +1 -1
- package/dist/cli-bundle/chunks/test-runs-V6A7LPWZ.js +929 -0
- package/dist/cli-bundle/chunks/test-runs-V6A7LPWZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js → test-runs-WMVTQU3Y.js} +5 -5
- package/dist/cli-bundle/chunks/update-OSV3NAQB.js +25 -0
- package/dist/cli-bundle/chunks/update-OSV3NAQB.js.map +1 -0
- package/dist/cli-bundle/chunks/update-YRXSUGYQ.js +21 -0
- package/dist/cli-bundle/chunks/update-many-EM6OXYGO.js +605 -0
- package/dist/cli-bundle/chunks/update-many-EM6OXYGO.js.map +1 -0
- package/dist/cli-bundle/chunks/{update-many-46HRSP2Q.js → update-many-KGGEYABR.js} +78 -146
- package/dist/cli-bundle/chunks/update-many-KGGEYABR.js.map +7 -0
- package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js → upgrade-BLI7XBAJ.js} +5 -7
- package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js.map → upgrade-BLI7XBAJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/upgrade-LXPOQKFV.js +266 -0
- package/dist/cli-bundle/chunks/upgrade-LXPOQKFV.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-TMCVKIGZ.js → validate-AGOAUOVW.js} +61 -48
- package/dist/cli-bundle/chunks/validate-AGOAUOVW.js.map +7 -0
- package/dist/cli-bundle/chunks/validate-L5J6A7YO.js +1120 -0
- package/dist/cli-bundle/chunks/validate-L5J6A7YO.js.map +1 -0
- package/dist/cli-bundle/main.js +534 -1505
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/core/checkpoint/mutation-checkpoint.d.ts +44 -0
- package/dist/core/checkpoint/mutation-checkpoint.js +119 -0
- package/dist/core/checkpoint/mutation-checkpoint.js.map +1 -0
- package/dist/core/config/positional-value.js +4 -2
- package/dist/core/config/positional-value.js.map +1 -1
- package/dist/core/diagnostics/remediation.d.ts +73 -0
- package/dist/core/diagnostics/remediation.js +328 -0
- package/dist/core/diagnostics/remediation.js.map +1 -0
- package/dist/core/extensions/extension-hook-runtime.js +9 -2
- package/dist/core/extensions/extension-hook-runtime.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +60 -4
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +5 -1
- package/dist/core/extensions/index.js +61 -2
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/item-fields.d.ts +5 -1
- package/dist/core/extensions/item-fields.js +126 -4
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.js +283 -8
- package/dist/core/extensions/loader.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/item-format.d.ts +3 -2
- package/dist/core/item/item-format.js +15 -10
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/status-filter.d.ts +29 -0
- package/dist/core/item/status-filter.js +97 -0
- package/dist/core/item/status-filter.js.map +1 -0
- package/dist/core/item/type-registry.js +4 -2
- 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/output/output.js +17 -5
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/schema/item-types-file.d.ts +15 -0
- package/dist/core/schema/item-types-file.js +27 -2
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-field-filters.js +4 -3
- package/dist/core/schema/runtime-field-filters.js.map +1 -1
- package/dist/core/schema/runtime-field-values.d.ts +1 -1
- package/dist/core/schema/runtime-field-values.js +10 -4
- package/dist/core/schema/runtime-field-values.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +75 -2
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/status-defs-file.d.ts +113 -0
- package/dist/core/schema/status-defs-file.js +260 -0
- package/dist/core/schema/status-defs-file.js.map +1 -0
- package/dist/core/schema/type-workflows.d.ts +64 -0
- package/dist/core/schema/type-workflows.js +98 -0
- package/dist/core/schema/type-workflows.js.map +1 -0
- package/dist/core/search/cache.d.ts +3 -1
- package/dist/core/search/cache.js +104 -28
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/http-client.d.ts +2 -2
- package/dist/core/search/http-client.js +2 -2
- package/dist/core/search/http-client.js.map +1 -1
- package/dist/core/search/vector-stores.d.ts +1 -0
- package/dist/core/search/vector-stores.js +64 -14
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/search/vectorization-metadata.d.ts +13 -0
- package/dist/core/search/vectorization-metadata.js +65 -0
- package/dist/core/search/vectorization-metadata.js.map +1 -0
- 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/serialization.d.ts +1 -0
- package/dist/core/shared/serialization.js +86 -2
- package/dist/core/shared/serialization.js.map +1 -1
- package/dist/core/store/front-matter-cache.js +14 -5
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/core/store/item-store.d.ts +2 -0
- package/dist/core/store/item-store.js +61 -6
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings-validator.js +18 -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 +130 -10
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/consent.js +3 -3
- package/dist/core/telemetry/consent.js.map +1 -1
- package/dist/core/telemetry/observability.js +5 -4
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +16 -4
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +372 -45
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.js +7 -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 +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +53 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +42 -10
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +42 -1
- package/dist/sdk/cli-contracts.js +225 -19
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/errors.d.ts +22 -0
- package/dist/sdk/errors.js +46 -0
- package/dist/sdk/errors.js.map +1 -0
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.js +3 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/package-import-adapters.js +14 -3
- package/dist/sdk/package-import-adapters.js.map +1 -1
- package/dist/sdk/runtime.d.ts +1 -0
- package/dist/sdk/runtime.js +3 -2
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/testing.d.ts +77 -0
- package/dist/sdk/testing.js +239 -0
- package/dist/sdk/testing.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.js +3 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +22 -3
- package/docs/ARCHITECTURE.md +11 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +118 -7
- package/docs/CONFIGURATION.md +57 -2
- package/docs/EXTENSIONS.md +125 -6
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +73 -0
- package/docs/ONBOARDING.md +165 -0
- package/docs/QUICKSTART.md +3 -1
- package/docs/README.md +12 -4
- package/docs/RELEASING.md +38 -3
- package/docs/SDK.md +273 -1
- package/docs/TESTING.md +36 -1
- package/docs/examples/policy-restricted-extension/manifest.json +1 -0
- package/docs/examples/starter-extension/index.js +9 -1
- package/docs/examples/starter-extension/manifest.json +1 -0
- package/package.json +16 -7
- package/packages/pm-beads/extensions/beads/index.js +2 -4
- package/packages/pm-beads/extensions/beads/index.ts +43 -33
- package/packages/pm-beads/extensions/beads/manifest.json +12 -1
- package/packages/pm-calendar/README.md +6 -0
- package/packages/pm-calendar/extensions/calendar/index.js +6 -1
- package/packages/pm-calendar/extensions/calendar/index.ts +6 -1
- package/packages/pm-calendar/extensions/calendar/manifest.json +6 -1
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +6 -1
- package/packages/pm-guide-shell/README.md +4 -0
- package/packages/pm-guide-shell/extensions/guide-shell/index.js +22 -0
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +22 -0
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +6 -1
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +74 -3
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +84 -4
- package/packages/pm-lifecycle-hooks/README.md +29 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +18 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +20 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +9 -0
- package/packages/pm-lifecycle-hooks/package.json +52 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +13 -1
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +69 -1
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +91 -2
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +13 -1
- package/packages/pm-templates/extensions/templates/manifest.json +6 -1
- package/packages/pm-todos/extensions/todos/index.js +3 -7
- package/packages/pm-todos/extensions/todos/index.ts +55 -42
- package/packages/pm-todos/extensions/todos/manifest.json +13 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +7 -4
- package/plugins/pm-claude/agents/pm-coordinator.md +1 -1
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/scripts/bundle-cli.mjs +121 -17
- package/dist/cli-bundle/chunks/activity-OWYSUZOY.js +0 -17
- package/dist/cli-bundle/chunks/chunk-3M73P3G6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4AEZR5EJ.js +0 -189
- package/dist/cli-bundle/chunks/chunk-4AEZR5EJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5HSEP75M.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6HT2F4TK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7Y53ZJIQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-BUPWJ3IJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-EGUGFSNX.js +0 -47
- package/dist/cli-bundle/chunks/chunk-EGUGFSNX.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FM26RGSU.js +0 -56
- package/dist/cli-bundle/chunks/chunk-FM26RGSU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FQE6XZDB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GN7IJPCD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JTWRXG4B.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JULRTHJQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LRBOHPUE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LSXGH6NE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MD7K4JYF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-OGZEG5TT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-P53TN6IA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-PXUAZUUY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-U7FMKRXH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VGICHR7D.js +0 -141
- package/dist/cli-bundle/chunks/chunk-VGICHR7D.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-WDPXDQFG.js.map +0 -7
- package/dist/cli-bundle/chunks/close-XY4CSAYF.js +0 -14
- package/dist/cli-bundle/chunks/config-V3FZOKLI.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-YLMH33VU.js.map +0 -7
- package/dist/cli-bundle/chunks/create-PZVHRIZQ.js +0 -28
- package/dist/cli-bundle/chunks/gc-JWNF66EC.js +0 -181
- package/dist/cli-bundle/chunks/gc-JWNF66EC.js.map +0 -7
- package/dist/cli-bundle/chunks/get-LTK3HOCQ.js.map +0 -7
- package/dist/cli-bundle/chunks/health-TCWL55KM.js.map +0 -7
- package/dist/cli-bundle/chunks/history-A2JUDXUE.js +0 -21
- package/dist/cli-bundle/chunks/history-redact-ED6RFCPL.js +0 -20
- package/dist/cli-bundle/chunks/init-M2WUB4YH.js +0 -16
- package/dist/cli-bundle/chunks/list-OGWQPC26.js +0 -20
- package/dist/cli-bundle/chunks/register-list-query-UP3VRUFS.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-YWSBF545.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-3BDTGSDH.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-MB2ISME7.js +0 -18
- package/dist/cli-bundle/chunks/schema-Q622KC46.js +0 -119
- package/dist/cli-bundle/chunks/schema-Q622KC46.js.map +0 -7
- package/dist/cli-bundle/chunks/search-HENBL456.js.map +0 -7
- package/dist/cli-bundle/chunks/stats-N6H3YP2F.js +0 -124
- package/dist/cli-bundle/chunks/stats-N6H3YP2F.js.map +0 -7
- package/dist/cli-bundle/chunks/test-VNBDRJ4Z.js +0 -32
- package/dist/cli-bundle/chunks/update-H6SCWNMA.js +0 -22
- package/dist/cli-bundle/chunks/update-many-46HRSP2Q.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-TMCVKIGZ.js.map +0 -7
- /package/dist/cli-bundle/chunks/{activity-OWYSUZOY.js.map → activity-CVXTCHYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js.map → aggregate-VNAHUNNF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js.map → chunk-BQHUILZS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js.map → chunk-GU2ZJ2VV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AKOOMO3T.js.map → chunk-KAG77BY3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js.map → chunk-KJ33AOCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js.map → chunk-N7ACFE26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js.map → chunk-QO7EBBOM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js.map → chunk-R6UFP2GE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js.map → chunk-T3LC5LKB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js.map → chunk-UM2GBHS4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js.map → chunk-WKY2IBOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js.map → chunk-XLTD2HN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L2FXEKDB.js.map → chunk-YL2DJGYS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-XY4CSAYF.js.map → close-3HDWDA3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-PZVHRIZQ.js.map → create-JTZNCTQC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js.map → extension-J7IBMFTD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-A2JUDXUE.js.map → history-2BA3T5AE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-ED6RFCPL.js.map → history-redact-JBZNXHGR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-M2WUB4YH.js.map → init-HIVSNX3O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-OGWQPC26.js.map → list-MUSQNMTD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-MB2ISME7.js.map → restore-D4RGNX33.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-VNBDRJ4Z.js.map → test-MXX3E5JL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js.map → test-runs-WMVTQU3Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-H6SCWNMA.js.map → update-YRXSUGYQ.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
|
|
|
@@ -48,6 +48,7 @@ pm package doctor --project --detail summary
|
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
50
|
pm init
|
|
51
|
+
pm init --defaults --type-preset agile
|
|
51
52
|
pm health --check-only
|
|
52
53
|
pm init --agent-guidance status
|
|
53
54
|
pm init --agent-guidance add
|
|
@@ -57,6 +58,7 @@ pm init --agent-guidance add
|
|
|
57
58
|
When AGENTS/CLAUDE guidance is missing, default `pm init` uses `--agent-guidance ask`: it prompts only in TTY, never blocks non-interactive runs, and records declined prompts.
|
|
58
59
|
Use `pm init --agent-guidance add` to write the compact workflow block later, or `pm init --agent-guidance status` to inspect guidance state without changing files.
|
|
59
60
|
Use `pm init --defaults --with-packages` when agents should get bundled commands such as calendar, templates, advanced search, and governance helpers in one non-interactive setup step.
|
|
61
|
+
Use `pm init --type-preset agile|ops|research` when a fresh project should start with domain item types such as Story/Spike, Incident/Runbook, or Experiment/Hypothesis.
|
|
60
62
|
|
|
61
63
|
## Create Your First Item
|
|
62
64
|
|
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
|
|
|
@@ -36,7 +36,7 @@ pnpm version:check
|
|
|
36
36
|
## One-Time Setup
|
|
37
37
|
|
|
38
38
|
- Use npm provenance publishing for `.github/workflows/release.yml` so GitHub-hosted release jobs publish signed packages. Keep `id-token: write`, Node 24 or newer, npm 11.5.1 or newer, `NODE_AUTH_TOKEN` from the `release` environment `NPM_TOKEN` secret, and `npm publish --access public --provenance`. The token must authenticate as a maintainer with read-write access to `@unbrained/pm-cli`.
|
|
39
|
-
- Add `SENTRY_AUTH_TOKEN` as an optional GitHub Environment or repository secret when Sentry release creation and sourcemap upload should run. Add `SENTRY_PERSONAL_ADMIN_TOKEN`
|
|
39
|
+
- Add `SENTRY_AUTH_TOKEN` as an optional GitHub Environment or repository secret when Sentry release creation and sourcemap upload should run. Add `SENTRY_PERSONAL_ADMIN_TOKEN` for the GitHub-hosted Sentry issue-threshold gate; CI-scoped release tokens may not have issue-read scope. The release workflow skips Sentry upload cleanly when `SENTRY_AUTH_TOKEN` is absent, but fails the reliability threshold gate when `SENTRY_PERSONAL_ADMIN_TOKEN` is absent; local maintainers should still run the token-backed Sentry gate before release.
|
|
40
40
|
- Keep any `release` environment compatible with free GitHub features. This repository is public, so environment secrets and tag/branch deployment rules are compatible with the free GitHub path; do not add paid-only release gates.
|
|
41
41
|
- Ensure `GITHUB_TOKEN` has `contents: write` for GitHub Release creation.
|
|
42
42
|
- Keep `package.json` repository, homepage, and bugs URLs aligned with `https://github.com/unbraind/pm-cli`.
|
|
@@ -54,7 +54,7 @@ Policy:
|
|
|
54
54
|
- same-day follow-up release (`YYYY.M.D-N`) is manual-only via `allow_same_day_release=true`
|
|
55
55
|
- release preparation must pass all quality and compatibility gates before commit+tag push
|
|
56
56
|
- `CHANGELOG.md` is generated by the latest npm `pm-changelog` package (`pm install npm:pm-changelog --project`, then `pm changelog generate --mode replace --all-release-tags`) from closed tracker items across git release tag windows and checked in CI; do not edit it by hand
|
|
57
|
-
-
|
|
57
|
+
- release reliability gating requires `SENTRY_PERSONAL_ADMIN_TOKEN` for issue-threshold checks; Auto Release fails before creating the version commit/tag when the token is missing and `push=true`, while sourcemap upload remains optional through `SENTRY_AUTH_TOKEN`
|
|
58
58
|
- after creating and pushing a new tag, auto-release dispatches `.github/workflows/release.yml` with that tag and waits for the publish workflow to finish, because GitHub does not start normal push/tag workflows from `GITHUB_TOKEN` pushes
|
|
59
59
|
|
|
60
60
|
Pipeline entrypoint:
|
|
@@ -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
|
@@ -19,6 +19,8 @@ import { defineExtension } from "@unbrained/pm-cli/sdk";
|
|
|
19
19
|
Supported package exports:
|
|
20
20
|
|
|
21
21
|
- `@unbrained/pm-cli/sdk` - stable extension and package authoring API plus CLI contract exports.
|
|
22
|
+
- `@unbrained/pm-cli/sdk/runtime` - runtime helpers for packages that need command implementations without private imports.
|
|
23
|
+
- `@unbrained/pm-cli/sdk/testing` - lightweight assertion helpers for package/extension tests.
|
|
22
24
|
- `@unbrained/pm-cli/cli` - runtime CLI module entrypoint for package resolution, not a typed library API.
|
|
23
25
|
|
|
24
26
|
## Public Exports
|
|
@@ -42,6 +44,9 @@ Common authoring exports:
|
|
|
42
44
|
- `EXTENSION_POLICY_SURFACES`
|
|
43
45
|
- `EXTENSION_TRUST_MODES`
|
|
44
46
|
- `EXTENSION_SANDBOX_PROFILES`
|
|
47
|
+
- `PM_CLI_EXPECTED_ERROR_NAME`
|
|
48
|
+
- `createPmCliExpectedError`
|
|
49
|
+
- `isPmCliExpectedError`
|
|
45
50
|
|
|
46
51
|
Package manifest exports:
|
|
47
52
|
|
|
@@ -58,6 +63,15 @@ Command/action contract exports:
|
|
|
58
63
|
- `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`
|
|
59
64
|
- `PM_TOOL_ACTION_PARAMETER_CONTRACTS`
|
|
60
65
|
|
|
66
|
+
Testing helper exports (also under `@unbrained/pm-cli/sdk/testing`):
|
|
67
|
+
|
|
68
|
+
- `activateExtensionForTest`
|
|
69
|
+
- `assertRegisteredCommandContract`
|
|
70
|
+
- `assertRegisteredHook`
|
|
71
|
+
- `assertRegisteredSearchProvider`
|
|
72
|
+
- `assertRegisteredImporter`
|
|
73
|
+
- `assertRegisteredExporter`
|
|
74
|
+
|
|
61
75
|
Commander option contract exports:
|
|
62
76
|
|
|
63
77
|
- `CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS`
|
|
@@ -87,9 +101,13 @@ Common types:
|
|
|
87
101
|
|
|
88
102
|
- `ExtensionApi`
|
|
89
103
|
- `ExtensionManifest`
|
|
104
|
+
- `ExtensionManifestEngines`
|
|
90
105
|
- `CommandDefinition`
|
|
91
106
|
- `FlagDefinition`
|
|
107
|
+
- `ImportExportRegistrationOptions`
|
|
92
108
|
- `ServiceOverrideContext`
|
|
109
|
+
- `PmCliExpectedError`
|
|
110
|
+
- `CreatePmCliExpectedErrorOptions`
|
|
93
111
|
- `SchemaFieldDefinition`
|
|
94
112
|
- `SchemaItemTypeDefinition`
|
|
95
113
|
- `SearchProviderDefinition`
|
|
@@ -121,6 +139,15 @@ const contracts = await getContracts("/path/to/project/.agents/pm", {
|
|
|
121
139
|
});
|
|
122
140
|
```
|
|
123
141
|
|
|
142
|
+
For item-type context, use the CLI inspection primitives before issuing custom-domain mutations:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
pm schema list --json
|
|
146
|
+
pm schema show Experiment --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`schema list/show` include built-in, persisted custom, and extension-provided item types. Extension-provided types include provenance (`layer` and package/extension name) in `show --json`, which helps agents decide whether a missing type should be registered persistently with `pm schema add-type`, added through `pm init --type-preset`, or provided by an installed package.
|
|
150
|
+
|
|
124
151
|
When a package-owned command is missing at runtime, CLI usage guidance now includes a deterministic install hint (for example `pm install calendar` or `pm install search-advanced`) so agents can recover in one retry.
|
|
125
152
|
|
|
126
153
|
Package installs currently activate only extension resources. Additional package resource kinds (`docs`, `examples`) are metadata-first and available through package manifest/catalog inspection.
|
|
@@ -147,6 +174,20 @@ For provider-safe schemas, use `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`. It is flat
|
|
|
147
174
|
| `registerSearchProvider` | `search` |
|
|
148
175
|
| `registerVectorStoreAdapter` | `search` |
|
|
149
176
|
|
|
177
|
+
Some override surfaces are single-winner: command overrides, parser overrides, preflight overrides, and output renderers. Keep those handlers narrowly scoped and verify package combinations with:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pm package doctor --project --detail deep --trace
|
|
181
|
+
pm health --check-only --brief
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Collision warnings are deterministic and include package names plus deactivation guidance.
|
|
185
|
+
If extension code calls a `register*` API without declaring the matching
|
|
186
|
+
manifest capability, activation fails with
|
|
187
|
+
`extension_capability_missing:<name>:<capability>` in doctor triage. Run doctor
|
|
188
|
+
with `--trace` to see the exact method, `missing_capability`, and manifest
|
|
189
|
+
capability entry to add before publishing.
|
|
190
|
+
|
|
150
191
|
## Minimal Command Extension
|
|
151
192
|
|
|
152
193
|
```ts
|
|
@@ -174,10 +215,167 @@ Manifest:
|
|
|
174
215
|
"name": "hello",
|
|
175
216
|
"version": "0.1.0",
|
|
176
217
|
"entry": "./index.js",
|
|
218
|
+
"pm_min_version": "2026.5.31",
|
|
177
219
|
"capabilities": ["commands"]
|
|
178
220
|
}
|
|
179
221
|
```
|
|
180
222
|
|
|
223
|
+
`pm_min_version` is an inclusive minimum pm CLI version. When the installed CLI is older than the manifest requires, discovery emits `extension_pm_min_version_unmet:<layer>:<name>:required=<version>:current=<version>` and does not load the extension. Use a plain numeric version such as `2026.5.31`; `>=2026.5.31` is accepted for compatibility with `engines.pm`, but ranges beyond an inclusive minimum are not interpreted.
|
|
224
|
+
|
|
225
|
+
Manifest typing also accepts optional `engines` metadata:
|
|
226
|
+
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"engines": {
|
|
230
|
+
"pm": ">=2026.5.31",
|
|
231
|
+
"node": ">=20"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Use `pm_min_version` for the loader gate. Keep `engines` as package-manager and tooling metadata.
|
|
237
|
+
|
|
238
|
+
## Expected CLI Errors
|
|
239
|
+
|
|
240
|
+
Package commands should throw expected user/action errors with the public SDK shape so the CLI can preserve exit codes and Sentry can filter expected retry failures:
|
|
241
|
+
|
|
242
|
+
```ts
|
|
243
|
+
import { EXIT_CODE, createPmCliExpectedError } from "@unbrained/pm-cli/sdk";
|
|
244
|
+
|
|
245
|
+
throw createPmCliExpectedError("hello requires --name", {
|
|
246
|
+
exitCode: EXIT_CODE.USAGE,
|
|
247
|
+
context: {
|
|
248
|
+
code: "missing_name",
|
|
249
|
+
why: "The command needs a target name.",
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
The helper returns an `Error` whose public name is `PmCliError` and whose `exitCode` is structural. That makes it safe for bundled, linked, and separately installed package code even when class identity is not shared with the running CLI.
|
|
255
|
+
|
|
256
|
+
## Package Runtime Imports
|
|
257
|
+
|
|
258
|
+
Third-party packages should import from stable public SDK subpaths:
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
import { defineExtension } from "@unbrained/pm-cli/sdk";
|
|
262
|
+
import { createPmCliExpectedError } from "@unbrained/pm-cli/sdk/runtime";
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
`PM_CLI_PACKAGE_ROOT` is reserved for first-party packages bundled inside this repository. Those packages use it to locate the running CLI's `dist/sdk/runtime.js` before they are installed as independent npm packages. External packages must not depend on `PM_CLI_PACKAGE_ROOT`, `dist/` paths, or `src/core/...`; declare `@unbrained/pm-cli` as a dependency or peer dependency and import the public SDK subpaths instead.
|
|
266
|
+
|
|
267
|
+
## Testing Helpers
|
|
268
|
+
|
|
269
|
+
Package tests can assert registration contracts without depending on Vitest-specific
|
|
270
|
+
helpers. Every assertion normalizes the expected name, returns the matched registration
|
|
271
|
+
entry, and throws an `Error` that lists what _is_ available when the expectation is
|
|
272
|
+
missing. They are exported from both `@unbrained/pm-cli/sdk/testing` and the main
|
|
273
|
+
`@unbrained/pm-cli/sdk` barrel.
|
|
274
|
+
|
|
275
|
+
Activate an in-memory extension module without private loader imports:
|
|
276
|
+
|
|
277
|
+
```ts
|
|
278
|
+
import {
|
|
279
|
+
activateExtensionForTest,
|
|
280
|
+
assertRegisteredCommandContract,
|
|
281
|
+
} from "@unbrained/pm-cli/sdk/testing";
|
|
282
|
+
|
|
283
|
+
const activation = await activateExtensionForTest({
|
|
284
|
+
manifest: {
|
|
285
|
+
name: "hello-ext",
|
|
286
|
+
version: "0.1.0",
|
|
287
|
+
entry: "./index.js",
|
|
288
|
+
priority: 0,
|
|
289
|
+
capabilities: ["commands", "schema"],
|
|
290
|
+
},
|
|
291
|
+
activate(api) {
|
|
292
|
+
api.registerCommand({
|
|
293
|
+
name: "hello",
|
|
294
|
+
action: "hello",
|
|
295
|
+
description: "Return a deterministic hello payload.",
|
|
296
|
+
flags: [{ long: "--name", value_type: "string" }],
|
|
297
|
+
run: async () => ({ ok: true }),
|
|
298
|
+
});
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
assertRegisteredCommandContract(activation.registrations, {
|
|
303
|
+
command: "hello",
|
|
304
|
+
action: "hello",
|
|
305
|
+
flags: ["--name"],
|
|
306
|
+
});
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
`activateExtensionForTest` uses the real pm activation engine and capability
|
|
310
|
+
guardrails, but it does not discover files or install packages. Use it for unit
|
|
311
|
+
tests of extension registration shape; keep `pm package doctor` and runtime
|
|
312
|
+
contracts in integration tests.
|
|
313
|
+
|
|
314
|
+
Assert a command registration contract:
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
import { assertRegisteredCommandContract } from "@unbrained/pm-cli/sdk/testing";
|
|
318
|
+
|
|
319
|
+
assertRegisteredCommandContract(activation.registrations, {
|
|
320
|
+
command: "hello",
|
|
321
|
+
action: "hello",
|
|
322
|
+
flags: ["--name"],
|
|
323
|
+
});
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Assert importer, exporter, and search-provider registrations against an
|
|
327
|
+
`ExtensionRegistrationRegistry` (from `activation.registrations`). The optional
|
|
328
|
+
`extensionName` narrows the match to a single extension:
|
|
329
|
+
|
|
330
|
+
```ts
|
|
331
|
+
import {
|
|
332
|
+
assertRegisteredExporter,
|
|
333
|
+
assertRegisteredImporter,
|
|
334
|
+
assertRegisteredSearchProvider,
|
|
335
|
+
} from "@unbrained/pm-cli/sdk/testing";
|
|
336
|
+
|
|
337
|
+
assertRegisteredImporter(activation.registrations, { importer: "jsonl" });
|
|
338
|
+
assertRegisteredExporter(activation.registrations, {
|
|
339
|
+
exporter: "jsonl",
|
|
340
|
+
extensionName: "my-ext",
|
|
341
|
+
});
|
|
342
|
+
assertRegisteredSearchProvider(activation.registrations, { provider: "semantic-local" });
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Hooks are surfaced via `activation.hooks` (an `ExtensionHookRegistry`), not the command
|
|
346
|
+
registry, so `assertRegisteredHook` takes the hook registry and a lifecycle `kind`
|
|
347
|
+
(`before_command` | `after_command` | `on_read` | `on_write` | `on_index`):
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
import { assertRegisteredHook } from "@unbrained/pm-cli/sdk/testing";
|
|
351
|
+
|
|
352
|
+
const hook = assertRegisteredHook(activation.hooks, {
|
|
353
|
+
kind: "on_write",
|
|
354
|
+
extensionName: "my-ext",
|
|
355
|
+
});
|
|
356
|
+
// hook.run is the registered OnWriteHook handler
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
The bundled `pm-lifecycle-hooks` package is the first-party hooks exemplar. It
|
|
360
|
+
declares only the `hooks` capability and registers a default-inert `afterCommand`
|
|
361
|
+
hook, so package authors can copy a lifecycle pattern that does not write files,
|
|
362
|
+
produce output, or alter command behavior.
|
|
363
|
+
|
|
364
|
+
`afterCommand` receives the command outcome plus an optional `affected` array for
|
|
365
|
+
item mutations. Each affected entry is a compact command context:
|
|
366
|
+
`id`, `op`, `item_type`, `previous_status`, `status`, `changed_fields`, and
|
|
367
|
+
partial `previous`/`current` front matter snapshots. Use this for
|
|
368
|
+
transition-aware packages such as notifications; do not parse the untyped
|
|
369
|
+
`result` payload when the transition fields are available.
|
|
370
|
+
|
|
371
|
+
`onWrite` receives `{ path, scope, op }` for every observed write. When the write
|
|
372
|
+
is tied to an item mutation, the context also includes `item_id`, `item_type`,
|
|
373
|
+
`before`, `after`, and `changed_fields`, so sync packages can mirror the exact
|
|
374
|
+
item change without reparsing files. Non-item writes omit those item fields.
|
|
375
|
+
`changed_fields` lists mutated fields for updates and uses lifecycle sentinels
|
|
376
|
+
for item lifecycle writes: `["imported"]` for package imports, `["restored"]`
|
|
377
|
+
for restores, and `["deleted"]` for deletes.
|
|
378
|
+
|
|
181
379
|
## Custom Item Type
|
|
182
380
|
|
|
183
381
|
```ts
|
|
@@ -208,6 +406,70 @@ export default defineExtension({
|
|
|
208
406
|
|
|
209
407
|
Manifest capability: `schema`.
|
|
210
408
|
|
|
409
|
+
Declared item fields are first-class create/update inputs. Agents and importers can persist extension provenance without description markers:
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
pm create "Import issue" --type Incident --field service=api --field severity=critical
|
|
413
|
+
pm update pm-1234 --field service=worker
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
`--field` accepts only fields declared by active `registerItemFields` registrations and coerces values using the declared field type.
|
|
417
|
+
|
|
418
|
+
## Importer / Exporter
|
|
419
|
+
|
|
420
|
+
`registerImporter(name, importer)` and `registerExporter(name, exporter)` register
|
|
421
|
+
a data adapter and automatically create a `<name> import` / `<name> export` command
|
|
422
|
+
path that invokes it. The handler receives an `ImportExportContext`
|
|
423
|
+
(`registration`, `action`, `command`, `args`, `options`, `global`, `pm_root`).
|
|
424
|
+
|
|
425
|
+
By default the auto-created command only has a handler. Pass an optional third
|
|
426
|
+
`ImportExportRegistrationOptions` argument to make it a first-class command with a
|
|
427
|
+
description, flags, intent, examples, failure hints, and positional arguments —
|
|
428
|
+
surfaced in `--help` and runtime contracts exactly like `registerCommand`:
|
|
429
|
+
|
|
430
|
+
```ts
|
|
431
|
+
import { defineExtension } from "@unbrained/pm-cli/sdk";
|
|
432
|
+
|
|
433
|
+
export default defineExtension({
|
|
434
|
+
activate(api) {
|
|
435
|
+
api.registerImporter(
|
|
436
|
+
"jsonl",
|
|
437
|
+
async (context) => {
|
|
438
|
+
// context.options.file, context.global, context.pm_root, ...
|
|
439
|
+
return { ok: true, imported: 0 };
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
action: "jsonl-import",
|
|
443
|
+
description: "Import JSONL records into pm items.",
|
|
444
|
+
intent: "ingest external task records",
|
|
445
|
+
examples: ["pm jsonl import --file source.jsonl"],
|
|
446
|
+
failure_hints: ["Verify the JSONL source path exists."],
|
|
447
|
+
flags: [
|
|
448
|
+
{
|
|
449
|
+
long: "--file",
|
|
450
|
+
value_name: "path",
|
|
451
|
+
value_type: "string",
|
|
452
|
+
description: "Path to the JSONL source file.",
|
|
453
|
+
},
|
|
454
|
+
],
|
|
455
|
+
},
|
|
456
|
+
);
|
|
457
|
+
|
|
458
|
+
api.registerExporter("jsonl", async () => ({ ok: true }), {
|
|
459
|
+
description: "Export pm items to JSONL.",
|
|
460
|
+
});
|
|
461
|
+
},
|
|
462
|
+
});
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Manifest capability: `importers` (and `schema` when supplying `flags`). The two-argument
|
|
466
|
+
form remains supported; supplying the options object never produces a command-handler
|
|
467
|
+
collision because the definition and handler share the same command path and extension.
|
|
468
|
+
|
|
469
|
+
The bundled `pm-beads` and `pm-todos` packages are first-party importer/exporter
|
|
470
|
+
exemplars that use this registration path and expose runtime contracts for their
|
|
471
|
+
generated commands.
|
|
472
|
+
|
|
211
473
|
## Search Provider
|
|
212
474
|
|
|
213
475
|
```ts
|
|
@@ -229,6 +491,15 @@ export default defineExtension({
|
|
|
229
491
|
|
|
230
492
|
Manifest capability: `search`.
|
|
231
493
|
|
|
494
|
+
Core search invokes the registered `query` when `settings.search.provider` matches
|
|
495
|
+
the provider `name`. The bundled `pm-search-advanced` package ships a working
|
|
496
|
+
first-party exemplar: `searchAdvancedLocalProvider()` registers a deterministic,
|
|
497
|
+
dependency-free local lexical ranker named `search-advanced-local` (enable with
|
|
498
|
+
`pm config set search.provider search-advanced-local`). Authors building
|
|
499
|
+
embedding-backed providers (for example Ollama or a hosted model) implement
|
|
500
|
+
`embed`/`embedBatch` on the same `SearchProviderDefinition` shape, and may also
|
|
501
|
+
`registerVectorStoreAdapter` for a custom vector store.
|
|
502
|
+
|
|
232
503
|
## Robust Automation Pattern
|
|
233
504
|
|
|
234
505
|
1. Read `PM_TOOL_ACTIONS` or `PM_TOOL_PARAMETERS_SCHEMA` for baseline static validation.
|
|
@@ -261,8 +532,9 @@ Treat `recovery.suggested_retry` as the first-choice deterministic replay comman
|
|
|
261
532
|
|
|
262
533
|
- Keep handlers deterministic and JSON-like.
|
|
263
534
|
- Return data, not pre-rendered terminal text, unless implementing a renderer or output service.
|
|
264
|
-
- Keep service and preflight overrides narrow.
|
|
535
|
+
- Keep service, renderer, and preflight overrides narrow. For `output_format`, return `context.payload`, `null`, or `undefined` for unrelated commands; for renderers, return `null` when the payload should fall back to native rendering.
|
|
265
536
|
- Declare only capabilities in use.
|
|
537
|
+
- Set `pm_min_version` when the package requires SDK or runtime behavior added after older pm releases.
|
|
266
538
|
- Include examples and failure hints in dynamic commands.
|
|
267
539
|
- Add `pm package doctor` diagnostics to testing instructions.
|
|
268
540
|
|