@unbrained/pm-cli 2026.7.6 → 2026.7.8
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 +50 -0
- package/dist/cli/commands/annotation-command.d.ts +1 -0
- package/dist/cli/commands/annotation-command.js +29 -2
- package/dist/cli/commands/annotation-command.js.map +1 -1
- package/dist/cli/commands/comments.js +3 -4
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +10 -2
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +1 -0
- package/dist/cli/commands/context.js +4 -4
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/extension/bundled-catalog.d.ts +3 -0
- package/dist/cli/commands/extension/bundled-catalog.js +38 -28
- package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.js +81 -18
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +23 -19
- package/dist/cli/commands/extension.js +167 -57
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/health.js +9 -5
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/learnings.js +5 -3
- package/dist/cli/commands/learnings.js.map +1 -1
- package/dist/cli/commands/notes.js +5 -3
- package/dist/cli/commands/notes.js.map +1 -1
- package/dist/cli/commands/reindex.js +4 -3
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/search.js +4 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test.d.ts +9 -0
- package/dist/cli/commands/test.js +144 -105
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/extension-command-help.js +10 -2
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/help-content.js +28 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/register-list-query.d.ts +1 -1
- package/dist/cli/register-list-query.js +19 -27
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-operations.d.ts +0 -8
- package/dist/cli/register-operations.js +41 -46
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +119 -13
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +5 -1
- package/dist/cli/registration-helpers.js +14 -2
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/append-CDPAYYSB.js +11 -0
- package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js → append-RSPHC423.js} +8 -9
- package/dist/cli-bundle/chunks/{chunk-LK6XLOGP.js → chunk-2BVD4ZD2.js} +288 -233
- package/dist/cli-bundle/chunks/chunk-2BVD4ZD2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TKD5VCTD.js → chunk-2RADY7IB.js} +517 -195
- package/dist/cli-bundle/chunks/chunk-2RADY7IB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-COSPOP7H.js → chunk-3FRNNVWY.js} +518 -196
- package/dist/cli-bundle/chunks/chunk-3FRNNVWY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-24YG75HI.js → chunk-3FUXM574.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js → chunk-3SHDAKMF.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js → chunk-3UXIMY62.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js.map → chunk-3UXIMY62.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js → chunk-3V5C7PUH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js → chunk-3YJDIJIE.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js.map → chunk-3YJDIJIE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js → chunk-4I7KS5ES.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js → chunk-4OCWJ2AP.js} +13 -17
- package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js.map → chunk-4OCWJ2AP.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js → chunk-5STY7NVM.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js → chunk-5VAZHYVQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js → chunk-6FU5BVRB.js} +12 -14
- package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js.map → chunk-6FU5BVRB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js → chunk-6RR4XM5H.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-K46RF36U.js → chunk-6TD5QGIB.js} +7 -7
- package/dist/cli-bundle/chunks/chunk-6TD5QGIB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js → chunk-6WCXSC5V.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js.map → chunk-6WCXSC5V.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js → chunk-6ZKDMEVT.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js.map → chunk-6ZKDMEVT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js → chunk-7QKSLAHB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js → chunk-7TBUV7XS.js} +8 -12
- package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js.map → chunk-7TBUV7XS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js → chunk-7UCBLJDF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js → chunk-AEOFBBWO.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js.map → chunk-AEOFBBWO.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js +10498 -0
- package/dist/cli-bundle/chunks/chunk-ASMRSIDX.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js → chunk-BFNFTHWQ.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js +5509 -0
- package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js → chunk-C3YU3TXX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VPIM42PC.js → chunk-C6XSTACC.js} +11 -7
- package/dist/cli-bundle/chunks/chunk-C6XSTACC.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js → chunk-CGDUIPJL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js → chunk-CXH7EMSB.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js.map → chunk-CXH7EMSB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-DMRNBQOI.js → chunk-D63PEJTB.js} +256 -36
- package/dist/cli-bundle/chunks/chunk-D63PEJTB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js → chunk-D6J5673C.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js.map → chunk-D6J5673C.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js → chunk-DUBC6TI3.js} +28 -34
- package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js.map → chunk-DUBC6TI3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js → chunk-EEJKHF7M.js} +7 -6
- package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js.map → chunk-EEJKHF7M.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XG625QP4.js → chunk-EP2CKDS7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js → chunk-EYPIUFWJ.js} +24 -32
- package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js.map → chunk-EYPIUFWJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js → chunk-F5DDGY6R.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js.map → chunk-F5DDGY6R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js → chunk-FFB3WITE.js} +10 -16
- package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js.map → chunk-FFB3WITE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js → chunk-FJR2S7S4.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js.map → chunk-FJR2S7S4.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-FL625JJM.js +6792 -0
- package/dist/cli-bundle/chunks/chunk-FL625JJM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js → chunk-FOJEBRDD.js} +16 -20
- package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js.map → chunk-FOJEBRDD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EOKXK3R3.js → chunk-G4FKP4ID.js} +1220 -398
- package/dist/cli-bundle/chunks/chunk-G4FKP4ID.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-GE44TQMC.js +6726 -0
- package/dist/cli-bundle/chunks/chunk-GE44TQMC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js → chunk-GLMJLBLR.js} +6 -10
- package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js.map → chunk-GLMJLBLR.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js → chunk-GO2X6ZRB.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js.map → chunk-GO2X6ZRB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js → chunk-GQOKFX2G.js} +22 -26
- package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js.map → chunk-GQOKFX2G.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js → chunk-GSQVQINP.js} +8 -10
- package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js.map → chunk-GSQVQINP.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-HI27UADG.js +5434 -0
- package/dist/cli-bundle/chunks/chunk-HI27UADG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js → chunk-HZZ3AC27.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js.map → chunk-HZZ3AC27.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js → chunk-IINCZYM3.js} +8 -12
- package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js.map → chunk-IINCZYM3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EKFNL33R.js → chunk-INOWVPUD.js} +37 -16
- package/dist/cli-bundle/chunks/chunk-INOWVPUD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4LELACOL.js → chunk-IYRG5AEC.js} +15 -23
- package/dist/cli-bundle/chunks/{chunk-4LELACOL.js.map → chunk-IYRG5AEC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js → chunk-J6AD3GWC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js → chunk-JH5XDDYS.js} +14 -20
- package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js.map → chunk-JH5XDDYS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js → chunk-JYVPLGOW.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js.map → chunk-JYVPLGOW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js → chunk-K52C6YPA.js} +12 -18
- package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js.map → chunk-K52C6YPA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js → chunk-KFL3XHMA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js +10320 -0
- package/dist/cli-bundle/chunks/chunk-KMXVZ2P7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js → chunk-LD2NBQ5T.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js.map → chunk-LD2NBQ5T.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js → chunk-LG4N6YOK.js} +8 -7
- package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js.map → chunk-LG4N6YOK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js → chunk-LHDHS4Z6.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js.map → chunk-LHDHS4Z6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js → chunk-MCH6IKK7.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js.map → chunk-MCH6IKK7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-57NWPFF2.js → chunk-MFLLULHU.js} +281 -233
- package/dist/cli-bundle/chunks/chunk-MFLLULHU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-EGAP5OWD.js → chunk-ML27MHNM.js} +35 -17
- package/dist/cli-bundle/chunks/chunk-ML27MHNM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js → chunk-MYHFZNBO.js} +20 -24
- package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js.map → chunk-MYHFZNBO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js → chunk-NGBWEYNY.js} +12 -18
- package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js.map → chunk-NGBWEYNY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js → chunk-NRMDT4OV.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js.map → chunk-NRMDT4OV.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js +5359 -0
- package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js → chunk-P2WE5KCU.js} +261 -34
- package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js.map → chunk-P2WE5KCU.js.map} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js → chunk-PAWPLIWW.js} +14 -20
- package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js.map → chunk-PAWPLIWW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js → chunk-PCBZ2VJD.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-ZSUS2OD3.js → chunk-PJPZTE7P.js} +1216 -387
- package/dist/cli-bundle/chunks/chunk-PJPZTE7P.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js → chunk-Q3CFSOQZ.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js → chunk-QJZM5WO5.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js.map → chunk-QJZM5WO5.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QLMX7SRD.js → chunk-QLEH6FTQ.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-QLEH6FTQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js → chunk-QYZMZD4L.js} +10 -12
- package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js.map → chunk-QYZMZD4L.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js → chunk-RDJXIAJB.js} +7 -11
- package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js.map → chunk-RDJXIAJB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js → chunk-RFHLRMLQ.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js.map → chunk-RFHLRMLQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js → chunk-RL24NAUX.js} +10 -12
- package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js.map → chunk-RL24NAUX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-46CUF5L6.js → chunk-RLHQ3G4M.js} +99 -51
- package/dist/cli-bundle/chunks/chunk-RLHQ3G4M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js → chunk-SCJPFQQT.js} +12 -18
- package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js.map → chunk-SCJPFQQT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js → chunk-SIQGG335.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js.map → chunk-SIQGG335.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js → chunk-SN5X5GTU.js} +8 -12
- package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js.map → chunk-SN5X5GTU.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CL36D4PC.js → chunk-TKWTJGD6.js} +36 -15
- package/dist/cli-bundle/chunks/chunk-TKWTJGD6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VIIUS6N6.js → chunk-TR2C6V5T.js} +37 -19
- package/dist/cli-bundle/chunks/chunk-TR2C6V5T.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-TTCJCKUJ.js +5514 -0
- package/dist/cli-bundle/chunks/chunk-TTCJCKUJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js → chunk-TU5P744I.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TULGS6X6.js → chunk-TUDAYIO7.js} +529 -46
- package/dist/cli-bundle/chunks/chunk-TUDAYIO7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MLIYFOE7.js → chunk-U72GF3I2.js} +12 -8
- package/dist/cli-bundle/chunks/chunk-U72GF3I2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js → chunk-UCRYCT5M.js} +30 -36
- package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js.map → chunk-UCRYCT5M.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js → chunk-UEATYUZW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js → chunk-UFNFHCAC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js → chunk-UH6VFRV6.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js.map → chunk-UH6VFRV6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js → chunk-UIHDZS6X.js} +11 -15
- package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js.map → chunk-UIHDZS6X.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-W572BIEB.js → chunk-UURYLDDC.js} +14 -18
- package/dist/cli-bundle/chunks/{chunk-W572BIEB.js.map → chunk-UURYLDDC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js → chunk-UVFJSKTF.js} +9 -13
- package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js.map → chunk-UVFJSKTF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js → chunk-W2VFNVSJ.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js.map → chunk-W2VFNVSJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js → chunk-WVEMZZCR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js.map → chunk-WVEMZZCR.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3VHSI5FL.js → chunk-XN5BEN2B.js} +94 -53
- package/dist/cli-bundle/chunks/chunk-XN5BEN2B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SCUR7K7N.js → chunk-XPSGJ4IV.js} +541 -44
- package/dist/cli-bundle/chunks/chunk-XPSGJ4IV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js → chunk-YQEKE4FO.js} +13 -21
- package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js.map → chunk-YQEKE4FO.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js → chunk-YR5R4FMQ.js} +26 -34
- package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js.map → chunk-YR5R4FMQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js → chunk-YSRXFGNV.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js.map → chunk-YSRXFGNV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js → chunk-YUCKM3MD.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js.map → chunk-YUCKM3MD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js → chunk-YUMNZS3X.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js.map → chunk-YUMNZS3X.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js → chunk-Z2JQH2MG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js → chunk-Z6RLSNUX.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js.map → chunk-Z6RLSNUX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js → chunk-ZMOPZFVT.js} +4 -4
- package/dist/cli-bundle/chunks/close-E3RLZSP2.js +12 -0
- package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js → close-K6BFI3OX.js} +5 -9
- package/dist/cli-bundle/chunks/close-many-6NBL3PM4.js +26 -0
- package/dist/cli-bundle/chunks/close-many-X4YKS3RO.js +22 -0
- package/dist/cli-bundle/chunks/comments-PLFK5ZKK.js +17 -0
- package/dist/cli-bundle/chunks/comments-ZNOD5PTV.js +13 -0
- package/dist/cli-bundle/chunks/copy-F7BUFY4J.js +9 -0
- package/dist/cli-bundle/chunks/{copy-32ROBIDL.js → copy-VH3L4MN2.js} +4 -8
- package/dist/cli-bundle/chunks/create-AMBMYP6F.js +25 -0
- package/dist/cli-bundle/chunks/{create-E77SDCUP.js → create-TRIBYORN.js} +9 -14
- package/dist/cli-bundle/chunks/delete-6KQHZYIP.js +10 -0
- package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js → delete-ZNXUNCZR.js} +4 -8
- package/dist/cli-bundle/chunks/deps-CVDY7FFK.js +13 -0
- package/dist/cli-bundle/chunks/{deps-32SU7HO5.js → deps-SZXQHV73.js} +4 -8
- package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js → docs-DR74ITCD.js} +6 -10
- package/dist/cli-bundle/chunks/docs-WCVYY6I7.js +14 -0
- package/dist/cli-bundle/chunks/files-H5YCA74Z.js +18 -0
- package/dist/cli-bundle/chunks/{files-PYKR2UUG.js → files-QEFQ2M3H.js} +6 -10
- package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js → focus-55TRYSNA.js} +7 -9
- package/dist/cli-bundle/chunks/focus-N2QGNS5D.js +10 -0
- package/dist/cli-bundle/chunks/history-compact-GWQ4UOEI.js +21 -0
- package/dist/cli-bundle/chunks/{history-compact-3MNXLKAT.js → history-compact-JJZ4EFL3.js} +9 -13
- package/dist/cli-bundle/chunks/history-redact-4GJOLXCM.js +17 -0
- package/dist/cli-bundle/chunks/{history-redact-P6DYF55G.js → history-redact-TPPUT3A5.js} +7 -11
- package/dist/cli-bundle/chunks/history-repair-HVCVCGUF.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-ZJQFMWPD.js → history-repair-J7PIZ6ZP.js} +9 -13
- package/dist/cli-bundle/chunks/{append-BGML6VLD.js → learnings-KB6BT4NR.js} +9 -11
- package/dist/cli-bundle/chunks/learnings-YYY3U2Y7.js +13 -0
- package/dist/cli-bundle/chunks/notes-BGG7VL72.js +13 -0
- package/dist/cli-bundle/chunks/notes-ZTHXVOKM.js +17 -0
- package/dist/cli-bundle/chunks/{plan-CHVE7PBR.js → plan-CJPKFRBK.js} +10 -15
- package/dist/cli-bundle/chunks/plan-MK2QY3GA.js +24 -0
- package/dist/cli-bundle/chunks/{profile-ZXGSKBJD.js → profile-AQNHXOYA.js} +9 -13
- package/dist/cli-bundle/chunks/{profile-LD23PSI6.js → profile-HTBFINKQ.js} +9 -13
- package/dist/cli-bundle/chunks/{register-list-query-B42JCCOI.js → register-list-query-EEF33SUJ.js} +43 -34
- package/dist/cli-bundle/chunks/register-list-query-EEF33SUJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-OEYQHFXO.js → register-list-query-S4FBWIWN.js} +42 -33
- package/dist/cli-bundle/chunks/register-list-query-S4FBWIWN.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js → register-mutation-L5Q7AUDN.js} +34 -39
- package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js.map → register-mutation-L5Q7AUDN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js → register-mutation-QFLRBCI7.js} +36 -41
- package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js.map → register-mutation-QFLRBCI7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5BMM6XQY.js → register-operations-HDE4FVW4.js} +79 -46
- package/dist/cli-bundle/chunks/register-operations-HDE4FVW4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Z3U3U5KD.js → register-operations-QDU43FCG.js} +78 -45
- package/dist/cli-bundle/chunks/register-operations-QDU43FCG.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-Q6KFNIOZ.js → register-setup-EGMTAXDC.js} +134 -32
- package/dist/cli-bundle/chunks/register-setup-EGMTAXDC.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-3ZVVX2VN.js → register-setup-PNIO3L2P.js} +133 -31
- package/dist/cli-bundle/chunks/register-setup-PNIO3L2P.js.map +7 -0
- package/dist/cli-bundle/chunks/{restore-5RQHAPMA.js → restore-BTBEZ5CK.js} +7 -11
- package/dist/cli-bundle/chunks/restore-EX4UUZL6.js +15 -0
- package/dist/cli-bundle/chunks/{schema-HBORFC6B.js → schema-DGSTYYQB.js} +6 -10
- package/dist/cli-bundle/chunks/{schema-245WW4G2.js → schema-HAIBEE24.js} +6 -10
- package/dist/cli-bundle/chunks/update-MP4XLU56.js +25 -0
- package/dist/cli-bundle/chunks/update-SDIRJGSY.js +21 -0
- package/dist/cli-bundle/chunks/update-many-34AIU6W7.js +31 -0
- package/dist/cli-bundle/chunks/update-many-JUPCNOKV.js +35 -0
- package/dist/cli-bundle/main.js +56 -32
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +161 -107
- package/dist/cli-bundle/sdk-testing.js +7 -8
- package/dist/cli-bundle/sdk.js +154 -117
- package/dist/cli-bundle/sdk.js.map +2 -2
- package/dist/core/extensions/extension-types.d.ts +1 -0
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.js +268 -231
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/history/drift-scan.js +3 -8
- package/dist/core/history/drift-scan.js.map +1 -1
- package/dist/core/output/mutation-projection.js +11 -5
- package/dist/core/output/mutation-projection.js.map +1 -1
- package/dist/core/search/cache.js +3 -3
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/semantic-defaults.d.ts +2 -0
- package/dist/core/search/semantic-defaults.js +11 -4
- package/dist/core/search/semantic-defaults.js.map +1 -1
- package/dist/core/search/vector-stores.d.ts +1 -1
- package/dist/core/search/vector-stores.js +33 -7
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/sdk/cli-contracts/commander-types.js +3 -3
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +12 -8
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +10 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +14 -8
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +282 -8
- package/dist/sdk/runtime.js +453 -14
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/start-task-status.d.ts +13 -0
- package/dist/sdk/start-task-status.js +19 -0
- package/dist/sdk/start-task-status.js.map +1 -0
- package/docs/COMMANDS.md +10 -1
- package/docs/EXTENSIONS.md +7 -20
- package/docs/RELEASING.md +6 -0
- package/docs/SDK.md +65 -0
- package/docs/TESTING.md +3 -0
- package/package.json +2 -1
- package/dist/cli-bundle/chunks/activity-WJCGCYPU.js +0 -18
- package/dist/cli-bundle/chunks/activity-Z6QUAUSG.js +0 -22
- package/dist/cli-bundle/chunks/aggregate-BDM6EIAR.js +0 -25
- package/dist/cli-bundle/chunks/aggregate-VQ2DHU3S.js +0 -21
- package/dist/cli-bundle/chunks/append-RKJYPU74.js +0 -15
- package/dist/cli-bundle/chunks/chunk-2XG4IZON.js +0 -218
- package/dist/cli-bundle/chunks/chunk-2XG4IZON.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-37E72CNS.js +0 -217
- package/dist/cli-bundle/chunks/chunk-37E72CNS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js +0 -228
- package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js +0 -2330
- package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3VHSI5FL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-425E4QL5.js +0 -278
- package/dist/cli-bundle/chunks/chunk-425E4QL5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-46CUF5L6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +0 -87
- package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js +0 -249
- package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js +0 -819
- package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js +0 -279
- package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-57NWPFF2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js +0 -268
- package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js +0 -1868
- package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js +0 -1749
- package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-64YKRTSV.js +0 -1961
- package/dist/cli-bundle/chunks/chunk-64YKRTSV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7C2O74AE.js +0 -23
- package/dist/cli-bundle/chunks/chunk-7C2O74AE.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js +0 -421
- package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js +0 -1985
- package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CL36D4PC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-COSPOP7H.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-COWTDV6B.js +0 -3461
- package/dist/cli-bundle/chunks/chunk-COWTDV6B.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js +0 -1858
- package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js +0 -1932
- package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EKFNL33R.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js +0 -1704
- package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EOKXK3R3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js +0 -231
- package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js +0 -2090
- package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js +0 -1570
- package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js +0 -239
- package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js +0 -530
- package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GZRDYONU.js +0 -1005
- package/dist/cli-bundle/chunks/chunk-GZRDYONU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js +0 -277
- package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js +0 -309
- package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JINYH2DB.js +0 -371
- package/dist/cli-bundle/chunks/chunk-JINYH2DB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js +0 -2257
- package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-K46RF36U.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KERMZVY5.js +0 -371
- package/dist/cli-bundle/chunks/chunk-KERMZVY5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js +0 -76
- package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LK6XLOGP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js +0 -140
- package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js +0 -1601
- package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js +0 -1031
- package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js +0 -995
- package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js +0 -296
- package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MLIYFOE7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js +0 -2043
- package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js +0 -2033
- package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N745W3B3.js +0 -1604
- package/dist/cli-bundle/chunks/chunk-N745W3B3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js +0 -1615
- package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js +0 -20
- package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js +0 -143
- package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QLMX7SRD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QX6HM775.js +0 -398
- package/dist/cli-bundle/chunks/chunk-QX6HM775.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QZ342C63.js +0 -220
- package/dist/cli-bundle/chunks/chunk-QZ342C63.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js +0 -368
- package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RFNYTESG.js +0 -520
- package/dist/cli-bundle/chunks/chunk-RFNYTESG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js +0 -79
- package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js +0 -282
- package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js +0 -274
- package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SCUR7K7N.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js +0 -1977
- package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js +0 -1041
- package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-T42JWV3F.js +0 -822
- package/dist/cli-bundle/chunks/chunk-T42JWV3F.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TULGS6X6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js +0 -2306
- package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VPIM42PC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-VQRSPVME.js +0 -368
- package/dist/cli-bundle/chunks/chunk-VQRSPVME.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +0 -84
- package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js +0 -3423
- package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WLSM645P.js +0 -2247
- package/dist/cli-bundle/chunks/chunk-WLSM645P.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WRTENIX3.js +0 -215
- package/dist/cli-bundle/chunks/chunk-WRTENIX3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js +0 -388
- package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XC5BURG2.js +0 -306
- package/dist/cli-bundle/chunks/chunk-XC5BURG2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js +0 -424
- package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js +0 -2128
- package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js +0 -299
- package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZSUS2OD3.js.map +0 -7
- package/dist/cli-bundle/chunks/claim-RFS7BROJ.js +0 -19
- package/dist/cli-bundle/chunks/claim-XP5AWZ5H.js +0 -23
- package/dist/cli-bundle/chunks/close-GEANHQ2J.js +0 -16
- package/dist/cli-bundle/chunks/close-many-CMZW7ITN.js +0 -31
- package/dist/cli-bundle/chunks/close-many-ZFDIG6M7.js +0 -27
- package/dist/cli-bundle/chunks/comments-MFSYVNNU.js +0 -21
- package/dist/cli-bundle/chunks/comments-XUBPXDYX.js +0 -17
- package/dist/cli-bundle/chunks/config-D7XQMONX.js +0 -18
- package/dist/cli-bundle/chunks/config-T4FHBSYN.js +0 -22
- package/dist/cli-bundle/chunks/context-DIU275XI.js +0 -48
- package/dist/cli-bundle/chunks/context-JCOYB4LZ.js +0 -44
- package/dist/cli-bundle/chunks/contracts-BVO7CSLK.js +0 -12
- package/dist/cli-bundle/chunks/copy-NAGLGMHZ.js +0 -13
- package/dist/cli-bundle/chunks/create-4V7SWNBB.js +0 -30
- package/dist/cli-bundle/chunks/delete-NQI5OSKN.js +0 -14
- package/dist/cli-bundle/chunks/deps-T7SCWXEX.js +0 -17
- package/dist/cli-bundle/chunks/docs-WL2IWGWV.js +0 -18
- package/dist/cli-bundle/chunks/eval-NF2J5SHR.js +0 -23
- package/dist/cli-bundle/chunks/eval-SKDT3MZU.js +0 -27
- package/dist/cli-bundle/chunks/extension-LAXKCAYE.js +0 -42
- package/dist/cli-bundle/chunks/extension-ZISPBRBC.js +0 -38
- package/dist/cli-bundle/chunks/files-EWRQHGIS.js +0 -22
- package/dist/cli-bundle/chunks/focus-4T7TM4MT.js +0 -18
- package/dist/cli-bundle/chunks/focus-L3YUASOD.js +0 -14
- package/dist/cli-bundle/chunks/gc-2PCTYYRI.js +0 -12
- package/dist/cli-bundle/chunks/get-7DMITJ3G.js +0 -23
- package/dist/cli-bundle/chunks/get-VKQXCXLL.js +0 -19
- package/dist/cli-bundle/chunks/health-CVSTAR2F.js +0 -31
- package/dist/cli-bundle/chunks/health-TV3GKTFN.js +0 -35
- package/dist/cli-bundle/chunks/history-D4JUX5XV.js +0 -20
- package/dist/cli-bundle/chunks/history-D4JUX5XV.js.map +0 -7
- package/dist/cli-bundle/chunks/history-LQ2UWZTE.js +0 -24
- package/dist/cli-bundle/chunks/history-LQ2UWZTE.js.map +0 -1
- package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js.map +0 -1
- package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js +0 -25
- package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js.map +0 -7
- package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js +0 -21
- package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js.map +0 -7
- package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js.map +0 -1
- package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js +0 -23
- package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js.map +0 -7
- package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js.map +0 -1
- package/dist/cli-bundle/chunks/init-C3LJPWQZ.js +0 -30
- package/dist/cli-bundle/chunks/init-C3LJPWQZ.js.map +0 -1
- package/dist/cli-bundle/chunks/init-J3DPGWQI.js +0 -26
- package/dist/cli-bundle/chunks/init-J3DPGWQI.js.map +0 -7
- package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js +0 -21
- package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js.map +0 -1
- package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js +0 -17
- package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js.map +0 -7
- package/dist/cli-bundle/chunks/list-O5NZVSPN.js +0 -36
- package/dist/cli-bundle/chunks/list-O5NZVSPN.js.map +0 -1
- package/dist/cli-bundle/chunks/list-Z55YCNTC.js +0 -32
- package/dist/cli-bundle/chunks/list-Z55YCNTC.js.map +0 -7
- package/dist/cli-bundle/chunks/next-GBNTGXFC.js +0 -28
- package/dist/cli-bundle/chunks/next-GBNTGXFC.js.map +0 -7
- package/dist/cli-bundle/chunks/next-QKW7PTKE.js +0 -32
- package/dist/cli-bundle/chunks/next-QKW7PTKE.js.map +0 -1
- package/dist/cli-bundle/chunks/notes-R5FZTKWF.js +0 -17
- package/dist/cli-bundle/chunks/notes-R5FZTKWF.js.map +0 -7
- package/dist/cli-bundle/chunks/notes-WCGIULVG.js +0 -21
- package/dist/cli-bundle/chunks/notes-WCGIULVG.js.map +0 -1
- package/dist/cli-bundle/chunks/plan-ADISFYH4.js +0 -29
- package/dist/cli-bundle/chunks/plan-ADISFYH4.js.map +0 -7
- package/dist/cli-bundle/chunks/plan-CHVE7PBR.js.map +0 -1
- package/dist/cli-bundle/chunks/profile-LD23PSI6.js.map +0 -7
- package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-B42JCCOI.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-OEYQHFXO.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js +0 -19
- package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js +0 -23
- package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-5RQHAPMA.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-PNEIBBLW.js +0 -19
- package/dist/cli-bundle/chunks/restore-PNEIBBLW.js.map +0 -7
- package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js +0 -29
- package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js.map +0 -1
- package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js +0 -25
- package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js.map +0 -7
- package/dist/cli-bundle/chunks/schema-245WW4G2.js.map +0 -1
- package/dist/cli-bundle/chunks/schema-HBORFC6B.js.map +0 -7
- package/dist/cli-bundle/chunks/search-AOZC5SIK.js +0 -34
- package/dist/cli-bundle/chunks/search-AOZC5SIK.js.map +0 -7
- package/dist/cli-bundle/chunks/search-DRXPGHD7.js +0 -38
- package/dist/cli-bundle/chunks/search-DRXPGHD7.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-NJG4NLHG.js +0 -21
- package/dist/cli-bundle/chunks/stats-NJG4NLHG.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-RG6AG4N2.js +0 -17
- package/dist/cli-bundle/chunks/stats-RG6AG4N2.js.map +0 -7
- package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js +0 -14
- package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js.map +0 -7
- package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js +0 -18
- package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js.map +0 -1
- package/dist/cli-bundle/chunks/test-6CMOCWUC.js +0 -39
- package/dist/cli-bundle/chunks/test-6CMOCWUC.js.map +0 -7
- package/dist/cli-bundle/chunks/test-RI7XHBZL.js +0 -43
- package/dist/cli-bundle/chunks/test-RI7XHBZL.js.map +0 -1
- package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js +0 -29
- package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js.map +0 -7
- package/dist/cli-bundle/chunks/test-all-QEIORFYW.js +0 -33
- package/dist/cli-bundle/chunks/test-all-QEIORFYW.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js +0 -28
- package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js +0 -24
- package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js.map +0 -7
- package/dist/cli-bundle/chunks/update-QVJDFEAP.js +0 -30
- package/dist/cli-bundle/chunks/update-QVJDFEAP.js.map +0 -1
- package/dist/cli-bundle/chunks/update-VQVHAY6X.js +0 -26
- package/dist/cli-bundle/chunks/update-VQVHAY6X.js.map +0 -7
- package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js +0 -37
- package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js.map +0 -7
- package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js +0 -41
- package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js.map +0 -1
- package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js +0 -24
- package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js.map +0 -7
- package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js +0 -28
- package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-4NTXSB62.js +0 -36
- package/dist/cli-bundle/chunks/validate-4NTXSB62.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-MUFXQZMI.js +0 -32
- package/dist/cli-bundle/chunks/validate-MUFXQZMI.js.map +0 -7
- /package/dist/cli-bundle/chunks/{activity-WJCGCYPU.js.map → append-CDPAYYSB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-Z6QUAUSG.js.map → append-RSPHC423.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-24YG75HI.js.map → chunk-3FUXM574.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js.map → chunk-3SHDAKMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js.map → chunk-3V5C7PUH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js.map → chunk-4I7KS5ES.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js.map → chunk-5STY7NVM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js.map → chunk-5VAZHYVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js.map → chunk-6RR4XM5H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js.map → chunk-7QKSLAHB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js.map → chunk-7UCBLJDF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js.map → chunk-BFNFTHWQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js.map → chunk-C3YU3TXX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js.map → chunk-CGDUIPJL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XG625QP4.js.map → chunk-EP2CKDS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js.map → chunk-J6AD3GWC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js.map → chunk-KFL3XHMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js.map → chunk-PCBZ2VJD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js.map → chunk-Q3CFSOQZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js.map → chunk-TU5P744I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js.map → chunk-UEATYUZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js.map → chunk-UFNFHCAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js.map → chunk-Z2JQH2MG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js.map → chunk-ZMOPZFVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-VQ2DHU3S.js.map → close-E3RLZSP2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-BDM6EIAR.js.map → close-K6BFI3OX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-BGML6VLD.js.map → close-many-6NBL3PM4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-RKJYPU74.js.map → close-many-X4YKS3RO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-XP5AWZ5H.js.map → comments-PLFK5ZKK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-RFS7BROJ.js.map → comments-ZNOD5PTV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-GEANHQ2J.js.map → copy-F7BUFY4J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js.map → copy-VH3L4MN2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-ZFDIG6M7.js.map → create-AMBMYP6F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-CMZW7ITN.js.map → create-TRIBYORN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-XUBPXDYX.js.map → delete-6KQHZYIP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-MFSYVNNU.js.map → delete-ZNXUNCZR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-D7XQMONX.js.map → deps-CVDY7FFK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-T4FHBSYN.js.map → deps-SZXQHV73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-DIU275XI.js.map → docs-DR74ITCD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-JCOYB4LZ.js.map → docs-WCVYY6I7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-BVO7CSLK.js.map → files-H5YCA74Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js.map → files-QEFQ2M3H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-32ROBIDL.js.map → focus-55TRYSNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-NAGLGMHZ.js.map → focus-N2QGNS5D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-4V7SWNBB.js.map → history-compact-GWQ4UOEI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-E77SDCUP.js.map → history-compact-JJZ4EFL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-NQI5OSKN.js.map → history-redact-4GJOLXCM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js.map → history-redact-TPPUT3A5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-T7SCWXEX.js.map → history-repair-HVCVCGUF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-32SU7HO5.js.map → history-repair-J7PIZ6ZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js.map → learnings-KB6BT4NR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-WL2IWGWV.js.map → learnings-YYY3U2Y7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-NF2J5SHR.js.map → notes-BGG7VL72.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-SKDT3MZU.js.map → notes-ZTHXVOKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-LAXKCAYE.js.map → plan-CJPKFRBK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-ZISPBRBC.js.map → plan-MK2QY3GA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-PYKR2UUG.js.map → profile-AQNHXOYA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-EWRQHGIS.js.map → profile-HTBFINKQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-4T7TM4MT.js.map → restore-BTBEZ5CK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-L3YUASOD.js.map → restore-EX4UUZL6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-2PCTYYRI.js.map → schema-DGSTYYQB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js.map → schema-HAIBEE24.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-7DMITJ3G.js.map → update-MP4XLU56.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-VKQXCXLL.js.map → update-SDIRJGSY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-CVSTAR2F.js.map → update-many-34AIU6W7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-TV3GKTFN.js.map → update-many-JUPCNOKV.js.map} +0 -0
|
@@ -1,1868 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
3
|
-
ACTIVITY_FLAG_CONTRACTS,
|
|
4
|
-
AGGREGATE_FLAG_CONTRACTS,
|
|
5
|
-
APPEND_FLAG_CONTRACTS,
|
|
6
|
-
CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
7
|
-
CALENDAR_FLAG_CONTRACTS,
|
|
8
|
-
CLAIM_FLAG_CONTRACTS,
|
|
9
|
-
CLOSE_FLAG_CONTRACTS,
|
|
10
|
-
CLOSE_MANY_FLAG_CONTRACTS,
|
|
11
|
-
CLOSE_TASK_FLAG_CONTRACTS,
|
|
12
|
-
COMMENTS_AUDIT_FLAG_CONTRACTS,
|
|
13
|
-
COMMENTS_FLAG_CONTRACTS,
|
|
14
|
-
COMPLETION_FLAG_CONTRACTS,
|
|
15
|
-
CONFIG_FLAG_CONTRACTS,
|
|
16
|
-
CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
17
|
-
CONTEXT_FLAG_CONTRACTS,
|
|
18
|
-
CONTRACTS_FLAG_CONTRACTS,
|
|
19
|
-
CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
|
|
20
|
-
CREATE_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
21
|
-
CREATE_FLAG_CONTRACTS,
|
|
22
|
-
DEDUPE_AUDIT_FLAG_CONTRACTS,
|
|
23
|
-
DEDUPE_MERGE_FLAG_CONTRACTS,
|
|
24
|
-
DELETE_FLAG_CONTRACTS,
|
|
25
|
-
DEPS_FLAG_CONTRACTS,
|
|
26
|
-
DOCS_FLAG_CONTRACTS,
|
|
27
|
-
EVAL_FLAG_CONTRACTS,
|
|
28
|
-
EXTENSION_ACTIVATE_FLAG_CONTRACTS,
|
|
29
|
-
EXTENSION_ADOPT_ALL_FLAG_CONTRACTS,
|
|
30
|
-
EXTENSION_ADOPT_FLAG_CONTRACTS,
|
|
31
|
-
EXTENSION_CATALOG_FLAG_CONTRACTS,
|
|
32
|
-
EXTENSION_DEACTIVATE_FLAG_CONTRACTS,
|
|
33
|
-
EXTENSION_DESCRIBE_FLAG_CONTRACTS,
|
|
34
|
-
EXTENSION_DOCTOR_FLAG_CONTRACTS,
|
|
35
|
-
EXTENSION_EXPLORE_FLAG_CONTRACTS,
|
|
36
|
-
EXTENSION_FLAG_CONTRACTS,
|
|
37
|
-
EXTENSION_INIT_FLAG_CONTRACTS,
|
|
38
|
-
EXTENSION_INSTALL_FLAG_CONTRACTS,
|
|
39
|
-
EXTENSION_MANAGE_FLAG_CONTRACTS,
|
|
40
|
-
EXTENSION_RELOAD_FLAG_CONTRACTS,
|
|
41
|
-
EXTENSION_UNINSTALL_FLAG_CONTRACTS,
|
|
42
|
-
FILES_FLAG_CONTRACTS,
|
|
43
|
-
GC_FLAG_CONTRACTS,
|
|
44
|
-
GET_FLAG_CONTRACTS,
|
|
45
|
-
GLOBAL_FLAG_CONTRACTS,
|
|
46
|
-
GUIDE_FLAG_CONTRACTS,
|
|
47
|
-
HEALTH_FLAG_CONTRACTS,
|
|
48
|
-
HISTORY_COMPACT_FLAG_CONTRACTS,
|
|
49
|
-
HISTORY_FLAG_CONTRACTS,
|
|
50
|
-
HISTORY_REDACT_FLAG_CONTRACTS,
|
|
51
|
-
HISTORY_REPAIR_FLAG_CONTRACTS,
|
|
52
|
-
INIT_FLAG_CONTRACTS,
|
|
53
|
-
INSTALL_FLAG_CONTRACTS,
|
|
54
|
-
LEARNINGS_FLAG_CONTRACTS,
|
|
55
|
-
LIST_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
56
|
-
LIST_FILTER_FLAG_CONTRACTS,
|
|
57
|
-
NEXT_FLAG_CONTRACTS,
|
|
58
|
-
NORMALIZE_FLAG_CONTRACTS,
|
|
59
|
-
NOTES_FLAG_CONTRACTS,
|
|
60
|
-
PACKAGE_FLAG_CONTRACTS,
|
|
61
|
-
PACKAGE_INIT_FLAG_CONTRACTS,
|
|
62
|
-
PAUSE_TASK_FLAG_CONTRACTS,
|
|
63
|
-
PLAN_FLAG_CONTRACTS,
|
|
64
|
-
PM_CORE_COMMAND_NAMES,
|
|
65
|
-
PM_EXTENSION_CAPABILITY_CONTRACTS,
|
|
66
|
-
PM_EXTENSION_POLICY_MODE_CONTRACTS,
|
|
67
|
-
PM_EXTENSION_POLICY_SURFACE_CONTRACTS,
|
|
68
|
-
PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS,
|
|
69
|
-
PM_EXTENSION_SERVICE_NAME_CONTRACTS,
|
|
70
|
-
PM_EXTENSION_TRUST_MODE_CONTRACTS,
|
|
71
|
-
PM_TOOL_ACTIONS,
|
|
72
|
-
PM_TOOL_PARAMETERS_SCHEMA,
|
|
73
|
-
PROFILE_FLAG_CONTRACTS,
|
|
74
|
-
REINDEX_FLAG_CONTRACTS,
|
|
75
|
-
RELEASE_FLAG_CONTRACTS,
|
|
76
|
-
RESTORE_FLAG_CONTRACTS,
|
|
77
|
-
SCHEMA_FLAG_CONTRACTS,
|
|
78
|
-
SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
79
|
-
SEARCH_FLAG_CONTRACTS,
|
|
80
|
-
START_TASK_FLAG_CONTRACTS,
|
|
81
|
-
STATS_FLAG_CONTRACTS,
|
|
82
|
-
TELEMETRY_FLAG_CONTRACTS,
|
|
83
|
-
TEST_ALL_FLAG_CONTRACTS,
|
|
84
|
-
TEST_FLAG_CONTRACTS,
|
|
85
|
-
TEST_RUNS_FLAG_CONTRACTS,
|
|
86
|
-
UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
|
|
87
|
-
UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
88
|
-
UPDATE_FLAG_CONTRACTS,
|
|
89
|
-
UPDATE_MANY_FLAG_CONTRACTS,
|
|
90
|
-
UPGRADE_FLAG_CONTRACTS,
|
|
91
|
-
VALIDATE_FLAG_CONTRACTS,
|
|
92
|
-
compactFlagAliasContracts
|
|
93
|
-
} from "./chunk-VIIUS6N6.js";
|
|
94
|
-
import {
|
|
95
|
-
PmCliError,
|
|
96
|
-
getActiveExtensionRegistrations,
|
|
97
|
-
readSettings
|
|
98
|
-
} from "./chunk-SHQY2IDC.js";
|
|
99
|
-
import {
|
|
100
|
-
EXIT_CODE,
|
|
101
|
-
RUNTIME_STATUS_ROLE_VALUES,
|
|
102
|
-
SETTINGS_DEFAULTS,
|
|
103
|
-
activateExtensions,
|
|
104
|
-
commandOptionFlagLabel,
|
|
105
|
-
getSettingsPath,
|
|
106
|
-
loadExtensions,
|
|
107
|
-
pathExists,
|
|
108
|
-
resolveCommandOptionPolicyState,
|
|
109
|
-
resolveItemTypeRegistry,
|
|
110
|
-
resolvePmRoot,
|
|
111
|
-
resolveRuntimeFieldRegistry,
|
|
112
|
-
resolveRuntimeStatusRegistry
|
|
113
|
-
} from "./chunk-LK6XLOGP.js";
|
|
114
|
-
|
|
115
|
-
// dist/mcp/tool-definitions.js
|
|
116
|
-
!(function() {
|
|
117
|
-
try {
|
|
118
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
119
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "2985c46c-49c8-53d2-b31c-5e1531b7b3ff");
|
|
120
|
-
} catch (e2) {
|
|
121
|
-
}
|
|
122
|
-
})();
|
|
123
|
-
var TOOL_SCHEMA_BASE = {
|
|
124
|
-
type: "object",
|
|
125
|
-
properties: {
|
|
126
|
-
cwd: {
|
|
127
|
-
type: "string",
|
|
128
|
-
description: "Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd."
|
|
129
|
-
},
|
|
130
|
-
path: {
|
|
131
|
-
type: "string",
|
|
132
|
-
description: "Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking."
|
|
133
|
-
},
|
|
134
|
-
author: {
|
|
135
|
-
type: "string",
|
|
136
|
-
description: "Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation."
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
additionalProperties: true
|
|
140
|
-
};
|
|
141
|
-
var idSchema = {
|
|
142
|
-
type: "string",
|
|
143
|
-
description: "pm item id, for example pm-abc1."
|
|
144
|
-
};
|
|
145
|
-
var PM_RUN_ACTION_DESCRIPTION = `Operation name (one of): ${PM_TOOL_ACTIONS.join(", ")}. Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.`;
|
|
146
|
-
var LIST_TOP_LEVEL_OPTION_PROPERTIES = {
|
|
147
|
-
status: { type: "string", description: "Alias for options.status." },
|
|
148
|
-
type: { type: "string", description: "Alias for options.type." },
|
|
149
|
-
tag: { type: "string", description: "Alias for options.tag." },
|
|
150
|
-
priority: { type: "string", description: "Alias for options.priority." },
|
|
151
|
-
limit: { type: ["string", "number"], description: "Alias for options.limit." },
|
|
152
|
-
offset: { type: ["string", "number"], description: "Alias for options.offset." }
|
|
153
|
-
};
|
|
154
|
-
var SEARCH_TOP_LEVEL_OPTION_PROPERTIES = {
|
|
155
|
-
mode: { type: "string", description: "Alias for options.mode." },
|
|
156
|
-
status: { type: "string", description: "Alias for options.status." },
|
|
157
|
-
type: { type: "string", description: "Alias for options.type." },
|
|
158
|
-
tag: { type: "string", description: "Alias for options.tag." },
|
|
159
|
-
priority: { type: "string", description: "Alias for options.priority." },
|
|
160
|
-
limit: { type: ["string", "number"], description: "Alias for options.limit." }
|
|
161
|
-
};
|
|
162
|
-
function objectSchema(properties, required = []) {
|
|
163
|
-
return {
|
|
164
|
-
...TOOL_SCHEMA_BASE,
|
|
165
|
-
properties: {
|
|
166
|
-
...TOOL_SCHEMA_BASE.properties,
|
|
167
|
-
...properties
|
|
168
|
-
},
|
|
169
|
-
required
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
var TOOLS = [
|
|
173
|
-
{
|
|
174
|
-
name: "pm_run",
|
|
175
|
-
description: "Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.",
|
|
176
|
-
inputSchema: objectSchema({
|
|
177
|
-
action: {
|
|
178
|
-
type: "string",
|
|
179
|
-
description: PM_RUN_ACTION_DESCRIPTION
|
|
180
|
-
},
|
|
181
|
-
id: idSchema,
|
|
182
|
-
query: { type: "string", description: "Search query for action=search." },
|
|
183
|
-
reason: { type: "string", description: "Close reason for action=close." },
|
|
184
|
-
force: { type: "boolean", description: "Force ownership/terminal-state override when supported." },
|
|
185
|
-
// pm-v68d: the schema-specific subcommand enum and add-type/add-status
|
|
186
|
-
// properties migrated to the dedicated pm_schema tool. action=schema
|
|
187
|
-
// still accepts them as passthrough, but agents should prefer pm_schema.
|
|
188
|
-
subcommand: {
|
|
189
|
-
type: "string",
|
|
190
|
-
description: "Subcommand selector for actions that take one (for example telemetry, or schema \u2014 prefer the dedicated pm_schema tool for schema operations)."
|
|
191
|
-
},
|
|
192
|
-
options: { type: "object", description: "Underlying pm command options using camelCase keys." },
|
|
193
|
-
fullChangedFields: {
|
|
194
|
-
type: "boolean",
|
|
195
|
-
description: "For mutation actions, return the full changed_fields array instead of the default changed_field_count."
|
|
196
|
-
},
|
|
197
|
-
idOnly: {
|
|
198
|
-
type: "boolean",
|
|
199
|
-
description: "For single-item mutation actions, return only id and status."
|
|
200
|
-
}
|
|
201
|
-
}, ["action"])
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
name: "pm_context",
|
|
205
|
-
description: "Return the agent-oriented project context snapshot. Pass options.depth=brief|standard|deep|full (full = every section with no per-section row cap), options.parent='<id>' to scope the snapshot to one item's subtree (the item plus all descendants), options.fields='id,title,priority' to project focus rows to a field subset for low-token reads, or options.section=['hierarchy','progress',...] to pick sections.",
|
|
206
|
-
inputSchema: objectSchema({ options: { type: "object" } })
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
name: "pm_next",
|
|
210
|
-
description: "Recommend the next actionable work item: the single highest-priority READY item (active status, no open blockers, no open children; completed containers surface only when no concrete leaf work is ready) plus the ranked ready and blocked queues. The recommended item carries a rationale and each blocked item lists the open blockers gating it. Pass options.parent='<id>' to scope to one subtree, options.limit=N to cap ready rows, options.readyOnly=true to omit the blocked list, or filters (options.type/tag/priority/assignee/sprint/release). The most token-efficient 'what should I do now?' read for agents.",
|
|
211
|
-
inputSchema: objectSchema({ options: { type: "object" } })
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
name: "pm_search",
|
|
215
|
-
description: "Search pm items with keyword, semantic, or hybrid search. Defaults to a compact projection for token efficiency. Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, options.status='all' for no lifecycle restriction, options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large). The result echoes the applied filters and projection mode in query_summary.",
|
|
216
|
-
inputSchema: objectSchema({ query: { type: "string" }, options: { type: "object" }, ...SEARCH_TOP_LEVEL_OPTION_PROPERTIES }, ["query"])
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
name: "pm_list",
|
|
220
|
-
description: "List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. options.status accepts CSV (all,open,in_progress). Pass options.compact=false or options.includeBody=true for full bodies/comments. Pass options.brief=true for ultra-terse (id/status/type/title only). Pass options.fields='id,title,priority' for custom projection. Pass options.limit=N to cap row count. The result echoes the applied filters and projection mode in query_summary.",
|
|
221
|
-
inputSchema: objectSchema({ options: { type: "object" }, ...LIST_TOP_LEVEL_OPTION_PROPERTIES })
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
name: "pm_get",
|
|
225
|
-
description: "Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.",
|
|
226
|
-
inputSchema: objectSchema({
|
|
227
|
-
id: idSchema,
|
|
228
|
-
options: { type: "object", description: "Get options such as depth=brief|standard|deep|full or fields=id,title,status." }
|
|
229
|
-
}, ["id"])
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
name: "pm_create",
|
|
233
|
-
description: "Create a pm item natively and write pm history. Output is compact by default (changed_fields replaced with changed_field_count for token efficiency); pass fullChangedFields=true for the full changed_fields array.",
|
|
234
|
-
inputSchema: objectSchema({
|
|
235
|
-
fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
|
|
236
|
-
allowMissingParent: { type: "boolean", description: "Allow unresolved parent references and emit a validation warning." },
|
|
237
|
-
options: { type: "object", description: "Create options. title and description are required." }
|
|
238
|
-
}, ["options"])
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
name: "pm_copy",
|
|
242
|
-
description: "Copy an existing pm item into a new id while resetting lifecycle fields. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
|
|
243
|
-
inputSchema: objectSchema({
|
|
244
|
-
id: idSchema,
|
|
245
|
-
fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
|
|
246
|
-
options: { type: "object", description: "Copy options such as title override, author, and message." }
|
|
247
|
-
}, ["id"])
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
name: "pm_focus",
|
|
251
|
-
description: "Set, clear, or show the session focused item. When focused, pm_create defaults its parent to the focused item (an explicit parent still overrides). Pass id to focus an item, options.clear=true to clear, or neither to show current focus.",
|
|
252
|
-
inputSchema: objectSchema({
|
|
253
|
-
id: idSchema,
|
|
254
|
-
clear: { type: "boolean", description: "Clear the focused item (cannot be combined with id)." },
|
|
255
|
-
options: { type: "object", description: "Focus options such as clear (boolean)." }
|
|
256
|
-
}, [])
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
name: "pm_update",
|
|
260
|
-
description: "Update pm item metadata/body/dependencies/log seeds natively. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields delta.",
|
|
261
|
-
inputSchema: objectSchema({
|
|
262
|
-
id: idSchema,
|
|
263
|
-
fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
|
|
264
|
-
options: { type: "object" }
|
|
265
|
-
}, ["id", "options"])
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
name: "pm_append",
|
|
269
|
-
description: "Append markdown text to a pm item body and write pm history. Useful for seeding evidence/log entries before close. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
|
|
270
|
-
inputSchema: objectSchema({
|
|
271
|
-
id: idSchema,
|
|
272
|
-
body: {
|
|
273
|
-
type: "string",
|
|
274
|
-
description: "Markdown text to append to the item body. Required here or as options.body."
|
|
275
|
-
},
|
|
276
|
-
fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
|
|
277
|
-
options: { type: "object", description: "Append options such as body, author, and message." }
|
|
278
|
-
}, ["id"])
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
name: "pm_claim",
|
|
282
|
-
description: "Claim a pm item.",
|
|
283
|
-
inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"])
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
name: "pm_release",
|
|
287
|
-
description: "Release a pm item claim.",
|
|
288
|
-
inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"])
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
name: "pm_close",
|
|
292
|
-
description: "Close a pm item with optional close reason and optional close validation (reason requirement follows governance settings). Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
|
|
293
|
-
inputSchema: objectSchema({
|
|
294
|
-
id: idSchema,
|
|
295
|
-
reason: { type: "string", description: "Close reason text when provided or required by governance settings." },
|
|
296
|
-
duplicateOf: { type: "string", description: "Canonical item id when closing this item as a duplicate." },
|
|
297
|
-
fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
|
|
298
|
-
idOnly: { type: "boolean", description: "Return only id and status." },
|
|
299
|
-
options: { type: "object" }
|
|
300
|
-
}, ["id"])
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
name: "pm_comments",
|
|
304
|
-
description: "List, add, edit, or delete comments on a pm item. Use options.add to append, options.edit=<1-based index> with replacement text to fix a comment, or options.delete=<1-based index> to remove one. List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.",
|
|
305
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
name: "pm_files",
|
|
309
|
-
description: "List, add, remove, audit, or validate linked files for a pm item.",
|
|
310
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
name: "pm_docs",
|
|
314
|
-
description: "List, add, or remove linked docs for a pm item.",
|
|
315
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
name: "pm_notes",
|
|
319
|
-
description: "List or add structured notes on a pm item. Use options.add to append a note; omit it to list existing notes.",
|
|
320
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
name: "pm_learnings",
|
|
324
|
-
description: "List or add learnings on a pm item. Use options.add to capture a learning/insight; omit it to list existing learnings.",
|
|
325
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
name: "pm_deps",
|
|
329
|
-
description: "List, add, or remove dependencies for a pm item. Use options.add to declare a dependency and options.remove to drop one; omit both to list current dependencies.",
|
|
330
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
name: "pm_test",
|
|
334
|
-
description: "List, add, remove, or run linked tests for a pm item.",
|
|
335
|
-
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
name: "pm_validate",
|
|
339
|
-
description: "Run pm validation checks.",
|
|
340
|
-
inputSchema: objectSchema({ options: { type: "object" } })
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
name: "pm_health",
|
|
344
|
-
description: "Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.",
|
|
345
|
-
inputSchema: objectSchema({ options: { type: "object" } })
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
name: "pm_contracts",
|
|
349
|
-
description: "Inspect pm command, flag, schema, and availability contracts.",
|
|
350
|
-
inputSchema: objectSchema({ options: { type: "object" } })
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
name: "pm_schema",
|
|
354
|
-
description: "Inspect or modify the workspace item-type/status/field schema (pm schema). subcommand selects the operation; name carries the item type name (show/add-type/remove-type), status id (show-status/add-status/remove-status), or field key (show-field/add-field/remove-field). apply-preset adopts a domain type preset; add-type with infer=true derives types from title-prefix conventions. Schema mutations write workspace config files, not item history.",
|
|
355
|
-
inputSchema: objectSchema({
|
|
356
|
-
subcommand: {
|
|
357
|
-
type: "string",
|
|
358
|
-
enum: [
|
|
359
|
-
"list",
|
|
360
|
-
"show",
|
|
361
|
-
"show-status",
|
|
362
|
-
"add-type",
|
|
363
|
-
"remove-type",
|
|
364
|
-
"add-status",
|
|
365
|
-
"remove-status",
|
|
366
|
-
"add-field",
|
|
367
|
-
"remove-field",
|
|
368
|
-
"list-fields",
|
|
369
|
-
"show-field",
|
|
370
|
-
"apply-preset"
|
|
371
|
-
],
|
|
372
|
-
description: "Schema subcommand to run."
|
|
373
|
-
},
|
|
374
|
-
name: {
|
|
375
|
-
type: "string",
|
|
376
|
-
description: "Item type name (show/add-type/remove-type), status id (show-status/add-status/remove-status), or custom field key (show-field/add-field/remove-field). Required for those subcommands."
|
|
377
|
-
},
|
|
378
|
-
description: {
|
|
379
|
-
type: "string",
|
|
380
|
-
description: "Custom item type, status, or field description for add-type/add-status/add-field."
|
|
381
|
-
},
|
|
382
|
-
defaultStatus: { type: "string", description: "Default status for add-type." },
|
|
383
|
-
folder: { type: "string", description: "Storage folder for add-type." },
|
|
384
|
-
alias: {
|
|
385
|
-
type: "array",
|
|
386
|
-
items: { type: "string" },
|
|
387
|
-
description: "Aliases for add-type/add-status, or extra CLI flag aliases for add-field."
|
|
388
|
-
},
|
|
389
|
-
role: {
|
|
390
|
-
type: "array",
|
|
391
|
-
items: { type: "string", enum: [...RUNTIME_STATUS_ROLE_VALUES] },
|
|
392
|
-
description: `Lifecycle roles for add-status: ${RUNTIME_STATUS_ROLE_VALUES.join(", ")}.`
|
|
393
|
-
},
|
|
394
|
-
order: { type: "number", description: "Display/sort order for add-status." },
|
|
395
|
-
fieldType: {
|
|
396
|
-
type: "string",
|
|
397
|
-
enum: ["string", "number", "boolean", "string_array"],
|
|
398
|
-
description: "Value type for a custom field (add-field)."
|
|
399
|
-
},
|
|
400
|
-
commands: {
|
|
401
|
-
type: "array",
|
|
402
|
-
items: { type: "string" },
|
|
403
|
-
description: "Commands a custom field is wired onto (add-field): create, update, update_many, list, search, calendar, context."
|
|
404
|
-
},
|
|
405
|
-
cliFlag: { type: "string", description: "Override the auto-derived CLI flag for a custom field (add-field)." },
|
|
406
|
-
required: { type: "boolean", description: "Mark a custom field as always required (add-field)." },
|
|
407
|
-
requiredOnCreate: { type: "boolean", description: "Mark a custom field as required at create time (add-field)." },
|
|
408
|
-
allowUnset: { type: "boolean", description: "Whether a custom field may be cleared via --unset (add-field); defaults to true." },
|
|
409
|
-
requiredTypes: {
|
|
410
|
-
type: "array",
|
|
411
|
-
items: { type: "string" },
|
|
412
|
-
description: "Restrict a custom field's requirement to specific item types (add-field)."
|
|
413
|
-
},
|
|
414
|
-
typePreset: {
|
|
415
|
-
type: "string",
|
|
416
|
-
enum: ["agile", "ops", "research"],
|
|
417
|
-
description: "Domain type preset to adopt (apply-preset)."
|
|
418
|
-
},
|
|
419
|
-
infer: { type: "boolean", description: "Infer item types from title-prefix conventions (add-type); previews unless apply is true." },
|
|
420
|
-
minCount: { type: "number", description: "Minimum items sharing a prefix for add-type inference (default 10)." },
|
|
421
|
-
apply: { type: "boolean", description: "Register inferred types (add-type infer); without it the call previews only." },
|
|
422
|
-
force: { type: "boolean", description: "Override removal guardrails for destructive schema changes when supported." },
|
|
423
|
-
options: { type: "object", description: "Additional schema options using camelCase keys." }
|
|
424
|
-
}, ["subcommand"])
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
name: "pm_profile",
|
|
428
|
-
description: "List, show, apply, or lint project profiles (pm profile) \u2014 archetype bundles that stage item types, statuses, fields, per-type workflows, config knobs, create templates, and recommended packages. subcommand selects the operation; name carries the profile name (agile, ops, research) for show/apply/lint. apply stages every dimension idempotently; dryRun previews the diff without writing; lint reports author-time consistency findings (graded error/warning) without touching the tracker. Profile staging writes workspace config/schema files, not item history.",
|
|
429
|
-
inputSchema: objectSchema({
|
|
430
|
-
subcommand: {
|
|
431
|
-
type: "string",
|
|
432
|
-
enum: ["list", "show", "apply", "lint"],
|
|
433
|
-
description: "Profile subcommand to run."
|
|
434
|
-
},
|
|
435
|
-
name: {
|
|
436
|
-
type: "string",
|
|
437
|
-
description: "Profile name for show/apply/lint. Required for those subcommands. Built-ins are agile, ops, and research; an active extension can contribute additional archetype names that resolve here too."
|
|
438
|
-
},
|
|
439
|
-
dryRun: { type: "boolean", description: "Preview the apply diff without writing any files (apply)." },
|
|
440
|
-
author: { type: "string", description: "Mutation author for apply." },
|
|
441
|
-
force: { type: "boolean", description: "Force ownership/lock override for apply." },
|
|
442
|
-
options: { type: "object", description: "Additional profile options using camelCase keys." }
|
|
443
|
-
}, ["subcommand"])
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
name: "pm_config",
|
|
447
|
-
description: "Read or write pm workspace configuration (pm config). configAction selects get/set/list/export; key/value address a single setting for get/set. scope chooses the project (default) or global settings file.",
|
|
448
|
-
inputSchema: objectSchema({
|
|
449
|
-
configAction: {
|
|
450
|
-
type: "string",
|
|
451
|
-
enum: ["get", "set", "list", "export"],
|
|
452
|
-
description: "Config operation to perform. get/set require key; list/export dump the resolved settings surface."
|
|
453
|
-
},
|
|
454
|
-
key: {
|
|
455
|
-
type: "string",
|
|
456
|
-
description: "Settings key for get/set, for example governance-require-close-reason, telemetry-tracking, or a nested leaf such as search_provider (dash and underscore variants accepted; configAction=get without a key lists supported keys in the error)."
|
|
457
|
-
},
|
|
458
|
-
value: { type: "string", description: "New value for configAction=set." },
|
|
459
|
-
scope: {
|
|
460
|
-
type: "string",
|
|
461
|
-
enum: ["project", "global"],
|
|
462
|
-
description: "Settings scope to read or write. Defaults to project."
|
|
463
|
-
},
|
|
464
|
-
options: {
|
|
465
|
-
type: "object",
|
|
466
|
-
description: "Additional config options such as criterion, clearCriteria, format, or policy."
|
|
467
|
-
}
|
|
468
|
-
}, ["configAction"])
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
name: "pm_plan",
|
|
472
|
-
description: "Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.",
|
|
473
|
-
inputSchema: objectSchema({
|
|
474
|
-
id: { type: "string", description: "Plan id (required for all subcommands except create)." },
|
|
475
|
-
stepRef: { type: "string", description: "Step id or order for step lifecycle subcommands." },
|
|
476
|
-
reorderTo: { type: "number", description: "New order for reorder-step." },
|
|
477
|
-
options: { type: "object", description: "Plan options including subcommand, stepRef, stepStatus, link, depth, etc." }
|
|
478
|
-
})
|
|
479
|
-
}
|
|
480
|
-
];
|
|
481
|
-
function buildMcpToolContracts() {
|
|
482
|
-
return TOOLS.map((tool) => {
|
|
483
|
-
const schemaRequired = tool.inputSchema["required"];
|
|
484
|
-
const required = Array.isArray(schemaRequired) ? schemaRequired.map((entry) => String(entry)).sort((left, right) => left.localeCompare(right)) : [];
|
|
485
|
-
return {
|
|
486
|
-
name: tool.name,
|
|
487
|
-
description: tool.description,
|
|
488
|
-
required,
|
|
489
|
-
input_schema: tool.inputSchema
|
|
490
|
-
};
|
|
491
|
-
}).sort((left, right) => left.name.localeCompare(right.name));
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
// dist/cli/commands/contracts.js
|
|
495
|
-
!(function() {
|
|
496
|
-
try {
|
|
497
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
498
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "24d15738-45bd-5dd2-95e1-699f9c6061bd");
|
|
499
|
-
} catch (e2) {
|
|
500
|
-
}
|
|
501
|
-
})();
|
|
502
|
-
var LIST_COMMAND_NAMES = /* @__PURE__ */ new Set([
|
|
503
|
-
"list",
|
|
504
|
-
"list-all",
|
|
505
|
-
"list-draft",
|
|
506
|
-
"list-open",
|
|
507
|
-
"list-in-progress",
|
|
508
|
-
"list-blocked",
|
|
509
|
-
"list-closed",
|
|
510
|
-
"list-canceled"
|
|
511
|
-
]);
|
|
512
|
-
var PACKAGE_OWNED_ACTIONS = /* @__PURE__ */ new Set([
|
|
513
|
-
"calendar",
|
|
514
|
-
"dedupe-audit",
|
|
515
|
-
"dedupe-merge",
|
|
516
|
-
"guide",
|
|
517
|
-
"reindex",
|
|
518
|
-
"normalize",
|
|
519
|
-
"comments-audit",
|
|
520
|
-
"completion",
|
|
521
|
-
"test-runs-list",
|
|
522
|
-
"test-runs-status",
|
|
523
|
-
"test-runs-logs",
|
|
524
|
-
"test-runs-stop",
|
|
525
|
-
"test-runs-resume",
|
|
526
|
-
"templates-list",
|
|
527
|
-
"templates-save",
|
|
528
|
-
"templates-show"
|
|
529
|
-
]);
|
|
530
|
-
var PACKAGE_OWNED_COMMANDS = /* @__PURE__ */ new Set([
|
|
531
|
-
"cal",
|
|
532
|
-
"calendar",
|
|
533
|
-
"comments-audit",
|
|
534
|
-
"completion",
|
|
535
|
-
"completion-statuses",
|
|
536
|
-
"completion-tags",
|
|
537
|
-
"completion-types",
|
|
538
|
-
"dedupe-audit",
|
|
539
|
-
"dedupe-merge",
|
|
540
|
-
"guide",
|
|
541
|
-
"normalize",
|
|
542
|
-
"reindex",
|
|
543
|
-
"templates",
|
|
544
|
-
"templates list",
|
|
545
|
-
"templates save",
|
|
546
|
-
"templates show",
|
|
547
|
-
"test-runs",
|
|
548
|
-
"test-runs list",
|
|
549
|
-
"test-runs status",
|
|
550
|
-
"test-runs logs",
|
|
551
|
-
"test-runs stop",
|
|
552
|
-
"test-runs resume"
|
|
553
|
-
]);
|
|
554
|
-
var PACKAGE_OWNED_COMMAND_INSTALL_HINTS = /* @__PURE__ */ new Map([
|
|
555
|
-
["cal", "calendar"],
|
|
556
|
-
["calendar", "calendar"],
|
|
557
|
-
["comments-audit", "governance-audit"],
|
|
558
|
-
["completion", "guide-shell"],
|
|
559
|
-
["completion-statuses", "guide-shell"],
|
|
560
|
-
["completion-tags", "guide-shell"],
|
|
561
|
-
["completion-types", "guide-shell"],
|
|
562
|
-
["dedupe-audit", "governance-audit"],
|
|
563
|
-
["dedupe-merge", "governance-audit"],
|
|
564
|
-
["guide", "guide-shell"],
|
|
565
|
-
["normalize", "governance-audit"],
|
|
566
|
-
["reindex", "search-advanced"],
|
|
567
|
-
["templates", "templates"],
|
|
568
|
-
["templates list", "templates"],
|
|
569
|
-
["templates save", "templates"],
|
|
570
|
-
["templates show", "templates"],
|
|
571
|
-
["test-runs", "linked-test-adapters"],
|
|
572
|
-
["test-runs list", "linked-test-adapters"],
|
|
573
|
-
["test-runs status", "linked-test-adapters"],
|
|
574
|
-
["test-runs logs", "linked-test-adapters"],
|
|
575
|
-
["test-runs stop", "linked-test-adapters"],
|
|
576
|
-
["test-runs resume", "linked-test-adapters"]
|
|
577
|
-
]);
|
|
578
|
-
var PACKAGE_OWNED_ACTION_COMMAND_PATHS = /* @__PURE__ */ new Map([
|
|
579
|
-
["calendar", "calendar|cal"],
|
|
580
|
-
["dedupe-audit", "dedupe-audit"],
|
|
581
|
-
["dedupe-merge", "dedupe-merge"],
|
|
582
|
-
["guide", "guide"],
|
|
583
|
-
["reindex", "reindex"],
|
|
584
|
-
["normalize", "normalize"],
|
|
585
|
-
["comments-audit", "comments-audit"],
|
|
586
|
-
["completion", "completion"],
|
|
587
|
-
["test-runs-list", "test-runs|test-runs list"],
|
|
588
|
-
["test-runs-status", "test-runs status"],
|
|
589
|
-
["test-runs-logs", "test-runs logs"],
|
|
590
|
-
["test-runs-stop", "test-runs stop"],
|
|
591
|
-
["test-runs-resume", "test-runs resume"],
|
|
592
|
-
["templates-list", "templates|templates list"],
|
|
593
|
-
["templates-save", "templates save"],
|
|
594
|
-
["templates-show", "templates show"]
|
|
595
|
-
]);
|
|
596
|
-
var PACKAGE_OWNED_COMMAND_ACTIONS = new Map([...PACKAGE_OWNED_ACTION_COMMAND_PATHS.entries()].flatMap(([action, commandPaths]) => splitCommandPathAliases(commandPaths).map((commandPath) => [commandPath, action])));
|
|
597
|
-
var CANONICAL_COMMAND_ALIASES = [
|
|
598
|
-
{
|
|
599
|
-
canonical: "context",
|
|
600
|
-
aliases: ["ctx"]
|
|
601
|
-
},
|
|
602
|
-
{
|
|
603
|
-
canonical: "package",
|
|
604
|
-
aliases: ["extension", "packages", "install"]
|
|
605
|
-
}
|
|
606
|
-
];
|
|
607
|
-
var COMMAND_ALIAS_TO_CANONICAL = new Map(CANONICAL_COMMAND_ALIASES.flatMap((entry) => entry.aliases.map((alias) => [alias, entry.canonical])));
|
|
608
|
-
var COMMAND_NAMESPACE_DISPLAY_LIMIT = 10;
|
|
609
|
-
var COMMAND_NAMESPACE_FALLBACK_LIMIT = 20;
|
|
610
|
-
var EXTENSION_LIFECYCLE_FLAG_CONTRACTS = [
|
|
611
|
-
["init", EXTENSION_INIT_FLAG_CONTRACTS],
|
|
612
|
-
["install", EXTENSION_INSTALL_FLAG_CONTRACTS],
|
|
613
|
-
["uninstall", EXTENSION_UNINSTALL_FLAG_CONTRACTS],
|
|
614
|
-
["explore", EXTENSION_EXPLORE_FLAG_CONTRACTS],
|
|
615
|
-
["manage", EXTENSION_MANAGE_FLAG_CONTRACTS],
|
|
616
|
-
["describe", EXTENSION_DESCRIBE_FLAG_CONTRACTS],
|
|
617
|
-
["reload", EXTENSION_RELOAD_FLAG_CONTRACTS],
|
|
618
|
-
["doctor", EXTENSION_DOCTOR_FLAG_CONTRACTS],
|
|
619
|
-
["catalog", EXTENSION_CATALOG_FLAG_CONTRACTS],
|
|
620
|
-
["adopt", EXTENSION_ADOPT_FLAG_CONTRACTS],
|
|
621
|
-
["adopt-all", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],
|
|
622
|
-
["activate", EXTENSION_ACTIVATE_FLAG_CONTRACTS],
|
|
623
|
-
["deactivate", EXTENSION_DEACTIVATE_FLAG_CONTRACTS]
|
|
624
|
-
];
|
|
625
|
-
var PACKAGE_LIFECYCLE_FLAG_CONTRACTS = EXTENSION_LIFECYCLE_FLAG_CONTRACTS.map(([subcommand, flags]) => subcommand === "init" ? [subcommand, PACKAGE_INIT_FLAG_CONTRACTS] : [subcommand, flags]);
|
|
626
|
-
var CORE_COMMAND_FLAG_CONTRACT_ENTRIES = [
|
|
627
|
-
...EXTENSION_LIFECYCLE_FLAG_CONTRACTS.map(([subcommand, flags]) => [`extension ${subcommand}`, flags]),
|
|
628
|
-
...PACKAGE_LIFECYCLE_FLAG_CONTRACTS.flatMap(([subcommand, flags]) => [
|
|
629
|
-
[`package ${subcommand}`, flags],
|
|
630
|
-
[`packages ${subcommand}`, flags]
|
|
631
|
-
]),
|
|
632
|
-
["init", INIT_FLAG_CONTRACTS],
|
|
633
|
-
["config", CONFIG_FLAG_CONTRACTS],
|
|
634
|
-
["extension", EXTENSION_FLAG_CONTRACTS],
|
|
635
|
-
["package", PACKAGE_FLAG_CONTRACTS],
|
|
636
|
-
["packages", PACKAGE_FLAG_CONTRACTS],
|
|
637
|
-
["install", INSTALL_FLAG_CONTRACTS],
|
|
638
|
-
["create", CREATE_FLAG_CONTRACTS],
|
|
639
|
-
["update", UPDATE_FLAG_CONTRACTS],
|
|
640
|
-
["update-many", UPDATE_MANY_FLAG_CONTRACTS],
|
|
641
|
-
["upgrade", UPGRADE_FLAG_CONTRACTS],
|
|
642
|
-
["normalize", NORMALIZE_FLAG_CONTRACTS],
|
|
643
|
-
["calendar", CALENDAR_FLAG_CONTRACTS],
|
|
644
|
-
["cal", CALENDAR_FLAG_CONTRACTS],
|
|
645
|
-
["context", CONTEXT_FLAG_CONTRACTS],
|
|
646
|
-
["ctx", CONTEXT_FLAG_CONTRACTS],
|
|
647
|
-
["get", GET_FLAG_CONTRACTS],
|
|
648
|
-
["search", SEARCH_FLAG_CONTRACTS],
|
|
649
|
-
["eval", EVAL_FLAG_CONTRACTS],
|
|
650
|
-
["next", NEXT_FLAG_CONTRACTS],
|
|
651
|
-
["aggregate", AGGREGATE_FLAG_CONTRACTS],
|
|
652
|
-
["dedupe-audit", DEDUPE_AUDIT_FLAG_CONTRACTS],
|
|
653
|
-
["dedupe-merge", DEDUPE_MERGE_FLAG_CONTRACTS],
|
|
654
|
-
["deps", DEPS_FLAG_CONTRACTS],
|
|
655
|
-
["guide", GUIDE_FLAG_CONTRACTS],
|
|
656
|
-
["reindex", REINDEX_FLAG_CONTRACTS],
|
|
657
|
-
["history", HISTORY_FLAG_CONTRACTS],
|
|
658
|
-
["history-compact", HISTORY_COMPACT_FLAG_CONTRACTS],
|
|
659
|
-
["history-redact", HISTORY_REDACT_FLAG_CONTRACTS],
|
|
660
|
-
["history-repair", HISTORY_REPAIR_FLAG_CONTRACTS],
|
|
661
|
-
["schema", SCHEMA_FLAG_CONTRACTS],
|
|
662
|
-
["profile", PROFILE_FLAG_CONTRACTS],
|
|
663
|
-
["plan", PLAN_FLAG_CONTRACTS],
|
|
664
|
-
["restore", RESTORE_FLAG_CONTRACTS],
|
|
665
|
-
["delete", DELETE_FLAG_CONTRACTS],
|
|
666
|
-
["close", CLOSE_FLAG_CONTRACTS],
|
|
667
|
-
["close-many", CLOSE_MANY_FLAG_CONTRACTS],
|
|
668
|
-
["append", APPEND_FLAG_CONTRACTS],
|
|
669
|
-
["claim", CLAIM_FLAG_CONTRACTS],
|
|
670
|
-
["release", RELEASE_FLAG_CONTRACTS],
|
|
671
|
-
["start-task", START_TASK_FLAG_CONTRACTS],
|
|
672
|
-
["pause-task", PAUSE_TASK_FLAG_CONTRACTS],
|
|
673
|
-
["close-task", CLOSE_TASK_FLAG_CONTRACTS],
|
|
674
|
-
["comments", COMMENTS_FLAG_CONTRACTS],
|
|
675
|
-
["notes", NOTES_FLAG_CONTRACTS],
|
|
676
|
-
["learnings", LEARNINGS_FLAG_CONTRACTS],
|
|
677
|
-
["files", FILES_FLAG_CONTRACTS],
|
|
678
|
-
["docs", DOCS_FLAG_CONTRACTS],
|
|
679
|
-
["test", TEST_FLAG_CONTRACTS],
|
|
680
|
-
["test-all", TEST_ALL_FLAG_CONTRACTS],
|
|
681
|
-
["telemetry", TELEMETRY_FLAG_CONTRACTS],
|
|
682
|
-
["test-runs", TEST_RUNS_FLAG_CONTRACTS],
|
|
683
|
-
["gc", GC_FLAG_CONTRACTS],
|
|
684
|
-
["stats", STATS_FLAG_CONTRACTS],
|
|
685
|
-
["validate", VALIDATE_FLAG_CONTRACTS],
|
|
686
|
-
["comments-audit", COMMENTS_AUDIT_FLAG_CONTRACTS],
|
|
687
|
-
["health", HEALTH_FLAG_CONTRACTS],
|
|
688
|
-
["contracts", CONTRACTS_FLAG_CONTRACTS],
|
|
689
|
-
["completion", COMPLETION_FLAG_CONTRACTS],
|
|
690
|
-
["activity", ACTIVITY_FLAG_CONTRACTS],
|
|
691
|
-
...[...LIST_COMMAND_NAMES].map((command) => [command, LIST_FILTER_FLAG_CONTRACTS])
|
|
692
|
-
];
|
|
693
|
-
var CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND = new Map(CORE_COMMAND_FLAG_CONTRACT_ENTRIES);
|
|
694
|
-
function packageOwnedActionForCommand(command) {
|
|
695
|
-
const exactAction = PACKAGE_OWNED_COMMAND_ACTIONS.get(command);
|
|
696
|
-
if (exactAction) {
|
|
697
|
-
return exactAction;
|
|
698
|
-
}
|
|
699
|
-
if (command.startsWith("test-runs ")) {
|
|
700
|
-
return `test-runs-${command.slice("test-runs ".length)}`;
|
|
701
|
-
}
|
|
702
|
-
if (command.startsWith("templates ")) {
|
|
703
|
-
return `templates-${command.slice("templates ".length)}`;
|
|
704
|
-
}
|
|
705
|
-
return command;
|
|
706
|
-
}
|
|
707
|
-
function resolveActionCommandPath(action) {
|
|
708
|
-
if (PM_CORE_COMMAND_NAMES.includes(action)) {
|
|
709
|
-
return normalizeCommandPath(action);
|
|
710
|
-
}
|
|
711
|
-
if (action.startsWith("extension-")) {
|
|
712
|
-
return normalizeCommandPath(`extension ${action.slice("extension-".length)}`);
|
|
713
|
-
}
|
|
714
|
-
if (action.startsWith("package-")) {
|
|
715
|
-
return normalizeCommandPath(`package ${action.slice("package-".length)}`);
|
|
716
|
-
}
|
|
717
|
-
if (action.startsWith("test-runs-")) {
|
|
718
|
-
return normalizeCommandPath(`test-runs ${action.slice("test-runs-".length)}`);
|
|
719
|
-
}
|
|
720
|
-
if (action.startsWith("templates-")) {
|
|
721
|
-
return normalizeCommandPath(`templates ${action.slice("templates-".length)}`);
|
|
722
|
-
}
|
|
723
|
-
if (PACKAGE_OWNED_ACTIONS.has(action)) {
|
|
724
|
-
return PACKAGE_OWNED_ACTION_COMMAND_PATHS.get(action) ?? normalizeCommandPath(action);
|
|
725
|
-
}
|
|
726
|
-
return null;
|
|
727
|
-
}
|
|
728
|
-
function actionDescriptorMatchesSelectedCommand(descriptor, selectedCommand) {
|
|
729
|
-
if (descriptor.command_path === null) {
|
|
730
|
-
return false;
|
|
731
|
-
}
|
|
732
|
-
return splitCommandPathAliases(descriptor.command_path).some((commandPath) => {
|
|
733
|
-
if (commandPath === selectedCommand) {
|
|
734
|
-
return true;
|
|
735
|
-
}
|
|
736
|
-
return commandPath.startsWith(`${selectedCommand} `);
|
|
737
|
-
});
|
|
738
|
-
}
|
|
739
|
-
function splitCommandPathAliases(commandPath) {
|
|
740
|
-
return commandPath.split("|").map((entry) => normalizeCommandPath(entry)).filter((entry) => entry.length > 0);
|
|
741
|
-
}
|
|
742
|
-
function resolveScopedCommandsFromActionDescriptors(descriptors, commandCatalog) {
|
|
743
|
-
const commandSet = new Set(commandCatalog);
|
|
744
|
-
const scoped = /* @__PURE__ */ new Set();
|
|
745
|
-
for (const descriptor of descriptors) {
|
|
746
|
-
if (!descriptor.command_path) {
|
|
747
|
-
continue;
|
|
748
|
-
}
|
|
749
|
-
for (const commandPath of splitCommandPathAliases(descriptor.command_path)) {
|
|
750
|
-
const tokens = commandPath.split(" ").filter((entry) => entry.length > 0);
|
|
751
|
-
if (tokens.length === 0) {
|
|
752
|
-
continue;
|
|
753
|
-
}
|
|
754
|
-
for (let end = tokens.length; end > 0; end -= 1) {
|
|
755
|
-
const candidate = tokens.slice(0, end).join(" ");
|
|
756
|
-
if (!commandSet.has(candidate)) {
|
|
757
|
-
continue;
|
|
758
|
-
}
|
|
759
|
-
scoped.add(candidate);
|
|
760
|
-
break;
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
return [...scoped].sort((left, right) => left.localeCompare(right));
|
|
765
|
-
}
|
|
766
|
-
function normalizeToken(value) {
|
|
767
|
-
if (typeof value !== "string") {
|
|
768
|
-
return void 0;
|
|
769
|
-
}
|
|
770
|
-
const trimmed = value.trim().toLowerCase();
|
|
771
|
-
return trimmed.length > 0 ? trimmed : void 0;
|
|
772
|
-
}
|
|
773
|
-
function extractActionBranches(schema) {
|
|
774
|
-
const oneOf = schema.oneOf;
|
|
775
|
-
if (!Array.isArray(oneOf)) {
|
|
776
|
-
return [];
|
|
777
|
-
}
|
|
778
|
-
return oneOf.filter((entry) => typeof entry === "object" && entry !== null);
|
|
779
|
-
}
|
|
780
|
-
function filterSchemaByAction(schema, action) {
|
|
781
|
-
if (!action) {
|
|
782
|
-
return { ...schema };
|
|
783
|
-
}
|
|
784
|
-
const branches = extractActionBranches(schema);
|
|
785
|
-
const filtered = branches.filter((entry) => {
|
|
786
|
-
const properties = entry.properties;
|
|
787
|
-
if (typeof properties !== "object" || properties === null) {
|
|
788
|
-
return false;
|
|
789
|
-
}
|
|
790
|
-
const actionProperty = properties.action;
|
|
791
|
-
if (typeof actionProperty !== "object" || actionProperty === null) {
|
|
792
|
-
return false;
|
|
793
|
-
}
|
|
794
|
-
return actionProperty.const === action;
|
|
795
|
-
});
|
|
796
|
-
return {
|
|
797
|
-
...schema,
|
|
798
|
-
oneOf: filtered
|
|
799
|
-
};
|
|
800
|
-
}
|
|
801
|
-
function filterSchemaByActions(schema, actions) {
|
|
802
|
-
const branches = extractActionBranches(schema);
|
|
803
|
-
const filtered = branches.filter((entry) => {
|
|
804
|
-
const properties = entry.properties;
|
|
805
|
-
if (typeof properties !== "object" || properties === null) {
|
|
806
|
-
return false;
|
|
807
|
-
}
|
|
808
|
-
const actionProperty = properties.action;
|
|
809
|
-
if (typeof actionProperty !== "object" || actionProperty === null) {
|
|
810
|
-
return false;
|
|
811
|
-
}
|
|
812
|
-
const actionConst = actionProperty.const;
|
|
813
|
-
return typeof actionConst === "string" && actions.has(actionConst);
|
|
814
|
-
});
|
|
815
|
-
return {
|
|
816
|
-
...schema,
|
|
817
|
-
oneOf: filtered
|
|
818
|
-
};
|
|
819
|
-
}
|
|
820
|
-
function normalizeCommandPath(value) {
|
|
821
|
-
return value.trim().toLowerCase().split(/\s+/).filter((entry) => entry.length > 0).join(" ");
|
|
822
|
-
}
|
|
823
|
-
function normalizeActionNameFromCommand(commandPath) {
|
|
824
|
-
return commandPath.replace(/\s+/g, "-");
|
|
825
|
-
}
|
|
826
|
-
function toOptionalTrimmedString(value) {
|
|
827
|
-
if (typeof value !== "string") {
|
|
828
|
-
return null;
|
|
829
|
-
}
|
|
830
|
-
const trimmed = value.trim();
|
|
831
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
832
|
-
}
|
|
833
|
-
function normalizeStringList(values) {
|
|
834
|
-
if (!Array.isArray(values)) {
|
|
835
|
-
return [];
|
|
836
|
-
}
|
|
837
|
-
const normalized = [];
|
|
838
|
-
const seen = /* @__PURE__ */ new Set();
|
|
839
|
-
for (const value of values) {
|
|
840
|
-
const trimmed = toOptionalTrimmedString(value);
|
|
841
|
-
if (!trimmed || seen.has(trimmed)) {
|
|
842
|
-
continue;
|
|
843
|
-
}
|
|
844
|
-
seen.add(trimmed);
|
|
845
|
-
normalized.push(trimmed);
|
|
846
|
-
}
|
|
847
|
-
return normalized;
|
|
848
|
-
}
|
|
849
|
-
function assignExtensionFlagBoolean(contract, key, enabled) {
|
|
850
|
-
if (enabled) {
|
|
851
|
-
contract[key] = true;
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
function toExtensionFlagContract(definition) {
|
|
855
|
-
const longName = toOptionalTrimmedString(definition.long);
|
|
856
|
-
const shortName = toOptionalTrimmedString(definition.short);
|
|
857
|
-
const normalizedLong = longName && longName.startsWith("--") && longName.length > 2 ? longName : null;
|
|
858
|
-
const normalizedShort = shortName && shortName.startsWith("-") && !shortName.startsWith("--") ? shortName : null;
|
|
859
|
-
const flag = normalizedLong ?? normalizedShort;
|
|
860
|
-
if (!flag) {
|
|
861
|
-
return null;
|
|
862
|
-
}
|
|
863
|
-
const contract = { flag };
|
|
864
|
-
if (normalizedShort && normalizedLong) {
|
|
865
|
-
contract.short = normalizedShort;
|
|
866
|
-
}
|
|
867
|
-
assignExtensionFlagBoolean(contract, "required", definition.required === true);
|
|
868
|
-
assignExtensionFlagBoolean(contract, "repeatable", definition.repeatable === true);
|
|
869
|
-
assignExtensionFlagBoolean(contract, "list", definition.list === true);
|
|
870
|
-
const description = toOptionalTrimmedString(definition.description);
|
|
871
|
-
if (description) {
|
|
872
|
-
contract.description = description;
|
|
873
|
-
}
|
|
874
|
-
const valueName = toOptionalTrimmedString(definition.value_name);
|
|
875
|
-
if (valueName) {
|
|
876
|
-
contract.value_name = valueName;
|
|
877
|
-
}
|
|
878
|
-
const rawValueType = [
|
|
879
|
-
toOptionalTrimmedString(definition.value_type),
|
|
880
|
-
toOptionalTrimmedString(definition.type),
|
|
881
|
-
valueName ? "string" : null
|
|
882
|
-
].find((candidate) => candidate === "string" || candidate === "number" || candidate === "boolean");
|
|
883
|
-
if (rawValueType) {
|
|
884
|
-
contract.value_type = rawValueType;
|
|
885
|
-
}
|
|
886
|
-
return contract;
|
|
887
|
-
}
|
|
888
|
-
function collectExtensionFlagContractsByCommand(registrations) {
|
|
889
|
-
const grouped = /* @__PURE__ */ new Map();
|
|
890
|
-
for (const registration of registrations) {
|
|
891
|
-
const commandPath = normalizeCommandPath(registration.target_command);
|
|
892
|
-
if (commandPath.length === 0) {
|
|
893
|
-
continue;
|
|
894
|
-
}
|
|
895
|
-
const bucket = grouped.get(commandPath) ?? {
|
|
896
|
-
flags: [],
|
|
897
|
-
sources: [],
|
|
898
|
-
dedupe: /* @__PURE__ */ new Set(),
|
|
899
|
-
sourceDedupe: /* @__PURE__ */ new Set()
|
|
900
|
-
};
|
|
901
|
-
const sourceKey = `${registration.layer}:${registration.name}`;
|
|
902
|
-
if (!bucket.sourceDedupe.has(sourceKey)) {
|
|
903
|
-
bucket.sourceDedupe.add(sourceKey);
|
|
904
|
-
bucket.sources.push({
|
|
905
|
-
layer: registration.layer,
|
|
906
|
-
name: registration.name
|
|
907
|
-
});
|
|
908
|
-
}
|
|
909
|
-
for (const definition of registration.flags) {
|
|
910
|
-
const contract = toExtensionFlagContract(definition);
|
|
911
|
-
if (!contract) {
|
|
912
|
-
continue;
|
|
913
|
-
}
|
|
914
|
-
const key = `${contract.flag}|${contract.short ?? ""}`;
|
|
915
|
-
if (bucket.dedupe.has(key)) {
|
|
916
|
-
continue;
|
|
917
|
-
}
|
|
918
|
-
bucket.dedupe.add(key);
|
|
919
|
-
bucket.flags.push(contract);
|
|
920
|
-
}
|
|
921
|
-
grouped.set(commandPath, bucket);
|
|
922
|
-
}
|
|
923
|
-
const normalized = /* @__PURE__ */ new Map();
|
|
924
|
-
for (const [commandPath, bucket] of grouped.entries()) {
|
|
925
|
-
normalized.set(commandPath, {
|
|
926
|
-
flags: bucket.flags,
|
|
927
|
-
sources: bucket.sources.sort((left, right) => {
|
|
928
|
-
const layerOrder = left.layer.localeCompare(right.layer);
|
|
929
|
-
if (layerOrder !== 0) {
|
|
930
|
-
return layerOrder;
|
|
931
|
-
}
|
|
932
|
-
return (left.name ?? "").localeCompare(right.name ?? "");
|
|
933
|
-
})
|
|
934
|
-
});
|
|
935
|
-
}
|
|
936
|
-
return normalized;
|
|
937
|
-
}
|
|
938
|
-
function collectExtensionCommandContracts(runtimeProbe) {
|
|
939
|
-
const flagsByCommand = collectExtensionFlagContractsByCommand(runtimeProbe.flagRegistrations);
|
|
940
|
-
const definitionsByCommand = /* @__PURE__ */ new Map();
|
|
941
|
-
for (const definition of runtimeProbe.commandDefinitions) {
|
|
942
|
-
const command = normalizeCommandPath(definition.command);
|
|
943
|
-
if (command.length === 0) {
|
|
944
|
-
continue;
|
|
945
|
-
}
|
|
946
|
-
const action = toOptionalTrimmedString(definition.action) ?? normalizeActionNameFromCommand(command);
|
|
947
|
-
const args = Array.isArray(definition.arguments) ? definition.arguments.map((argument) => {
|
|
948
|
-
const name = toOptionalTrimmedString(argument.name);
|
|
949
|
-
if (!name) {
|
|
950
|
-
return null;
|
|
951
|
-
}
|
|
952
|
-
return {
|
|
953
|
-
name,
|
|
954
|
-
required: argument.required === true,
|
|
955
|
-
variadic: argument.variadic === true,
|
|
956
|
-
description: toOptionalTrimmedString(argument.description)
|
|
957
|
-
};
|
|
958
|
-
}).filter((argument) => argument !== null) : [];
|
|
959
|
-
definitionsByCommand.set(command, {
|
|
960
|
-
command,
|
|
961
|
-
action,
|
|
962
|
-
source: {
|
|
963
|
-
layer: definition.layer,
|
|
964
|
-
name: definition.name
|
|
965
|
-
},
|
|
966
|
-
description: toOptionalTrimmedString(definition.description),
|
|
967
|
-
intent: toOptionalTrimmedString(definition.intent),
|
|
968
|
-
arguments: args,
|
|
969
|
-
flags: flagsByCommand.get(command)?.flags ?? [],
|
|
970
|
-
examples: normalizeStringList(definition.examples),
|
|
971
|
-
failure_hints: normalizeStringList(definition.failure_hints)
|
|
972
|
-
});
|
|
973
|
-
}
|
|
974
|
-
const extensionCommands = /* @__PURE__ */ new Set();
|
|
975
|
-
for (const command of runtimeProbe.handlers) {
|
|
976
|
-
extensionCommands.add(normalizeCommandPath(command));
|
|
977
|
-
}
|
|
978
|
-
for (const command of definitionsByCommand.keys()) {
|
|
979
|
-
extensionCommands.add(command);
|
|
980
|
-
}
|
|
981
|
-
for (const command of flagsByCommand.keys()) {
|
|
982
|
-
extensionCommands.add(command);
|
|
983
|
-
}
|
|
984
|
-
const contracts = [];
|
|
985
|
-
for (const command of [...extensionCommands].sort((left, right) => left.localeCompare(right))) {
|
|
986
|
-
const definition = definitionsByCommand.get(command);
|
|
987
|
-
if (definition) {
|
|
988
|
-
contracts.push({
|
|
989
|
-
...definition,
|
|
990
|
-
flags: definition.flags.length > 0 ? definition.flags : flagsByCommand.get(command)?.flags ?? []
|
|
991
|
-
});
|
|
992
|
-
continue;
|
|
993
|
-
}
|
|
994
|
-
contracts.push({
|
|
995
|
-
command,
|
|
996
|
-
action: normalizeActionNameFromCommand(command),
|
|
997
|
-
source: null,
|
|
998
|
-
description: null,
|
|
999
|
-
intent: null,
|
|
1000
|
-
arguments: [],
|
|
1001
|
-
flags: flagsByCommand.get(command)?.flags ?? [],
|
|
1002
|
-
examples: [],
|
|
1003
|
-
failure_hints: []
|
|
1004
|
-
});
|
|
1005
|
-
}
|
|
1006
|
-
return contracts;
|
|
1007
|
-
}
|
|
1008
|
-
function extensionSchemaPropertyNameFromFlag(flag) {
|
|
1009
|
-
const normalized = flag.flag.replace(/^-+/, "").trim();
|
|
1010
|
-
if (normalized.length === 0) {
|
|
1011
|
-
return null;
|
|
1012
|
-
}
|
|
1013
|
-
const camelCased = normalized.replace(/-([a-z0-9])/g, (_match, char) => char.toUpperCase());
|
|
1014
|
-
const cleaned = camelCased.replace(/[^a-zA-Z0-9]/g, "");
|
|
1015
|
-
return cleaned.length > 0 ? cleaned : null;
|
|
1016
|
-
}
|
|
1017
|
-
function buildExtensionArgumentSchema(argument, action) {
|
|
1018
|
-
if (argument.variadic) {
|
|
1019
|
-
return {
|
|
1020
|
-
type: "array",
|
|
1021
|
-
items: { type: "string" },
|
|
1022
|
-
description: argument.description ?? `Variadic argument '${argument.name}' for extension action '${action}'.`
|
|
1023
|
-
};
|
|
1024
|
-
}
|
|
1025
|
-
return {
|
|
1026
|
-
type: "string",
|
|
1027
|
-
description: argument.description ?? `Argument '${argument.name}' for extension action '${action}'.`
|
|
1028
|
-
};
|
|
1029
|
-
}
|
|
1030
|
-
function buildExtensionFlagSchema(flag, action) {
|
|
1031
|
-
const valueType = flag.value_type ?? "boolean";
|
|
1032
|
-
const schemaType = valueType === "boolean" ? "boolean" : valueType === "number" ? ["number", "string"] : "string";
|
|
1033
|
-
const acceptsMultipleValues = flag.repeatable === true || flag.list === true;
|
|
1034
|
-
return {
|
|
1035
|
-
type: acceptsMultipleValues ? "array" : schemaType,
|
|
1036
|
-
...acceptsMultipleValues ? { items: { type: schemaType } } : {},
|
|
1037
|
-
description: flag.description ?? `Extension option '${flag.flag}' for action '${action}'.`
|
|
1038
|
-
};
|
|
1039
|
-
}
|
|
1040
|
-
function buildExtensionActionSchemaBranch(contract) {
|
|
1041
|
-
const commands = contract.command.split("|").map((command) => command.trim()).filter((command) => command.length > 0);
|
|
1042
|
-
const properties = {
|
|
1043
|
-
action: {
|
|
1044
|
-
type: "string",
|
|
1045
|
-
const: contract.action,
|
|
1046
|
-
description: contract.intent ?? contract.description ?? `Invoke extension command '${contract.command}'.`
|
|
1047
|
-
}
|
|
1048
|
-
};
|
|
1049
|
-
const required = ["action"];
|
|
1050
|
-
for (const argument of contract.arguments) {
|
|
1051
|
-
properties[argument.name] = buildExtensionArgumentSchema(argument, contract.action);
|
|
1052
|
-
if (argument.required) {
|
|
1053
|
-
required.push(argument.name);
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
for (const flag of contract.flags) {
|
|
1057
|
-
const propertyName = extensionSchemaPropertyNameFromFlag(flag);
|
|
1058
|
-
if (!propertyName || properties[propertyName] !== void 0) {
|
|
1059
|
-
continue;
|
|
1060
|
-
}
|
|
1061
|
-
properties[propertyName] = buildExtensionFlagSchema(flag, contract.action);
|
|
1062
|
-
if (flag.required === true) {
|
|
1063
|
-
required.push(propertyName);
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
return {
|
|
1067
|
-
type: "object",
|
|
1068
|
-
properties,
|
|
1069
|
-
required,
|
|
1070
|
-
additionalProperties: true,
|
|
1071
|
-
"x-extension-source": contract.source,
|
|
1072
|
-
"x-extension-command": commands[0] ?? contract.command,
|
|
1073
|
-
"x-extension-commands": commands
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
1076
|
-
function mergeExtensionFlagContract(existing, incoming) {
|
|
1077
|
-
existing.description ??= incoming.description;
|
|
1078
|
-
existing.value_name ??= incoming.value_name;
|
|
1079
|
-
existing.value_type ??= incoming.value_type;
|
|
1080
|
-
if (incoming.required === true) {
|
|
1081
|
-
existing.required = true;
|
|
1082
|
-
}
|
|
1083
|
-
if (incoming.repeatable === true) {
|
|
1084
|
-
existing.repeatable = true;
|
|
1085
|
-
}
|
|
1086
|
-
}
|
|
1087
|
-
function mergeExtensionContractsByAction(contracts) {
|
|
1088
|
-
const byAction = /* @__PURE__ */ new Map();
|
|
1089
|
-
for (const contract of contracts) {
|
|
1090
|
-
const existing = byAction.get(contract.action);
|
|
1091
|
-
if (!existing) {
|
|
1092
|
-
byAction.set(contract.action, {
|
|
1093
|
-
...contract,
|
|
1094
|
-
flags: [...contract.flags],
|
|
1095
|
-
examples: [...contract.examples],
|
|
1096
|
-
failure_hints: [...contract.failure_hints]
|
|
1097
|
-
});
|
|
1098
|
-
continue;
|
|
1099
|
-
}
|
|
1100
|
-
existing.command = [.../* @__PURE__ */ new Set([existing.command, contract.command])].sort((left, right) => left.localeCompare(right)).join("|");
|
|
1101
|
-
existing.arguments = existing.arguments.length >= contract.arguments.length ? existing.arguments : contract.arguments;
|
|
1102
|
-
const flagKeys = new Set(existing.flags.map((flag) => `${flag.flag}|${flag.short ?? ""}`));
|
|
1103
|
-
for (const flag of contract.flags) {
|
|
1104
|
-
const key = `${flag.flag}|${flag.short ?? ""}`;
|
|
1105
|
-
if (!flagKeys.has(key)) {
|
|
1106
|
-
flagKeys.add(key);
|
|
1107
|
-
existing.flags.push(flag);
|
|
1108
|
-
} else {
|
|
1109
|
-
const existingFlag = existing.flags.find((candidate) => `${candidate.flag}|${candidate.short ?? ""}` === key);
|
|
1110
|
-
if (existingFlag) {
|
|
1111
|
-
mergeExtensionFlagContract(existingFlag, flag);
|
|
1112
|
-
}
|
|
1113
|
-
}
|
|
1114
|
-
}
|
|
1115
|
-
existing.examples = [.../* @__PURE__ */ new Set([...existing.examples, ...contract.examples])];
|
|
1116
|
-
existing.failure_hints = [.../* @__PURE__ */ new Set([...existing.failure_hints, ...contract.failure_hints])];
|
|
1117
|
-
}
|
|
1118
|
-
return [...byAction.values()].sort((left, right) => left.action.localeCompare(right.action));
|
|
1119
|
-
}
|
|
1120
|
-
async function resolveRuntimeExtensionActionProbe(global2) {
|
|
1121
|
-
const defaultPolicyState = {
|
|
1122
|
-
mode: SETTINGS_DEFAULTS.extensions.policy.mode,
|
|
1123
|
-
trust_mode: SETTINGS_DEFAULTS.extensions.policy.trust_mode,
|
|
1124
|
-
default_sandbox_profile: SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile
|
|
1125
|
-
};
|
|
1126
|
-
if (global2.noExtensions) {
|
|
1127
|
-
return {
|
|
1128
|
-
handlers: /* @__PURE__ */ new Set(),
|
|
1129
|
-
disabledReason: "extensions_disabled",
|
|
1130
|
-
commandDefinitions: [],
|
|
1131
|
-
flagRegistrations: [],
|
|
1132
|
-
registrations: null,
|
|
1133
|
-
policyState: defaultPolicyState
|
|
1134
|
-
};
|
|
1135
|
-
}
|
|
1136
|
-
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1137
|
-
if (!await pathExists(getSettingsPath(pmRoot))) {
|
|
1138
|
-
return {
|
|
1139
|
-
handlers: /* @__PURE__ */ new Set(),
|
|
1140
|
-
disabledReason: null,
|
|
1141
|
-
commandDefinitions: [],
|
|
1142
|
-
flagRegistrations: [],
|
|
1143
|
-
registrations: null,
|
|
1144
|
-
policyState: defaultPolicyState
|
|
1145
|
-
};
|
|
1146
|
-
}
|
|
1147
|
-
try {
|
|
1148
|
-
const settings = await readSettings(pmRoot);
|
|
1149
|
-
const loadResult = await loadExtensions({
|
|
1150
|
-
pmRoot,
|
|
1151
|
-
settings,
|
|
1152
|
-
cwd: process.cwd(),
|
|
1153
|
-
noExtensions: false
|
|
1154
|
-
});
|
|
1155
|
-
const activationResult = await activateExtensions({
|
|
1156
|
-
...loadResult,
|
|
1157
|
-
loaded: loadResult.loaded
|
|
1158
|
-
});
|
|
1159
|
-
const handlers = new Set(activationResult.commands.handlers.map((entry) => normalizeCommandPath(entry.command)));
|
|
1160
|
-
return {
|
|
1161
|
-
handlers,
|
|
1162
|
-
disabledReason: null,
|
|
1163
|
-
commandDefinitions: activationResult.registrations.commands,
|
|
1164
|
-
flagRegistrations: activationResult.registrations.flags,
|
|
1165
|
-
registrations: activationResult.registrations,
|
|
1166
|
-
policyState: {
|
|
1167
|
-
mode: loadResult.policy.mode,
|
|
1168
|
-
trust_mode: loadResult.policy.trust_mode,
|
|
1169
|
-
default_sandbox_profile: loadResult.policy.default_sandbox_profile
|
|
1170
|
-
}
|
|
1171
|
-
};
|
|
1172
|
-
} catch {
|
|
1173
|
-
return {
|
|
1174
|
-
handlers: /* @__PURE__ */ new Set(),
|
|
1175
|
-
disabledReason: "extension_runtime_probe_failed",
|
|
1176
|
-
commandDefinitions: [],
|
|
1177
|
-
flagRegistrations: [],
|
|
1178
|
-
registrations: null,
|
|
1179
|
-
policyState: defaultPolicyState
|
|
1180
|
-
};
|
|
1181
|
-
}
|
|
1182
|
-
}
|
|
1183
|
-
function collectActionContractDescriptors(extensionContracts, options = {}) {
|
|
1184
|
-
const descriptors = /* @__PURE__ */ new Map();
|
|
1185
|
-
for (const action of PM_TOOL_ACTIONS) {
|
|
1186
|
-
const packageOwned = PACKAGE_OWNED_ACTIONS.has(action);
|
|
1187
|
-
if (packageOwned && !options.includePackageOwnedActions) {
|
|
1188
|
-
continue;
|
|
1189
|
-
}
|
|
1190
|
-
const commandPath = resolveActionCommandPath(action);
|
|
1191
|
-
descriptors.set(action, {
|
|
1192
|
-
action,
|
|
1193
|
-
provider: packageOwned ? "extension" : "core",
|
|
1194
|
-
requires_extension: packageOwned,
|
|
1195
|
-
command_path: commandPath
|
|
1196
|
-
});
|
|
1197
|
-
}
|
|
1198
|
-
if (options.includePackageOwnedActions) {
|
|
1199
|
-
for (const action of PACKAGE_OWNED_ACTIONS) {
|
|
1200
|
-
if (descriptors.has(action)) {
|
|
1201
|
-
continue;
|
|
1202
|
-
}
|
|
1203
|
-
descriptors.set(action, {
|
|
1204
|
-
action,
|
|
1205
|
-
provider: "extension",
|
|
1206
|
-
requires_extension: true,
|
|
1207
|
-
command_path: resolveActionCommandPath(action)
|
|
1208
|
-
});
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
for (const contract of extensionContracts) {
|
|
1212
|
-
if (descriptors.has(contract.action)) {
|
|
1213
|
-
continue;
|
|
1214
|
-
}
|
|
1215
|
-
descriptors.set(contract.action, {
|
|
1216
|
-
action: contract.action,
|
|
1217
|
-
provider: "extension",
|
|
1218
|
-
requires_extension: true,
|
|
1219
|
-
command_path: normalizeCommandPath(contract.command)
|
|
1220
|
-
});
|
|
1221
|
-
}
|
|
1222
|
-
return [...descriptors.values()].sort((left, right) => (left.action ?? "").localeCompare(right.action ?? ""));
|
|
1223
|
-
}
|
|
1224
|
-
function resolveActionAvailability(descriptor, runtimeProbe) {
|
|
1225
|
-
if (descriptor.provider === "core" && !descriptor.requires_extension) {
|
|
1226
|
-
return {
|
|
1227
|
-
action: descriptor.action,
|
|
1228
|
-
invocable: true,
|
|
1229
|
-
available: true,
|
|
1230
|
-
requires_extension: false,
|
|
1231
|
-
provider: "core",
|
|
1232
|
-
disabled_reason: null,
|
|
1233
|
-
command_path: descriptor.command_path,
|
|
1234
|
-
cli_exposed: descriptor.command_path !== null
|
|
1235
|
-
};
|
|
1236
|
-
}
|
|
1237
|
-
const commandPaths = descriptor.command_path ? splitCommandPathAliases(descriptor.command_path) : [];
|
|
1238
|
-
const extensionCommandAvailable = commandPaths.some((commandPath) => runtimeProbe.handlers.has(commandPath));
|
|
1239
|
-
const optionalPackageHint = commandPaths.map((commandPath) => PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(commandPath)).find((hint) => typeof hint === "string");
|
|
1240
|
-
const invocable = runtimeProbe.disabledReason === null && extensionCommandAvailable;
|
|
1241
|
-
return {
|
|
1242
|
-
action: descriptor.action,
|
|
1243
|
-
invocable,
|
|
1244
|
-
available: invocable,
|
|
1245
|
-
requires_extension: true,
|
|
1246
|
-
provider: "extension",
|
|
1247
|
-
disabled_reason: invocable ? null : runtimeProbe.disabledReason ?? (optionalPackageHint ? `optional_package_not_installed:${optionalPackageHint}` : "extension_command_not_registered"),
|
|
1248
|
-
command_path: descriptor.command_path,
|
|
1249
|
-
cli_exposed: extensionCommandAvailable,
|
|
1250
|
-
policy_state: {
|
|
1251
|
-
mode: runtimeProbe.policyState.mode,
|
|
1252
|
-
trust_mode: runtimeProbe.policyState.trust_mode,
|
|
1253
|
-
default_sandbox_profile: runtimeProbe.policyState.default_sandbox_profile
|
|
1254
|
-
}
|
|
1255
|
-
};
|
|
1256
|
-
}
|
|
1257
|
-
function resolveCoreCommandFlags(command) {
|
|
1258
|
-
return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.get(command) ?? GLOBAL_FLAG_CONTRACTS;
|
|
1259
|
-
}
|
|
1260
|
-
function isCoreCommandPath(command) {
|
|
1261
|
-
if (PACKAGE_OWNED_COMMANDS.has(command)) {
|
|
1262
|
-
return false;
|
|
1263
|
-
}
|
|
1264
|
-
return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.has(command);
|
|
1265
|
-
}
|
|
1266
|
-
function normalizeCommandForRuntimeFieldFlags(command) {
|
|
1267
|
-
if (LIST_COMMAND_NAMES.has(command)) {
|
|
1268
|
-
return "list";
|
|
1269
|
-
}
|
|
1270
|
-
if (command === "cal") {
|
|
1271
|
-
return "calendar";
|
|
1272
|
-
}
|
|
1273
|
-
if (command === "ctx") {
|
|
1274
|
-
return "context";
|
|
1275
|
-
}
|
|
1276
|
-
if (command === "update-many") {
|
|
1277
|
-
return "update_many";
|
|
1278
|
-
}
|
|
1279
|
-
return command;
|
|
1280
|
-
}
|
|
1281
|
-
function toRuntimeLongFlagToken(token) {
|
|
1282
|
-
const trimmed = token.trim();
|
|
1283
|
-
if (!trimmed) {
|
|
1284
|
-
return null;
|
|
1285
|
-
}
|
|
1286
|
-
if (trimmed.startsWith("--")) {
|
|
1287
|
-
return trimmed;
|
|
1288
|
-
}
|
|
1289
|
-
if (trimmed.startsWith("-")) {
|
|
1290
|
-
return null;
|
|
1291
|
-
}
|
|
1292
|
-
return `--${trimmed}`;
|
|
1293
|
-
}
|
|
1294
|
-
function toRuntimeShortFlagToken(token) {
|
|
1295
|
-
const trimmed = token.trim();
|
|
1296
|
-
if (!trimmed) {
|
|
1297
|
-
return null;
|
|
1298
|
-
}
|
|
1299
|
-
if (trimmed.startsWith("--")) {
|
|
1300
|
-
return null;
|
|
1301
|
-
}
|
|
1302
|
-
if (trimmed.startsWith("-")) {
|
|
1303
|
-
return trimmed;
|
|
1304
|
-
}
|
|
1305
|
-
return null;
|
|
1306
|
-
}
|
|
1307
|
-
function buildRuntimeFieldFlagContracts(fieldRegistry) {
|
|
1308
|
-
const buckets = /* @__PURE__ */ new Map();
|
|
1309
|
-
for (const definition of fieldRegistry.definitions) {
|
|
1310
|
-
const primaryFlag = toRuntimeLongFlagToken(definition.cli_flag);
|
|
1311
|
-
if (!primaryFlag) {
|
|
1312
|
-
continue;
|
|
1313
|
-
}
|
|
1314
|
-
const shortAlias = definition.cli_aliases.map((alias) => toRuntimeShortFlagToken(alias)).find((alias) => alias !== null);
|
|
1315
|
-
const longAliases = definition.cli_aliases.map((alias) => toRuntimeLongFlagToken(alias)).filter((alias) => alias !== null && alias !== primaryFlag);
|
|
1316
|
-
for (const command of definition.commands) {
|
|
1317
|
-
const bucket = buckets.get(command) ?? {
|
|
1318
|
-
flags: [],
|
|
1319
|
-
seen: /* @__PURE__ */ new Set()
|
|
1320
|
-
};
|
|
1321
|
-
const primaryContract = shortAlias ? { flag: primaryFlag, short: shortAlias } : { flag: primaryFlag };
|
|
1322
|
-
const primaryKey = `${primaryContract.flag}|${primaryContract.short ?? ""}`;
|
|
1323
|
-
if (!bucket.seen.has(primaryKey)) {
|
|
1324
|
-
bucket.seen.add(primaryKey);
|
|
1325
|
-
bucket.flags.push(primaryContract);
|
|
1326
|
-
}
|
|
1327
|
-
for (const alias of longAliases) {
|
|
1328
|
-
const key = `${alias}|`;
|
|
1329
|
-
if (bucket.seen.has(key)) {
|
|
1330
|
-
continue;
|
|
1331
|
-
}
|
|
1332
|
-
bucket.seen.add(key);
|
|
1333
|
-
bucket.flags.push({ flag: alias });
|
|
1334
|
-
}
|
|
1335
|
-
buckets.set(command, bucket);
|
|
1336
|
-
}
|
|
1337
|
-
}
|
|
1338
|
-
const result = /* @__PURE__ */ new Map();
|
|
1339
|
-
for (const [command, bucket] of buckets.entries()) {
|
|
1340
|
-
result.set(command, compactFlagAliasContracts(bucket.flags));
|
|
1341
|
-
}
|
|
1342
|
-
return result;
|
|
1343
|
-
}
|
|
1344
|
-
function mergeFlagContracts(primary, secondary) {
|
|
1345
|
-
const merged = [];
|
|
1346
|
-
const seen = /* @__PURE__ */ new Set();
|
|
1347
|
-
for (const contract of [...primary, ...secondary]) {
|
|
1348
|
-
const key = `${contract.flag}|${contract.short ?? ""}`;
|
|
1349
|
-
if (seen.has(key)) {
|
|
1350
|
-
continue;
|
|
1351
|
-
}
|
|
1352
|
-
seen.add(key);
|
|
1353
|
-
merged.push(contract);
|
|
1354
|
-
}
|
|
1355
|
-
return compactFlagAliasContracts(merged);
|
|
1356
|
-
}
|
|
1357
|
-
function buildCommandFlagSurface(commands, extensionFlagMap, runtimeFieldFlagMap) {
|
|
1358
|
-
return commands.map((command) => {
|
|
1359
|
-
const isCoreCommand = isCoreCommandPath(command);
|
|
1360
|
-
const coreFlags = isCoreCommand ? resolveCoreCommandFlags(command) : [];
|
|
1361
|
-
const runtimeFlags = runtimeFieldFlagMap.get(normalizeCommandForRuntimeFieldFlags(command)) ?? [];
|
|
1362
|
-
const extensionFlags = extensionFlagMap.get(command);
|
|
1363
|
-
const coreWithRuntime = mergeFlagContracts(coreFlags, runtimeFlags);
|
|
1364
|
-
const flags = mergeFlagContracts(coreWithRuntime, extensionFlags?.flags ?? []);
|
|
1365
|
-
const provider = coreFlags.length > 0 && (extensionFlags?.flags.length ?? 0) > 0 ? "mixed" : isCoreCommand ? "core" : "extension";
|
|
1366
|
-
return {
|
|
1367
|
-
command,
|
|
1368
|
-
flags,
|
|
1369
|
-
provider,
|
|
1370
|
-
extension_sources: extensionFlags?.sources
|
|
1371
|
-
};
|
|
1372
|
-
}).sort((left, right) => left.command.localeCompare(right.command));
|
|
1373
|
-
}
|
|
1374
|
-
function compactCommandAliasSurface(commands) {
|
|
1375
|
-
const commandSet = new Set(commands);
|
|
1376
|
-
const result = [];
|
|
1377
|
-
for (const command of commands) {
|
|
1378
|
-
const canonical = COMMAND_ALIAS_TO_CANONICAL.get(command);
|
|
1379
|
-
if (canonical && commandSet.has(canonical)) {
|
|
1380
|
-
continue;
|
|
1381
|
-
}
|
|
1382
|
-
result.push(command);
|
|
1383
|
-
}
|
|
1384
|
-
return result;
|
|
1385
|
-
}
|
|
1386
|
-
function buildCommandAliasSurface(commands) {
|
|
1387
|
-
const commandSet = new Set(commands);
|
|
1388
|
-
return CANONICAL_COMMAND_ALIASES.map((entry) => ({
|
|
1389
|
-
canonical: entry.canonical,
|
|
1390
|
-
aliases: entry.aliases.filter((alias) => commandSet.has(alias))
|
|
1391
|
-
})).filter((entry) => commandSet.has(entry.canonical) && entry.aliases.length > 0);
|
|
1392
|
-
}
|
|
1393
|
-
function buildCommanderAliasSurface() {
|
|
1394
|
-
return {
|
|
1395
|
-
create_string_options: CREATE_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1396
|
-
create_repeatable_options: CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
|
|
1397
|
-
update_string_options: UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1398
|
-
update_repeatable_options: UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
|
|
1399
|
-
list_string_options: LIST_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1400
|
-
search_string_options: SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1401
|
-
calendar_string_options: CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1402
|
-
context_string_options: CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,
|
|
1403
|
-
activity_string_options: ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS
|
|
1404
|
-
};
|
|
1405
|
-
}
|
|
1406
|
-
function resolveCreateRequiredOptionContract(typeDefinition, createMode) {
|
|
1407
|
-
const baseRequiredOptions = /* @__PURE__ */ new Set(["title", "type"]);
|
|
1408
|
-
if (createMode === "strict") {
|
|
1409
|
-
for (const field of typeDefinition.required_create_fields) {
|
|
1410
|
-
baseRequiredOptions.add(field);
|
|
1411
|
-
}
|
|
1412
|
-
for (const field of typeDefinition.required_create_repeatables) {
|
|
1413
|
-
baseRequiredOptions.add(field);
|
|
1414
|
-
}
|
|
1415
|
-
}
|
|
1416
|
-
const policyState = resolveCommandOptionPolicyState(typeDefinition, "create", baseRequiredOptions);
|
|
1417
|
-
const requiredOptionKeys = [...new Set(policyState.required)].sort((left, right) => left.localeCompare(right));
|
|
1418
|
-
const requiredFlags = [
|
|
1419
|
-
...new Set(requiredOptionKeys.map((option) => commandOptionFlagLabel("create", option)))
|
|
1420
|
-
].sort((left, right) => left.localeCompare(right));
|
|
1421
|
-
const requiredTypeOptions = [
|
|
1422
|
-
...new Set(typeDefinition.options.filter((option) => option.required === true).map((option) => option.key))
|
|
1423
|
-
].sort((left, right) => left.localeCompare(right));
|
|
1424
|
-
return {
|
|
1425
|
-
required_option_keys: requiredOptionKeys,
|
|
1426
|
-
required_flags: requiredFlags,
|
|
1427
|
-
required_type_options: requiredTypeOptions,
|
|
1428
|
-
policy_errors: [...new Set(policyState.errors)].sort((left, right) => left.localeCompare(right))
|
|
1429
|
-
};
|
|
1430
|
-
}
|
|
1431
|
-
function buildCreateRequiredOptionContracts(typeRegistry) {
|
|
1432
|
-
const byTypeStrict = {};
|
|
1433
|
-
const byTypeProgressive = {};
|
|
1434
|
-
for (const typeName of [...typeRegistry.types].sort((left, right) => left.localeCompare(right))) {
|
|
1435
|
-
const typeDefinition = typeRegistry.by_type[typeName];
|
|
1436
|
-
byTypeStrict[typeName] = resolveCreateRequiredOptionContract(typeDefinition, "strict");
|
|
1437
|
-
byTypeProgressive[typeName] = resolveCreateRequiredOptionContract(typeDefinition, "progressive");
|
|
1438
|
-
}
|
|
1439
|
-
return {
|
|
1440
|
-
default_create_mode: "strict",
|
|
1441
|
-
by_create_mode: {
|
|
1442
|
-
strict: {
|
|
1443
|
-
by_type: byTypeStrict
|
|
1444
|
-
},
|
|
1445
|
-
progressive: {
|
|
1446
|
-
by_type: byTypeProgressive
|
|
1447
|
-
}
|
|
1448
|
-
}
|
|
1449
|
-
};
|
|
1450
|
-
}
|
|
1451
|
-
function attachCreateRequiredOptionContracts(schema, metadata) {
|
|
1452
|
-
const branches = extractActionBranches(schema);
|
|
1453
|
-
if (branches.length === 0) {
|
|
1454
|
-
return schema;
|
|
1455
|
-
}
|
|
1456
|
-
let touched = false;
|
|
1457
|
-
const enrichedBranches = branches.map((branch) => {
|
|
1458
|
-
const properties = branch.properties;
|
|
1459
|
-
if (typeof properties !== "object" || properties === null) {
|
|
1460
|
-
return branch;
|
|
1461
|
-
}
|
|
1462
|
-
const actionProperty = properties.action;
|
|
1463
|
-
if (typeof actionProperty !== "object" || actionProperty === null) {
|
|
1464
|
-
return branch;
|
|
1465
|
-
}
|
|
1466
|
-
if (actionProperty.const !== "create") {
|
|
1467
|
-
return branch;
|
|
1468
|
-
}
|
|
1469
|
-
touched = true;
|
|
1470
|
-
return {
|
|
1471
|
-
...branch,
|
|
1472
|
-
"x-create-required-options": metadata
|
|
1473
|
-
};
|
|
1474
|
-
});
|
|
1475
|
-
if (!touched) {
|
|
1476
|
-
return schema;
|
|
1477
|
-
}
|
|
1478
|
-
return {
|
|
1479
|
-
...schema,
|
|
1480
|
-
oneOf: enrichedBranches
|
|
1481
|
-
};
|
|
1482
|
-
}
|
|
1483
|
-
function resolveContractsSelection(options) {
|
|
1484
|
-
const schemaOnly = options.schemaOnly === true;
|
|
1485
|
-
const flagsOnly = options.flagsOnly === true;
|
|
1486
|
-
const availabilityOnly = options.availabilityOnly === true;
|
|
1487
|
-
const runtimeOnly = options.runtimeOnly === true;
|
|
1488
|
-
const fullOutput = options.full === true;
|
|
1489
|
-
const selectedAction = normalizeToken(options.action);
|
|
1490
|
-
const selectedCommand = normalizeToken(options.command);
|
|
1491
|
-
const unfilteredDefaultBriefMode = !fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly && !selectedAction && !selectedCommand;
|
|
1492
|
-
return {
|
|
1493
|
-
selectedAction,
|
|
1494
|
-
selectedCommand,
|
|
1495
|
-
schemaOnly,
|
|
1496
|
-
flagsOnly,
|
|
1497
|
-
availabilityOnly,
|
|
1498
|
-
runtimeOnly,
|
|
1499
|
-
fullOutput,
|
|
1500
|
-
omitUnfilteredSchema: unfilteredDefaultBriefMode,
|
|
1501
|
-
omitUnfilteredCommandFlags: unfilteredDefaultBriefMode,
|
|
1502
|
-
omitUnfilteredCommanderAliases: unfilteredDefaultBriefMode
|
|
1503
|
-
};
|
|
1504
|
-
}
|
|
1505
|
-
function assertSingleContractsProjection(selection) {
|
|
1506
|
-
const projectionFlagsEnabled = [
|
|
1507
|
-
selection.schemaOnly,
|
|
1508
|
-
selection.flagsOnly,
|
|
1509
|
-
selection.availabilityOnly
|
|
1510
|
-
].filter((value) => value).length;
|
|
1511
|
-
if (projectionFlagsEnabled > 1) {
|
|
1512
|
-
throw new PmCliError("Choose only one projection flag: --schema-only, --flags-only, or --availability-only.", EXIT_CODE.USAGE);
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1515
|
-
async function readContractsSettings(pmRoot) {
|
|
1516
|
-
try {
|
|
1517
|
-
return await readSettings(pmRoot);
|
|
1518
|
-
} catch {
|
|
1519
|
-
return structuredClone(SETTINGS_DEFAULTS);
|
|
1520
|
-
}
|
|
1521
|
-
}
|
|
1522
|
-
async function resolveContractsRuntimeContext(global2, pmRoot) {
|
|
1523
|
-
const settings = await readContractsSettings(pmRoot);
|
|
1524
|
-
const runtimeProbe = await resolveRuntimeExtensionActionProbe(global2);
|
|
1525
|
-
const typeRegistry = resolveItemTypeRegistry(settings, runtimeProbe.registrations ?? getActiveExtensionRegistrations());
|
|
1526
|
-
const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);
|
|
1527
|
-
const extensionContracts = collectExtensionCommandContracts(runtimeProbe);
|
|
1528
|
-
return {
|
|
1529
|
-
settings,
|
|
1530
|
-
runtimeProbe,
|
|
1531
|
-
typeRegistry,
|
|
1532
|
-
statusRegistry: resolveRuntimeStatusRegistry(settings.schema),
|
|
1533
|
-
runtimeFieldRegistry,
|
|
1534
|
-
runtimeFieldFlagMap: buildRuntimeFieldFlagContracts(runtimeFieldRegistry),
|
|
1535
|
-
createRequiredOptionContracts: buildCreateRequiredOptionContracts(typeRegistry),
|
|
1536
|
-
extensionContracts,
|
|
1537
|
-
mergedExtensionContracts: mergeExtensionContractsByAction(extensionContracts),
|
|
1538
|
-
extensionFlagMap: collectExtensionFlagContractsByCommand(runtimeProbe.flagRegistrations)
|
|
1539
|
-
};
|
|
1540
|
-
}
|
|
1541
|
-
function shouldIncludePackageOwnedActions(selection) {
|
|
1542
|
-
return selection.availabilityOnly && (selection.selectedAction !== void 0 && PACKAGE_OWNED_ACTIONS.has(selection.selectedAction) || selection.selectedCommand !== void 0 && PACKAGE_OWNED_COMMANDS.has(selection.selectedCommand));
|
|
1543
|
-
}
|
|
1544
|
-
function collectContractsActionDescriptors(selection, mergedExtensionContracts) {
|
|
1545
|
-
const actionDescriptors = collectActionContractDescriptors(mergedExtensionContracts, {
|
|
1546
|
-
includePackageOwnedActions: shouldIncludePackageOwnedActions(selection)
|
|
1547
|
-
});
|
|
1548
|
-
if (shouldIncludePackageOwnedActions(selection) && selection.selectedCommand !== void 0 && PACKAGE_OWNED_COMMANDS.has(selection.selectedCommand) && !actionDescriptors.some((entry) => entry.command_path === selection.selectedCommand)) {
|
|
1549
|
-
actionDescriptors.push({
|
|
1550
|
-
action: packageOwnedActionForCommand(selection.selectedCommand),
|
|
1551
|
-
provider: "extension",
|
|
1552
|
-
requires_extension: true,
|
|
1553
|
-
command_path: selection.selectedCommand
|
|
1554
|
-
});
|
|
1555
|
-
}
|
|
1556
|
-
return actionDescriptors;
|
|
1557
|
-
}
|
|
1558
|
-
function assertKnownContractsAction(selection, actionDescriptors) {
|
|
1559
|
-
const actionNames = new Set(actionDescriptors.map((entry) => entry.action));
|
|
1560
|
-
if (selection.selectedAction && !actionNames.has(selection.selectedAction)) {
|
|
1561
|
-
throw new PmCliError(`Unknown action: "${selection.selectedAction}".`, EXIT_CODE.USAGE);
|
|
1562
|
-
}
|
|
1563
|
-
}
|
|
1564
|
-
function buildContractsCommandCatalog(actionDescriptors, mergedExtensionContracts) {
|
|
1565
|
-
return [
|
|
1566
|
-
.../* @__PURE__ */ new Set([
|
|
1567
|
-
...PM_CORE_COMMAND_NAMES.filter((entry) => !PACKAGE_OWNED_COMMANDS.has(entry)),
|
|
1568
|
-
...[...CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.keys()].filter((entry) => !PACKAGE_OWNED_COMMANDS.has(entry)),
|
|
1569
|
-
/* c8 ignore next -- action descriptors always include concrete command paths in command-scoped test fixtures. */
|
|
1570
|
-
...actionDescriptors.flatMap((entry) => entry.command_path ? splitCommandPathAliases(entry.command_path) : []),
|
|
1571
|
-
...mergedExtensionContracts.flatMap((entry) => entry.command.split("|"))
|
|
1572
|
-
])
|
|
1573
|
-
].map((entry) => normalizeCommandPath(entry)).filter((entry) => entry.length > 0).sort((left, right) => left.localeCompare(right));
|
|
1574
|
-
}
|
|
1575
|
-
function buildCommandNamespaceError(command, namespaceChildren) {
|
|
1576
|
-
const displayedNamespaceChildren = namespaceChildren.slice(0, COMMAND_NAMESPACE_DISPLAY_LIMIT);
|
|
1577
|
-
const hiddenNamespaceChildCount = namespaceChildren.length - displayedNamespaceChildren.length;
|
|
1578
|
-
const displayedChildCommandList = hiddenNamespaceChildCount > 0 ? `${displayedNamespaceChildren.join(", ")}, and ${hiddenNamespaceChildCount} more` : displayedNamespaceChildren.join(", ");
|
|
1579
|
-
const fallbackCandidates = namespaceChildren.slice(0, COMMAND_NAMESPACE_FALLBACK_LIMIT);
|
|
1580
|
-
const childCommandExamples = namespaceChildren.slice(0, 5).map((childCommand) => `pm contracts --command "${childCommand}" --flags-only --json`);
|
|
1581
|
-
const suggestedChildCommand = namespaceChildren[0];
|
|
1582
|
-
return new PmCliError(`Command "${command}" is a command namespace. Choose a concrete child command: ${displayedChildCommandList}.`, EXIT_CODE.USAGE, {
|
|
1583
|
-
code: "command_namespace",
|
|
1584
|
-
required: "Use a concrete child command path listed under this namespace.",
|
|
1585
|
-
why: "Command groups expose help at the namespace root, but command flag contracts belong to executable child commands.",
|
|
1586
|
-
examples: childCommandExamples,
|
|
1587
|
-
nextSteps: [`Retry with a child command, for example: ${childCommandExamples[0]}`],
|
|
1588
|
-
recovery: {
|
|
1589
|
-
suggested_retry: `pm contracts --command "${suggestedChildCommand}" --flags-only --json`,
|
|
1590
|
-
fallback_candidates: fallbackCandidates.map((childCommand) => ({
|
|
1591
|
-
source: "command_namespace",
|
|
1592
|
-
command: `pm contracts --command "${childCommand}" --flags-only --json`,
|
|
1593
|
-
reason: `Child command under ${command}`
|
|
1594
|
-
}))
|
|
1595
|
-
}
|
|
1596
|
-
});
|
|
1597
|
-
}
|
|
1598
|
-
function buildPackageOwnedCommandError(command, packageHint) {
|
|
1599
|
-
return new PmCliError(`Unknown command: "${command}". Command "${command}" is provided by the optional "${packageHint}" package. Run "pm install ${packageHint} --project" and retry.`, EXIT_CODE.USAGE, {
|
|
1600
|
-
code: "unknown_command",
|
|
1601
|
-
required: `Install the optional "${packageHint}" package, or choose a command from pm contracts --flags-only --json.`,
|
|
1602
|
-
why: "Command contracts include core commands plus commands registered by active packages and extensions.",
|
|
1603
|
-
examples: [`pm install ${packageHint} --project`, `pm contracts --command ${command} --flags-only --json`],
|
|
1604
|
-
nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],
|
|
1605
|
-
recovery: {
|
|
1606
|
-
suggested_retry: `pm install ${packageHint} --project`
|
|
1607
|
-
}
|
|
1608
|
-
});
|
|
1609
|
-
}
|
|
1610
|
-
function buildUnknownCommandError(command) {
|
|
1611
|
-
return new PmCliError(`Unknown command: "${command}".`, EXIT_CODE.USAGE, {
|
|
1612
|
-
code: "unknown_command",
|
|
1613
|
-
required: "Use a command path listed by pm contracts --flags-only --json.",
|
|
1614
|
-
why: "Command contracts are generated from the active core, package, and extension command registry.",
|
|
1615
|
-
examples: ["pm contracts --flags-only --json", "pm --help"],
|
|
1616
|
-
nextSteps: ["Verify spelling and active packages/extensions, then rerun with a known command path."],
|
|
1617
|
-
recovery: {
|
|
1618
|
-
suggested_retry: "pm contracts --flags-only --json"
|
|
1619
|
-
}
|
|
1620
|
-
});
|
|
1621
|
-
}
|
|
1622
|
-
function assertKnownContractsCommand(selection, commandCatalog) {
|
|
1623
|
-
if (!selection.selectedCommand) {
|
|
1624
|
-
return;
|
|
1625
|
-
}
|
|
1626
|
-
const commandNames = new Set(commandCatalog);
|
|
1627
|
-
if (commandNames.has(selection.selectedCommand)) {
|
|
1628
|
-
return;
|
|
1629
|
-
}
|
|
1630
|
-
const namespaceChildren = commandCatalog.filter((command) => command.startsWith(`${selection.selectedCommand} `));
|
|
1631
|
-
if (namespaceChildren.length > 0) {
|
|
1632
|
-
throw buildCommandNamespaceError(selection.selectedCommand, namespaceChildren);
|
|
1633
|
-
}
|
|
1634
|
-
const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selection.selectedCommand);
|
|
1635
|
-
if (packageHint) {
|
|
1636
|
-
throw buildPackageOwnedCommandError(selection.selectedCommand, packageHint);
|
|
1637
|
-
}
|
|
1638
|
-
throw buildUnknownCommandError(selection.selectedCommand);
|
|
1639
|
-
}
|
|
1640
|
-
function resolveContractsActionContext(selection, runtime) {
|
|
1641
|
-
const actionDescriptors = collectContractsActionDescriptors(selection, runtime.mergedExtensionContracts);
|
|
1642
|
-
assertKnownContractsAction(selection, actionDescriptors);
|
|
1643
|
-
const commandCatalog = buildContractsCommandCatalog(actionDescriptors, runtime.mergedExtensionContracts);
|
|
1644
|
-
assertKnownContractsCommand(selection, commandCatalog);
|
|
1645
|
-
const selectedPackageOwnedAction = selection.selectedCommand ? PACKAGE_OWNED_COMMAND_ACTIONS.get(selection.selectedCommand) : void 0;
|
|
1646
|
-
const commandScopedDescriptors = selection.selectedCommand ? actionDescriptors.filter((descriptor) => selectedPackageOwnedAction ? descriptor.action === selectedPackageOwnedAction : actionDescriptorMatchesSelectedCommand(descriptor, selection.selectedCommand)) : actionDescriptors;
|
|
1647
|
-
if (selection.selectedCommand && selection.selectedAction && !commandScopedDescriptors.some((descriptor) => descriptor.action === selection.selectedAction)) {
|
|
1648
|
-
throw new PmCliError(`Action "${selection.selectedAction}" is not mapped to command "${selection.selectedCommand}" in contracts output.`, EXIT_CODE.USAGE);
|
|
1649
|
-
}
|
|
1650
|
-
const scopedActionDescriptors = selection.selectedAction ? commandScopedDescriptors.filter((descriptor) => descriptor.action === selection.selectedAction) : commandScopedDescriptors;
|
|
1651
|
-
const allActionAvailability = [
|
|
1652
|
-
...new Map(scopedActionDescriptors.map((descriptor) => resolveActionAvailability(descriptor, runtime.runtimeProbe)).map((entry) => [
|
|
1653
|
-
/* c8 ignore next -- keyed dedupe by action|path is covered by runtime policy integration tests. */
|
|
1654
|
-
selectedPackageOwnedAction ? entry.action : `${entry.action}|${entry.command_path ?? ""}`,
|
|
1655
|
-
entry
|
|
1656
|
-
])).values()
|
|
1657
|
-
];
|
|
1658
|
-
const actionAvailability = selection.runtimeOnly && !selection.selectedAction && !selection.availabilityOnly ? allActionAvailability.filter((entry) => entry.invocable) : allActionAvailability;
|
|
1659
|
-
return {
|
|
1660
|
-
actionDescriptors,
|
|
1661
|
-
commandCatalog,
|
|
1662
|
-
commandScopedDescriptors,
|
|
1663
|
-
scopedActionDescriptors,
|
|
1664
|
-
selectedPackageOwnedAction,
|
|
1665
|
-
actionAvailability,
|
|
1666
|
-
actions: [...new Set(actionAvailability.map((entry) => entry.action))]
|
|
1667
|
-
};
|
|
1668
|
-
}
|
|
1669
|
-
function buildSchemaActionSet(schema) {
|
|
1670
|
-
return new Set(extractActionBranches(schema).map((entry) => {
|
|
1671
|
-
const properties = entry.properties;
|
|
1672
|
-
if (typeof properties !== "object" || properties === null) {
|
|
1673
|
-
return null;
|
|
1674
|
-
}
|
|
1675
|
-
const actionProperty = properties.action;
|
|
1676
|
-
if (typeof actionProperty !== "object" || actionProperty === null) {
|
|
1677
|
-
return null;
|
|
1678
|
-
}
|
|
1679
|
-
const actionConst = actionProperty.const;
|
|
1680
|
-
return typeof actionConst === "string" ? actionConst : null;
|
|
1681
|
-
}).filter((entry) => entry !== null));
|
|
1682
|
-
}
|
|
1683
|
-
function buildMergedContractsSchema(mergedExtensionContracts) {
|
|
1684
|
-
const schema = PM_TOOL_PARAMETERS_SCHEMA;
|
|
1685
|
-
const schemaBranches = extractActionBranches(schema);
|
|
1686
|
-
const schemaActionSet = buildSchemaActionSet(schema);
|
|
1687
|
-
const extensionBranches = mergedExtensionContracts.filter((contract) => !schemaActionSet.has(contract.action)).map((contract) => buildExtensionActionSchemaBranch(contract));
|
|
1688
|
-
return extensionBranches.length > 0 ? {
|
|
1689
|
-
...schema,
|
|
1690
|
-
oneOf: [...schemaBranches, ...extensionBranches]
|
|
1691
|
-
} : schema;
|
|
1692
|
-
}
|
|
1693
|
-
function filterContractsSchema(selection, actionContext, mergedSchema) {
|
|
1694
|
-
const descriptorActionSet = new Set(actionContext.actionDescriptors.map((descriptor) => descriptor.action));
|
|
1695
|
-
const filteredSchema = selection.selectedAction ? filterSchemaByAction(mergedSchema, selection.selectedAction) : selection.selectedCommand ? filterSchemaByActions(mergedSchema, new Set(actionContext.scopedActionDescriptors.map((descriptor) => descriptor.action))) : filterSchemaByActions(mergedSchema, descriptorActionSet);
|
|
1696
|
-
return selection.runtimeOnly && !selection.selectedAction ? filterSchemaByActions(filteredSchema, new Set(actionContext.actions)) : filteredSchema;
|
|
1697
|
-
}
|
|
1698
|
-
function resolveContractsSchemaContext(selection, runtime, actionContext) {
|
|
1699
|
-
const mergedSchema = buildMergedContractsSchema(runtime.mergedExtensionContracts);
|
|
1700
|
-
const includeSchemaSurface = !selection.flagsOnly && !selection.availabilityOnly;
|
|
1701
|
-
const filteredSchema = includeSchemaSurface ? attachCreateRequiredOptionContracts(filterContractsSchema(selection, actionContext, mergedSchema), runtime.createRequiredOptionContracts) : filterContractsSchema(selection, actionContext, mergedSchema);
|
|
1702
|
-
return { mergedSchema, filteredSchema };
|
|
1703
|
-
}
|
|
1704
|
-
function resolveContractsCommands(selection, actionContext) {
|
|
1705
|
-
if (selection.selectedCommand !== void 0) {
|
|
1706
|
-
return [selection.selectedCommand];
|
|
1707
|
-
}
|
|
1708
|
-
if (selection.selectedAction) {
|
|
1709
|
-
return resolveScopedCommandsFromActionDescriptors(actionContext.scopedActionDescriptors, actionContext.commandCatalog);
|
|
1710
|
-
}
|
|
1711
|
-
return actionContext.commandCatalog;
|
|
1712
|
-
}
|
|
1713
|
-
function resolveOutputCommands(selection, commands) {
|
|
1714
|
-
return selection.flagsOnly && selection.selectedCommand === void 0 && selection.selectedAction === void 0 ? compactCommandAliasSurface(commands) : commands;
|
|
1715
|
-
}
|
|
1716
|
-
function resolveExtensionCommandContracts(selection, runtime, outputCommands) {
|
|
1717
|
-
if (selection.selectedCommand) {
|
|
1718
|
-
return runtime.extensionContracts.filter((entry) => splitCommandPathAliases(entry.command).includes(selection.selectedCommand));
|
|
1719
|
-
}
|
|
1720
|
-
if (selection.selectedAction) {
|
|
1721
|
-
const outputCommandSet = new Set(outputCommands);
|
|
1722
|
-
return runtime.extensionContracts.filter((entry) => splitCommandPathAliases(entry.command).some((command) => outputCommandSet.has(command)));
|
|
1723
|
-
}
|
|
1724
|
-
return runtime.extensionContracts;
|
|
1725
|
-
}
|
|
1726
|
-
function createContractsResult(selection, schemaContext, actionContext, outputCommands) {
|
|
1727
|
-
return {
|
|
1728
|
-
schema_version: (
|
|
1729
|
-
/* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */
|
|
1730
|
-
typeof schemaContext.mergedSchema["x-schema-version"] === "string" ? schemaContext.mergedSchema["x-schema-version"] : null
|
|
1731
|
-
),
|
|
1732
|
-
schema_id: (
|
|
1733
|
-
/* c8 ignore next -- schema version/id fallbacks are exercised by schema snapshot tests. */
|
|
1734
|
-
typeof schemaContext.mergedSchema.$id === "string" ? schemaContext.mergedSchema.$id : null
|
|
1735
|
-
),
|
|
1736
|
-
selected: {
|
|
1737
|
-
action: selection.selectedAction ?? null,
|
|
1738
|
-
command: selection.selectedCommand ?? null,
|
|
1739
|
-
schema_only: selection.schemaOnly,
|
|
1740
|
-
flags_only: selection.flagsOnly,
|
|
1741
|
-
availability_only: selection.availabilityOnly,
|
|
1742
|
-
runtime_only: selection.runtimeOnly,
|
|
1743
|
-
command_scoped: selection.selectedCommand !== void 0
|
|
1744
|
-
},
|
|
1745
|
-
commands: outputCommands,
|
|
1746
|
-
...!selection.flagsOnly ? {
|
|
1747
|
-
actions: actionContext.actions,
|
|
1748
|
-
action_availability: actionContext.actionAvailability
|
|
1749
|
-
} : {}
|
|
1750
|
-
};
|
|
1751
|
-
}
|
|
1752
|
-
function attachRuntimeContractsResult(result, runtime) {
|
|
1753
|
-
result.runtime_schema = {
|
|
1754
|
-
statuses: runtime.statusRegistry.definitions.map((definition) => definition.id),
|
|
1755
|
-
open_status: runtime.statusRegistry.open_status,
|
|
1756
|
-
close_status: runtime.statusRegistry.close_status,
|
|
1757
|
-
canceled_status: runtime.statusRegistry.canceled_status,
|
|
1758
|
-
types: [...runtime.typeRegistry.types],
|
|
1759
|
-
fields_by_command: Object.fromEntries([...runtime.runtimeFieldRegistry.command_to_fields.entries()].map(([command, definitions]) => [
|
|
1760
|
-
command,
|
|
1761
|
-
[...new Set(definitions.map((definition) => `--${definition.cli_flag}`))].sort((left, right) => left.localeCompare(right))
|
|
1762
|
-
]))
|
|
1763
|
-
};
|
|
1764
|
-
result.extension_contracts = {
|
|
1765
|
-
capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],
|
|
1766
|
-
services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],
|
|
1767
|
-
policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],
|
|
1768
|
-
policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],
|
|
1769
|
-
trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],
|
|
1770
|
-
sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],
|
|
1771
|
-
manifest_versions: [1, 2],
|
|
1772
|
-
compatibility: {
|
|
1773
|
-
current: "v2",
|
|
1774
|
-
previous: ["v1"],
|
|
1775
|
-
breaking_strategy: "versioned_breaking"
|
|
1776
|
-
}
|
|
1777
|
-
};
|
|
1778
|
-
}
|
|
1779
|
-
function attachSchemaContractsResult(result, selection, schemaContext, extensionCommandContracts) {
|
|
1780
|
-
if (selection.flagsOnly || selection.availabilityOnly) {
|
|
1781
|
-
return;
|
|
1782
|
-
}
|
|
1783
|
-
if (!selection.omitUnfilteredSchema) {
|
|
1784
|
-
result.schema = schemaContext.filteredSchema;
|
|
1785
|
-
result.extension_commands = extensionCommandContracts;
|
|
1786
|
-
return;
|
|
1787
|
-
}
|
|
1788
|
-
result.schema_omitted_reason = "unfiltered_default_brief";
|
|
1789
|
-
result.extension_commands = extensionCommandContracts;
|
|
1790
|
-
}
|
|
1791
|
-
function attachFlagContractsResult(result, selection, runtime, outputCommands, commandAliases) {
|
|
1792
|
-
if (selection.schemaOnly || selection.availabilityOnly) {
|
|
1793
|
-
return;
|
|
1794
|
-
}
|
|
1795
|
-
if (!selection.omitUnfilteredCommandFlags) {
|
|
1796
|
-
result.command_flags = buildCommandFlagSurface(outputCommands, runtime.extensionFlagMap, runtime.runtimeFieldFlagMap);
|
|
1797
|
-
} else {
|
|
1798
|
-
result.command_flags_omitted_reason = "unfiltered_default_brief";
|
|
1799
|
-
}
|
|
1800
|
-
if (commandAliases.length > 0) {
|
|
1801
|
-
result.command_aliases = commandAliases;
|
|
1802
|
-
}
|
|
1803
|
-
}
|
|
1804
|
-
function attachCommanderAliasContractsResult(result, selection) {
|
|
1805
|
-
if (selection.schemaOnly || selection.flagsOnly || selection.availabilityOnly) {
|
|
1806
|
-
return;
|
|
1807
|
-
}
|
|
1808
|
-
if (!selection.omitUnfilteredCommanderAliases) {
|
|
1809
|
-
result.commander_aliases = buildCommanderAliasSurface();
|
|
1810
|
-
return;
|
|
1811
|
-
}
|
|
1812
|
-
result.commander_aliases_omitted_reason = "unfiltered_default_brief";
|
|
1813
|
-
}
|
|
1814
|
-
async function runContracts(options, global2) {
|
|
1815
|
-
const selection = resolveContractsSelection(options);
|
|
1816
|
-
assertSingleContractsProjection(selection);
|
|
1817
|
-
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1818
|
-
const runtime = await resolveContractsRuntimeContext(global2, pmRoot);
|
|
1819
|
-
const actionContext = resolveContractsActionContext(selection, runtime);
|
|
1820
|
-
const schemaContext = resolveContractsSchemaContext(selection, runtime, actionContext);
|
|
1821
|
-
const commands = resolveContractsCommands(selection, actionContext);
|
|
1822
|
-
const outputCommands = resolveOutputCommands(selection, commands);
|
|
1823
|
-
const commandAliases = buildCommandAliasSurface(commands);
|
|
1824
|
-
const extensionCommandContracts = resolveExtensionCommandContracts(selection, runtime, outputCommands);
|
|
1825
|
-
const result = createContractsResult(selection, schemaContext, actionContext, outputCommands);
|
|
1826
|
-
if (!(selection.flagsOnly && !selection.fullOutput)) {
|
|
1827
|
-
attachRuntimeContractsResult(result, runtime);
|
|
1828
|
-
}
|
|
1829
|
-
attachSchemaContractsResult(result, selection, schemaContext, extensionCommandContracts);
|
|
1830
|
-
attachFlagContractsResult(result, selection, runtime, outputCommands, commandAliases);
|
|
1831
|
-
attachCommanderAliasContractsResult(result, selection);
|
|
1832
|
-
if (selection.fullOutput && !selection.schemaOnly && !selection.flagsOnly && !selection.availabilityOnly) {
|
|
1833
|
-
result.mcp_tools = buildMcpToolContracts();
|
|
1834
|
-
}
|
|
1835
|
-
return result;
|
|
1836
|
-
}
|
|
1837
|
-
var _testOnlyContractsCommand = {
|
|
1838
|
-
actionDescriptorMatchesSelectedCommand,
|
|
1839
|
-
attachCreateRequiredOptionContracts,
|
|
1840
|
-
buildExtensionActionSchemaBranch,
|
|
1841
|
-
buildRuntimeFieldFlagContracts,
|
|
1842
|
-
collectActionContractDescriptors,
|
|
1843
|
-
collectExtensionCommandContracts,
|
|
1844
|
-
collectExtensionFlagContractsByCommand,
|
|
1845
|
-
extractActionBranches,
|
|
1846
|
-
extensionSchemaPropertyNameFromFlag,
|
|
1847
|
-
filterSchemaByAction,
|
|
1848
|
-
filterSchemaByActions,
|
|
1849
|
-
isCoreCommandPath,
|
|
1850
|
-
mergeExtensionContractsByAction,
|
|
1851
|
-
normalizeActionNameFromCommand,
|
|
1852
|
-
normalizeCommandForRuntimeFieldFlags,
|
|
1853
|
-
normalizeCommandPath,
|
|
1854
|
-
packageOwnedActionForCommand,
|
|
1855
|
-
resolveActionCommandPath,
|
|
1856
|
-
resolveActionAvailability,
|
|
1857
|
-
resolveCoreCommandFlags,
|
|
1858
|
-
resolveScopedCommandsFromActionDescriptors,
|
|
1859
|
-
splitCommandPathAliases,
|
|
1860
|
-
toRuntimeLongFlagToken,
|
|
1861
|
-
toRuntimeShortFlagToken
|
|
1862
|
-
};
|
|
1863
|
-
|
|
1864
|
-
export {
|
|
1865
|
-
runContracts,
|
|
1866
|
-
_testOnlyContractsCommand
|
|
1867
|
-
};
|
|
1868
|
-
//# sourceMappingURL=chunk-5GZ7TDD6.js.map
|