@unbrained/pm-cli 2026.5.31 → 2026.6.5
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 +127 -0
- 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 +241 -27
- 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 +191 -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/get.js +7 -7
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.js +38 -3
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/index.d.ts +2 -1
- package/dist/cli/commands/index.js +4 -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/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 +82 -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 +9 -3
- 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 +4 -2
- 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-3RWRRNOW.js +20 -0
- package/dist/cli-bundle/chunks/activity-3RWRRNOW.js.map +1 -0
- package/dist/cli-bundle/chunks/activity-P5BUMWP3.js +16 -0
- package/dist/cli-bundle/chunks/aggregate-J35K7WZB.js +206 -0
- package/dist/cli-bundle/chunks/aggregate-J35K7WZB.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js → aggregate-OOAGKWRG.js} +11 -11
- package/dist/cli-bundle/chunks/{append-JD2DETU7.js → append-5JE3YGXU.js} +8 -9
- package/dist/cli-bundle/chunks/{append-JD2DETU7.js.map → append-5JE3YGXU.js.map} +1 -1
- package/dist/cli-bundle/chunks/append-PNN6UIBZ.js +69 -0
- package/dist/cli-bundle/chunks/append-PNN6UIBZ.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-26KTVXJW.js +218 -0
- package/dist/cli-bundle/chunks/chunk-26KTVXJW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JULRTHJQ.js → chunk-3OH4DAEB.js} +119 -6
- package/dist/cli-bundle/chunks/chunk-3OH4DAEB.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-4LTBNUYT.js +5553 -0
- package/dist/cli-bundle/chunks/chunk-4LTBNUYT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WDPXDQFG.js → chunk-4PJQSECJ.js} +6 -4
- package/dist/cli-bundle/chunks/chunk-4PJQSECJ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-4QCR4QW3.js +1832 -0
- package/dist/cli-bundle/chunks/chunk-4QCR4QW3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6HT2F4TK.js → chunk-5IRA6IYD.js} +175 -54
- package/dist/cli-bundle/chunks/chunk-5IRA6IYD.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-5KB4X7YY.js +412 -0
- package/dist/cli-bundle/chunks/chunk-5KB4X7YY.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-5PAOPUZX.js +182 -0
- package/dist/cli-bundle/chunks/chunk-5PAOPUZX.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-7K24QB23.js +698 -0
- package/dist/cli-bundle/chunks/chunk-7K24QB23.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-A6PEXMYN.js +380 -0
- package/dist/cli-bundle/chunks/chunk-A6PEXMYN.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-ASQM3IF5.js +230 -0
- package/dist/cli-bundle/chunks/chunk-ASQM3IF5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js → chunk-ATBVS6WW.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-AXXKLVTW.js +332 -0
- package/dist/cli-bundle/chunks/chunk-AXXKLVTW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PXUAZUUY.js → chunk-B3N4TKNL.js} +12 -11
- package/dist/cli-bundle/chunks/chunk-B3N4TKNL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js → chunk-BNL6S7QH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-CCUFLH4J.js +154 -0
- package/dist/cli-bundle/chunks/chunk-CCUFLH4J.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js → chunk-CJDQB2ED.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-CWT53EYT.js +1340 -0
- package/dist/cli-bundle/chunks/chunk-CWT53EYT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js → chunk-D3WUNETC.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-3M73P3G6.js → chunk-D5X7N6FI.js} +210 -132
- package/dist/cli-bundle/chunks/chunk-D5X7N6FI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js → chunk-DFIZGAI5.js} +10 -12
- package/dist/cli-bundle/chunks/{chunk-6YCV7WSL.js.map → chunk-DFIZGAI5.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-DFUSXJDE.js +1704 -0
- package/dist/cli-bundle/chunks/chunk-DFUSXJDE.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-EHXPIKKP.js +2988 -0
- package/dist/cli-bundle/chunks/chunk-EHXPIKKP.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-FVXM3GKS.js +128 -0
- package/dist/cli-bundle/chunks/chunk-FVXM3GKS.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-G5BACLYH.js +454 -0
- package/dist/cli-bundle/chunks/chunk-G5BACLYH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-U7FMKRXH.js → chunk-GCAVRLGE.js} +37 -16
- package/dist/cli-bundle/chunks/chunk-GCAVRLGE.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-GFWHHMVV.js +57 -0
- package/dist/cli-bundle/chunks/chunk-GFWHHMVV.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GNHVV4SY.js +3860 -0
- package/dist/cli-bundle/chunks/chunk-GNHVV4SY.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GPGAYASV.js +346 -0
- package/dist/cli-bundle/chunks/chunk-GPGAYASV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MD7K4JYF.js → chunk-HPH6X4ZZ.js} +26 -15
- package/dist/cli-bundle/chunks/chunk-HPH6X4ZZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5HSEP75M.js → chunk-HZOS2UG5.js} +18 -6
- package/dist/cli-bundle/chunks/chunk-HZOS2UG5.js.map +7 -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-L2FXEKDB.js → chunk-JB4RGL4V.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-JQI2HE55.js +130 -0
- package/dist/cli-bundle/chunks/chunk-JQI2HE55.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js → chunk-K47WAYQV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js → chunk-KA24HME7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-KBG47ZOY.js +1325 -0
- package/dist/cli-bundle/chunks/chunk-KBG47ZOY.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-KCMIYKTA.js +242 -0
- package/dist/cli-bundle/chunks/chunk-KCMIYKTA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7Y53ZJIQ.js → chunk-KK6YPGH3.js} +22 -3
- package/dist/cli-bundle/chunks/chunk-KK6YPGH3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js → chunk-LDJK7SHN.js} +7 -7
- 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-MISYRLEP.js +80 -0
- package/dist/cli-bundle/chunks/chunk-MISYRLEP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FQE6XZDB.js → chunk-N5YF3VFN.js} +54 -32
- package/dist/cli-bundle/chunks/chunk-N5YF3VFN.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-NQP3ECKF.js +173 -0
- package/dist/cli-bundle/chunks/chunk-NQP3ECKF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-O5IBJE6S.js +338 -0
- package/dist/cli-bundle/chunks/chunk-O5IBJE6S.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-OGZEG5TT.js → chunk-OIQIXTNB.js} +164 -53
- package/dist/cli-bundle/chunks/chunk-OIQIXTNB.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-ORTLYVA4.js +751 -0
- package/dist/cli-bundle/chunks/chunk-ORTLYVA4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JTWRXG4B.js → chunk-OUF3ARDX.js} +251 -251
- package/dist/cli-bundle/chunks/chunk-OUF3ARDX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js → chunk-RANZIID5.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-RQAWLSUU.js +140 -0
- package/dist/cli-bundle/chunks/chunk-RQAWLSUU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js → chunk-S3CV7JGJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LSXGH6NE.js → chunk-SRVKTWPR.js} +748 -196
- package/dist/cli-bundle/chunks/chunk-SRVKTWPR.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-SSFMJCPF.js +76 -0
- package/dist/cli-bundle/chunks/chunk-SSFMJCPF.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-SZQCER6S.js +631 -0
- package/dist/cli-bundle/chunks/chunk-SZQCER6S.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-T2ORWB6D.js +540 -0
- package/dist/cli-bundle/chunks/chunk-T2ORWB6D.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-TBQVUNVH.js +422 -0
- package/dist/cli-bundle/chunks/chunk-TBQVUNVH.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-P53TN6IA.js → chunk-TK633IVD.js} +35 -8
- package/dist/cli-bundle/chunks/chunk-TK633IVD.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-TQ3ZK6VD.js +131 -0
- package/dist/cli-bundle/chunks/chunk-TQ3ZK6VD.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-UFCG3SWR.js +119 -0
- package/dist/cli-bundle/chunks/chunk-UFCG3SWR.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-UOVLWB47.js +1664 -0
- package/dist/cli-bundle/chunks/chunk-UOVLWB47.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-V3JQ4IPL.js +186 -0
- package/dist/cli-bundle/chunks/chunk-V3JQ4IPL.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-VGO2T3TY.js +182 -0
- package/dist/cli-bundle/chunks/chunk-VGO2T3TY.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LRBOHPUE.js → chunk-WIKR7KFL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-BUPWJ3IJ.js → chunk-XG7RJYHV.js} +484 -49
- package/dist/cli-bundle/chunks/chunk-XG7RJYHV.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-AKOOMO3T.js → chunk-XX5LRINW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js → chunk-Y2AKE2HS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GN7IJPCD.js → chunk-ZQ4F6EC4.js} +301 -24
- package/dist/cli-bundle/chunks/chunk-ZQ4F6EC4.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-ZRVSMOMR.js +1809 -0
- package/dist/cli-bundle/chunks/chunk-ZRVSMOMR.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js → claim-AZLP7YFO.js} +10 -11
- package/dist/cli-bundle/chunks/{claim-EE4TKKCV.js.map → claim-AZLP7YFO.js.map} +1 -1
- package/dist/cli-bundle/chunks/claim-ZFA7HKU4.js +129 -0
- package/dist/cli-bundle/chunks/claim-ZFA7HKU4.js.map +1 -0
- package/dist/cli-bundle/chunks/close-65DFYAVS.js +17 -0
- package/dist/cli-bundle/chunks/close-65DFYAVS.js.map +1 -0
- package/dist/cli-bundle/chunks/close-RMHQ3KWH.js +13 -0
- package/dist/cli-bundle/chunks/close-many-AKPZNSGI.js +311 -0
- package/dist/cli-bundle/chunks/close-many-AKPZNSGI.js.map +1 -0
- package/dist/cli-bundle/chunks/close-many-UKZSQGM7.js +314 -0
- package/dist/cli-bundle/chunks/close-many-UKZSQGM7.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js → comments-AGBNSJJH.js} +10 -11
- package/dist/cli-bundle/chunks/{comments-AAKJQ6LW.js.map → comments-AGBNSJJH.js.map} +1 -1
- package/dist/cli-bundle/chunks/comments-CJWXQI7X.js +100 -0
- package/dist/cli-bundle/chunks/comments-CJWXQI7X.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-V3FZOKLI.js → config-5ON3ADRH.js} +121 -10
- package/dist/cli-bundle/chunks/config-5ON3ADRH.js.map +7 -0
- package/dist/cli-bundle/chunks/config-DDPYIA6J.js +1671 -0
- package/dist/cli-bundle/chunks/config-DDPYIA6J.js.map +1 -0
- package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js → context-E6U3DWVM.js} +32 -19
- package/dist/cli-bundle/chunks/{context-RZ5QPNJB.js.map → context-E6U3DWVM.js.map} +2 -2
- package/dist/cli-bundle/chunks/context-ZOJEN5VT.js +1461 -0
- package/dist/cli-bundle/chunks/context-ZOJEN5VT.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-YLMH33VU.js → contracts-CXSFM45B.js} +194 -162
- package/dist/cli-bundle/chunks/contracts-CXSFM45B.js.map +7 -0
- package/dist/cli-bundle/chunks/contracts-LCSX5R53.js +1274 -0
- package/dist/cli-bundle/chunks/contracts-LCSX5R53.js.map +1 -0
- package/dist/cli-bundle/chunks/create-ATONSAZW.js +27 -0
- package/dist/cli-bundle/chunks/create-WYFKN2U4.js +31 -0
- package/dist/cli-bundle/chunks/create-WYFKN2U4.js.map +1 -0
- package/dist/cli-bundle/chunks/{delete-RHCTEORS.js → delete-RONNH4F4.js} +7 -8
- package/dist/cli-bundle/chunks/{delete-RHCTEORS.js.map → delete-RONNH4F4.js.map} +1 -1
- package/dist/cli-bundle/chunks/delete-ZXWC56WO.js +55 -0
- package/dist/cli-bundle/chunks/delete-ZXWC56WO.js.map +1 -0
- package/dist/cli-bundle/chunks/deps-EHXIFOZR.js +225 -0
- package/dist/cli-bundle/chunks/deps-EHXIFOZR.js.map +1 -0
- package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js → deps-WII3O4HB.js} +7 -8
- package/dist/cli-bundle/chunks/{deps-MZYCMLAO.js.map → deps-WII3O4HB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js → docs-JMVCFNHH.js} +9 -10
- package/dist/cli-bundle/chunks/{docs-FXXUCZYU.js.map → docs-JMVCFNHH.js.map} +1 -1
- package/dist/cli-bundle/chunks/docs-PDREIMLS.js +31 -0
- package/dist/cli-bundle/chunks/docs-PDREIMLS.js.map +1 -0
- package/dist/cli-bundle/chunks/extension-B4ROVWJD.js +28 -0
- package/dist/cli-bundle/chunks/extension-B4ROVWJD.js.map +1 -0
- package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js → extension-G6UXSM5S.js} +4 -5
- package/dist/cli-bundle/chunks/files-2PN7UM2D.js +282 -0
- package/dist/cli-bundle/chunks/files-2PN7UM2D.js.map +1 -0
- package/dist/cli-bundle/chunks/{files-WVOX67PE.js → files-MXYS5W4M.js} +9 -10
- package/dist/cli-bundle/chunks/{files-WVOX67PE.js.map → files-MXYS5W4M.js.map} +1 -1
- package/dist/cli-bundle/chunks/gc-GT552UJH.js +178 -0
- package/dist/cli-bundle/chunks/gc-GT552UJH.js.map +1 -0
- package/dist/cli-bundle/chunks/{gc-JWNF66EC.js → gc-QNBRJG6H.js} +3 -3
- package/dist/cli-bundle/chunks/{get-LTK3HOCQ.js → get-CINFEUIY.js} +16 -17
- package/dist/cli-bundle/chunks/get-CINFEUIY.js.map +7 -0
- package/dist/cli-bundle/chunks/get-WXMLRG7M.js +194 -0
- package/dist/cli-bundle/chunks/get-WXMLRG7M.js.map +1 -0
- package/dist/cli-bundle/chunks/health-5VPOJQ53.js +1258 -0
- package/dist/cli-bundle/chunks/health-5VPOJQ53.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-TCWL55KM.js → health-IT5DBPRJ.js} +43 -15
- package/dist/cli-bundle/chunks/health-IT5DBPRJ.js.map +7 -0
- package/dist/cli-bundle/chunks/history-6FC4H6HI.js +20 -0
- package/dist/cli-bundle/chunks/history-FLZIP7PM.js +24 -0
- package/dist/cli-bundle/chunks/history-FLZIP7PM.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-SSZBAD76.js +23 -0
- package/dist/cli-bundle/chunks/history-redact-SSZBAD76.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-XKYEZDBL.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js → history-repair-KC5ZOJRZ.js} +12 -14
- package/dist/cli-bundle/chunks/{history-repair-ZWSTDRH2.js.map → history-repair-KC5ZOJRZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-repair-X7CO5JJZ.js +193 -0
- package/dist/cli-bundle/chunks/history-repair-X7CO5JJZ.js.map +1 -0
- package/dist/cli-bundle/chunks/init-6MRFVOLH.js +20 -0
- package/dist/cli-bundle/chunks/init-6MRFVOLH.js.map +1 -0
- package/dist/cli-bundle/chunks/init-KHX3FEEM.js +16 -0
- package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js → learnings-A3CLB5CO.js} +10 -11
- package/dist/cli-bundle/chunks/{learnings-NXTWE3FR.js.map → learnings-A3CLB5CO.js.map} +1 -1
- package/dist/cli-bundle/chunks/learnings-DCX55BNX.js +44 -0
- package/dist/cli-bundle/chunks/learnings-DCX55BNX.js.map +1 -0
- package/dist/cli-bundle/chunks/list-53LZ2AEO.js +20 -0
- package/dist/cli-bundle/chunks/list-DBRECOG4.js +24 -0
- package/dist/cli-bundle/chunks/list-DBRECOG4.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js → notes-42LIC3UE.js} +10 -11
- package/dist/cli-bundle/chunks/{notes-DFS5ZGOO.js.map → notes-42LIC3UE.js.map} +1 -1
- package/dist/cli-bundle/chunks/notes-P5O3VMQ3.js +44 -0
- package/dist/cli-bundle/chunks/notes-P5O3VMQ3.js.map +1 -0
- package/dist/cli-bundle/chunks/{plan-67AB2PLM.js → plan-HDQXEUKD.js} +13 -14
- package/dist/cli-bundle/chunks/{plan-67AB2PLM.js.map → plan-HDQXEUKD.js.map} +1 -1
- package/dist/cli-bundle/chunks/plan-IGTE3WOJ.js +1171 -0
- package/dist/cli-bundle/chunks/plan-IGTE3WOJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-UP3VRUFS.js → register-list-query-AG3XKXWL.js} +22 -24
- package/dist/cli-bundle/chunks/register-list-query-AG3XKXWL.js.map +7 -0
- package/dist/cli-bundle/chunks/register-list-query-EMNSIUO4.js +227 -0
- package/dist/cli-bundle/chunks/register-list-query-EMNSIUO4.js.map +1 -0
- package/dist/cli-bundle/chunks/register-mutation-M3YS6XDO.js +813 -0
- package/dist/cli-bundle/chunks/register-mutation-M3YS6XDO.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-YWSBF545.js → register-mutation-RSMT6DPK.js} +154 -43
- package/dist/cli-bundle/chunks/register-mutation-RSMT6DPK.js.map +7 -0
- package/dist/cli-bundle/chunks/register-operations-KYUOOOOD.js +370 -0
- package/dist/cli-bundle/chunks/register-operations-KYUOOOOD.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-3BDTGSDH.js → register-operations-Q54JQZUN.js} +33 -34
- package/dist/cli-bundle/chunks/register-operations-Q54JQZUN.js.map +7 -0
- package/dist/cli-bundle/chunks/register-setup-DI6P7X75.js +242 -0
- package/dist/cli-bundle/chunks/register-setup-DI6P7X75.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js → register-setup-YJKIQRKA.js} +18 -19
- package/dist/cli-bundle/chunks/{register-setup-V56GDRUS.js.map → register-setup-YJKIQRKA.js.map} +2 -2
- package/dist/cli-bundle/chunks/restore-2XVTBLKQ.js +21 -0
- package/dist/cli-bundle/chunks/restore-2XVTBLKQ.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-JL5QIH7H.js +17 -0
- package/dist/cli-bundle/chunks/schema-LVXZWFGY.js +770 -0
- package/dist/cli-bundle/chunks/schema-LVXZWFGY.js.map +1 -0
- package/dist/cli-bundle/chunks/schema-V6BX65Q2.js +780 -0
- package/dist/cli-bundle/chunks/schema-V6BX65Q2.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-HENBL456.js → search-5A3BMFA7.js} +25 -16
- package/dist/cli-bundle/chunks/search-5A3BMFA7.js.map +7 -0
- package/dist/cli-bundle/chunks/search-C7NPB7G7.js +1127 -0
- package/dist/cli-bundle/chunks/search-C7NPB7G7.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js +120 -0
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js.map +1 -0
- package/dist/cli-bundle/chunks/{stats-N6H3YP2F.js → stats-Y2CBTZSL.js} +7 -8
- package/dist/cli-bundle/chunks/{stats-N6H3YP2F.js.map → stats-Y2CBTZSL.js.map} +1 -1
- package/dist/cli-bundle/chunks/test-OFYONO3C.js +35 -0
- package/dist/cli-bundle/chunks/test-OFYONO3C.js.map +1 -0
- package/dist/cli-bundle/chunks/test-RJ4ZF35X.js +31 -0
- package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js → test-all-EEMKNTGU.js} +13 -14
- package/dist/cli-bundle/chunks/{test-all-G2AZOHXI.js.map → test-all-EEMKNTGU.js.map} +1 -1
- package/dist/cli-bundle/chunks/test-all-OJE6CIO7.js +328 -0
- package/dist/cli-bundle/chunks/test-all-OJE6CIO7.js.map +1 -0
- package/dist/cli-bundle/chunks/test-runs-IPOPFOAF.js +929 -0
- package/dist/cli-bundle/chunks/test-runs-IPOPFOAF.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js → test-runs-L2M7WKH7.js} +5 -5
- package/dist/cli-bundle/chunks/update-6YEHPVXH.js +25 -0
- package/dist/cli-bundle/chunks/update-6YEHPVXH.js.map +1 -0
- package/dist/cli-bundle/chunks/update-PYLVHMRD.js +21 -0
- package/dist/cli-bundle/chunks/{update-many-46HRSP2Q.js → update-many-322CCH2L.js} +78 -146
- package/dist/cli-bundle/chunks/update-many-322CCH2L.js.map +7 -0
- package/dist/cli-bundle/chunks/update-many-DYWGW57M.js +605 -0
- package/dist/cli-bundle/chunks/update-many-DYWGW57M.js.map +1 -0
- package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js → upgrade-2U727SAM.js} +5 -7
- package/dist/cli-bundle/chunks/{upgrade-H5HHM5UV.js.map → upgrade-2U727SAM.js.map} +1 -1
- package/dist/cli-bundle/chunks/upgrade-3W3RVSNM.js +266 -0
- package/dist/cli-bundle/chunks/upgrade-3W3RVSNM.js.map +1 -0
- package/dist/cli-bundle/chunks/validate-GZ24NYHO.js +1120 -0
- package/dist/cli-bundle/chunks/validate-GZ24NYHO.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-TMCVKIGZ.js → validate-ZFVWPEEN.js} +61 -48
- package/dist/cli-bundle/chunks/validate-ZFVWPEEN.js.map +7 -0
- package/dist/cli-bundle/main.js +490 -52
- package/dist/cli-bundle/main.js.map +2 -2
- 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/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/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/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.js +40 -5
- 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 +4 -3
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/mcp/server.js +221 -12
- 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 +4 -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 +35 -6
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +19 -1
- package/dist/sdk/cli-contracts.js +187 -15
- 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 +21 -2
- package/docs/COMMANDS.md +85 -5
- package/docs/CONFIGURATION.md +49 -2
- package/docs/EXTENSIONS.md +118 -6
- package/docs/QUICKSTART.md +2 -0
- package/docs/RELEASING.md +2 -2
- package/docs/SDK.md +273 -1
- package/docs/TESTING.md +17 -0
- 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 +12 -6
- 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/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-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/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/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-P5BUMWP3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-ADUOSFRO.js.map → aggregate-OOAGKWRG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G57E5D7T.js.map → chunk-ATBVS6WW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KBQY3YG5.js.map → chunk-BNL6S7QH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NGN7UV5K.js.map → chunk-CJDQB2ED.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D7AOMPRH.js.map → chunk-D3WUNETC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L2FXEKDB.js.map → chunk-JB4RGL4V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SEXQN4KL.js.map → chunk-K47WAYQV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CEFIVZPG.js.map → chunk-KA24HME7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A7E7PUVX.js.map → chunk-LDJK7SHN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PVNQLCIS.js.map → chunk-RANZIID5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JFWUHHS2.js.map → chunk-S3CV7JGJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LRBOHPUE.js.map → chunk-WIKR7KFL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AKOOMO3T.js.map → chunk-XX5LRINW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WJ2NAC37.js.map → chunk-Y2AKE2HS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-XY4CSAYF.js.map → close-RMHQ3KWH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-PZVHRIZQ.js.map → create-ATONSAZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-B4WL7BQU.js.map → extension-G6UXSM5S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-JWNF66EC.js.map → gc-QNBRJG6H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-A2JUDXUE.js.map → history-6FC4H6HI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-ED6RFCPL.js.map → history-redact-XKYEZDBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-M2WUB4YH.js.map → init-KHX3FEEM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-OGWQPC26.js.map → list-53LZ2AEO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-MB2ISME7.js.map → restore-JL5QIH7H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-VNBDRJ4Z.js.map → test-RJ4ZF35X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-GX5HTPSF.js.map → test-runs-L2M7WKH7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-H6SCWNMA.js.map → update-PYLVHMRD.js.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../../cli/commands/contracts.ts"],
|
|
4
|
-
"sourcesContent": ["import { EXIT_CODE, SETTINGS_DEFAULTS } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport {\n activateExtensions,\n getActiveExtensionRegistrations,\n loadExtensions,\n} from \"../../core/extensions/index.js\";\nimport type {\n ExtensionRegistrationRegistry,\n RegisteredExtensionCommandDefinition,\n RegisteredExtensionFlagDefinitions,\n} from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n commandOptionFlagLabel,\n resolveCommandOptionPolicyState,\n resolveItemTypeRegistry,\n} from \"../../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport {\n ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n ACTIVITY_FLAG_CONTRACTS,\n AGGREGATE_FLAG_CONTRACTS,\n APPEND_FLAG_CONTRACTS,\n CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n CALENDAR_FLAG_CONTRACTS,\n CLAIM_FLAG_CONTRACTS,\n CLOSE_TASK_FLAG_CONTRACTS,\n COMMENTS_FLAG_CONTRACTS,\n COMMENTS_AUDIT_FLAG_CONTRACTS,\n CLOSE_FLAG_CONTRACTS,\n COMPLETION_FLAG_CONTRACTS,\n CONFIG_FLAG_CONTRACTS,\n CONTRACTS_FLAG_CONTRACTS,\n CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n CONTEXT_FLAG_CONTRACTS,\n CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n CREATE_FLAG_CONTRACTS,\n DELETE_FLAG_CONTRACTS,\n DEPS_FLAG_CONTRACTS,\n DEDUPE_AUDIT_FLAG_CONTRACTS,\n DOCS_FLAG_CONTRACTS,\n EXTENSION_FLAG_CONTRACTS,\n FILES_FLAG_CONTRACTS,\n GC_FLAG_CONTRACTS,\n GET_FLAG_CONTRACTS,\n GUIDE_FLAG_CONTRACTS,\n GLOBAL_FLAG_CONTRACTS,\n HEALTH_FLAG_CONTRACTS,\n HISTORY_FLAG_CONTRACTS,\n HISTORY_REDACT_FLAG_CONTRACTS,\n HISTORY_REPAIR_FLAG_CONTRACTS,\n INSTALL_FLAG_CONTRACTS,\n INIT_FLAG_CONTRACTS,\n LEARNINGS_FLAG_CONTRACTS,\n LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n LIST_FILTER_FLAG_CONTRACTS,\n NORMALIZE_FLAG_CONTRACTS,\n NOTES_FLAG_CONTRACTS,\n PM_EXTENSION_CAPABILITY_CONTRACTS,\n PM_EXTENSION_POLICY_MODE_CONTRACTS,\n PM_EXTENSION_POLICY_SURFACE_CONTRACTS,\n PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS,\n PM_EXTENSION_SERVICE_NAME_CONTRACTS,\n PM_EXTENSION_TRUST_MODE_CONTRACTS,\n PLAN_FLAG_CONTRACTS,\n PM_CORE_COMMAND_NAMES,\n PM_TOOL_ACTIONS,\n PM_TOOL_PARAMETERS_SCHEMA,\n REINDEX_FLAG_CONTRACTS,\n RELEASE_FLAG_CONTRACTS,\n RESTORE_FLAG_CONTRACTS,\n SCHEMA_FLAG_CONTRACTS,\n SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n SEARCH_FLAG_CONTRACTS,\n START_TASK_FLAG_CONTRACTS,\n PAUSE_TASK_FLAG_CONTRACTS,\n TEST_ALL_FLAG_CONTRACTS,\n TEST_FLAG_CONTRACTS,\n TEST_RUNS_FLAG_CONTRACTS,\n UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n UPDATE_FLAG_CONTRACTS,\n UPDATE_MANY_FLAG_CONTRACTS,\n UPGRADE_FLAG_CONTRACTS,\n VALIDATE_FLAG_CONTRACTS,\n compactFlagAliasContracts,\n withFlagAliasMetadata,\n type CliFlagContract,\n type CommanderOptionAliasContract,\n} from \"../../sdk/cli-contracts.js\";\n\nexport interface ContractsCommandOptions {\n action?: string;\n command?: string;\n schemaOnly?: boolean;\n flagsOnly?: boolean;\n availabilityOnly?: boolean;\n runtimeOnly?: boolean;\n full?: boolean;\n}\n\ninterface CommandFlagSurface {\n command: string;\n flags: CliFlagContract[];\n provider?: \"core\" | \"extension\" | \"mixed\";\n extension_sources?: Array<{\n layer: \"global\" | \"project\";\n name: string;\n }>;\n}\n\ninterface CommandAliasSurface {\n canonical: string;\n aliases: string[];\n}\n\nexport interface ContractsResult {\n schema_version: string | null;\n schema_id: string | null;\n selected: {\n action: string | null;\n command: string | null;\n schema_only: boolean;\n flags_only: boolean;\n availability_only: boolean;\n runtime_only: boolean;\n command_scoped: boolean;\n };\n actions?: string[];\n action_availability?: ContractsActionAvailability[];\n commands: string[];\n schema?: Record<string, unknown>;\n schema_omitted_reason?: string;\n command_flags_omitted_reason?: string;\n commander_aliases_omitted_reason?: string;\n command_flags?: CommandFlagSurface[];\n command_aliases?: CommandAliasSurface[];\n commander_aliases?: Record<string, CommanderOptionAliasContract[]>;\n extension_commands?: ExtensionCommandContract[];\n runtime_schema?: {\n statuses: string[];\n open_status: string;\n close_status: string;\n canceled_status: string;\n types: string[];\n fields_by_command: Record<string, string[]>;\n };\n extension_contracts?: {\n capabilities: string[];\n services: string[];\n policy_modes: string[];\n policy_surfaces: string[];\n trust_modes: string[];\n sandbox_profiles: string[];\n manifest_versions: number[];\n compatibility: {\n current: string;\n previous: string[];\n breaking_strategy: string;\n };\n };\n}\n\ntype PmToolAction = (typeof PM_TOOL_ACTIONS)[number];\n\nexport interface ContractsActionAvailability {\n action: string;\n invocable: boolean;\n available: boolean;\n requires_extension: boolean;\n provider: \"core\" | \"extension\";\n disabled_reason: string | null;\n command_path: string | null;\n cli_exposed: boolean;\n policy_state?: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface RuntimeExtensionActionProbe {\n handlers: Set<string>;\n disabledReason: string | null;\n commandDefinitions: RegisteredExtensionCommandDefinition[];\n flagRegistrations: RegisteredExtensionFlagDefinitions[];\n registrations: ExtensionRegistrationRegistry | null;\n policyState: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface ExtensionCommandContract {\n command: string;\n action: string;\n source: {\n layer: \"global\" | \"project\";\n name: string;\n } | null;\n description: string | null;\n intent: string | null;\n arguments: Array<{\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n }>;\n flags: CliFlagContract[];\n examples: string[];\n failure_hints: string[];\n}\n\nconst LIST_COMMAND_NAMES = new Set([\n \"list\",\n \"list-all\",\n \"list-draft\",\n \"list-open\",\n \"list-in-progress\",\n \"list-blocked\",\n \"list-closed\",\n \"list-canceled\",\n]);\n\nconst PACKAGE_OWNED_ACTIONS = new Set<string>([\n \"calendar\",\n \"dedupe-audit\",\n \"guide\",\n \"reindex\",\n \"normalize\",\n \"comments-audit\",\n \"completion\",\n \"test-runs-list\",\n \"test-runs-status\",\n \"test-runs-logs\",\n \"test-runs-stop\",\n \"test-runs-resume\",\n \"templates-list\",\n \"templates-save\",\n \"templates-show\",\n]);\n\nconst PACKAGE_OWNED_COMMANDS = new Set<string>([\n \"cal\",\n \"calendar\",\n \"comments-audit\",\n \"completion\",\n \"completion-tags\",\n \"dedupe-audit\",\n \"guide\",\n \"normalize\",\n \"reindex\",\n \"templates\",\n \"templates list\",\n \"templates save\",\n \"templates show\",\n \"test-runs\",\n \"test-runs list\",\n \"test-runs status\",\n \"test-runs logs\",\n \"test-runs stop\",\n \"test-runs resume\",\n]);\n\nconst PACKAGE_OWNED_COMMAND_INSTALL_HINTS = new Map<string, string>([\n [\"cal\", \"calendar\"],\n [\"calendar\", \"calendar\"],\n [\"comments-audit\", \"governance-audit\"],\n [\"completion\", \"guide-shell\"],\n [\"completion-tags\", \"guide-shell\"],\n [\"dedupe-audit\", \"governance-audit\"],\n [\"guide\", \"guide-shell\"],\n [\"normalize\", \"governance-audit\"],\n [\"reindex\", \"search-advanced\"],\n [\"templates\", \"templates\"],\n [\"templates list\", \"templates\"],\n [\"templates save\", \"templates\"],\n [\"templates show\", \"templates\"],\n [\"test-runs\", \"linked-test-adapters\"],\n [\"test-runs list\", \"linked-test-adapters\"],\n [\"test-runs status\", \"linked-test-adapters\"],\n [\"test-runs logs\", \"linked-test-adapters\"],\n [\"test-runs stop\", \"linked-test-adapters\"],\n [\"test-runs resume\", \"linked-test-adapters\"],\n]);\n\nconst CANONICAL_COMMAND_ALIASES: CommandAliasSurface[] = [\n {\n canonical: \"context\",\n aliases: [\"ctx\"],\n },\n {\n canonical: \"package\",\n aliases: [\"extension\", \"packages\", \"install\"],\n },\n];\n\nconst COMMAND_ALIAS_TO_CANONICAL = new Map(\n CANONICAL_COMMAND_ALIASES.flatMap((entry) =>\n entry.aliases.map((alias) => [alias, entry.canonical] as const),\n ),\n);\n\nfunction resolveActionCommandPath(action: PmToolAction): string | null {\n if (\n PM_CORE_COMMAND_NAMES.includes(\n action as (typeof PM_CORE_COMMAND_NAMES)[number],\n )\n ) {\n return normalizeCommandPath(action);\n }\n if (action.startsWith(\"extension-\")) {\n return normalizeCommandPath(\n `extension ${action.slice(\"extension-\".length)}`,\n );\n }\n if (action.startsWith(\"package-\")) {\n return normalizeCommandPath(`package ${action.slice(\"package-\".length)}`);\n }\n if (action.startsWith(\"test-runs-\")) {\n return normalizeCommandPath(\n `test-runs ${action.slice(\"test-runs-\".length)}`,\n );\n }\n if (action.startsWith(\"templates-\")) {\n return normalizeCommandPath(\n `templates ${action.slice(\"templates-\".length)}`,\n );\n }\n return null;\n}\n\nfunction actionDescriptorMatchesSelectedCommand(\n descriptor: ActionContractDescriptor,\n selectedCommand: string,\n): boolean {\n if (descriptor.command_path === null) {\n return false;\n }\n return splitCommandPathAliases(descriptor.command_path).some((commandPath) => {\n if (commandPath === selectedCommand) {\n return true;\n }\n return commandPath.startsWith(`${selectedCommand} `);\n });\n}\n\nfunction splitCommandPathAliases(commandPath: string): string[] {\n return commandPath\n .split(\"|\")\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0);\n}\n\nfunction resolveScopedCommandsFromActionDescriptors(\n descriptors: ActionContractDescriptor[],\n commandCatalog: string[],\n): string[] {\n const commandSet = new Set(commandCatalog);\n const scoped = new Set<string>();\n for (const descriptor of descriptors) {\n if (!descriptor.command_path) {\n continue;\n }\n for (const commandPath of splitCommandPathAliases(descriptor.command_path)) {\n const tokens = commandPath.split(\" \").filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n continue;\n }\n for (let end = tokens.length; end > 0; end -= 1) {\n const candidate = tokens.slice(0, end).join(\" \");\n if (!commandSet.has(candidate)) {\n continue;\n }\n scoped.add(candidate);\n break;\n }\n }\n }\n return [...scoped].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeToken(value: string | undefined): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim().toLowerCase();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction extractActionBranches(\n schema: Record<string, unknown>,\n): Record<string, unknown>[] {\n const oneOf = schema.oneOf;\n if (!Array.isArray(oneOf)) {\n return [];\n }\n return oneOf.filter(\n (entry): entry is Record<string, unknown> =>\n typeof entry === \"object\" && entry !== null,\n );\n}\n\nfunction filterSchemaByAction(\n schema: Record<string, unknown>,\n action: string | undefined,\n): Record<string, unknown> {\n if (!action) {\n return { ...schema };\n }\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n return (actionProperty as { const?: unknown }).const === action;\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction filterSchemaByActions(\n schema: Record<string, unknown>,\n actions: ReadonlySet<string>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n const actionConst = (actionProperty as { const?: unknown }).const;\n return typeof actionConst === \"string\" && actions.has(actionConst);\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction normalizeCommandPath(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((entry) => entry.length > 0)\n .join(\" \");\n}\n\nfunction normalizeActionNameFromCommand(commandPath: string): string {\n return commandPath.replace(/\\s+/g, \"-\");\n}\n\nfunction toOptionalTrimmedString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n if (!Array.isArray(values)) {\n return [];\n }\n const normalized: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const trimmed = toOptionalTrimmedString(value);\n if (!trimmed || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nfunction toExtensionFlagContract(\n definition: Record<string, unknown>,\n): CliFlagContract | null {\n const longName = toOptionalTrimmedString(definition.long);\n const shortName = toOptionalTrimmedString(definition.short);\n const normalizedLong =\n longName && longName.startsWith(\"--\") && longName.length > 2\n ? longName\n : null;\n const normalizedShort =\n shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\")\n ? shortName\n : null;\n const flag = normalizedLong ?? normalizedShort;\n if (!flag) {\n return null;\n }\n const contract: CliFlagContract = { flag };\n if (normalizedShort && normalizedLong) {\n contract.short = normalizedShort;\n }\n const description = toOptionalTrimmedString(definition.description);\n if (description) {\n contract.description = description;\n }\n if (definition.required === true) {\n contract.required = true;\n }\n if (definition.repeatable === true) {\n contract.repeatable = true;\n }\n const valueName = toOptionalTrimmedString(definition.value_name);\n if (valueName) {\n contract.value_name = valueName;\n }\n const rawValueType = [\n toOptionalTrimmedString(definition.value_type),\n toOptionalTrimmedString(definition.type),\n valueName ? \"string\" : null,\n ].find((candidate): candidate is \"string\" | \"number\" | \"boolean\" =>\n candidate === \"string\" || candidate === \"number\" || candidate === \"boolean\",\n );\n if (rawValueType) {\n contract.value_type = rawValueType;\n }\n return contract;\n}\n\nfunction collectExtensionFlagContractsByCommand(\n registrations: RegisteredExtensionFlagDefinitions[],\n): Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n> {\n const grouped = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n dedupe: Set<string>;\n sourceDedupe: Set<string>;\n }\n >();\n for (const registration of registrations) {\n const commandPath = normalizeCommandPath(registration.target_command);\n if (commandPath.length === 0) {\n continue;\n }\n const bucket = grouped.get(commandPath) ?? {\n flags: [],\n sources: [],\n dedupe: new Set<string>(),\n sourceDedupe: new Set<string>(),\n };\n const sourceKey = `${registration.layer}:${registration.name}`;\n if (!bucket.sourceDedupe.has(sourceKey)) {\n bucket.sourceDedupe.add(sourceKey);\n bucket.sources.push({\n layer: registration.layer,\n name: registration.name,\n });\n }\n for (const definition of registration.flags) {\n const contract = toExtensionFlagContract(definition);\n if (!contract) {\n continue;\n }\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (bucket.dedupe.has(key)) {\n continue;\n }\n bucket.dedupe.add(key);\n bucket.flags.push(contract);\n }\n grouped.set(commandPath, bucket);\n }\n const normalized = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n >();\n for (const [commandPath, bucket] of grouped.entries()) {\n normalized.set(commandPath, {\n flags: bucket.flags,\n sources: bucket.sources.sort((left, right) => {\n const layerOrder = left.layer.localeCompare(right.layer);\n if (layerOrder !== 0) {\n return layerOrder;\n }\n return (left.name ?? \"\").localeCompare(right.name ?? \"\");\n }),\n });\n }\n return normalized;\n}\n\nfunction collectExtensionCommandContracts(\n runtimeProbe: RuntimeExtensionActionProbe,\n): ExtensionCommandContract[] {\n const flagsByCommand = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const definitionsByCommand = new Map<string, ExtensionCommandContract>();\n for (const definition of runtimeProbe.commandDefinitions) {\n const command = normalizeCommandPath(definition.command);\n if (command.length === 0) {\n continue;\n }\n const action =\n toOptionalTrimmedString(definition.action) ??\n normalizeActionNameFromCommand(command);\n const args = Array.isArray(definition.arguments)\n ? definition.arguments\n .map((argument) => {\n const name = toOptionalTrimmedString(argument.name);\n if (!name) {\n return null;\n }\n return {\n name,\n required: argument.required === true,\n variadic: argument.variadic === true,\n description: toOptionalTrimmedString(argument.description),\n };\n })\n .filter(\n (\n argument,\n ): argument is {\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n } => argument !== null,\n )\n : [];\n definitionsByCommand.set(command, {\n command,\n action,\n source: {\n layer: definition.layer,\n name: definition.name,\n },\n description: toOptionalTrimmedString(definition.description),\n intent: toOptionalTrimmedString(definition.intent),\n arguments: args,\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: normalizeStringList(definition.examples),\n failure_hints: normalizeStringList(definition.failure_hints),\n });\n }\n\n const extensionCommands = new Set<string>();\n for (const command of runtimeProbe.handlers) {\n extensionCommands.add(normalizeCommandPath(command));\n }\n for (const command of definitionsByCommand.keys()) {\n extensionCommands.add(command);\n }\n for (const command of flagsByCommand.keys()) {\n extensionCommands.add(command);\n }\n\n const contracts: ExtensionCommandContract[] = [];\n for (const command of [...extensionCommands].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const definition = definitionsByCommand.get(command);\n if (definition) {\n contracts.push({\n ...definition,\n flags:\n definition.flags.length > 0\n ? definition.flags\n : (flagsByCommand.get(command)?.flags ?? []),\n });\n continue;\n }\n contracts.push({\n command,\n action: normalizeActionNameFromCommand(command),\n source: null,\n description: null,\n intent: null,\n arguments: [],\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: [],\n failure_hints: [],\n });\n }\n return contracts;\n}\n\nfunction extensionSchemaPropertyNameFromFlag(\n flag: CliFlagContract,\n): string | null {\n const normalized = flag.flag.replace(/^-+/, \"\").trim();\n if (normalized.length === 0) {\n return null;\n }\n const camelCased = normalized.replace(\n /-([a-z0-9])/g,\n (_match, char: string) => char.toUpperCase(),\n );\n const cleaned = camelCased.replace(/[^a-zA-Z0-9]/g, \"\");\n return cleaned.length > 0 ? cleaned : null;\n}\n\nfunction buildExtensionActionSchemaBranch(\n contract: ExtensionCommandContract,\n): Record<string, unknown> {\n const commands = contract.command\n .split(\"|\")\n .map((command) => command.trim())\n .filter((command) => command.length > 0);\n const properties: Record<string, unknown> = {\n action: {\n type: \"string\",\n const: contract.action,\n description:\n contract.intent ??\n contract.description ??\n `Invoke extension command '${contract.command}'.`,\n },\n };\n const required: string[] = [\"action\"];\n for (const argument of contract.arguments) {\n if (argument.variadic) {\n properties[argument.name] = {\n type: \"array\",\n items: { type: \"string\" },\n description:\n argument.description ??\n `Variadic argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n } else {\n properties[argument.name] = {\n type: \"string\",\n description:\n argument.description ??\n `Argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n }\n if (argument.required) {\n required.push(argument.name);\n }\n }\n for (const flag of contract.flags) {\n const propertyName = extensionSchemaPropertyNameFromFlag(flag);\n if (!propertyName || properties[propertyName] !== undefined) {\n continue;\n }\n const valueType = flag.value_type ?? \"boolean\";\n const schemaType =\n valueType === \"boolean\" ? \"boolean\" : valueType === \"number\" ? [\"number\", \"string\"] : \"string\";\n properties[propertyName] = {\n type: flag.repeatable ? \"array\" : schemaType,\n ...(flag.repeatable ? { items: { type: schemaType } } : {}),\n description: flag.description ?? `Extension option '${flag.flag}' for action '${contract.action}'.`,\n };\n if (flag.required === true) {\n required.push(propertyName);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n additionalProperties: true,\n \"x-extension-source\": contract.source,\n \"x-extension-command\": commands[0] ?? contract.command,\n \"x-extension-commands\": commands,\n };\n}\n\nfunction mergeExtensionFlagContract(existing: CliFlagContract, incoming: CliFlagContract): void {\n existing.description ??= incoming.description;\n existing.value_name ??= incoming.value_name;\n existing.value_type ??= incoming.value_type;\n if (incoming.required === true) {\n existing.required = true;\n }\n if (incoming.repeatable === true) {\n existing.repeatable = true;\n }\n}\n\nfunction mergeExtensionContractsByAction(\n contracts: ExtensionCommandContract[],\n): ExtensionCommandContract[] {\n const byAction = new Map<string, ExtensionCommandContract>();\n for (const contract of contracts) {\n const existing = byAction.get(contract.action);\n if (!existing) {\n byAction.set(contract.action, {\n ...contract,\n flags: [...contract.flags],\n examples: [...contract.examples],\n failure_hints: [...contract.failure_hints],\n });\n continue;\n }\n existing.command = [...new Set([existing.command, contract.command])]\n .sort((left, right) => left.localeCompare(right))\n .join(\"|\");\n existing.arguments = existing.arguments.length >= contract.arguments.length ? existing.arguments : contract.arguments;\n const flagKeys = new Set(existing.flags.map((flag) => `${flag.flag}|${flag.short ?? \"\"}`));\n for (const flag of contract.flags) {\n const key = `${flag.flag}|${flag.short ?? \"\"}`;\n if (!flagKeys.has(key)) {\n flagKeys.add(key);\n existing.flags.push(flag);\n } else {\n const existingFlag = existing.flags.find((candidate) => `${candidate.flag}|${candidate.short ?? \"\"}` === key);\n if (existingFlag) {\n mergeExtensionFlagContract(existingFlag, flag);\n }\n }\n }\n existing.examples = [...new Set([...existing.examples, ...contract.examples])];\n existing.failure_hints = [...new Set([...existing.failure_hints, ...contract.failure_hints])];\n }\n return [...byAction.values()].sort((left, right) => left.action.localeCompare(right.action));\n}\n\nasync function resolveRuntimeExtensionActionProbe(\n global: GlobalOptions,\n): Promise<RuntimeExtensionActionProbe> {\n const defaultPolicyState = {\n mode: SETTINGS_DEFAULTS.extensions.policy.mode,\n trust_mode: SETTINGS_DEFAULTS.extensions.policy.trust_mode,\n default_sandbox_profile:\n SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile,\n };\n if (global.noExtensions) {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extensions_disabled\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return {\n handlers: new Set<string>(),\n disabledReason: null,\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const handlers = new Set<string>(\n activationResult.commands.handlers.map((entry) =>\n normalizeCommandPath(entry.command),\n ),\n );\n return {\n handlers,\n disabledReason: null,\n commandDefinitions: activationResult.registrations.commands,\n flagRegistrations: activationResult.registrations.flags,\n registrations: activationResult.registrations,\n policyState: {\n mode: loadResult.policy.mode,\n trust_mode: loadResult.policy.trust_mode,\n default_sandbox_profile: loadResult.policy.default_sandbox_profile,\n },\n };\n } catch {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extension_runtime_probe_failed\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n}\n\ninterface ActionContractDescriptor {\n action: string;\n provider: \"core\" | \"extension\";\n requires_extension: boolean;\n command_path: string | null;\n}\n\nfunction collectActionContractDescriptors(\n extensionContracts: ExtensionCommandContract[],\n): ActionContractDescriptor[] {\n const descriptors = new Map<string, ActionContractDescriptor>();\n for (const action of PM_TOOL_ACTIONS) {\n if (PACKAGE_OWNED_ACTIONS.has(action)) {\n continue;\n }\n const commandPath = resolveActionCommandPath(action as PmToolAction);\n descriptors.set(action, {\n action,\n provider: \"core\",\n requires_extension: false,\n command_path: commandPath,\n });\n }\n for (const contract of extensionContracts) {\n if (descriptors.has(contract.action)) {\n continue;\n }\n descriptors.set(contract.action, {\n action: contract.action,\n provider: \"extension\",\n requires_extension: true,\n command_path: normalizeCommandPath(contract.command),\n });\n }\n return [...descriptors.values()].sort((left, right) =>\n (left.action ?? \"\").localeCompare(right.action ?? \"\"),\n );\n}\n\nfunction resolveActionAvailability(\n descriptor: ActionContractDescriptor,\n runtimeProbe: RuntimeExtensionActionProbe,\n): ContractsActionAvailability {\n if (descriptor.provider === \"core\" && !descriptor.requires_extension) {\n return {\n action: descriptor.action,\n invocable: true,\n available: true,\n requires_extension: false,\n provider: \"core\",\n disabled_reason: null,\n command_path: descriptor.command_path,\n cli_exposed: descriptor.command_path !== null,\n };\n }\n\n const commandPaths = descriptor.command_path\n ? splitCommandPathAliases(descriptor.command_path)\n : [];\n const extensionCommandAvailable = commandPaths.some((commandPath) =>\n runtimeProbe.handlers.has(commandPath),\n );\n const invocable =\n runtimeProbe.disabledReason === null && extensionCommandAvailable;\n return {\n action: descriptor.action,\n invocable,\n available: invocable,\n requires_extension: true,\n provider: \"extension\",\n disabled_reason: invocable\n ? null\n : (runtimeProbe.disabledReason ?? \"extension_command_not_registered\"),\n command_path: descriptor.command_path,\n cli_exposed: extensionCommandAvailable,\n policy_state: {\n mode: runtimeProbe.policyState.mode,\n trust_mode: runtimeProbe.policyState.trust_mode,\n default_sandbox_profile: runtimeProbe.policyState.default_sandbox_profile,\n },\n };\n}\n\nfunction resolveCoreCommandFlags(command: string): CliFlagContract[] {\n if (command === \"init\") {\n return INIT_FLAG_CONTRACTS;\n }\n if (command === \"config\") {\n return CONFIG_FLAG_CONTRACTS;\n }\n if (\n command === \"extension\" ||\n command === \"package\" ||\n command === \"packages\"\n ) {\n return EXTENSION_FLAG_CONTRACTS;\n }\n if (command === \"install\") {\n return INSTALL_FLAG_CONTRACTS;\n }\n if (command === \"create\") {\n return CREATE_FLAG_CONTRACTS;\n }\n if (command === \"update\") {\n return UPDATE_FLAG_CONTRACTS;\n }\n if (command === \"update-many\") {\n return UPDATE_MANY_FLAG_CONTRACTS;\n }\n if (command === \"upgrade\") {\n return UPGRADE_FLAG_CONTRACTS;\n }\n if (command === \"normalize\") {\n return NORMALIZE_FLAG_CONTRACTS;\n }\n if (command === \"calendar\" || command === \"cal\") {\n return CALENDAR_FLAG_CONTRACTS;\n }\n if (command === \"context\" || command === \"ctx\") {\n return CONTEXT_FLAG_CONTRACTS;\n }\n if (command === \"get\") {\n return GET_FLAG_CONTRACTS;\n }\n if (command === \"search\") {\n return SEARCH_FLAG_CONTRACTS;\n }\n if (command === \"aggregate\") {\n return AGGREGATE_FLAG_CONTRACTS;\n }\n if (command === \"dedupe-audit\") {\n return DEDUPE_AUDIT_FLAG_CONTRACTS;\n }\n if (command === \"deps\") {\n return DEPS_FLAG_CONTRACTS;\n }\n if (command === \"guide\") {\n return GUIDE_FLAG_CONTRACTS;\n }\n if (command === \"reindex\") {\n return REINDEX_FLAG_CONTRACTS;\n }\n if (command === \"history\") {\n return HISTORY_FLAG_CONTRACTS;\n }\n if (command === \"history-redact\") {\n return HISTORY_REDACT_FLAG_CONTRACTS;\n }\n if (command === \"history-repair\") {\n return HISTORY_REPAIR_FLAG_CONTRACTS;\n }\n if (command === \"schema\") {\n return SCHEMA_FLAG_CONTRACTS;\n }\n if (command === \"plan\") {\n return PLAN_FLAG_CONTRACTS;\n }\n if (command === \"restore\") {\n return RESTORE_FLAG_CONTRACTS;\n }\n if (command === \"delete\") {\n return DELETE_FLAG_CONTRACTS;\n }\n if (command === \"close\") {\n return CLOSE_FLAG_CONTRACTS;\n }\n if (command === \"append\") {\n return APPEND_FLAG_CONTRACTS;\n }\n if (command === \"claim\") {\n return CLAIM_FLAG_CONTRACTS;\n }\n if (command === \"release\") {\n return RELEASE_FLAG_CONTRACTS;\n }\n if (command === \"start-task\") {\n return START_TASK_FLAG_CONTRACTS;\n }\n if (command === \"pause-task\") {\n return PAUSE_TASK_FLAG_CONTRACTS;\n }\n if (command === \"close-task\") {\n return CLOSE_TASK_FLAG_CONTRACTS;\n }\n if (command === \"comments\") {\n return COMMENTS_FLAG_CONTRACTS;\n }\n if (command === \"notes\") {\n return NOTES_FLAG_CONTRACTS;\n }\n if (command === \"learnings\") {\n return LEARNINGS_FLAG_CONTRACTS;\n }\n if (command === \"files\") {\n return FILES_FLAG_CONTRACTS;\n }\n if (command === \"docs\") {\n return DOCS_FLAG_CONTRACTS;\n }\n if (command === \"test\") {\n return TEST_FLAG_CONTRACTS;\n }\n if (command === \"test-all\") {\n return TEST_ALL_FLAG_CONTRACTS;\n }\n if (command === \"test-runs\") {\n return TEST_RUNS_FLAG_CONTRACTS;\n }\n if (command === \"gc\") {\n return GC_FLAG_CONTRACTS;\n }\n if (command === \"validate\") {\n return VALIDATE_FLAG_CONTRACTS;\n }\n if (command === \"comments-audit\") {\n return COMMENTS_AUDIT_FLAG_CONTRACTS;\n }\n if (command === \"health\") {\n return HEALTH_FLAG_CONTRACTS;\n }\n if (command === \"contracts\") {\n return CONTRACTS_FLAG_CONTRACTS;\n }\n if (command === \"completion\") {\n return COMPLETION_FLAG_CONTRACTS;\n }\n if (command === \"activity\") {\n return ACTIVITY_FLAG_CONTRACTS;\n }\n if (LIST_COMMAND_NAMES.has(command)) {\n return LIST_FILTER_FLAG_CONTRACTS;\n }\n return GLOBAL_FLAG_CONTRACTS;\n}\n\nfunction normalizeCommandForRuntimeFieldFlags(command: string): string {\n if (LIST_COMMAND_NAMES.has(command)) {\n return \"list\";\n }\n if (command === \"cal\") {\n return \"calendar\";\n }\n if (command === \"ctx\") {\n return \"context\";\n }\n if (command === \"update-many\") {\n return \"update\";\n }\n return command;\n}\n\nfunction toRuntimeLongFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return trimmed;\n }\n if (trimmed.startsWith(\"-\")) {\n return null;\n }\n return `--${trimmed}`;\n}\n\nfunction toRuntimeShortFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return null;\n }\n if (trimmed.startsWith(\"-\")) {\n return trimmed;\n }\n return null;\n}\n\nfunction buildRuntimeFieldFlagContracts(\n fieldRegistry: RuntimeFieldRegistry,\n): Map<string, CliFlagContract[]> {\n const buckets = new Map<\n string,\n { flags: CliFlagContract[]; seen: Set<string> }\n >();\n for (const definition of fieldRegistry.definitions) {\n const primaryFlag = toRuntimeLongFlagToken(definition.cli_flag);\n if (!primaryFlag) {\n continue;\n }\n const shortAlias = definition.cli_aliases\n .map((alias) => toRuntimeShortFlagToken(alias))\n .find((alias) => alias !== null);\n const longAliases = definition.cli_aliases\n .map((alias) => toRuntimeLongFlagToken(alias))\n .filter(\n (alias): alias is string => alias !== null && alias !== primaryFlag,\n );\n for (const command of definition.commands) {\n const bucket = buckets.get(command) ?? {\n flags: [],\n seen: new Set<string>(),\n };\n const primaryContract: CliFlagContract = shortAlias\n ? { flag: primaryFlag, short: shortAlias }\n : { flag: primaryFlag };\n const primaryKey = `${primaryContract.flag}|${primaryContract.short ?? \"\"}`;\n if (!bucket.seen.has(primaryKey)) {\n bucket.seen.add(primaryKey);\n bucket.flags.push(primaryContract);\n }\n for (const alias of longAliases) {\n const key = `${alias}|`;\n if (bucket.seen.has(key)) {\n continue;\n }\n bucket.seen.add(key);\n bucket.flags.push({ flag: alias });\n }\n buckets.set(command, bucket);\n }\n }\n const result = new Map<string, CliFlagContract[]>();\n for (const [command, bucket] of buckets.entries()) {\n result.set(command, compactFlagAliasContracts(bucket.flags));\n }\n return result;\n}\n\nfunction mergeFlagContracts(\n primary: CliFlagContract[],\n secondary: CliFlagContract[],\n): CliFlagContract[] {\n const merged: CliFlagContract[] = [];\n const seen = new Set<string>();\n for (const contract of [...primary, ...secondary]) {\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (seen.has(key)) {\n continue;\n }\n seen.add(key);\n merged.push(contract);\n }\n return compactFlagAliasContracts(merged);\n}\n\nfunction buildCommandFlagSurface(\n commands: string[],\n extensionFlagMap: ReturnType<typeof collectExtensionFlagContractsByCommand>,\n runtimeFieldFlagMap: Map<string, CliFlagContract[]>,\n): CommandFlagSurface[] {\n return commands\n .map((command) => {\n const isCoreCommand =\n PM_CORE_COMMAND_NAMES.includes(\n command as (typeof PM_CORE_COMMAND_NAMES)[number],\n ) && !PACKAGE_OWNED_COMMANDS.has(command);\n const coreFlags = isCoreCommand ? resolveCoreCommandFlags(command) : [];\n const runtimeFlags =\n runtimeFieldFlagMap.get(\n normalizeCommandForRuntimeFieldFlags(command),\n ) ?? [];\n const extensionFlags = extensionFlagMap.get(command);\n const coreWithRuntime = mergeFlagContracts(coreFlags, runtimeFlags);\n const flags = mergeFlagContracts(\n coreWithRuntime,\n extensionFlags?.flags ?? [],\n );\n const provider: CommandFlagSurface[\"provider\"] =\n coreFlags.length > 0 && (extensionFlags?.flags.length ?? 0) > 0\n ? \"mixed\"\n : isCoreCommand\n ? \"core\"\n : \"extension\";\n return {\n command,\n flags,\n provider,\n extension_sources: extensionFlags?.sources,\n };\n })\n .sort((left, right) => left.command.localeCompare(right.command));\n}\n\nfunction compactCommandAliasSurface(commands: string[]): string[] {\n const commandSet = new Set(commands);\n const result: string[] = [];\n for (const command of commands) {\n const canonical = COMMAND_ALIAS_TO_CANONICAL.get(command);\n if (canonical && commandSet.has(canonical)) {\n continue;\n }\n result.push(command);\n }\n return result;\n}\n\nfunction buildCommandAliasSurface(commands: string[]): CommandAliasSurface[] {\n const commandSet = new Set(commands);\n return CANONICAL_COMMAND_ALIASES.map((entry) => ({\n canonical: entry.canonical,\n aliases: entry.aliases.filter((alias) => commandSet.has(alias)),\n })).filter(\n (entry) => commandSet.has(entry.canonical) && entry.aliases.length > 0,\n );\n}\n\nfunction buildCommanderAliasSurface(): Record<\n string,\n CommanderOptionAliasContract[]\n> {\n return {\n create_string_options: CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n create_repeatable_options: CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n update_string_options: UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n update_repeatable_options: UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n list_string_options: LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n search_string_options: SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n calendar_string_options: CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n context_string_options: CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n activity_string_options: ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n };\n}\n\nfunction resolveCreateRequiredOptionContract(\n typeDefinition: ReturnType<typeof resolveItemTypeRegistry>[\"by_type\"][string],\n createMode: \"strict\" | \"progressive\",\n): {\n required_option_keys: string[];\n required_flags: string[];\n required_type_options: string[];\n policy_errors: string[];\n} {\n const baseRequiredOptions = new Set<string>([\"title\", \"type\"]);\n if (createMode === \"strict\") {\n for (const field of typeDefinition.required_create_fields) {\n baseRequiredOptions.add(field);\n }\n for (const field of typeDefinition.required_create_repeatables) {\n baseRequiredOptions.add(field);\n }\n }\n const policyState = resolveCommandOptionPolicyState(\n typeDefinition,\n \"create\",\n baseRequiredOptions,\n );\n const requiredOptionKeys = [...new Set(policyState.required)].sort(\n (left, right) => left.localeCompare(right),\n );\n const requiredFlags = [\n ...new Set(\n requiredOptionKeys.map((option) =>\n commandOptionFlagLabel(\"create\", option),\n ),\n ),\n ].sort((left, right) => left.localeCompare(right));\n const requiredTypeOptions = [\n ...new Set(\n typeDefinition.options\n .filter((option) => option.required === true)\n .map((option) => option.key),\n ),\n ].sort((left, right) => left.localeCompare(right));\n return {\n required_option_keys: requiredOptionKeys,\n required_flags: requiredFlags,\n required_type_options: requiredTypeOptions,\n policy_errors: [...new Set(policyState.errors)].sort((left, right) =>\n left.localeCompare(right),\n ),\n };\n}\n\nfunction buildCreateRequiredOptionContracts(\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n): Record<string, unknown> {\n const byTypeStrict: Record<string, unknown> = {};\n const byTypeProgressive: Record<string, unknown> = {};\n for (const typeName of [...typeRegistry.types].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const typeDefinition = typeRegistry.by_type[typeName];\n byTypeStrict[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"strict\",\n );\n byTypeProgressive[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"progressive\",\n );\n }\n return {\n default_create_mode: \"strict\",\n by_create_mode: {\n strict: {\n by_type: byTypeStrict,\n },\n progressive: {\n by_type: byTypeProgressive,\n },\n },\n };\n}\n\nfunction attachCreateRequiredOptionContracts(\n schema: Record<string, unknown>,\n metadata: Record<string, unknown>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n if (branches.length === 0) {\n return schema;\n }\n let touched = false;\n const enrichedBranches = branches.map((branch) => {\n const properties = branch.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return branch;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return branch;\n }\n if ((actionProperty as { const?: unknown }).const !== \"create\") {\n return branch;\n }\n touched = true;\n return {\n ...branch,\n \"x-create-required-options\": metadata,\n };\n });\n if (!touched) {\n return schema;\n }\n return {\n ...schema,\n oneOf: enrichedBranches,\n };\n}\n\nexport async function runContracts(\n options: ContractsCommandOptions,\n global: GlobalOptions,\n): Promise<ContractsResult> {\n const selectedAction = normalizeToken(options.action);\n const selectedCommand = normalizeToken(options.command);\n const schemaOnly = options.schemaOnly === true;\n const flagsOnly = options.flagsOnly === true;\n const availabilityOnly = options.availabilityOnly === true;\n const runtimeOnly = options.runtimeOnly === true;\n const fullOutput = options.full === true;\n const unfilteredDefaultBriefMode =\n !fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly && !selectedAction && !selectedCommand;\n // Agent token-cost guard: when no filter and no projection flag and not --full,\n // skip the giant schema oneOf union (the 200KB+ chunk). Restore via --full\n // or by scoping to a specific --command/--action.\n const omitUnfilteredSchema = unfilteredDefaultBriefMode;\n const omitUnfilteredCommandFlags = unfilteredDefaultBriefMode;\n const omitUnfilteredCommanderAliases = unfilteredDefaultBriefMode;\n const projectionFlagsEnabled = [\n schemaOnly,\n flagsOnly,\n availabilityOnly,\n ].filter((value) => value).length;\n if (projectionFlagsEnabled > 1) {\n throw new PmCliError(\n \"Choose only one projection flag: --schema-only, --flags-only, or --availability-only.\",\n EXIT_CODE.USAGE,\n );\n }\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n let settings = structuredClone(SETTINGS_DEFAULTS);\n try {\n settings = await readSettings(pmRoot);\n } catch {\n settings = structuredClone(SETTINGS_DEFAULTS);\n }\n const runtimeProbe = await resolveRuntimeExtensionActionProbe(global);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n runtimeProbe.registrations ?? getActiveExtensionRegistrations(),\n );\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFlagMap =\n buildRuntimeFieldFlagContracts(runtimeFieldRegistry);\n const createRequiredOptionContracts =\n buildCreateRequiredOptionContracts(typeRegistry);\n const extensionContracts = collectExtensionCommandContracts(runtimeProbe);\n const mergedExtensionContracts = mergeExtensionContractsByAction(extensionContracts);\n const extensionFlagMap = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const actionDescriptors =\n collectActionContractDescriptors(mergedExtensionContracts);\n const actionNames = new Set(actionDescriptors.map((entry) => entry.action));\n if (selectedAction && !actionNames.has(selectedAction)) {\n throw new PmCliError(\n `Unknown action: \"${options.action}\".`,\n EXIT_CODE.USAGE,\n );\n }\n\n const commandCatalog = [\n ...new Set([\n ...PM_CORE_COMMAND_NAMES.filter(\n (entry) => !PACKAGE_OWNED_COMMANDS.has(entry),\n ),\n ...mergedExtensionContracts.flatMap((entry) => entry.command.split(\"|\")),\n ]),\n ]\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandNames = new Set(commandCatalog);\n if (selectedCommand && !commandNames.has(selectedCommand)) {\n const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selectedCommand);\n if (packageHint) {\n throw new PmCliError(\n `Unknown command: \"${options.command}\". Command \"${selectedCommand}\" is provided by the optional \"${packageHint}\" package. Run \"pm install ${packageHint} --project\" and retry.`,\n EXIT_CODE.USAGE,\n {\n examples: [`pm install ${packageHint} --project`, `pm contracts --command ${selectedCommand} --flags-only --json`],\n nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],\n recovery: {\n suggested_retry: `pm install ${packageHint} --project`,\n },\n },\n );\n }\n throw new PmCliError(\n `Unknown command: \"${options.command}\".`,\n EXIT_CODE.USAGE,\n );\n }\n const commandScopedDescriptors = selectedCommand\n ? actionDescriptors.filter((descriptor) =>\n actionDescriptorMatchesSelectedCommand(descriptor, selectedCommand),\n )\n : actionDescriptors;\n if (\n selectedCommand &&\n selectedAction &&\n !commandScopedDescriptors.some(\n (descriptor) => descriptor.action === selectedAction,\n )\n ) {\n throw new PmCliError(\n `Action \"${options.action}\" is not mapped to command \"${options.command}\" in contracts output.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const schema = PM_TOOL_PARAMETERS_SCHEMA as Record<string, unknown>;\n const schemaBranches = extractActionBranches(schema);\n const schemaActionSet = new Set(\n schemaBranches\n .map((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return null;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return null;\n }\n const actionConst = (actionProperty as { const?: unknown }).const;\n return typeof actionConst === \"string\" ? actionConst : null;\n })\n .filter((entry): entry is string => entry !== null),\n );\n const extensionBranches = mergedExtensionContracts\n .filter((contract) => !schemaActionSet.has(contract.action))\n .map((contract) => buildExtensionActionSchemaBranch(contract));\n const mergedSchema =\n extensionBranches.length > 0\n ? {\n ...schema,\n oneOf: [...schemaBranches, ...extensionBranches],\n }\n : schema;\n\n const scopedActionDescriptors = selectedAction\n ? commandScopedDescriptors.filter(\n (descriptor) => descriptor.action === selectedAction,\n )\n : commandScopedDescriptors;\n const allActionAvailability = scopedActionDescriptors.map((descriptor) =>\n resolveActionAvailability(descriptor, runtimeProbe),\n );\n const actionAvailability =\n runtimeOnly && !selectedAction\n ? allActionAvailability.filter((entry) => entry.invocable)\n : allActionAvailability;\n const actions = actionAvailability.map((entry) => entry.action);\n const descriptorActionSet = new Set(\n actionDescriptors.map((descriptor) => descriptor.action),\n );\n let filteredSchema = selectedAction\n ? filterSchemaByAction(mergedSchema, selectedAction)\n : selectedCommand\n ? filterSchemaByActions(\n mergedSchema,\n new Set(\n scopedActionDescriptors.map((descriptor) => descriptor.action),\n ),\n )\n : filterSchemaByActions(mergedSchema, descriptorActionSet);\n if (runtimeOnly && !selectedAction) {\n filteredSchema = filterSchemaByActions(filteredSchema, new Set(actions));\n }\n const includeSchemaSurface = !flagsOnly && !availabilityOnly;\n if (includeSchemaSurface) {\n filteredSchema = attachCreateRequiredOptionContracts(\n filteredSchema,\n createRequiredOptionContracts,\n );\n }\n const commands =\n selectedCommand !== undefined\n ? [selectedCommand]\n : selectedAction\n ? resolveScopedCommandsFromActionDescriptors(\n scopedActionDescriptors,\n commandCatalog,\n )\n : commandCatalog;\n const outputCommands =\n flagsOnly && selectedCommand === undefined && selectedAction === undefined\n ? compactCommandAliasSurface(commands)\n : commands;\n const commandAliases = buildCommandAliasSurface(commands);\n const extensionCommandContracts = selectedCommand\n ? extensionContracts.filter((entry) => entry.command === selectedCommand)\n : selectedAction\n ? extensionContracts.filter((entry) =>\n outputCommands.includes(normalizeCommandPath(entry.command)),\n )\n : extensionContracts;\n\n const includeRuntimeContractSections = !(flagsOnly && !fullOutput);\n const result: ContractsResult = {\n schema_version:\n typeof mergedSchema[\"x-schema-version\"] === \"string\"\n ? (mergedSchema[\"x-schema-version\"] as string)\n : null,\n schema_id:\n typeof mergedSchema.$id === \"string\"\n ? (mergedSchema.$id as string)\n : null,\n selected: {\n action: selectedAction ?? null,\n command: selectedCommand ?? null,\n schema_only: schemaOnly,\n flags_only: flagsOnly,\n availability_only: availabilityOnly,\n runtime_only: runtimeOnly,\n command_scoped: selectedCommand !== undefined,\n },\n commands: outputCommands,\n };\n\n if (includeRuntimeContractSections) {\n result.runtime_schema = {\n statuses: statusRegistry.definitions.map((definition) => definition.id),\n open_status: statusRegistry.open_status,\n close_status: statusRegistry.close_status,\n canceled_status: statusRegistry.canceled_status,\n types: [...typeRegistry.types],\n fields_by_command: Object.fromEntries(\n [...runtimeFieldRegistry.command_to_fields.entries()].map(\n ([command, definitions]) => [\n command,\n [\n ...new Set(\n definitions.map((definition) => `--${definition.cli_flag}`),\n ),\n ].sort((left, right) => left.localeCompare(right)),\n ],\n ),\n ),\n };\n result.extension_contracts = {\n capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],\n services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],\n policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],\n policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],\n trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],\n sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],\n manifest_versions: [1, 2],\n compatibility: {\n current: \"v2\",\n previous: [\"v1\"],\n breaking_strategy: \"versioned_breaking\",\n },\n };\n }\n\n if (!flagsOnly) {\n result.actions = actions;\n result.action_availability = actionAvailability;\n }\n\n if (includeSchemaSurface && !omitUnfilteredSchema) {\n result.schema = filteredSchema;\n result.extension_commands = extensionCommandContracts;\n } else if (includeSchemaSurface && omitUnfilteredSchema) {\n result.schema_omitted_reason = \"unfiltered_default_brief\";\n result.extension_commands = extensionCommandContracts;\n }\n\n if (!schemaOnly && !availabilityOnly) {\n if (!omitUnfilteredCommandFlags) {\n result.command_flags = buildCommandFlagSurface(\n outputCommands,\n extensionFlagMap,\n runtimeFieldFlagMap,\n );\n } else {\n result.command_flags_omitted_reason = \"unfiltered_default_brief\";\n }\n if (commandAliases.length > 0) {\n result.command_aliases = commandAliases;\n }\n }\n\n if (!schemaOnly && !flagsOnly && !availabilityOnly) {\n if (!omitUnfilteredCommanderAliases) {\n result.commander_aliases = buildCommanderAliasSurface();\n } else {\n result.commander_aliases_omitted_reason = \"unfiltered_default_brief\";\n }\n }\n\n return result;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["global"]
|
|
7
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
parseDocs,
|
|
3
|
-
parseFiles,
|
|
4
|
-
parseLogSeed,
|
|
5
|
-
parseTests,
|
|
6
|
-
runCreate
|
|
7
|
-
} from "./chunk-JTWRXG4B.js";
|
|
8
|
-
import "./chunk-WJ2NAC37.js";
|
|
9
|
-
import "./chunk-7Y53ZJIQ.js";
|
|
10
|
-
import "./chunk-NGN7UV5K.js";
|
|
11
|
-
import "./chunk-AKOOMO3T.js";
|
|
12
|
-
import "./chunk-5HSEP75M.js";
|
|
13
|
-
import "./chunk-3HUE7XOF.js";
|
|
14
|
-
import "./chunk-BUPWJ3IJ.js";
|
|
15
|
-
import "./chunk-4AEZR5EJ.js";
|
|
16
|
-
import "./chunk-CEFIVZPG.js";
|
|
17
|
-
import "./chunk-MD7K4JYF.js";
|
|
18
|
-
import "./chunk-WDPXDQFG.js";
|
|
19
|
-
import "./chunk-PVNQLCIS.js";
|
|
20
|
-
import "./chunk-LSXGH6NE.js";
|
|
21
|
-
export {
|
|
22
|
-
parseDocs,
|
|
23
|
-
parseFiles,
|
|
24
|
-
parseLogSeed,
|
|
25
|
-
parseTests,
|
|
26
|
-
runCreate
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=create-PZVHRIZQ.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../../cli/commands/get.ts"],
|
|
4
|
-
"sourcesContent": ["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeFieldRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE, FRONT_MATTER_KEY_ORDER } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { buildItemNotFoundError, locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getHistoryPath, getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter, LinkedDoc, LinkedFile, LinkedTest } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\n\ninterface ClaimHistoryContext {\n ts: string;\n author: string;\n message: string | null;\n}\n\ninterface ClaimHistoryEntry {\n op: string;\n ts: string;\n author: string;\n message?: string;\n}\n\ninterface ClaimStateContext {\n claimed: boolean;\n assignee: string | null;\n last_claim: ClaimHistoryContext | null;\n last_release: ClaimHistoryContext | null;\n}\n\nexport interface GetResult {\n item: Partial<ItemFrontMatter>;\n body?: string;\n linked?: {\n files: LinkedFile[];\n tests: LinkedTest[];\n docs: LinkedDoc[];\n };\n claim_state?: ClaimStateContext;\n}\n\nconst GET_DEPTH_VALUES = [\"brief\", \"standard\", \"deep\"] as const;\n\ntype GetDepth = (typeof GET_DEPTH_VALUES)[number];\n\nexport interface GetOptions {\n depth?: string;\n fields?: string;\n full?: boolean;\n}\n\nfunction toClaimHistoryContext(\n entry: ClaimHistoryEntry,\n): ClaimHistoryContext {\n return {\n ts: entry.ts,\n author: entry.author,\n message: entry.message ?? null,\n };\n}\n\nfunction resolveClaimStateContext(\n assigneeValue: string | undefined,\n history: ClaimHistoryEntry[],\n): ClaimStateContext {\n const assignee = assigneeValue?.trim();\n const normalizedAssignee = assignee && assignee.length > 0 ? assignee : null;\n const lastClaim = [...history].reverse().find((entry) => entry.op === \"claim\");\n const lastRelease = [...history].reverse().find((entry) => entry.op === \"release\");\n return {\n claimed: normalizedAssignee !== null,\n assignee: normalizedAssignee,\n last_claim: lastClaim ? toClaimHistoryContext(lastClaim) : null,\n last_release: lastRelease ? toClaimHistoryContext(lastRelease) : null,\n };\n}\n\nfunction parseGetDepth(raw: string | undefined): GetDepth {\n if (raw === undefined || raw.trim().length === 0) {\n return \"deep\";\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"full\") {\n return \"deep\";\n }\n if (GET_DEPTH_VALUES.includes(normalized as GetDepth)) {\n return normalized as GetDepth;\n }\n throw new PmCliError(\"Get --depth must be one of brief|standard|deep|full\", EXIT_CODE.USAGE);\n}\n\nfunction projectItemForDepth(item: ItemFrontMatter, depth: GetDepth): Partial<ItemFrontMatter> {\n if (depth === \"deep\") {\n return item;\n }\n const {\n comments: _comments,\n notes: _notes,\n learnings: _learnings,\n files: _files,\n tests: _tests,\n docs: _docs,\n reminders: _reminders,\n events: _events,\n ...projected\n } = item;\n return projected;\n}\n\nfunction parseGetFields(raw: string | undefined): string[] | null {\n if (raw === undefined) {\n return null;\n }\n const fields = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (fields.length === 0) {\n throw new PmCliError(\"Get --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return fields;\n}\n\nfunction normalizeGetField(field: string): string {\n return field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n}\n\nfunction validateGetFields(fields: string[] | null, runtimeMetadataKeys: Iterable<string>): void {\n if (fields === null) {\n return;\n }\n const itemFields = new Set([...FRONT_MATTER_KEY_ORDER, ...runtimeMetadataKeys]);\n const allowedRootFields = new Set([\"body\", \"linked\", \"claim_state\"]);\n const allowedLinkedFields = new Set([\"linked.files\", \"linked.tests\", \"linked.docs\"]);\n const allowedClaimStateFields = new Set([\"claim_state.claimed\", \"claim_state.assignee\", \"claim_state.last_claim\", \"claim_state.last_release\"]);\n const unknown = fields.filter((field) => {\n const normalized = normalizeGetField(field);\n return (\n !itemFields.has(normalized) &&\n !allowedRootFields.has(normalized) &&\n !allowedLinkedFields.has(normalized) &&\n !allowedClaimStateFields.has(normalized)\n );\n });\n if (unknown.length > 0) {\n throw new PmCliError(`Unknown get --fields value(s): ${unknown.join(\", \")}`, EXIT_CODE.USAGE, {\n code: \"unknown_field_projection\",\n examples: [\n \"pm get <id> --fields id,title,status,type,updated_at\",\n \"pm get <id> --fields id,title,claim_state\",\n \"pm get <id> --fields id,title,body,linked.files\",\n ],\n });\n }\n}\n\nfunction projectItemForFields(item: ItemFrontMatter, fields: string[]): Partial<ItemFrontMatter> {\n const source = toItemRecord(item);\n const projected: Record<string, unknown> = {};\n for (const field of fields) {\n const normalized = field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n if (normalized === \"body\" || normalized === \"linked\" || normalized.startsWith(\"linked.\")) {\n continue;\n }\n projected[normalized] = source[normalized];\n }\n return projected as Partial<ItemFrontMatter>;\n}\n\nfunction fieldsInclude(fields: string[] | null, name: string): boolean {\n return fields?.some((field) => field === name || field === `item.${name}`) ?? false;\n}\n\nfunction fieldsIncludeRoot(fields: string[], name: string): boolean {\n return fields.some((field) => field === name || field.startsWith(`${name}.`));\n}\n\nexport async function runGet(id: string, global: GlobalOptions, options: GetOptions = {}): Promise<GetResult> {\n if (options.full && (options.fields !== undefined || options.depth !== undefined)) {\n throw new PmCliError(\"Get projection options are mutually exclusive; remove the extra projection flag and retry.\", EXIT_CODE.USAGE);\n }\n const depth = options.full ? \"deep\" : parseGetDepth(options.depth);\n const fields = parseGetFields(options.fields);\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n const runtimeMetadataKeys: string[] = [];\n for (const field of resolveRuntimeFieldRegistry(settings.schema).definitions) {\n runtimeMetadataKeys.push(field.metadata_key);\n }\n validateGetFields(fields, runtimeMetadataKeys);\n const files = loaded.document.metadata.files ?? [];\n const tests = loaded.document.metadata.tests ?? [];\n const docs = loaded.document.metadata.docs ?? [];\n const fieldProjection = fields !== null;\n const includeBody = !fieldProjection ? depth !== \"brief\" : fieldsInclude(fields, \"body\");\n const includeLinked = !fieldProjection ? depth !== \"brief\" : fieldsInclude(fields, \"linked\");\n const includeLinkedFiles = includeLinked || fieldsInclude(fields, \"linked.files\");\n const includeLinkedTests = includeLinked || fieldsInclude(fields, \"linked.tests\");\n const includeLinkedDocs = includeLinked || fieldsInclude(fields, \"linked.docs\");\n const includeClaimState = !fieldProjection || fieldsIncludeRoot(fields, \"claim_state\");\n let claimState: ClaimStateContext | undefined;\n if (includeClaimState) {\n const historyPath = getHistoryPath(pmRoot, located.id);\n let history: ClaimHistoryEntry[] = [];\n try {\n history = await readHistoryEntries(historyPath, located.id);\n } catch {\n history = [];\n }\n claimState = resolveClaimStateContext(loaded.document.metadata.assignee, history);\n }\n const result: GetResult = {\n item: fieldProjection\n ? projectItemForFields(loaded.document.metadata, fields)\n : projectItemForDepth(loaded.document.metadata, depth),\n };\n if (!fieldProjection || includeBody) {\n result.body = includeBody ? loaded.document.body : \"\";\n }\n if (!fieldProjection || includeLinked || includeLinkedFiles || includeLinkedTests || includeLinkedDocs) {\n result.linked = {\n files: includeLinkedFiles ? files : [],\n tests: includeLinkedTests ? tests : [],\n docs: includeLinkedDocs ? docs : [],\n };\n }\n if (claimState) {\n result.claim_state = claimState;\n }\n return result;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["global"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../../cli/commands/health.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { pathExists, readFileIfExists } from \"../../core/fs/fs-utils.js\";\nimport { activateExtensions, getActiveExtensionRegistrations, loadExtensions, runActiveOnReadHooks } from \"../../core/extensions/index.js\";\nimport {\n EXTENSION_CAPABILITY_CONTRACT,\n KNOWN_EXTENSION_CAPABILITIES,\n parseLegacyExtensionCapabilityAliasWarning,\n parseUnknownExtensionCapabilityWarning,\n type LoadedExtension,\n type UnknownExtensionCapabilityWarningDetails,\n} from \"../../core/extensions/loader.js\";\nimport { enforceHistoryStreamPolicyForItems } from \"../../core/history/history-stream-policy.js\";\nimport { scanHistoryDrift } from \"../../core/history/drift-scan.js\";\nimport {\n readVectorizationStatusLedger,\n refreshSemanticEmbeddingsForMutatedItems,\n} from \"../../core/search/cache.js\";\nimport { resolveEmbeddingProviders } from \"../../core/search/providers.js\";\nimport { resolveSettingsWithSemanticRuntimeDefaults } from \"../../core/search/semantic-defaults.js\";\nimport { collectStaleVectorizationIds } from \"../../core/search/staleness.js\";\nimport { resolveVectorStores } from \"../../core/search/vector-stores.js\";\nimport { EXIT_CODE, PM_CORE_REQUIRED_SUBDIRS, PM_OPTIONAL_TYPE_SUBDIRS } from \"../../core/shared/constants.js\";\nimport { findFirstMergeConflictMarker } from \"../../core/shared/conflict-markers.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toNonEmptyStringOrUndefined } from \"../../core/shared/primitives.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { parseItemDocument } from \"../../core/item/item-format.js\";\nimport { listAllFrontMatter, listAllFrontMatterWithBody } from \"../../core/store/item-store.js\";\nimport {\n getItemFormatFromPath,\n getSettingsPath,\n ITEM_FILE_EXTENSIONS,\n resolveGlobalPmRoot,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettingsWithMetadata } from \"../../core/store/settings.js\";\nimport type { ItemFormat, ItemMetadata, PmSettings } from \"../../types/index.js\";\nimport { readManagedExtensionState } from \"./extension.js\";\n\ntype HealthStatus = \"ok\" | \"warn\";\ntype MigrationRuntimeStatus = \"pending\" | \"failed\" | \"applied\";\n\nexport interface HealthCheck {\n name:\n | \"settings\"\n | \"directories\"\n | \"settings_values\"\n | \"telemetry\"\n | \"extensions\"\n | \"storage\"\n | \"integrity\"\n | \"history_drift\"\n | \"vectorization\";\n status: HealthStatus;\n details: Record<string, unknown>;\n}\n\nexport interface HealthResult {\n ok: boolean;\n checks: HealthCheck[];\n warning_count?: number;\n warnings: string[];\n projection?: {\n mode: \"brief\" | \"summary\" | \"full\";\n warning_count: number;\n warnings_truncated: boolean;\n detail_limit: number;\n omitted_checks?: HealthCheck[\"name\"][];\n };\n generated_at: string;\n}\n\nexport interface RunHealthOptions {\n strictDirectories?: boolean;\n checkOnly?: boolean;\n checkTelemetry?: boolean;\n noRefresh?: boolean;\n refreshVectors?: boolean;\n verboseStaleItems?: boolean;\n skipVectors?: boolean;\n skipIntegrity?: boolean;\n skipDrift?: boolean;\n full?: boolean;\n brief?: boolean;\n summary?: boolean;\n}\n\ninterface MigrationStatusEntry {\n layer: \"global\" | \"project\";\n name: string;\n id: string;\n status: MigrationRuntimeStatus;\n reason?: string;\n}\n\ninterface MigrationStatusSummary {\n applied: MigrationStatusEntry[];\n pending: MigrationStatusEntry[];\n failed: MigrationStatusEntry[];\n applied_count: number;\n pending_count: number;\n failed_count: number;\n}\n\ninterface ExtensionHealthTriageSummary {\n status: \"ok\" | \"warn\";\n warning_count: number;\n warning_codes: string[];\n load_failure_count: number;\n activation_failure_count: number;\n migration_failed_count: number;\n migration_pending_count: number;\n managed_state_warning_count: number;\n managed_extension_entries_count: number;\n unmanaged_loaded_extension_count: number;\n unmanaged_loaded_extensions: string[];\n unmanaged_expected_extension_count: number;\n unmanaged_expected_extensions: string[];\n unmanaged_action_required_extension_count: number;\n unmanaged_action_required_extensions: string[];\n update_health_coverage: \"full\" | \"partial\";\n update_health_partial: boolean;\n unknown_capability_count: number;\n top_warnings: string[];\n remediation: string[];\n}\n\ntype ItemWithBody = Awaited<ReturnType<typeof listAllFrontMatterWithBody>>[number];\nconst STALE_VECTORIZATION_SUMMARY_LIMIT = 25;\nconst BRIEF_HEALTH_DETAIL_LIMIT = 8;\nconst TELEMETRY_QUEUE_RELATIVE_PATH = path.join(\"runtime\", \"telemetry\", \"events.jsonl\");\nconst TELEMETRY_STATE_RELATIVE_PATH = path.join(\"runtime\", \"telemetry\", \"state.json\");\nconst TELEMETRY_ENDPOINT_PROBE_TIMEOUT_MS = 2_500;\nconst TELEMETRY_QUEUE_HIGH_WATER_MARK = 500;\n\n/**\n * Advisory warnings are surfaced for visibility but never flip overall health to\n * not-ok. Telemetry is opt-out, non-critical observability: a queued/unreachable\n * telemetry endpoint or corrupt local telemetry state is not a project-health\n * failure and must not block agents that gate on `pm health` `ok`.\n */\nfunction isAdvisoryHealthWarning(warning: string): boolean {\n return warning.startsWith(\"telemetry_\");\n}\n\nfunction warningCode(value: string): string {\n const normalized = value.trim();\n const separator = normalized.indexOf(\":\");\n if (separator === -1) {\n return normalized;\n }\n return normalized.slice(0, separator);\n}\n\nfunction collectUnknownCapabilityGuidance(warnings: string[]): UnknownExtensionCapabilityWarningDetails[] {\n const seen = new Set<string>();\n const guidance: UnknownExtensionCapabilityWarningDetails[] = [];\n for (const warning of warnings) {\n const parsedDetails = (() => {\n const unknownWarning = parseUnknownExtensionCapabilityWarning(warning);\n if (unknownWarning) {\n return [unknownWarning];\n }\n return parseLegacyExtensionCapabilityAliasWarning(warning);\n })();\n for (const parsed of parsedDetails) {\n const key = `${parsed.layer}:${parsed.name}:${parsed.capability}`;\n if (seen.has(key)) {\n continue;\n }\n seen.add(key);\n guidance.push(parsed);\n }\n }\n return guidance;\n}\n\nfunction buildCapabilityContractMetadata(): {\n version: number;\n capabilities: string[];\n legacy_aliases: Record<string, string>;\n} {\n return {\n version: EXTENSION_CAPABILITY_CONTRACT.version,\n capabilities: [...EXTENSION_CAPABILITY_CONTRACT.capabilities],\n legacy_aliases: { ...EXTENSION_CAPABILITY_CONTRACT.legacy_aliases },\n };\n}\n\nfunction normalizeExtensionNameForMatch(value: string): string {\n return value.trim().toLowerCase();\n}\n\nfunction isExpectedUnmanagedExtension(name: string, directory: string): boolean {\n const normalizedName = normalizeExtensionNameForMatch(name);\n const normalizedDirectory = normalizeExtensionNameForMatch(directory);\n if (normalizedName.startsWith(\"builtin-\")) {\n return true;\n }\n return normalizedDirectory === \"beads\" || normalizedDirectory === \"todos\";\n}\n\nasync function isDirectory(targetPath: string): Promise<boolean> {\n try {\n const stats = await fs.stat(targetPath);\n return stats.isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function countHistoryStreams(pmRoot: string): Promise<{ count: number; warnings: string[] }> {\n const historyDir = path.join(pmRoot, \"history\");\n if (!(await isDirectory(historyDir))) {\n return {\n count: 0,\n warnings: [],\n };\n }\n const historyFiles = (await fs.readdir(historyDir))\n .filter((entry) => entry.endsWith(\".jsonl\"))\n .sort((left, right) => left.localeCompare(right));\n\n const warnings: string[] = [];\n for (const fileName of historyFiles) {\n warnings.push(\n ...(await runActiveOnReadHooks({\n path: path.join(historyDir, fileName),\n scope: \"project\",\n })),\n );\n }\n\n return {\n count: historyFiles.length,\n warnings,\n };\n}\n\nfunction normalizeRelativePath(pmRoot: string, targetPath: string): string {\n return path.relative(pmRoot, targetPath).replaceAll(\"\\\\\", \"/\");\n}\n\nasync function listItemDocumentPaths(pmRoot: string, typeToFolder: Record<string, string>): Promise<string[]> {\n const folders = [...new Set(Object.values(typeToFolder))].sort((left, right) => left.localeCompare(right));\n const itemPaths: string[] = [];\n for (const folder of folders) {\n const directoryPath = path.join(pmRoot, folder);\n let entries: string[] = [];\n try {\n entries = await fs.readdir(directoryPath);\n } catch (error: unknown) {\n if (typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === \"ENOENT\") {\n continue;\n }\n continue;\n }\n for (const entry of entries) {\n if (!ITEM_FILE_EXTENSIONS.some((extension) => entry.toLowerCase().endsWith(extension))) {\n continue;\n }\n itemPaths.push(path.join(directoryPath, entry));\n }\n }\n itemPaths.sort((left, right) => normalizeRelativePath(pmRoot, left).localeCompare(normalizeRelativePath(pmRoot, right)));\n return itemPaths;\n}\n\nasync function buildIntegrityCheck(\n pmRoot: string,\n typeToFolder: Record<string, string>,\n schema: PmSettings[\"schema\"],\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const itemPaths = await listItemDocumentPaths(pmRoot, typeToFolder);\n const itemUnreadable: string[] = [];\n const itemConflictMarkers: Array<{ path: string; line: number; marker: string }> = [];\n const itemParseFailures: string[] = [];\n\n for (const itemPath of itemPaths) {\n const relativePath = normalizeRelativePath(pmRoot, itemPath);\n let raw = \"\";\n try {\n raw = await fs.readFile(itemPath, \"utf8\");\n } catch {\n itemUnreadable.push(relativePath);\n continue;\n }\n const conflictMarker = findFirstMergeConflictMarker(raw);\n if (conflictMarker) {\n itemConflictMarkers.push({\n path: relativePath,\n line: conflictMarker.line,\n marker: conflictMarker.marker,\n });\n continue;\n }\n try {\n parseItemDocument(raw, { format: getItemFormatFromPath(itemPath) as ItemFormat, schema });\n } catch {\n itemParseFailures.push(relativePath);\n }\n }\n\n const historyDir = path.join(pmRoot, \"history\");\n const historyUnreadable: string[] = [];\n const historyConflictMarkers: Array<{ id: string; line: number; marker: string }> = [];\n const historyInvalidJson: Array<{ id: string; line: number }> = [];\n let historyFiles: string[] = [];\n try {\n historyFiles = (await fs.readdir(historyDir)).filter((entry) => entry.endsWith(\".jsonl\")).sort((left, right) => left.localeCompare(right));\n } catch (error: unknown) {\n if (!(typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === \"ENOENT\")) {\n historyUnreadable.push(\"history\");\n }\n }\n for (const fileName of historyFiles) {\n const itemId = fileName.slice(0, -\".jsonl\".length);\n const historyPath = path.join(historyDir, fileName);\n let raw = \"\";\n try {\n raw = await fs.readFile(historyPath, \"utf8\");\n } catch {\n historyUnreadable.push(itemId);\n continue;\n }\n const conflictMarker = findFirstMergeConflictMarker(raw);\n if (conflictMarker) {\n historyConflictMarkers.push({\n id: itemId,\n line: conflictMarker.line,\n marker: conflictMarker.marker,\n });\n continue;\n }\n const lines = raw.split(/\\r?\\n/);\n for (let index = 0; index < lines.length; index += 1) {\n const line = lines[index]?.trim();\n if (!line) {\n continue;\n }\n try {\n JSON.parse(line);\n } catch {\n historyInvalidJson.push({\n id: itemId,\n line: index + 1,\n });\n }\n }\n }\n\n const warnings = [\n ...itemUnreadable.map((entry) => `integrity_item_unreadable:${entry}`),\n ...itemConflictMarkers.map((entry) => `integrity_item_conflict_marker:${entry.path}:L${entry.line}`),\n ...itemParseFailures.map((entry) => `integrity_item_parse_failed:${entry}`),\n ...historyUnreadable.map((entry) => `integrity_history_unreadable:${entry}`),\n ...historyConflictMarkers.map((entry) => `integrity_history_conflict_marker:${entry.id}:L${entry.line}`),\n ...historyInvalidJson.map((entry) => `integrity_history_invalid_json:${entry.id}:L${entry.line}`),\n ];\n const normalizedWarnings = [...new Set(warnings)].sort((left, right) => left.localeCompare(right));\n\n return {\n check: {\n name: \"integrity\",\n status: normalizedWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n checked_item_files: itemPaths.length,\n checked_history_streams: historyFiles.length,\n counts: {\n item_unreadable: itemUnreadable.length,\n item_conflict_markers: itemConflictMarkers.length,\n item_parse_failures: itemParseFailures.length,\n history_unreadable: historyUnreadable.length,\n history_conflict_markers: historyConflictMarkers.length,\n history_invalid_json: historyInvalidJson.length,\n },\n item_unreadable: itemUnreadable,\n item_conflict_markers: itemConflictMarkers,\n item_parse_failures: itemParseFailures,\n history_unreadable: historyUnreadable,\n history_conflict_markers: historyConflictMarkers,\n history_invalid_json: historyInvalidJson,\n },\n },\n warnings: normalizedWarnings,\n };\n}\n\nfunction hasActivateExport(moduleRecord: Record<string, unknown>): boolean {\n if (typeof moduleRecord.activate === \"function\") {\n return true;\n }\n const defaultExport = moduleRecord.default;\n if (typeof defaultExport !== \"object\" || defaultExport === null) {\n return false;\n }\n return typeof (defaultExport as Record<string, unknown>).activate === \"function\";\n}\n\nfunction summarizeLoadedExtension(extension: LoadedExtension): Record<string, unknown> {\n const summary: Record<string, unknown> = {\n layer: extension.layer,\n directory: extension.directory,\n manifest_path: extension.manifest_path,\n name: extension.name,\n version: extension.version,\n entry: extension.entry,\n priority: extension.priority,\n entry_path: extension.entry_path,\n has_activate: hasActivateExport(extension.module as Record<string, unknown>),\n };\n if (Array.isArray(extension.capabilities)) {\n summary.capabilities = [...extension.capabilities];\n }\n return summary;\n}\n\nfunction resolveMigrationId(definition: Record<string, unknown>, fallbackIndex: number): string {\n const explicitId = toNonEmptyStringOrUndefined(definition.id);\n if (explicitId) {\n return explicitId;\n }\n return `migration-${String(fallbackIndex + 1).padStart(3, \"0\")}`;\n}\n\nfunction resolveMigrationStatus(definition: Record<string, unknown>): MigrationRuntimeStatus {\n const rawStatus = toNonEmptyStringOrUndefined(definition.status);\n const normalized = rawStatus?.toLowerCase();\n if (normalized === \"failed\") {\n return \"failed\";\n }\n if (normalized === \"applied\") {\n return \"applied\";\n }\n return \"pending\";\n}\n\nfunction resolveMigrationFailureReason(definition: Record<string, unknown>): string | undefined {\n return toNonEmptyStringOrUndefined(definition.reason) ?? toNonEmptyStringOrUndefined(definition.error) ?? toNonEmptyStringOrUndefined(definition.message);\n}\n\nfunction compareMigrationEntries(left: MigrationStatusEntry, right: MigrationStatusEntry): number {\n const byLayer = (left.layer ?? \"\").localeCompare(right.layer ?? \"\");\n if (byLayer !== 0) {\n return byLayer;\n }\n const byName = (left.name ?? \"\").localeCompare(right.name ?? \"\");\n if (byName !== 0) {\n return byName;\n }\n return (left.id ?? \"\").localeCompare(right.id ?? \"\");\n}\n\nfunction summarizeMigrationStatuses(\n migrations: Array<{\n layer: \"global\" | \"project\";\n name: string;\n definition: Record<string, unknown>;\n }>,\n): { summary: MigrationStatusSummary; warnings: string[] } {\n const applied: MigrationStatusEntry[] = [];\n const pending: MigrationStatusEntry[] = [];\n const failed: MigrationStatusEntry[] = [];\n\n migrations.forEach((migration, index) => {\n const id = resolveMigrationId(migration.definition, index);\n const status = resolveMigrationStatus(migration.definition);\n if (status === \"applied\") {\n applied.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n });\n return;\n }\n if (status === \"failed\") {\n failed.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n reason: resolveMigrationFailureReason(migration.definition),\n });\n return;\n }\n pending.push({\n layer: migration.layer,\n name: migration.name,\n id,\n status,\n });\n });\n\n applied.sort(compareMigrationEntries);\n pending.sort(compareMigrationEntries);\n failed.sort(compareMigrationEntries);\n\n const warnings = [\n ...failed.map((entry) => `extension_migration_failed:${entry.layer}:${entry.name}:${entry.id}`),\n ...pending.map((entry) => `extension_migration_pending:${entry.layer}:${entry.name}:${entry.id}`),\n ];\n\n return {\n summary: {\n applied,\n pending,\n failed,\n applied_count: applied.length,\n pending_count: pending.length,\n failed_count: failed.length,\n },\n warnings,\n };\n}\n\nfunction buildExtensionHealthTriageSummary(\n warnings: string[],\n loadFailureCount: number,\n activationFailureCount: number,\n migrationStatus: MigrationStatusSummary,\n managedStateWarningCount: number,\n managedExtensionEntriesCount: number,\n unmanagedLoadedExtensions: string[],\n unmanagedExpectedExtensions: string[],\n unmanagedActionRequiredExtensions: string[],\n): ExtensionHealthTriageSummary {\n const normalizedWarnings = [...new Set(warnings)].sort((left, right) => left.localeCompare(right));\n const warningCodes = [...new Set(normalizedWarnings.map((value) => warningCode(value)))].sort((left, right) =>\n left.localeCompare(right),\n );\n const unknownCapabilityCount = normalizedWarnings.filter((warning) => warning.startsWith(\"extension_capability_unknown:\")).length;\n const updateHealthPartial = unmanagedActionRequiredExtensions.length > 0;\n const updateHealthCoverage = updateHealthPartial ? \"partial\" : \"full\";\n const remediation: string[] = [];\n if (loadFailureCount > 0) {\n remediation.push(\"Run pm extension --explore --project and pm extension --explore --global to inspect load failures.\");\n }\n if (activationFailureCount > 0) {\n remediation.push(\"Review checks[name=extensions].details.activation.failed in pm health --json for activation error details.\");\n }\n if (migrationStatus.failed_count > 0 || migrationStatus.pending_count > 0) {\n remediation.push(\"Resolve pending/failed extension migrations before write commands; use --force only when policy allows.\");\n }\n if (managedStateWarningCount > 0) {\n remediation.push(\"Run pm extension --manage --project and pm extension --manage --global to refresh managed-state diagnostics.\");\n }\n if (unknownCapabilityCount > 0) {\n remediation.push(\n `Unknown extension capabilities detected. Allowed capabilities: ${KNOWN_EXTENSION_CAPABILITIES.join(\", \")}. ` +\n \"Review extension_capability_unknown warning details for suggested replacements.\",\n );\n }\n if (normalizedWarnings.some((warning) => warning.startsWith(\"extension_capability_legacy_alias:\"))) {\n remediation.push(\n \"Legacy extension capability aliases were auto-remapped to canonical capabilities. \" +\n \"Update manifests to canonical names (migration/validation -> schema).\",\n );\n }\n if (normalizedWarnings.some((warning) => warning.startsWith(\"extension_command_definition_legacy_handler_alias:\"))) {\n remediation.push(\n \"Extension command definitions using legacy handler were auto-remapped. \" +\n \"Update command definitions to use run: (context) => ... for forward compatibility.\",\n );\n }\n if (updateHealthPartial) {\n remediation.push(\n \"Update-check coverage is partial because unmanaged extensions need adoption. Adopt existing installs via pm extension --manage --project/--global --fix-managed-state, pm extension --adopt-all --project/--global, or pm extension --adopt <name>.\",\n );\n } else if (unmanagedLoadedExtensions.length > 0) {\n remediation.push(\n \"Loaded unmanaged extensions are currently treated as informational. Use pm extension --manage --project/--global --fix-managed-state to adopt them for update checks.\",\n );\n }\n if (remediation.length === 0) {\n remediation.push(\"No immediate action required. Re-run pm health after extension configuration changes.\");\n }\n return {\n status: normalizedWarnings.length === 0 ? \"ok\" : \"warn\",\n warning_count: normalizedWarnings.length,\n warning_codes: warningCodes,\n load_failure_count: loadFailureCount,\n activation_failure_count: activationFailureCount,\n migration_failed_count: migrationStatus.failed_count,\n migration_pending_count: migrationStatus.pending_count,\n managed_state_warning_count: managedStateWarningCount,\n managed_extension_entries_count: managedExtensionEntriesCount,\n unmanaged_loaded_extension_count: unmanagedLoadedExtensions.length,\n unmanaged_loaded_extensions: unmanagedLoadedExtensions,\n unmanaged_expected_extension_count: unmanagedExpectedExtensions.length,\n unmanaged_expected_extensions: unmanagedExpectedExtensions,\n unmanaged_action_required_extension_count: unmanagedActionRequiredExtensions.length,\n unmanaged_action_required_extensions: unmanagedActionRequiredExtensions,\n update_health_coverage: updateHealthCoverage,\n update_health_partial: updateHealthPartial,\n unknown_capability_count: unknownCapabilityCount,\n top_warnings: normalizedWarnings.slice(0, 8),\n remediation,\n };\n}\n\nasync function buildExtensionCheck(\n pmRoot: string,\n settings: PmSettings,\n noExtensionsFlag: boolean,\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: noExtensionsFlag,\n });\n const loadedSummaries = loadResult.loaded.map((extension) => summarizeLoadedExtension(extension));\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const [projectManagedState, globalManagedState] = await Promise.all([\n readManagedExtensionState(loadResult.roots.project),\n readManagedExtensionState(loadResult.roots.global),\n ]);\n const migrationStatus = summarizeMigrationStatuses(activationResult.registrations.migrations);\n const activationDetails = {\n failed: activationResult.failed,\n warnings: activationResult.warnings,\n hook_counts: activationResult.hook_counts,\n command_override_count: activationResult.command_override_count,\n command_handler_count: activationResult.command_handler_count,\n parser_override_count: activationResult.parser_override_count,\n preflight_override_count: activationResult.preflight_override_count,\n service_override_count: activationResult.service_override_count,\n renderer_override_count: activationResult.renderer_override_count,\n registration_counts: activationResult.registration_counts,\n registrations: activationResult.registrations,\n migration_status: migrationStatus.summary,\n managed_extensions: {\n project: {\n path: projectManagedState.path,\n count: projectManagedState.state.entries.length,\n entries: projectManagedState.state.entries,\n },\n global: {\n path: globalManagedState.path,\n count: globalManagedState.state.entries.length,\n entries: globalManagedState.state.entries,\n },\n },\n };\n const managedProjectNames = new Set(\n projectManagedState.state.entries.map((entry) => normalizeExtensionNameForMatch(entry.name)),\n );\n const managedGlobalNames = new Set(globalManagedState.state.entries.map((entry) => normalizeExtensionNameForMatch(entry.name)));\n const unmanagedLoadedEntries = [\n ...new Map(\n loadResult.loaded\n .filter((entry) => {\n const managedNames = entry.layer === \"project\" ? managedProjectNames : managedGlobalNames;\n return !managedNames.has(normalizeExtensionNameForMatch(entry.name));\n })\n .map((entry) => [\n `${entry.layer}:${entry.name}`,\n {\n layer: entry.layer,\n name: entry.name,\n directory: entry.directory,\n },\n ]),\n ).values(),\n ].sort((left, right) => {\n const leftKey = `${left.layer}:${left.name}`;\n const rightKey = `${right.layer}:${right.name}`;\n return leftKey.localeCompare(rightKey);\n });\n const unmanagedLoadedExtensions = unmanagedLoadedEntries\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n const unmanagedExpectedExtensions = unmanagedLoadedEntries\n .filter((entry) => isExpectedUnmanagedExtension(entry.name, entry.directory))\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n const unmanagedActionRequiredExtensions = unmanagedLoadedEntries\n .filter((entry) => !isExpectedUnmanagedExtension(entry.name, entry.directory))\n .map((entry) => `${entry.layer}:${entry.name}`)\n .sort((left, right) => left.localeCompare(right));\n const updateCoverageWarnings =\n unmanagedActionRequiredExtensions.length > 0\n ? [`extension_update_health_partial_coverage:skipped_unmanaged:${unmanagedActionRequiredExtensions.length}`]\n : [];\n const extensionWarnings = [\n ...loadResult.warnings,\n ...activationDetails.warnings,\n ...migrationStatus.warnings,\n ...projectManagedState.warnings,\n ...globalManagedState.warnings,\n ...updateCoverageWarnings,\n ];\n const capabilityGuidance = collectUnknownCapabilityGuidance(extensionWarnings);\n const capabilityContract = buildCapabilityContractMetadata();\n const extensionTriage = buildExtensionHealthTriageSummary(\n extensionWarnings,\n loadResult.failed.length,\n activationResult.failed.length,\n migrationStatus.summary,\n projectManagedState.warnings.length + globalManagedState.warnings.length,\n projectManagedState.state.entries.length + globalManagedState.state.entries.length,\n unmanagedLoadedExtensions,\n unmanagedExpectedExtensions,\n unmanagedActionRequiredExtensions,\n );\n\n return {\n check: {\n name: \"extensions\",\n status: extensionWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n ...loadResult,\n loaded: loadedSummaries,\n warnings: extensionWarnings,\n activation: activationDetails,\n triage: extensionTriage,\n capability_contract: capabilityContract,\n capability_guidance: capabilityGuidance,\n } as Record<string, unknown>,\n },\n warnings: extensionWarnings,\n };\n}\n\nfunction summarizeList(values: string[], limit: number): { values: string[]; truncated: boolean } {\n if (values.length <= limit) {\n return { values, truncated: false };\n }\n return {\n values: values.slice(0, limit),\n truncated: true,\n };\n}\n\nfunction summarizeRecordList(value: unknown, limit: number): { count: number; sample: unknown[]; truncated: boolean } {\n if (!Array.isArray(value)) {\n return {\n count: 0,\n sample: [],\n truncated: false,\n };\n }\n return {\n count: value.length,\n sample: value.slice(0, limit),\n truncated: value.length > limit,\n };\n}\n\nfunction summarizeExtensionRecord(value: unknown): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return {};\n }\n const record = value as Record<string, unknown>;\n return {\n layer: record.layer,\n directory: record.directory,\n name: record.name,\n version: record.version,\n enabled: record.enabled,\n status: record.status,\n has_activate: record.has_activate,\n capabilities: record.capabilities,\n };\n}\n\nfunction summarizeExtensionList(value: unknown, limit: number): { count: number; sample: unknown[]; truncated: boolean } {\n const summary = summarizeRecordList(value, limit);\n return {\n ...summary,\n sample: summary.sample.map((entry) => summarizeExtensionRecord(entry)),\n };\n}\n\nfunction summarizeStringList(value: unknown, limit: number): { count: number; sample: string[]; truncated: boolean } {\n if (!Array.isArray(value)) {\n return {\n count: 0,\n sample: [],\n truncated: false,\n };\n }\n const strings = value.filter((entry): entry is string => typeof entry === \"string\");\n return {\n count: strings.length,\n sample: strings.slice(0, limit),\n truncated: strings.length > limit,\n };\n}\n\nfunction summarizeHealthCheckDetails(check: HealthCheck, limit: number): Record<string, unknown> {\n const details = check.details;\n if (check.name === \"settings\") {\n return {\n version: details.version,\n id_prefix: details.id_prefix,\n locks_ttl_seconds: details.locks_ttl_seconds,\n warnings: summarizeStringList(details.warnings, limit),\n };\n }\n if (check.name === \"directories\") {\n return {\n required_count: Array.isArray(details.required) ? details.required.length : 0,\n optional_count: Array.isArray(details.optional) ? details.optional.length : 0,\n missing_required: summarizeStringList(details.missing_required, limit),\n missing_optional: summarizeStringList(details.missing_optional, limit),\n missing: summarizeStringList(details.missing, limit),\n strict_directories: details.strict_directories,\n };\n }\n if (check.name === \"settings_values\") {\n return {\n warnings: summarizeStringList(details.warnings, limit),\n };\n }\n if (check.name === \"telemetry\") {\n return {\n enabled: details.enabled,\n capture_level: details.capture_level,\n endpoint: details.endpoint,\n queue_exists: details.queue_exists,\n queue_entries: details.queue_entries,\n queue_draining: details.queue_draining,\n queue_invalid_rows: details.queue_invalid_rows,\n queue_rows_total: details.queue_rows_total,\n last_successful_flush_at: details.last_successful_flush_at,\n last_failed_flush_at: details.last_failed_flush_at,\n endpoint_probe: details.endpoint_probe,\n env_overrides: details.env_overrides,\n };\n }\n if (check.name === \"extensions\") {\n const activation = typeof details.activation === \"object\" && details.activation !== null ? (details.activation as Record<string, unknown>) : {};\n return {\n disabled_by_flag: details.disabled_by_flag,\n discovered: summarizeExtensionList(details.discovered, limit),\n effective: summarizeExtensionList(details.effective, limit),\n loaded: summarizeExtensionList(details.loaded, limit),\n failed: summarizeRecordList(details.failed, limit),\n warnings: summarizeStringList(details.warnings, limit),\n activation: {\n failed: summarizeRecordList(activation.failed, limit),\n warnings: summarizeStringList(activation.warnings, limit),\n hook_counts: activation.hook_counts,\n command_handler_count: activation.command_handler_count,\n service_override_count: activation.service_override_count,\n renderer_override_count: activation.renderer_override_count,\n registration_counts: activation.registration_counts,\n migration_status:\n typeof activation.migration_status === \"object\" && activation.migration_status !== null\n ? {\n applied_count: (activation.migration_status as Record<string, unknown>).applied_count,\n pending_count: (activation.migration_status as Record<string, unknown>).pending_count,\n failed_count: (activation.migration_status as Record<string, unknown>).failed_count,\n }\n : null,\n },\n triage: details.triage,\n capability_contract: details.capability_contract,\n capability_guidance: summarizeRecordList(details.capability_guidance, limit),\n };\n }\n if (check.name === \"storage\") {\n return details;\n }\n if (check.name === \"integrity\") {\n return {\n checked_item_files: details.checked_item_files,\n checked_history_streams: details.checked_history_streams,\n counts: details.counts,\n item_unreadable: summarizeStringList(details.item_unreadable, limit),\n item_conflict_markers: summarizeRecordList(details.item_conflict_markers, limit),\n item_parse_failures: summarizeStringList(details.item_parse_failures, limit),\n history_unreadable: summarizeStringList(details.history_unreadable, limit),\n history_conflict_markers: summarizeRecordList(details.history_conflict_markers, limit),\n history_invalid_json: summarizeRecordList(details.history_invalid_json, limit),\n skipped: details.skipped,\n };\n }\n if (check.name === \"history_drift\") {\n return {\n checked_items: details.checked_items,\n counts: details.counts,\n drifted_items: summarizeStringList(details.drifted_items, limit),\n missing_streams: summarizeStringList(details.missing_streams, limit),\n unreadable_streams: summarizeStringList(details.unreadable_streams, limit),\n hash_mismatches: summarizeStringList(details.hash_mismatches, limit),\n chain_mismatches: summarizeStringList(details.chain_mismatches, limit),\n skipped: details.skipped,\n };\n }\n if (check.name === \"vectorization\") {\n return {\n semantic_runtime_available: details.semantic_runtime_available,\n compatibility_mode_auto_defaults: details.compatibility_mode_auto_defaults,\n auto_ollama_defaults_applied: details.auto_ollama_defaults_applied,\n refresh_policy: details.refresh_policy,\n provider_active: details.provider_active,\n vector_store_active: details.vector_store_active,\n items: details.items,\n ledger_entries_before: details.ledger_entries_before,\n stale_items_before_total: details.stale_items_before_total,\n stale_items_before: summarizeStringList(details.stale_items_before, limit),\n refresh_attempted: details.refresh_attempted,\n refresh_skipped_reason: details.refresh_skipped_reason,\n refresh_result: details.refresh_result,\n ledger_entries_after: details.ledger_entries_after,\n stale_items_after_total: details.stale_items_after_total,\n stale_items_after: summarizeStringList(details.stale_items_after, limit),\n skipped: details.skipped,\n };\n }\n return details;\n}\n\nfunction applyBriefHealthProjection(result: HealthResult): HealthResult {\n const warningsSummary = summarizeStringList(result.warnings, BRIEF_HEALTH_DETAIL_LIMIT);\n return {\n ok: result.ok,\n checks: result.checks.map((check) => ({\n name: check.name,\n status: check.status,\n details: summarizeHealthCheckDetails(check, BRIEF_HEALTH_DETAIL_LIMIT),\n })),\n warnings: warningsSummary.sample,\n projection: {\n mode: \"brief\",\n warning_count: warningsSummary.count,\n warnings_truncated: warningsSummary.truncated,\n detail_limit: BRIEF_HEALTH_DETAIL_LIMIT,\n },\n generated_at: result.generated_at,\n };\n}\n\nfunction isSkippedHealthCheck(check: HealthCheck): boolean {\n return check.details.skipped === true;\n}\n\nfunction applySummaryHealthProjection(result: HealthResult): HealthResult {\n const warningsSummary = summarizeStringList(result.warnings, BRIEF_HEALTH_DETAIL_LIMIT);\n const omittedChecks = result.checks.filter(isSkippedHealthCheck).map((check) => check.name);\n return {\n ok: result.ok,\n checks: result.checks\n .filter((check) => !isSkippedHealthCheck(check))\n .map((check) => ({\n name: check.name,\n status: check.status,\n details: {},\n })),\n warning_count: warningsSummary.count,\n warnings: warningsSummary.sample,\n projection: {\n mode: \"summary\",\n warning_count: warningsSummary.count,\n warnings_truncated: warningsSummary.truncated,\n detail_limit: BRIEF_HEALTH_DETAIL_LIMIT,\n omitted_checks: omittedChecks,\n },\n generated_at: result.generated_at,\n };\n}\n\nfunction selectStaleItemDetail(\n values: string[],\n verboseStaleItems: boolean,\n): {\n values: string[];\n truncated: boolean;\n total: number;\n} {\n if (verboseStaleItems) {\n return {\n values,\n truncated: false,\n total: values.length,\n };\n }\n const summary = summarizeList(values, STALE_VECTORIZATION_SUMMARY_LIMIT);\n return {\n values: summary.values,\n truncated: summary.truncated,\n total: values.length,\n };\n}\n\ninterface TelemetryRuntimeStateRecord {\n endpoint?: string;\n queue_entries?: number;\n last_attempted_flush_at?: string;\n last_successful_flush_at?: string;\n last_failed_flush_at?: string;\n last_failed_flush_error?: string;\n}\n\nfunction telemetryEnvFlagEnabled(envKey: \"PM_TELEMETRY_DISABLED\" | \"PM_TELEMETRY_OTEL_DISABLED\" | \"PM_NO_TELEMETRY\"): boolean {\n const value = (process.env[envKey] ?? \"\").trim().toLowerCase();\n return value === \"1\" || value === \"true\" || value === \"yes\" || value === \"on\";\n}\n\nfunction normalizeEndpointForDisplay(rawEndpoint: string): string {\n const trimmed = rawEndpoint.trim();\n if (trimmed.length === 0) {\n return \"\";\n }\n try {\n const parsed = new URL(trimmed);\n parsed.username = \"\";\n parsed.password = \"\";\n parsed.search = \"\";\n parsed.hash = \"\";\n return parsed.toString();\n } catch {\n return trimmed;\n }\n}\n\nfunction parseTelemetryQueue(raw: string): { validEntries: number; invalidRows: number; totalRows: number } {\n let validEntries = 0;\n let invalidRows = 0;\n let totalRows = 0;\n for (const line of raw.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.length === 0) {\n continue;\n }\n totalRows += 1;\n try {\n const parsed = JSON.parse(trimmed) as Record<string, unknown>;\n if (typeof parsed === \"object\" && parsed !== null && typeof parsed.attempts === \"number\") {\n validEntries += 1;\n } else {\n invalidRows += 1;\n }\n } catch {\n invalidRows += 1;\n }\n }\n return {\n validEntries,\n invalidRows,\n totalRows,\n };\n}\n\nasync function probeTelemetryEndpointHealth(endpoint: string): Promise<{\n probe_url: string;\n ok: boolean;\n status?: number;\n error?: string;\n}> {\n let probeUrl = endpoint;\n try {\n const parsed = new URL(endpoint);\n parsed.pathname = \"/healthz\";\n parsed.search = \"\";\n parsed.hash = \"\";\n probeUrl = parsed.toString();\n } catch {\n // keep original endpoint when URL parsing fails\n }\n try {\n const response = await fetch(probeUrl, {\n method: \"GET\",\n signal: AbortSignal.timeout(TELEMETRY_ENDPOINT_PROBE_TIMEOUT_MS),\n });\n return {\n probe_url: normalizeEndpointForDisplay(probeUrl),\n ok: response.ok,\n status: response.status,\n };\n } catch (error: unknown) {\n return {\n probe_url: normalizeEndpointForDisplay(probeUrl),\n ok: false,\n error: error instanceof Error ? error.message : \"probe_failed\",\n };\n }\n}\n\nasync function buildTelemetryCheck(\n settings: PmSettings,\n options: { checkTelemetry: boolean },\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const globalPmRoot = resolveGlobalPmRoot(process.cwd());\n const queuePath = path.join(globalPmRoot, TELEMETRY_QUEUE_RELATIVE_PATH);\n const statePath = path.join(globalPmRoot, TELEMETRY_STATE_RELATIVE_PATH);\n\n const queueRaw = await readFileIfExists(queuePath);\n const queueExists = queueRaw !== null;\n const queueSizeBytes = queueRaw ? Buffer.byteLength(queueRaw, \"utf8\") : 0;\n const queueSummary = queueRaw ? parseTelemetryQueue(queueRaw) : { validEntries: 0, invalidRows: 0, totalRows: 0 };\n\n const stateRaw = await readFileIfExists(statePath);\n let runtimeState: TelemetryRuntimeStateRecord = {};\n let stateParseFailed = false;\n if (stateRaw && stateRaw.trim().length > 0) {\n try {\n const parsed = JSON.parse(stateRaw) as TelemetryRuntimeStateRecord;\n if (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n runtimeState = parsed;\n } else {\n stateParseFailed = true;\n }\n } catch {\n stateParseFailed = true;\n }\n }\n\n const endpoint = settings.telemetry.endpoint.trim();\n const endpointDisplay = normalizeEndpointForDisplay(endpoint);\n let endpointProbe:\n | {\n attempted: boolean;\n probe_url: string;\n ok: boolean;\n status?: number;\n error?: string;\n }\n | undefined;\n if (options.checkTelemetry && settings.telemetry.enabled && endpoint.length > 0) {\n const probe = await probeTelemetryEndpointHealth(endpoint);\n endpointProbe = {\n attempted: true,\n ...probe,\n };\n }\n\n const warnings: string[] = [];\n if (stateParseFailed) {\n warnings.push(\"telemetry_state_invalid_json\");\n }\n if (queueSummary.invalidRows > 0) {\n warnings.push(`telemetry_queue_invalid_rows:${queueSummary.invalidRows}`);\n }\n const queueHasEntries = settings.telemetry.enabled && queueSummary.validEntries > 0;\n if (queueHasEntries) {\n const lastSuccess = runtimeState.last_successful_flush_at;\n const lastFailure = runtimeState.last_failed_flush_at;\n const activeFailure = lastFailure && (!lastSuccess || lastFailure > lastSuccess);\n const neverFlushed = !lastSuccess;\n const highWater = queueSummary.validEntries >= TELEMETRY_QUEUE_HIGH_WATER_MARK;\n if (activeFailure || neverFlushed || highWater) {\n warnings.push(`telemetry_queue_pending:${queueSummary.validEntries}`);\n }\n }\n if (endpointProbe && !endpointProbe.ok) {\n if (typeof endpointProbe.status === \"number\") {\n warnings.push(`telemetry_endpoint_probe_http_status:${endpointProbe.status}`);\n } else {\n warnings.push(\"telemetry_endpoint_probe_failed\");\n }\n }\n\n return {\n check: {\n name: \"telemetry\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n enabled: settings.telemetry.enabled,\n capture_level: settings.telemetry.capture_level,\n endpoint: endpointDisplay,\n global_pm_root: globalPmRoot,\n queue_path: queuePath,\n queue_exists: queueExists,\n queue_entries: queueSummary.validEntries,\n queue_draining: queueHasEntries && warnings.every((w) => !w.startsWith(\"telemetry_queue_pending:\")),\n queue_invalid_rows: queueSummary.invalidRows,\n queue_rows_total: queueSummary.totalRows,\n queue_size_bytes: queueSizeBytes,\n runtime_state_path: statePath,\n last_attempted_flush_at: runtimeState.last_attempted_flush_at ?? null,\n last_successful_flush_at: runtimeState.last_successful_flush_at ?? null,\n last_failed_flush_at: runtimeState.last_failed_flush_at ?? null,\n last_failed_flush_error: runtimeState.last_failed_flush_error ?? null,\n endpoint_probe: endpointProbe ?? {\n attempted: false,\n },\n env_overrides: {\n telemetry_disabled: telemetryEnvFlagEnabled(\"PM_TELEMETRY_DISABLED\") || telemetryEnvFlagEnabled(\"PM_NO_TELEMETRY\"),\n pm_no_telemetry: telemetryEnvFlagEnabled(\"PM_NO_TELEMETRY\"),\n telemetry_otel_disabled: telemetryEnvFlagEnabled(\"PM_TELEMETRY_OTEL_DISABLED\"),\n },\n },\n },\n warnings,\n };\n}\n\nasync function buildHistoryDriftCheck(\n pmRoot: string,\n items: ItemWithBody[],\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const { missingStreams, unreadableStreams, hashMismatches, chainMismatches, driftedItems } = await scanHistoryDrift(\n pmRoot,\n items,\n );\n const warnings = [\n ...missingStreams.map((id) => `history_drift_missing_stream:${id}`),\n ...unreadableStreams.map((id) => `history_drift_unreadable_stream:${id}`),\n ...hashMismatches.map((id) => `history_drift_hash_mismatch:${id}`),\n ...chainMismatches.map((id) => `history_drift_chain_mismatch:${id}`),\n ];\n return {\n check: {\n name: \"history_drift\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n checked_items: items.length,\n drifted_items: driftedItems,\n counts: {\n drifted: driftedItems.length,\n missing_streams: missingStreams.length,\n unreadable_streams: unreadableStreams.length,\n hash_mismatches: hashMismatches.length,\n chain_mismatches: chainMismatches.length,\n },\n missing_streams: missingStreams,\n unreadable_streams: unreadableStreams,\n hash_mismatches: hashMismatches,\n chain_mismatches: chainMismatches,\n },\n },\n warnings,\n };\n}\n\nasync function buildVectorizationCheck(\n pmRoot: string,\n settings: PmSettings,\n items: ItemWithBody[],\n refreshPolicy: {\n enabled: boolean;\n checkOnly: boolean;\n noRefresh: boolean;\n refreshVectors: boolean;\n },\n verboseStaleItems: boolean,\n): Promise<{ check: HealthCheck; warnings: string[] }> {\n const runtimeDefaults = resolveSettingsWithSemanticRuntimeDefaults(settings);\n const providerResolution = resolveEmbeddingProviders(runtimeDefaults.settings);\n const vectorStoreResolution = resolveVectorStores(runtimeDefaults.settings);\n const semanticRuntimeAvailable = Boolean(providerResolution.active && vectorStoreResolution.active);\n const ledgerBefore = await readVectorizationStatusLedger(pmRoot);\n const staleBefore = semanticRuntimeAvailable ? collectStaleVectorizationIds(items, ledgerBefore.entries) : [];\n let refreshResult: Awaited<ReturnType<typeof refreshSemanticEmbeddingsForMutatedItems>> = {\n refreshed: [],\n skipped: [],\n warnings: [],\n };\n if (refreshPolicy.enabled && semanticRuntimeAvailable && staleBefore.length > 0) {\n refreshResult = await refreshSemanticEmbeddingsForMutatedItems(pmRoot, staleBefore, {\n settings: runtimeDefaults.settings,\n apply_runtime_defaults: false,\n });\n }\n const ledgerAfter = await readVectorizationStatusLedger(pmRoot);\n const staleAfter = semanticRuntimeAvailable ? collectStaleVectorizationIds(items, ledgerAfter.entries) : [];\n const strictVectorizationWarnings = !runtimeDefaults.auto_ollama_defaults_applied;\n const warningSet = new Set<string>([...ledgerBefore.warnings, ...ledgerAfter.warnings]);\n if (strictVectorizationWarnings) {\n for (const warning of refreshResult.warnings) {\n warningSet.add(warning);\n }\n }\n if (strictVectorizationWarnings && semanticRuntimeAvailable && staleAfter.length > 0) {\n warningSet.add(`vectorization_stale_items_remaining:${staleAfter.length}`);\n }\n const warnings = [...warningSet].sort((left, right) => left.localeCompare(right));\n const staleBeforeDetail = selectStaleItemDetail(staleBefore, verboseStaleItems);\n const staleAfterDetail = selectStaleItemDetail(staleAfter, verboseStaleItems);\n\n return {\n check: {\n name: \"vectorization\",\n status: warnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n semantic_runtime_available: semanticRuntimeAvailable,\n compatibility_mode_auto_defaults: runtimeDefaults.auto_ollama_defaults_applied,\n auto_ollama_defaults_applied: runtimeDefaults.auto_ollama_defaults_applied,\n refresh_policy: {\n enabled: refreshPolicy.enabled,\n check_only: refreshPolicy.checkOnly,\n no_refresh: refreshPolicy.noRefresh,\n refresh_vectors: refreshPolicy.refreshVectors,\n },\n provider_active: providerResolution.active?.name ?? null,\n vector_store_active: vectorStoreResolution.active?.name ?? null,\n items: items.length,\n ledger_entries_before: Object.keys(ledgerBefore.entries).length,\n stale_items_detail_mode: verboseStaleItems ? \"full\" : \"summary\",\n stale_items_summary_limit: STALE_VECTORIZATION_SUMMARY_LIMIT,\n stale_items_before_total: staleBeforeDetail.total,\n stale_items_before: staleBeforeDetail.values,\n stale_items_before_truncated: staleBeforeDetail.truncated,\n refresh_attempted: refreshPolicy.enabled && staleBefore.length > 0 && semanticRuntimeAvailable,\n refresh_skipped_reason:\n refreshPolicy.enabled && semanticRuntimeAvailable && staleBefore.length > 0\n ? null\n : !refreshPolicy.enabled\n ? \"refresh_disabled\"\n : !semanticRuntimeAvailable\n ? \"semantic_runtime_unavailable\"\n : \"no_stale_items\",\n refresh_result: refreshResult,\n ledger_entries_after: Object.keys(ledgerAfter.entries).length,\n stale_items_after_total: staleAfterDetail.total,\n stale_items_after: staleAfterDetail.values,\n stale_items_after_truncated: staleAfterDetail.truncated,\n },\n },\n warnings,\n };\n}\n\nfunction validateSettingsValues(settings: PmSettings): string[] {\n const warnings: string[] = [];\n if (settings.id_prefix.trim().length === 0) {\n warnings.push(\"settings:id_prefix_empty\");\n }\n if (settings.locks.ttl_seconds <= 0) {\n warnings.push(\"settings:locks_ttl_non_positive\");\n }\n return warnings;\n}\n\nfunction resolveVectorRefreshPolicy(options: RunHealthOptions): {\n enabled: boolean;\n checkOnly: boolean;\n noRefresh: boolean;\n refreshVectors: boolean;\n} {\n const checkOnly = options.checkOnly === true;\n const noRefresh = options.noRefresh === true || checkOnly;\n const refreshVectors = options.refreshVectors === true;\n if (refreshVectors && checkOnly) {\n throw new PmCliError(\"--check-only cannot be combined with --refresh-vectors\", EXIT_CODE.USAGE);\n }\n if (refreshVectors && options.noRefresh === true) {\n throw new PmCliError(\"--no-refresh cannot be combined with --refresh-vectors\", EXIT_CODE.USAGE);\n }\n return {\n enabled: refreshVectors || !noRefresh,\n checkOnly,\n noRefresh,\n refreshVectors,\n };\n}\n\nexport async function runHealth(global: GlobalOptions, options: RunHealthOptions = {}): Promise<HealthResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const { settings, warnings: settingsReadWarnings } = await readSettingsWithMetadata(pmRoot);\n const normalizedSettingsReadWarnings = [...new Set(settingsReadWarnings)];\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const strictDirectories = options.strictDirectories === true;\n const refreshPolicy = resolveVectorRefreshPolicy(options);\n const optionalBuiltinDirs = new Set<string>(PM_OPTIONAL_TYPE_SUBDIRS.filter((entry) => entry.length > 0));\n const requiredDirSet = new Set<string>(PM_CORE_REQUIRED_SUBDIRS.filter((entry) => entry.length > 0));\n const optionalDirSet = new Set<string>();\n for (const folder of typeRegistry.folders) {\n if (optionalBuiltinDirs.has(folder)) {\n optionalDirSet.add(folder);\n continue;\n }\n requiredDirSet.add(folder);\n }\n const requiredDirs = [...requiredDirSet].sort((left, right) => left.localeCompare(right));\n const optionalDirs = [...optionalDirSet].sort((left, right) => left.localeCompare(right));\n const missingRequiredDirs: string[] = [];\n const missingOptionalDirs: string[] = [];\n const hookWarnings: string[] = [];\n for (const relativeDir of [...requiredDirs, ...optionalDirs]) {\n const directoryPath = path.join(pmRoot, relativeDir);\n hookWarnings.push(\n ...(await runActiveOnReadHooks({\n path: directoryPath,\n scope: \"project\",\n })),\n );\n if (!(await isDirectory(directoryPath))) {\n if (optionalDirSet.has(relativeDir)) {\n missingOptionalDirs.push(relativeDir);\n } else {\n missingRequiredDirs.push(relativeDir);\n }\n }\n }\n const missingDirs = strictDirectories ? [...missingRequiredDirs, ...missingOptionalDirs] : [...missingRequiredDirs];\n\n const settingWarnings = validateSettingsValues(settings);\n const telemetryCheck = await buildTelemetryCheck(settings, {\n checkTelemetry: options.checkTelemetry === true,\n });\n const extensionCheck = await buildExtensionCheck(pmRoot, settings, Boolean(global.noExtensions));\n const summaryMode = options.summary === true && options.full !== true;\n const fastProjectionCheckOnly =\n options.checkOnly === true && (options.brief === true || options.summary === true) && options.full !== true;\n const skipIntegrity = (options.skipIntegrity === true || fastProjectionCheckOnly) && options.full !== true;\n const skipDrift = (options.skipDrift === true || fastProjectionCheckOnly) && options.full !== true;\n const skipVectors = (options.skipVectors === true || fastProjectionCheckOnly) && options.full !== true;\n const itemReadWarnings: string[] = [];\n const items = skipDrift && skipVectors\n ? await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, itemReadWarnings, settings.schema)\n : await listAllFrontMatterWithBody(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n itemReadWarnings,\n settings.schema,\n );\n const itemsWithBody = items as Array<ItemMetadata & { body: string }>;\n const normalizedItemReadWarnings = [...new Set(itemReadWarnings)];\n const historyPolicy = skipDrift\n ? { warnings: [] }\n : await enforceHistoryStreamPolicyForItems({\n pmRoot,\n settings,\n itemIds: items.map((item) => item.id),\n commandLabel: \"health\",\n });\n const historySummary = await countHistoryStreams(pmRoot);\n const integrityCheck = skipIntegrity\n ? { check: { name: \"integrity\" as const, status: \"ok\" as const, details: { skipped: true } }, warnings: [] }\n : await buildIntegrityCheck(pmRoot, typeRegistry.type_to_folder, settings.schema);\n const historyDriftCheck = skipDrift\n ? { check: { name: \"history_drift\" as const, status: \"ok\" as const, details: { skipped: true } }, warnings: [] }\n : await buildHistoryDriftCheck(pmRoot, itemsWithBody);\n const vectorizationCheck = skipVectors\n ? { check: { name: \"vectorization\" as const, status: \"ok\" as const, details: { skipped: true } }, warnings: [] }\n : await buildVectorizationCheck(pmRoot, settings, itemsWithBody, refreshPolicy, options.verboseStaleItems === true);\n\n const checks: HealthCheck[] = [\n {\n name: \"settings\",\n status: normalizedSettingsReadWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n path: settingsPath,\n version: settings.version,\n id_prefix: settings.id_prefix,\n locks_ttl_seconds: settings.locks.ttl_seconds,\n warnings: normalizedSettingsReadWarnings,\n },\n },\n {\n name: \"directories\",\n status: missingDirs.length === 0 ? \"ok\" : \"warn\",\n details: {\n required: requiredDirs,\n optional: optionalDirs,\n missing_required: missingRequiredDirs,\n missing_optional: missingOptionalDirs,\n missing: missingDirs,\n strict_directories: strictDirectories,\n },\n },\n {\n name: \"settings_values\",\n status: settingWarnings.length === 0 ? \"ok\" : \"warn\",\n details: {\n warnings: settingWarnings,\n },\n },\n telemetryCheck.check,\n extensionCheck.check,\n {\n name: \"storage\",\n status: \"ok\",\n details: {\n items: items.length,\n history_streams: historySummary.count,\n },\n },\n integrityCheck.check,\n historyDriftCheck.check,\n vectorizationCheck.check,\n ];\n\n const warnings = [\n ...missingDirs.map((dir) => `missing_directory:${dir}`),\n ...normalizedSettingsReadWarnings,\n ...settingWarnings,\n ...normalizedItemReadWarnings,\n ...telemetryCheck.warnings,\n ...extensionCheck.warnings,\n ...historyPolicy.warnings,\n ...historySummary.warnings,\n ...integrityCheck.warnings,\n ...historyDriftCheck.warnings,\n ...vectorizationCheck.warnings,\n ...hookWarnings,\n ];\n const normalizedWarnings = [...new Set(warnings)];\n // Telemetry is an opt-out, non-critical observability feature. Its operational\n // state (queue backlog, unreachable endpoint, corrupt local state) is advisory:\n // it must never flip overall project health to not-ok. Such warnings are still\n // surfaced in `warnings` and the telemetry check's own `warn` status.\n const blockingWarnings = normalizedWarnings.filter((warning) => !isAdvisoryHealthWarning(warning));\n const result: HealthResult = {\n ok: blockingWarnings.length === 0,\n checks,\n warnings: normalizedWarnings,\n generated_at: nowIso(),\n };\n if (summaryMode) {\n return applySummaryHealthProjection(result);\n }\n return options.brief === true ? applyBriefHealthProjection(result) : result;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["global"]
|
|
7
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readHistoryEntries,
|
|
3
|
-
runHistory
|
|
4
|
-
} from "./chunk-LRBOHPUE.js";
|
|
5
|
-
import {
|
|
6
|
-
verifyHistoryChain
|
|
7
|
-
} from "./chunk-JFWUHHS2.js";
|
|
8
|
-
import "./chunk-SEXQN4KL.js";
|
|
9
|
-
import "./chunk-BUPWJ3IJ.js";
|
|
10
|
-
import "./chunk-4AEZR5EJ.js";
|
|
11
|
-
import "./chunk-CEFIVZPG.js";
|
|
12
|
-
import "./chunk-MD7K4JYF.js";
|
|
13
|
-
import "./chunk-WDPXDQFG.js";
|
|
14
|
-
import "./chunk-PVNQLCIS.js";
|
|
15
|
-
import "./chunk-LSXGH6NE.js";
|
|
16
|
-
export {
|
|
17
|
-
readHistoryEntries,
|
|
18
|
-
runHistory,
|
|
19
|
-
verifyHistoryChain
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=history-A2JUDXUE.js.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveHistorySubject,
|
|
3
|
-
runHistoryRedact
|
|
4
|
-
} from "./chunk-6YCV7WSL.js";
|
|
5
|
-
import "./chunk-O7IWB35H.js";
|
|
6
|
-
import "./chunk-LRBOHPUE.js";
|
|
7
|
-
import "./chunk-JFWUHHS2.js";
|
|
8
|
-
import "./chunk-SEXQN4KL.js";
|
|
9
|
-
import "./chunk-BUPWJ3IJ.js";
|
|
10
|
-
import "./chunk-4AEZR5EJ.js";
|
|
11
|
-
import "./chunk-CEFIVZPG.js";
|
|
12
|
-
import "./chunk-MD7K4JYF.js";
|
|
13
|
-
import "./chunk-WDPXDQFG.js";
|
|
14
|
-
import "./chunk-PVNQLCIS.js";
|
|
15
|
-
import "./chunk-LSXGH6NE.js";
|
|
16
|
-
export {
|
|
17
|
-
resolveHistorySubject,
|
|
18
|
-
runHistoryRedact
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=history-redact-ED6RFCPL.js.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
runInit,
|
|
3
|
-
summarizeInitResult
|
|
4
|
-
} from "./chunk-JULRTHJQ.js";
|
|
5
|
-
import "./chunk-OGZEG5TT.js";
|
|
6
|
-
import "./chunk-EGUGFSNX.js";
|
|
7
|
-
import "./chunk-3HUE7XOF.js";
|
|
8
|
-
import "./chunk-CEFIVZPG.js";
|
|
9
|
-
import "./chunk-WDPXDQFG.js";
|
|
10
|
-
import "./chunk-PVNQLCIS.js";
|
|
11
|
-
import "./chunk-LSXGH6NE.js";
|
|
12
|
-
export {
|
|
13
|
-
runInit,
|
|
14
|
-
summarizeInitResult
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=init-M2WUB4YH.js.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LIST_SORT_FIELDS,
|
|
3
|
-
LIST_SORT_ORDER_VALUES,
|
|
4
|
-
runList
|
|
5
|
-
} from "./chunk-FQE6XZDB.js";
|
|
6
|
-
import "./chunk-FM26RGSU.js";
|
|
7
|
-
import "./chunk-SEXQN4KL.js";
|
|
8
|
-
import "./chunk-BUPWJ3IJ.js";
|
|
9
|
-
import "./chunk-4AEZR5EJ.js";
|
|
10
|
-
import "./chunk-CEFIVZPG.js";
|
|
11
|
-
import "./chunk-MD7K4JYF.js";
|
|
12
|
-
import "./chunk-WDPXDQFG.js";
|
|
13
|
-
import "./chunk-PVNQLCIS.js";
|
|
14
|
-
import "./chunk-LSXGH6NE.js";
|
|
15
|
-
export {
|
|
16
|
-
LIST_SORT_FIELDS,
|
|
17
|
-
LIST_SORT_ORDER_VALUES,
|
|
18
|
-
runList
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=list-OGWQPC26.js.map
|