@unbrained/pm-cli 2026.6.23 → 2026.6.30
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 +120 -0
- package/CONTRIBUTING.md +30 -0
- package/README.md +16 -3
- package/dist/cli/commander-usage.js +3 -3
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.js +8 -7
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/close.d.ts +2 -4
- package/dist/cli/commands/close.js +5 -17
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +158 -9
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +1 -1
- package/dist/cli/commands/config.js +2 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.d.ts +31 -4
- package/dist/cli/commands/context.js +33 -10
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +48 -8
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -6
- package/dist/cli/commands/create.js +10 -155
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +15 -0
- package/dist/cli/commands/extension/describe.js +48 -2
- package/dist/cli/commands/extension/describe.js.map +1 -1
- package/dist/cli/commands/extension/doctor.js +5 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.js +37 -7
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +31 -8
- package/dist/cli/commands/extension/scaffold.js +1956 -182
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +22 -2
- package/dist/cli/commands/extension.js +189 -13
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -1
- package/dist/cli/commands/index.js +5 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/item-filter-options.d.ts +63 -0
- package/dist/cli/commands/item-filter-options.js +10 -0
- package/dist/cli/commands/item-filter-options.js.map +1 -0
- package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
- package/dist/cli/commands/legacy-none-tokens.js +31 -2
- package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
- package/dist/cli/commands/linked-artifacts.d.ts +7 -0
- package/dist/cli/commands/linked-artifacts.js +12 -2
- package/dist/cli/commands/linked-artifacts.js.map +1 -1
- package/dist/cli/commands/list.d.ts +16 -39
- package/dist/cli/commands/list.js +127 -118
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/next.d.ts +98 -0
- package/dist/cli/commands/next.js +304 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/profile.d.ts +208 -0
- package/dist/cli/commands/profile.js +418 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
- package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +7 -0
- package/dist/cli/commands/schema.js +9 -3
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +2 -39
- package/dist/cli/commands/search.js +104 -106
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
- package/dist/cli/commands/shared-unset-fields.js +161 -0
- package/dist/cli/commands/shared-unset-fields.js.map +1 -0
- package/dist/cli/commands/stats.js +15 -3
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/test.js +9 -5
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.d.ts +1 -6
- package/dist/cli/commands/update.js +12 -157
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.js +20 -5
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/help-content.js +26 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/help-json-payload.js +3 -3
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +27 -12
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +42 -3
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +86 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-setup.js +67 -6
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +9 -1
- package/dist/cli/registration-helpers.js +34 -3
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +16 -0
- package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js → activity-MVSEND6D.js} +9 -11
- package/dist/cli-bundle/chunks/{aggregate-R725FC3S.js → aggregate-MOC4TR2G.js} +16 -17
- package/dist/cli-bundle/chunks/aggregate-MOC4TR2G.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-EGJLZQBI.js → aggregate-XJHLZQ5X.js} +15 -16
- package/dist/cli-bundle/chunks/aggregate-XJHLZQ5X.js.map +7 -0
- package/dist/cli-bundle/chunks/{append-5J345QGU.js → append-KDHT4GHI.js} +10 -12
- package/dist/cli-bundle/chunks/{append-5J345QGU.js.map → append-KDHT4GHI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-O5HPBMRN.js → append-LEDBAM3K.js} +8 -10
- package/dist/cli-bundle/chunks/{append-O5HPBMRN.js.map → append-LEDBAM3K.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js → chunk-3JWQCLR5.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js → chunk-4TXTVZL3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js → chunk-4YIMPANT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js → chunk-53ARXF2O.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js.map → chunk-53ARXF2O.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js +116 -0
- package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2BFPAUAF.js → chunk-5IRVSKPS.js} +2990 -2890
- package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JR2LV3M4.js → chunk-5T6WPLRO.js} +233 -190
- package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CKGNPJAG.js → chunk-6T5ZIWBS.js} +3011 -2888
- package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QH3PJYON.js → chunk-6YRAMXRS.js} +111 -114
- package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js → chunk-73PTKMAE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-Y4SUQQYH.js → chunk-74PUWBGN.js} +53 -54
- package/dist/cli-bundle/chunks/chunk-74PUWBGN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T5472OMV.js → chunk-7L6TXOOC.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-T5472OMV.js.map → chunk-7L6TXOOC.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
- package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js → chunk-7RIJGN4R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G6PYHBBR.js → chunk-7WDETKGP.js} +192 -113
- package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AONIHR2C.js → chunk-A3UNLXNJ.js} +40 -260
- package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js → chunk-AWN4PPH5.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js.map → chunk-AWN4PPH5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js → chunk-BN3CWK6G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KFWBJPSG.js → chunk-BOWQWXLI.js} +12 -24
- package/dist/cli-bundle/chunks/chunk-BOWQWXLI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js → chunk-C2KCIZKZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js → chunk-CHRNYKNI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UELRKQQU.js → chunk-CY5IJMUM.js} +1239 -495
- package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
- package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js → chunk-D5LYZVGB.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js.map → chunk-D5LYZVGB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js → chunk-D6USKAMA.js} +2 -2
- package/dist/cli-bundle/chunks/{context-BLBD3PUB.js → chunk-DJDXAU74.js} +19 -21
- package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js → chunk-DLDCPF5X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HFFUQR73.js → chunk-DORJSBGJ.js} +35 -9
- package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js → chunk-DRPF274X.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js.map → chunk-DRPF274X.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QL5RVYOA.js → chunk-DU66JUGT.js} +16 -14
- package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js → chunk-E2Q2ULMR.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js → chunk-EVWYAG46.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js.map → chunk-EVWYAG46.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js → chunk-F6VH3LFC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VFAQ4LMN.js → chunk-F7G53BOA.js} +18 -11
- package/dist/cli-bundle/chunks/chunk-F7G53BOA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js → chunk-FBZ5XAAF.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js.map → chunk-FBZ5XAAF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js → chunk-FDEVKXC4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js → chunk-GF7EAR22.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js.map → chunk-GF7EAR22.js.map} +1 -1
- package/dist/cli-bundle/chunks/{context-DHLVPXN3.js → chunk-HIBK6H4S.js} +20 -22
- package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-34EONI5F.js → chunk-HUYYMTGW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
- package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js → chunk-IBU2LLWM.js} +8 -12
- package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js.map → chunk-IBU2LLWM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-55ISXAQH.js → chunk-IDYCAK35.js} +53 -54
- package/dist/cli-bundle/chunks/chunk-IDYCAK35.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js → chunk-IF4ERU6A.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js.map → chunk-IF4ERU6A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js → chunk-IHXXUIXS.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js +2459 -0
- package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js → chunk-JIP67N2K.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-JJ4SG243.js +119 -0
- package/dist/cli-bundle/chunks/chunk-JJ4SG243.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js → chunk-JTRKME24.js} +11 -13
- package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js.map → chunk-JTRKME24.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js → chunk-JVQ7UOYC.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js.map → chunk-JVQ7UOYC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KQMUV6LX.js → chunk-JZG5ADVE.js} +191 -98
- package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-46G6RSB6.js → chunk-K46GQ265.js} +17 -15
- package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5UVVASSA.js → chunk-KGQ3W65B.js} +100 -35
- package/dist/cli-bundle/chunks/chunk-KGQ3W65B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js → chunk-KRASIL6M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SR3EKWZG.js → chunk-KTMMTOIP.js} +127 -127
- package/dist/cli-bundle/chunks/chunk-KTMMTOIP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js → chunk-KYDYQMNW.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js.map → chunk-KYDYQMNW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IPKJ6B36.js → chunk-LBH7UYKY.js} +106 -34
- package/dist/cli-bundle/chunks/chunk-LBH7UYKY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js → chunk-MLHX6DN5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YUDJD3XO.js → chunk-NIBP3I7A.js} +36 -10
- package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-RBTJ2YXW.js → chunk-NO6Y6FB2.js} +144 -67
- package/dist/cli-bundle/chunks/chunk-NO6Y6FB2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js → chunk-OB3RJV5F.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
- package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js → chunk-OUQ5JEFM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js → chunk-QE5UFCCO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MJTINN54.js → chunk-RM6MHL6A.js} +110 -113
- package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js → chunk-RPRW26NG.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js.map → chunk-RPRW26NG.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js → chunk-SJZTPVFT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MJTSZKK5.js → chunk-SNUK7H5J.js} +1363 -605
- package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js +2435 -0
- package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js → chunk-TQ6E76BE.js} +11 -13
- package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js.map → chunk-TQ6E76BE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZRK4O56R.js → chunk-UB3V5WUI.js} +225 -189
- package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SKN7LC5W.js → chunk-UFKNF23C.js} +11 -23
- package/dist/cli-bundle/chunks/chunk-UFKNF23C.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js → chunk-V3KLX7U7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GAJVRGGA.js → chunk-VD3LKZFX.js} +41 -254
- package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js → chunk-VMY7MZEM.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js.map → chunk-VMY7MZEM.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
- package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CE5P2NQR.js → chunk-WFJZDUM7.js} +19 -12
- package/dist/cli-bundle/chunks/chunk-WFJZDUM7.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-MNTAVQCY.js → chunk-WTRUDJ3R.js} +136 -66
- package/dist/cli-bundle/chunks/chunk-WTRUDJ3R.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js → chunk-YEDFE4DC.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js.map → chunk-YEDFE4DC.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
- package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js → chunk-Z55WX4IQ.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js.map → chunk-Z55WX4IQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js → chunk-Z5BM2FKQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js → chunk-ZEATCVAC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js → chunk-ZFIEEDTJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7SV63ZHD.js → chunk-ZIE6WXJ2.js} +128 -128
- package/dist/cli-bundle/chunks/chunk-ZIE6WXJ2.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js → claim-6NINZYB3.js} +10 -12
- package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js.map → claim-6NINZYB3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js → claim-HMCLSLUE.js} +8 -10
- package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js.map → claim-HMCLSLUE.js.map} +1 -1
- package/dist/cli-bundle/chunks/close-37KEHLYM.js +14 -0
- package/dist/cli-bundle/chunks/{close-W56IOGYG.js → close-OP3LK7Z2.js} +7 -8
- package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js → close-many-BFMP6HHK.js} +15 -17
- package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js.map → close-many-BFMP6HHK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js → close-many-CXJBOWWY.js} +17 -19
- package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js.map → close-many-CXJBOWWY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-VRECH75R.js → comments-ETHABIY6.js} +9 -11
- package/dist/cli-bundle/chunks/{comments-VRECH75R.js.map → comments-ETHABIY6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js → comments-MU2WMBUY.js} +11 -13
- package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js.map → comments-MU2WMBUY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-D3OKQO52.js → config-FIXJZEQK.js} +18 -387
- package/dist/cli-bundle/chunks/config-FIXJZEQK.js.map +7 -0
- package/dist/cli-bundle/chunks/{config-MMJA4LLK.js → config-X3ZVCUUG.js} +18 -380
- package/dist/cli-bundle/chunks/config-X3ZVCUUG.js.map +1 -0
- package/dist/cli-bundle/chunks/context-7ZEZV3BV.js +42 -0
- package/dist/cli-bundle/chunks/context-XDI4DKKT.js +46 -0
- package/dist/cli-bundle/chunks/{contracts-XGVMMPC5.js → contracts-KP4QAGVW.js} +72 -15
- package/dist/cli-bundle/chunks/contracts-KP4QAGVW.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-C3SZCXXG.js → contracts-SMOAN5NF.js} +72 -15
- package/dist/cli-bundle/chunks/contracts-SMOAN5NF.js.map +7 -0
- package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js → copy-CWM6SBY6.js} +7 -11
- package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js.map → copy-CWM6SBY6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js → copy-JJ3KOQW2.js} +9 -13
- package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js.map → copy-JJ3KOQW2.js.map} +1 -1
- package/dist/cli-bundle/chunks/create-DFMNBKBS.js +28 -0
- package/dist/cli-bundle/chunks/{create-IXY43O4H.js → create-J5Q2ELZT.js} +12 -14
- package/dist/cli-bundle/chunks/{delete-IBUR3M42.js → delete-2GZLQEUQ.js} +7 -9
- package/dist/cli-bundle/chunks/{delete-IBUR3M42.js.map → delete-2GZLQEUQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js → delete-OOQS4KVD.js} +5 -7
- package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js.map → delete-OOQS4KVD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js → deps-IF4IGL4R.js} +6 -9
- package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js.map → deps-IF4IGL4R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js → deps-ZVGGCRR6.js} +8 -11
- package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js.map → deps-ZVGGCRR6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js → docs-2TIFR62T.js} +8 -9
- package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js.map → docs-2TIFR62T.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js → docs-NFTBCQQC.js} +10 -11
- package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js.map → docs-NFTBCQQC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-IO7LREOL.js → eval-2F6EH4XN.js} +12 -14
- package/dist/cli-bundle/chunks/{eval-IO7LREOL.js.map → eval-2F6EH4XN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js → eval-PFKXQR3B.js} +10 -12
- package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js.map → eval-PFKXQR3B.js.map} +1 -1
- package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js → extension-3LRYX7SW.js} +11 -7
- package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js → extension-GMVOIP4O.js} +11 -7
- package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js → files-DF3HO6XK.js} +11 -13
- package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js.map → files-DF3HO6XK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{files-TPUL6KWB.js → files-T5ODMETM.js} +9 -11
- package/dist/cli-bundle/chunks/{files-TPUL6KWB.js.map → files-T5ODMETM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js → focus-DLXKK4AH.js} +10 -14
- package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js.map → focus-DLXKK4AH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js → focus-MY5ARIEK.js} +8 -12
- package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js.map → focus-MY5ARIEK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js → gc-FULIVYR4.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-PYVVEELM.js → gc-MDGRR2SU.js} +3 -3
- package/dist/cli-bundle/chunks/{get-X4O3HBEY.js → get-AWK324RS.js} +10 -13
- package/dist/cli-bundle/chunks/{get-X4O3HBEY.js.map → get-AWK324RS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-ENLTEGTX.js → get-VYPIICPC.js} +12 -15
- package/dist/cli-bundle/chunks/{get-ENLTEGTX.js.map → get-VYPIICPC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-5EXTY44Q.js → health-FBCVZGSX.js} +16 -17
- package/dist/cli-bundle/chunks/{health-5EXTY44Q.js.map → health-FBCVZGSX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-BOTB7YSU.js → health-Q66C43GN.js} +18 -19
- package/dist/cli-bundle/chunks/{health-BOTB7YSU.js.map → health-Q66C43GN.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-5XUSLAJA.js +18 -0
- package/dist/cli-bundle/chunks/{history-AJTXLT6S.js → history-X4OSES6K.js} +8 -10
- package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js → history-compact-2GHT32UX.js} +13 -16
- package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js.map → history-compact-2GHT32UX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js → history-compact-WLCQEKXS.js} +11 -14
- package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js.map → history-compact-WLCQEKXS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js → history-redact-45YW65BK.js} +9 -11
- package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js → history-repair-FY75IC26.js} +13 -16
- package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js.map → history-repair-FY75IC26.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js → history-repair-GABSDSVD.js} +11 -14
- package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js.map → history-repair-GABSDSVD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{init-BNLVFPRG.js → init-KO7CGIRQ.js} +11 -11
- package/dist/cli-bundle/chunks/init-TRYJELH4.js +21 -0
- package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js → learnings-3F7YLI45.js} +9 -11
- package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js.map → learnings-3F7YLI45.js.map} +1 -1
- package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js → learnings-LHZT5BHW.js} +11 -13
- package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js.map → learnings-LHZT5BHW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{list-32U7BSKE.js → list-ROT7JF62.js} +10 -10
- package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js → list-Y6AU5BJS.js} +10 -10
- package/dist/cli-bundle/chunks/next-66BJB4N2.js +277 -0
- package/dist/cli-bundle/chunks/next-66BJB4N2.js.map +7 -0
- package/dist/cli-bundle/chunks/next-N5MWJTBY.js +274 -0
- package/dist/cli-bundle/chunks/next-N5MWJTBY.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-OHU25L3M.js → notes-EVJZ3VAB.js} +11 -13
- package/dist/cli-bundle/chunks/{notes-OHU25L3M.js.map → notes-EVJZ3VAB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js → notes-FW6YFLND.js} +9 -11
- package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js.map → notes-FW6YFLND.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js → plan-DQ7G4EDC.js} +15 -18
- package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js.map → plan-DQ7G4EDC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js → plan-ZHKZ7JVF.js} +17 -20
- package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js.map → plan-ZHKZ7JVF.js.map} +1 -1
- package/dist/cli-bundle/chunks/profile-CHAW6SEA.js +1197 -0
- package/dist/cli-bundle/chunks/profile-CHAW6SEA.js.map +1 -0
- package/dist/cli-bundle/chunks/profile-UPZGCDOG.js +1235 -0
- package/dist/cli-bundle/chunks/profile-UPZGCDOG.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-DDCHPONM.js → register-list-query-KY6Z6WV7.js} +44 -20
- package/dist/cli-bundle/chunks/register-list-query-KY6Z6WV7.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-YNPBVIKM.js → register-list-query-Y2VRHPCL.js} +45 -21
- package/dist/cli-bundle/chunks/register-list-query-Y2VRHPCL.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-LAVKYY63.js → register-mutation-N6AYSKPM.js} +103 -37
- package/dist/cli-bundle/chunks/register-mutation-N6AYSKPM.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-7ALWDDAX.js → register-mutation-PCARIGZS.js} +104 -38
- package/dist/cli-bundle/chunks/register-mutation-PCARIGZS.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js → register-operations-L6CYTOIH.js} +30 -32
- package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js.map → register-operations-L6CYTOIH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js → register-operations-YAT6FUUB.js} +32 -34
- package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js.map → register-operations-YAT6FUUB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-KBXQDCXE.js → register-setup-MPANILQF.js} +67 -24
- package/dist/cli-bundle/chunks/register-setup-MPANILQF.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-RCRUHMSZ.js → register-setup-N7UGXYJC.js} +68 -25
- package/dist/cli-bundle/chunks/register-setup-N7UGXYJC.js.map +1 -0
- package/dist/cli-bundle/chunks/{restore-6K53WOWO.js → restore-DKMCLPI5.js} +9 -11
- package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +17 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js → scheduling-shortcuts-3F4QUEDH.js} +14 -16
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js.map → scheduling-shortcuts-3F4QUEDH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js → scheduling-shortcuts-BNZLQK36.js} +12 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js.map → scheduling-shortcuts-BNZLQK36.js.map} +1 -1
- package/dist/cli-bundle/chunks/schema-OLT6LVKH.js +75 -0
- package/dist/cli-bundle/chunks/schema-XJXKJQF5.js +71 -0
- package/dist/cli-bundle/chunks/{search-6HOIVZDU.js → search-CX5UMV4H.js} +10 -12
- package/dist/cli-bundle/chunks/{search-ZWYEMASC.js → search-KP6H7COV.js} +10 -12
- package/dist/cli-bundle/chunks/{stats-R5OAJVZK.js → stats-7XW4OEMK.js} +20 -12
- package/dist/cli-bundle/chunks/stats-7XW4OEMK.js.map +7 -0
- package/dist/cli-bundle/chunks/{stats-FS742AMA.js → stats-QZUG6MX5.js} +21 -13
- package/dist/cli-bundle/chunks/stats-QZUG6MX5.js.map +1 -0
- package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js → telemetry-DIFPXCAT.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js → telemetry-WTYFUPRL.js} +4 -4
- package/dist/cli-bundle/chunks/{test-NZF7OT2F.js → test-HU2BS7EY.js} +14 -16
- package/dist/cli-bundle/chunks/test-HU2BS7EY.js.map +1 -0
- package/dist/cli-bundle/chunks/test-QNDXZQCW.js +34 -0
- package/dist/cli-bundle/chunks/test-QNDXZQCW.js.map +7 -0
- package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js → test-all-PZTBLLQ6.js} +17 -20
- package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js.map → test-all-PZTBLLQ6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js → test-all-XLPI4USF.js} +19 -22
- package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js.map → test-all-XLPI4USF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-C6CFIVOS.js → test-runs-CA6K32RD.js} +6 -7
- package/dist/cli-bundle/chunks/test-runs-CA6K32RD.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-IAJDL6CA.js → test-runs-LANLLPVO.js} +5 -6
- package/dist/cli-bundle/chunks/test-runs-LANLLPVO.js.map +7 -0
- package/dist/cli-bundle/chunks/update-DJKWLBWJ.js +28 -0
- package/dist/cli-bundle/chunks/update-DJKWLBWJ.js.map +1 -0
- package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +24 -0
- package/dist/cli-bundle/chunks/update-UXDLTEOZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js → update-many-LU3SCNK5.js} +32 -33
- package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js.map → update-many-LU3SCNK5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js → update-many-VW5DGF3S.js} +34 -35
- package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js.map → update-many-VW5DGF3S.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js → upgrade-77FRUAXN.js} +12 -8
- package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js.map → upgrade-77FRUAXN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js → upgrade-ICXY244R.js} +10 -6
- package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js.map → upgrade-ICXY244R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-6QWQVCX2.js → validate-2G566PKQ.js} +37 -28
- package/dist/cli-bundle/chunks/validate-2G566PKQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-W5V5ZGQX.js → validate-BDPVXHHH.js} +38 -29
- package/dist/cli-bundle/chunks/validate-BDPVXHHH.js.map +1 -0
- package/dist/cli-bundle/main.js +56 -38
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/core/config/positional-value.d.ts +2 -0
- package/dist/core/config/positional-value.js +2 -2
- package/dist/core/config/positional-value.js.map +1 -1
- package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
- package/dist/core/extensions/activation-summary-markdown.js +140 -0
- package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
- package/dist/core/extensions/activation-summary.d.ts +2 -0
- package/dist/core/extensions/activation-summary.js +3 -2
- package/dist/core/extensions/activation-summary.js.map +1 -1
- package/dist/core/extensions/capability-usage.d.ts +1 -1
- package/dist/core/extensions/capability-usage.js +4 -3
- package/dist/core/extensions/capability-usage.js.map +1 -1
- package/dist/core/extensions/extension-registries.js +3 -2
- package/dist/core/extensions/extension-registries.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +21 -1
- package/dist/core/extensions/extension-types.js +3 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -2
- package/dist/core/extensions/loader.js +169 -103
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/version-compat.d.ts +107 -0
- package/dist/core/extensions/version-compat.js +130 -0
- package/dist/core/extensions/version-compat.js.map +1 -0
- package/dist/core/fs/fs-utils.js +27 -2
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/item/actionability.d.ts +57 -0
- package/dist/core/item/actionability.js +178 -0
- package/dist/core/item/actionability.js.map +1 -0
- package/dist/core/item/type-registry.js +18 -45
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/profile/profile-describe.d.ts +64 -0
- package/dist/core/profile/profile-describe.js +83 -0
- package/dist/core/profile/profile-describe.js.map +1 -0
- package/dist/core/profile/profile-lint.d.ts +53 -0
- package/dist/core/profile/profile-lint.js +422 -0
- package/dist/core/profile/profile-lint.js.map +1 -0
- package/dist/core/profile/profile-plan.d.ts +145 -0
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-plan.js.map +1 -0
- package/dist/core/profile/profile-presets.d.ts +218 -0
- package/dist/core/profile/profile-presets.js +325 -0
- package/dist/core/profile/profile-presets.js.map +1 -0
- package/dist/core/schema/fields-file.js +25 -25
- package/dist/core/schema/fields-file.js.map +1 -1
- package/dist/core/schema/item-types-file.js +3 -3
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +4 -4
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/status-defs-file.js +3 -3
- package/dist/core/schema/status-defs-file.js.map +1 -1
- package/dist/core/shared/serialization.js +83 -62
- package/dist/core/shared/serialization.js.map +1 -1
- package/dist/core/store/item-store.d.ts +1 -0
- package/dist/core/store/item-store.js +16 -8
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.js +4 -32
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.js +14 -14
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/observability.js +50 -54
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +11 -2
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/background-runs.js +3 -2
- package/dist/core/test/background-runs.js.map +1 -1
- package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
- package/dist/core/validate/linked-artifact-reference.js +41 -0
- package/dist/core/validate/linked-artifact-reference.js.map +1 -0
- package/dist/mcp/server.js +183 -83
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +33 -2
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
- package/dist/sdk/cli-contracts/commander-types.js +15 -2
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
- package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +1583 -0
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
- package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
- package/dist/sdk/cli-contracts/string-lists.js +20 -0
- package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
- package/dist/sdk/cli-contracts/tool-schema.js +840 -0
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +13 -193
- package/dist/sdk/cli-contracts.js +5 -2277
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/compose.d.ts +346 -4
- package/dist/sdk/compose.js +486 -15
- package/dist/sdk/compose.js.map +1 -1
- package/dist/sdk/define.d.ts +29 -14
- package/dist/sdk/define.js +21 -7
- package/dist/sdk/define.js.map +1 -1
- package/dist/sdk/index.d.ts +14 -3
- package/dist/sdk/index.js +14 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +156 -3
- package/dist/sdk/testing.js +172 -4
- package/dist/sdk/testing.js.map +1 -1
- package/docs/AGENT_GUIDE.md +2 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +37 -0
- package/docs/EXTENSIONS.md +20 -20
- package/docs/RELEASING.md +6 -1
- package/docs/SDK.md +387 -20
- package/docs/TESTING.md +12 -0
- package/docs/examples/policy-restricted-extension/README.md +6 -0
- package/docs/examples/policy-restricted-extension/index.ts +40 -0
- package/docs/examples/policy-restricted-extension/manifest.json +2 -2
- package/docs/examples/starter-extension/README.md +14 -2
- package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
- package/docs/examples/starter-extension/manifest.json +2 -2
- package/package.json +20 -7
- package/packages/pm-beads/extensions/beads/index.ts +3 -3
- package/packages/pm-beads/extensions/beads/manifest.json +2 -2
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
- package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
- package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
- package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
- package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
- package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
- package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
- package/packages/pm-kanban/README.md +97 -0
- package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
- package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
- package/packages/pm-kanban/package.json +57 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
- package/packages/pm-templates/extensions/templates/index.ts +2 -2
- package/packages/pm-templates/extensions/templates/manifest.json +2 -2
- package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
- package/packages/pm-todos/extensions/todos/index.ts +3 -3
- package/packages/pm-todos/extensions/todos/manifest.json +2 -2
- package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
- package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
- package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
- package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
- package/scripts/bundle-cli.mjs +1 -1
- package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +0 -18
- package/dist/cli-bundle/chunks/aggregate-EGJLZQBI.js.map +0 -7
- package/dist/cli-bundle/chunks/aggregate-R725FC3S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2BFPAUAF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-46G6RSB6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-55ISXAQH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5UVVASSA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js +0 -78
- package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7SV63ZHD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AONIHR2C.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js +0 -691
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CE5P2NQR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CKGNPJAG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GAJVRGGA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HFFUQR73.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IPKJ6B36.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JR2LV3M4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KFWBJPSG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MJTINN54.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MJTSZKK5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js +0 -694
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QH3PJYON.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QL5RVYOA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-S26C36QC.js +0 -83
- package/dist/cli-bundle/chunks/chunk-S26C36QC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js +0 -75
- package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js +0 -86
- package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SKN7LC5W.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SR3EKWZG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VFAQ4LMN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y4SUQQYH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YDEXO24S.js +0 -654
- package/dist/cli-bundle/chunks/chunk-YDEXO24S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js +0 -657
- package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YUDJD3XO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZRK4O56R.js.map +0 -1
- package/dist/cli-bundle/chunks/close-A3EMKBBY.js +0 -15
- package/dist/cli-bundle/chunks/config-D3OKQO52.js.map +0 -7
- package/dist/cli-bundle/chunks/config-MMJA4LLK.js.map +0 -1
- package/dist/cli-bundle/chunks/context-BLBD3PUB.js.map +0 -7
- package/dist/cli-bundle/chunks/context-DHLVPXN3.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-C3SZCXXG.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-XGVMMPC5.js.map +0 -1
- package/dist/cli-bundle/chunks/create-QVGFYA2X.js +0 -30
- package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +0 -21
- package/dist/cli-bundle/chunks/init-RCRKW5PL.js +0 -21
- package/dist/cli-bundle/chunks/register-list-query-DDCHPONM.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-YNPBVIKM.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-7ALWDDAX.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-LAVKYY63.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-KBXQDCXE.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-RCRUHMSZ.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +0 -19
- package/dist/cli-bundle/chunks/schema-MNTAVQCY.js.map +0 -1
- package/dist/cli-bundle/chunks/schema-RBTJ2YXW.js.map +0 -7
- package/dist/cli-bundle/chunks/stats-FS742AMA.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-R5OAJVZK.js.map +0 -7
- package/dist/cli-bundle/chunks/test-QJXLKV26.js +0 -36
- package/dist/cli-bundle/chunks/test-runs-C6CFIVOS.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-IAJDL6CA.js.map +0 -7
- package/dist/cli-bundle/chunks/update-2XCQNOD6.js +0 -28
- package/dist/cli-bundle/chunks/update-IWUCXVH2.js +0 -24
- package/dist/cli-bundle/chunks/validate-6QWQVCX2.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-W5V5ZGQX.js.map +0 -1
- package/docs/examples/policy-restricted-extension/index.js +0 -21
- package/packages/pm-beads/extensions/beads/index.js +0 -64
- package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
- package/packages/pm-beads/extensions/beads/runtime.js +0 -482
- package/packages/pm-calendar/extensions/calendar/index.js +0 -150
- package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
- package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
- package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
- package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
- package/packages/pm-templates/extensions/templates/index.js +0 -132
- package/packages/pm-templates/extensions/templates/runtime.js +0 -35
- package/packages/pm-todos/extensions/todos/index.js +0 -81
- package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
- package/packages/pm-todos/extensions/todos/runtime.js +0 -545
- /package/dist/cli-bundle/chunks/{activity-XUZ2AHCW.js.map → activity-EJBMXUBH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js.map → activity-MVSEND6D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js.map → chunk-3JWQCLR5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js.map → chunk-4TXTVZL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js.map → chunk-4YIMPANT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js.map → chunk-73PTKMAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js.map → chunk-7RIJGN4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js.map → chunk-BN3CWK6G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js.map → chunk-C2KCIZKZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js.map → chunk-CHRNYKNI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js.map → chunk-D6USKAMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js.map → chunk-DLDCPF5X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js.map → chunk-E2Q2ULMR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js.map → chunk-F6VH3LFC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js.map → chunk-FDEVKXC4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-34EONI5F.js.map → chunk-HUYYMTGW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js.map → chunk-IHXXUIXS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js.map → chunk-JIP67N2K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js.map → chunk-KRASIL6M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js.map → chunk-MLHX6DN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js.map → chunk-OB3RJV5F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js.map → chunk-OUQ5JEFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js.map → chunk-QE5UFCCO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js.map → chunk-SJZTPVFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js.map → chunk-V3KLX7U7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js.map → chunk-Z5BM2FKQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js.map → chunk-ZEATCVAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js.map → chunk-ZFIEEDTJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-A3EMKBBY.js.map → close-37KEHLYM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W56IOGYG.js.map → close-OP3LK7Z2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-QVGFYA2X.js.map → context-7ZEZV3BV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-IXY43O4H.js.map → context-XDI4DKKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js.map → create-DFMNBKBS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js.map → create-J5Q2ELZT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AJTXLT6S.js.map → extension-3LRYX7SW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AK3E5Z3C.js.map → extension-GMVOIP4O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js.map → gc-FULIVYR4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-PYVVEELM.js.map → gc-MDGRR2SU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-TWIYQV5J.js.map → history-5XUSLAJA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js.map → history-X4OSES6K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-BNLVFPRG.js.map → history-redact-45YW65BK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-RCRKW5PL.js.map → history-redact-BVHWDXPR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-32U7BSKE.js.map → init-KO7CGIRQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js.map → init-TRYJELH4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-6K53WOWO.js.map → list-ROT7JF62.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-2ZKT6UDC.js.map → list-Y6AU5BJS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-6HOIVZDU.js.map → restore-DKMCLPI5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-ZWYEMASC.js.map → restore-IRAKSWIW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-NZF7OT2F.js.map → schema-OLT6LVKH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-QJXLKV26.js.map → schema-XJXKJQF5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-2XCQNOD6.js.map → search-CX5UMV4H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-IWUCXVH2.js.map → search-KP6H7COV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js.map → telemetry-DIFPXCAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js.map → telemetry-WTYFUPRL.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-sources.js","sources":["cli/commands/extension/install-sources.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/extension/install-sources\n *\n * Implements extension package-management support for Install Sources.\n */\nimport { execFile } from \"node:child_process\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { promisify } from \"node:util\";\nimport { collectPackageExtensionDirectories } from \"../../../core/packages/manifest.js\";\nimport { resolvePmPackageRootFromModule } from \"../../../core/packages/root.js\";\nimport { pathExists } from \"../../../core/fs/fs-utils.js\";\nimport { isPathWithinDirectory } from \"../../../core/fs/path-utils.js\";\nimport { EXIT_CODE } from \"../../../core/shared/constants.js\";\nimport { PmCliError, type PmCliErrorContext } from \"../../../core/shared/errors.js\";\n\nconst execFileAsync = promisify(execFile);\nconst PM_CLI_PACKAGE_NAME = \"@unbrained/pm-cli\";\n\ninterface LocalInstallSource {\n kind: \"local\";\n input: string;\n absolute_path: string;\n}\n\ninterface GithubInstallSource {\n kind: \"github\";\n input: string;\n owner: string;\n repo: string;\n repository: string;\n ref?: string;\n subpath?: string;\n}\n\ninterface NpmInstallSource {\n kind: \"npm\";\n input: string;\n spec: string;\n}\n\ntype InstallSource = LocalInstallSource | GithubInstallSource | NpmInstallSource;\n\ninterface ResolvedInstallSource {\n source: InstallSource;\n directory: string;\n resolved_subpath?: string;\n commit?: string;\n npm_package?: string;\n npm_version?: string;\n cleanup?: () => Promise<void>;\n}\n\nfunction parseGithubPathSpec(pathSpec: string, input: string, refOverride?: string): GithubInstallSource | null {\n const segments = pathSpec\n .split(\"/\")\n .map((segment) => segment.trim())\n .filter((segment) => segment.length > 0);\n if (segments.length < 2) {\n return null;\n }\n const owner = segments[0];\n const repo = segments[1].replace(/\\.git$/i, \"\");\n if (owner.length === 0 || repo.length === 0) {\n return null;\n }\n const tail = segments.slice(2);\n let ref: string | undefined;\n let subpath: string | undefined;\n if (tail[0] === \"tree\" && tail.length >= 2) {\n ref = tail[1];\n subpath = tail.slice(2).join(\"/\");\n } else if (tail.length > 0) {\n subpath = tail.join(\"/\");\n }\n if (typeof refOverride === \"string\" && refOverride.trim().length > 0) {\n ref = refOverride.trim();\n }\n return {\n kind: \"github\",\n input,\n owner,\n repo,\n repository: `https://github.com/${owner}/${repo}.git`,\n ref,\n subpath: subpath && subpath.length > 0 ? subpath : undefined,\n };\n}\n\n/**\n * Implements parse extension install source for the public runtime surface of this module.\n */\nexport function parseExtensionInstallSource(input: string, options: { forceGithub?: boolean; ref?: string } = {}): InstallSource {\n const normalizedInput = input.trim();\n if (normalizedInput.length === 0) {\n throw new PmCliError(\"Extension source is required for --install.\", EXIT_CODE.USAGE);\n }\n const refOverride = typeof options.ref === \"string\" && options.ref.trim().length > 0 ? options.ref.trim() : undefined;\n\n if (normalizedInput.startsWith(\"npm:\")) {\n const spec = normalizedInput.slice(\"npm:\".length).trim();\n if (spec.length === 0) {\n throw new PmCliError('npm package source must include a package spec after \"npm:\".', EXIT_CODE.USAGE);\n }\n if (options.forceGithub) {\n throw new PmCliError('Options \"--gh/--github\" cannot be combined with npm: package sources.', EXIT_CODE.USAGE);\n }\n if (refOverride) {\n throw new PmCliError('Option \"--ref\" cannot be combined with npm: package sources.', EXIT_CODE.USAGE);\n }\n return {\n kind: \"npm\",\n input: normalizedInput,\n spec,\n };\n }\n\n const maybeGithubByUrl = (() => {\n try {\n const parsed = new URL(normalizedInput);\n if (parsed.hostname !== \"github.com\") {\n return null;\n }\n const pathSpec = parsed.pathname.replace(/^\\/+/, \"\");\n return parseGithubPathSpec(pathSpec, normalizedInput, refOverride);\n } catch {\n return null;\n }\n })();\n if (maybeGithubByUrl) {\n return maybeGithubByUrl;\n }\n\n const strippedDomainInput = normalizedInput.startsWith(\"github.com/\") ? normalizedInput.slice(\"github.com/\".length) : null;\n if (strippedDomainInput) {\n const parsed = parseGithubPathSpec(strippedDomainInput, normalizedInput, refOverride);\n if (!parsed) {\n throw new PmCliError(`Invalid GitHub source \"${normalizedInput}\".`, EXIT_CODE.USAGE);\n }\n return parsed;\n }\n\n if (options.forceGithub) {\n const parsed = parseGithubPathSpec(normalizedInput, normalizedInput, refOverride);\n if (!parsed) {\n throw new PmCliError(`Invalid GitHub shorthand \"${normalizedInput}\".`, EXIT_CODE.USAGE);\n }\n return parsed;\n }\n\n if (/^https?:\\/\\//i.test(normalizedInput)) {\n throw new PmCliError(\n `Unsupported extension source URL \"${normalizedInput}\". Supported remote source host: github.com.`,\n EXIT_CODE.USAGE,\n );\n }\n\n return {\n kind: \"local\",\n input: normalizedInput,\n absolute_path: path.resolve(process.cwd(), normalizedInput),\n };\n}\n\n/**\n * Implements run git command for the public runtime surface of this module.\n */\nexport async function runGitCommand(\n args: string[],\n execRunner: typeof execFileAsync = execFileAsync,\n): Promise<string> {\n try {\n const result = await execRunner(\"git\", args, { encoding: \"utf8\" });\n return (result.stdout ?? \"\").trim();\n } catch (error: unknown) {\n /* c8 ignore start -- stderr-vs-error-message precedence is validated in integration command-runner paths */\n const stderr = typeof error === \"object\" && error !== null && \"stderr\" in error ? String((error as { stderr: unknown }).stderr) : \"\";\n const message = stderr.trim().length > 0 ? stderr.trim() : error instanceof Error ? error.message : String(error);\n /* c8 ignore stop */\n throw new PmCliError(`Git command failed: git ${args.join(\" \")}\\n${message}`, EXIT_CODE.GENERIC_FAILURE);\n }\n}\n\n/**\n * Implements resolve npm command name for the public runtime surface of this module.\n */\nexport function resolveNpmCommandName(platform: NodeJS.Platform = process.platform): \"npm\" | \"npm.cmd\" {\n return platform === \"win32\" ? \"npm.cmd\" : \"npm\";\n}\n\n/**\n * Implements should run npm command in shell for the public runtime surface of this module.\n */\nexport function shouldRunNpmCommandInShell(platform: NodeJS.Platform = process.platform): boolean {\n return platform === \"win32\";\n}\n\nasync function runNpmCommand(\n args: string[],\n cwd?: string,\n execRunner: typeof execFileAsync = execFileAsync,\n): Promise<string> {\n const npmCommand = resolveNpmCommandName();\n try {\n const result = await execRunner(npmCommand, args, { cwd, encoding: \"utf8\", shell: shouldRunNpmCommandInShell() });\n return (result.stdout ?? \"\").trim();\n } catch (error: unknown) {\n const stderr = typeof error === \"object\" && error !== null && \"stderr\" in error ? String((error as { stderr: unknown }).stderr) : \"\";\n const message = stderr.trim().length > 0 ? stderr.trim() : error instanceof Error ? error.message : String(error);\n throw new PmCliError(`npm command failed: ${npmCommand} ${args.join(\" \")}\\n${message}`, EXIT_CODE.GENERIC_FAILURE);\n }\n}\n\nfunction npmPackageNameFromSpec(spec: string): string {\n const trimmed = spec.trim();\n const withoutAlias = trimmed.includes(\"@file:\") ? trimmed.slice(0, trimmed.lastIndexOf(\"@file:\")) : trimmed;\n if (withoutAlias.startsWith(\"@\")) {\n const scoped = withoutAlias.match(/^(@[^/@\\s]+\\/[^/@\\s]+)/);\n return scoped?.[1] ?? withoutAlias;\n }\n const unscoped = withoutAlias.match(/^([^/@\\s]+)/);\n return unscoped?.[1] ?? withoutAlias;\n}\n\n/**\n * Implements check whether npm not found error for the public runtime surface of this module.\n */\nexport function isNpmNotFoundError(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n const normalized = message.toLowerCase();\n return (\n normalized.includes(\"npm err! code e404\") ||\n normalized.includes(\"404 not found\") ||\n normalized.includes(\"is not in this registry\")\n );\n}\n\n/**\n * Implements check whether npm pack not found error for the public runtime surface of this module.\n */\nexport function isNpmPackNotFoundError(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n const normalized = message.toLowerCase();\n return isNpmNotFoundError(error) || normalized.includes(\"not found\");\n}\n\nfunction isFirstPartyPmPackageName(packageName: string): boolean {\n const normalized = packageName.trim().toLowerCase();\n return normalized.startsWith(\"@unbrained/pm-\") || normalized.startsWith(\"pm-\");\n}\n\n/**\n * Implements build npm not found recovery for the public runtime surface of this module.\n */\nexport function buildNpmNotFoundRecovery(spec: string): {\n message: string;\n context: PmCliErrorContext;\n} {\n const packageName = npmPackageNameFromSpec(spec);\n const isFirstPartyPackage = isFirstPartyPmPackageName(packageName);\n const repoName = packageName.replace(/^.*\\//, \"\");\n const githubSource = isFirstPartyPackage ? `github.com/unbraind/${repoName}` : undefined;\n const nextBestCommand = githubSource ? `pm install --project ${githubSource}` : undefined;\n return {\n message: isFirstPartyPackage\n ? `npm package \"${spec}\" was not found in the registry. If this is an unpublished first-party pm package, install its GitHub repository instead.`\n : `npm package \"${spec}\" was not found in the registry.`,\n context: {\n code: \"npm_package_not_found\",\n required: \"Use an install source that exists, or publish the npm package before installing it with npm:<name>.\",\n why: \"Classifying npm 404s avoids repeated registry retries and gives agents a deterministic fallback path.\",\n examples: nextBestCommand ? [nextBestCommand, `pm package catalog --project --json`] : [`npm view ${packageName}`, `pm package catalog --project --json`],\n nextSteps: nextBestCommand\n ? [\n `Try ${nextBestCommand} if the repository exists.`,\n \"Use pm package catalog --project --json to inspect bundled package aliases before installing.\",\n ]\n : [\n `Verify ${packageName} exists in the npm registry and that you have access to it.`,\n \"Use pm package catalog --project --json to inspect bundled package aliases before installing.\",\n ],\n recovery: {\n attempted_command: `pm install --project npm:${spec}`,\n normalized_args: [\"install\", \"--project\", `npm:${spec}`],\n ...(githubSource && nextBestCommand\n ? {\n fallback_candidates: [\n {\n source: githubSource,\n command: nextBestCommand,\n reason: \"canonical first-party GitHub repository fallback for unpublished pm packages\",\n },\n ],\n next_best_command: nextBestCommand,\n }\n : {}),\n },\n },\n };\n}\n\n/**\n * Implements wrap npm pack resolution error for the public runtime surface of this module.\n */\nexport function wrapNpmPackResolutionError(spec: string, error: unknown): PmCliError | null {\n if (!isNpmPackNotFoundError(error)) {\n return null;\n }\n const recovery = buildNpmNotFoundRecovery(spec);\n return new PmCliError(recovery.message, EXIT_CODE.NOT_FOUND, recovery.context);\n}\n\nasync function resolveLocalNpmPackagePath(spec: string): Promise<string | null> {\n if (path.isAbsolute(spec) || spec.startsWith(\".\") || spec.startsWith(\"..\")) {\n const absolutePath = path.resolve(process.cwd(), spec);\n return (await pathExists(absolutePath)) ? absolutePath : null;\n }\n\n try {\n const parsed = new URL(spec);\n if (parsed.protocol === \"file:\") {\n const absolutePath = fileURLToPath(parsed);\n return (await pathExists(absolutePath)) ? absolutePath : null;\n }\n } catch {\n // Registry package specs are not URLs.\n }\n\n if (!/^[a-z][a-z0-9+.-]*:/i.test(spec)) {\n const absolutePath = path.resolve(process.cwd(), spec);\n if (await pathExists(absolutePath)) {\n return absolutePath;\n }\n }\n\n return null;\n}\n\nasync function resolveNpmPackSpec(spec: string): Promise<string> {\n const localPath = await resolveLocalNpmPackagePath(spec);\n if (localPath) {\n return pathToFileURL(localPath).href;\n }\n\n const localFileAlias = normalizeNpmLocalFileAliasSpec(spec);\n if (localFileAlias !== spec) {\n return localFileAlias;\n }\n\n if (/^[a-z][a-z0-9+.-]*:/i.test(spec)) {\n return spec;\n }\n\n return spec;\n}\n\n/**\n * Implements normalize npm local file alias spec for the public runtime surface of this module.\n */\nexport function normalizeNpmLocalFileAliasSpec(spec: string, cwd: string = process.cwd()): string {\n const marker = \"@file:\";\n const markerIndex = spec.lastIndexOf(marker);\n if (markerIndex <= 0) {\n return spec;\n }\n const packageName = spec.slice(0, markerIndex);\n const target = spec.slice(markerIndex + marker.length);\n if (packageName.trim().length === 0 || target.trim().length === 0 || target.startsWith(\"//\")) {\n return spec;\n }\n const absolutePath = path.isAbsolute(target) || path.win32.isAbsolute(target) ? target : path.resolve(cwd, target);\n return `${packageName}@${pathToFileURL(absolutePath).href}`;\n}\n\nfunction parsePackedNpmPackage(stdout: string, packDirectory: string): { tarball: string; package?: string; version?: string } {\n try {\n const parsed = JSON.parse(stdout) as Array<{ filename?: unknown; name?: unknown; version?: unknown }>;\n const first = Array.isArray(parsed) ? parsed[0] : undefined;\n if (first && typeof first.filename === \"string\" && first.filename.trim().length > 0) {\n return {\n tarball: path.resolve(packDirectory, first.filename),\n package: typeof first.name === \"string\" ? first.name : undefined,\n version: typeof first.version === \"string\" ? first.version : undefined,\n };\n }\n } catch {\n // Fall back to the last stdout line for older npm output.\n }\n const lastLine = stdout\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0)\n .at(-1);\n if (!lastLine) {\n throw new PmCliError(\"npm pack did not report a tarball filename.\", EXIT_CODE.GENERIC_FAILURE);\n }\n return {\n tarball: path.resolve(packDirectory, lastLine),\n };\n}\n\nasync function resolveNpmSourceDirectory(source: NpmInstallSource): Promise<{\n directory: string;\n package?: string;\n version?: string;\n cleanup: () => Promise<void>;\n}> {\n return resolveNpmSourceDirectoryWithRunner(source, runNpmCommand);\n}\n\nasync function resolveNpmSourceDirectoryWithRunner(\n source: NpmInstallSource,\n npmRunner: typeof runNpmCommand,\n): Promise<{\n directory: string;\n package?: string;\n version?: string;\n cleanup: () => Promise<void>;\n}> {\n const localPackageRoot = await resolveLocalNpmPackagePath(source.spec);\n if (localPackageRoot) {\n const packageJsonPath = path.join(localPackageRoot, \"package.json\");\n const packageJson = (await pathExists(packageJsonPath))\n ? JSON.parse(await fs.readFile(packageJsonPath, \"utf8\")) as { name?: unknown; version?: unknown }\n : {};\n return {\n directory: await resolvePackageExtensionDirectory(localPackageRoot, source.input),\n package: typeof packageJson.name === \"string\" ? packageJson.name : undefined,\n version: typeof packageJson.version === \"string\" ? packageJson.version : undefined,\n cleanup: async () => {},\n };\n }\n\n const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), \"pm-npm-package-source-\"));\n const packDirectory = path.join(tempRoot, \"pack\");\n const extractDirectory = path.join(tempRoot, \"extract\");\n await fs.mkdir(packDirectory, { recursive: true });\n await fs.mkdir(extractDirectory, { recursive: true });\n\n try {\n const packSpec = await resolveNpmPackSpec(source.spec);\n const packStdout = await npmRunner([\"pack\", packSpec, \"--json\", \"--pack-destination\", packDirectory]);\n const packed = parsePackedNpmPackage(packStdout, packDirectory);\n await execFileAsync(\"tar\", [\"-xzf\", packed.tarball, \"-C\", extractDirectory], { encoding: \"utf8\" });\n const packageRoot = path.join(extractDirectory, \"package\");\n await installNpmPackageRuntimeDependencies(packageRoot);\n const directory = await resolvePackageExtensionDirectory(packageRoot, source.input);\n return {\n directory,\n package: packed.package,\n version: packed.version,\n cleanup: async () => {\n await fs.rm(tempRoot, { recursive: true, force: true });\n },\n };\n } catch (error: unknown) {\n await fs.rm(tempRoot, { recursive: true, force: true });\n const wrappedError = wrapNpmPackResolutionError(source.spec, error);\n if (wrappedError) {\n throw wrappedError;\n }\n throw error;\n }\n}\n\nasync function installNpmPackageRuntimeDependencies(packageRoot: string): Promise<void> {\n const packageJsonPath = path.join(packageRoot, \"package.json\");\n if (!(await pathExists(packageJsonPath))) {\n return;\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(await fs.readFile(packageJsonPath, \"utf8\")) as unknown;\n } catch {\n return;\n }\n if (typeof parsed !== \"object\" || parsed === null) {\n return;\n }\n\n const manifest = parsed as { dependencies?: unknown; optionalDependencies?: unknown; peerDependencies?: unknown };\n const dependencySpecs = runtimeDependencyInstallSpecs(manifest);\n const shouldLinkHostedPmCli = hasHostedPmCliDependency(manifest);\n if (dependencySpecs.length === 0 && !shouldLinkHostedPmCli) {\n return;\n }\n\n const runtimeOnlyManifest = { ...(parsed as Record<string, unknown>) };\n delete runtimeOnlyManifest.devDependencies;\n const installManifest = { ...runtimeOnlyManifest };\n removeHostedPmCliDependency(installManifest);\n await fs.writeFile(packageJsonPath, `${JSON.stringify(installManifest, null, 2)}\\n`, \"utf8\");\n try {\n await Promise.all([\n fs.rm(path.join(packageRoot, \"package-lock.json\"), { force: true }),\n fs.rm(path.join(packageRoot, \"npm-shrinkwrap.json\"), { force: true }),\n ]);\n\n if (dependencySpecs.length > 0) {\n await runNpmCommand(\n [\n \"install\",\n \"--ignore-scripts\",\n \"--no-audit\",\n \"--fund=false\",\n \"--package-lock=false\",\n \"--no-save\",\n \"--omit=peer\",\n ...dependencySpecs,\n ],\n packageRoot,\n );\n }\n\n if (shouldLinkHostedPmCli) {\n await linkHostedPmCliDependency(packageRoot);\n }\n } finally {\n await fs.writeFile(packageJsonPath, `${JSON.stringify(runtimeOnlyManifest, null, 2)}\\n`, \"utf8\");\n }\n}\n\nfunction hasHostedPmCliDependency(manifest: {\n dependencies?: unknown;\n optionalDependencies?: unknown;\n peerDependencies?: unknown;\n}): boolean {\n for (const dependencyMap of [manifest.dependencies, manifest.optionalDependencies, manifest.peerDependencies]) {\n if (typeof dependencyMap === \"object\" && dependencyMap !== null && PM_CLI_PACKAGE_NAME in dependencyMap) {\n return true;\n }\n }\n return false;\n}\n\nfunction removeHostedPmCliDependency(manifest: Record<string, unknown>): void {\n for (const field of [\"dependencies\", \"optionalDependencies\", \"peerDependencies\"] as const) {\n const dependencyMap = manifest[field];\n if (typeof dependencyMap !== \"object\" || dependencyMap === null) {\n continue;\n }\n const nextMap = { ...(dependencyMap as Record<string, unknown>) };\n delete nextMap[PM_CLI_PACKAGE_NAME];\n if (Object.keys(nextMap).length === 0) {\n delete manifest[field];\n } else {\n manifest[field] = nextMap;\n }\n }\n}\n\nasync function linkHostedPmCliDependency(packageRoot: string): Promise<void> {\n const hostPackageRoot = resolvePmPackageRootFromModule(import.meta.url, [\"../../../..\"]);\n const [scope, packageName] = PM_CLI_PACKAGE_NAME.split(\"/\");\n const scopedDirectory = path.join(packageRoot, \"node_modules\", scope);\n const linkPath = path.join(scopedDirectory, packageName);\n await fs.mkdir(scopedDirectory, { recursive: true });\n await fs.rm(linkPath, { recursive: true, force: true });\n await fs.symlink(hostPackageRoot, linkPath, resolveDirectorySymlinkType(process.platform));\n}\n\nfunction resolveDirectorySymlinkType(platform: NodeJS.Platform): \"dir\" | \"junction\" {\n return platform === \"win32\" ? \"junction\" : \"dir\";\n}\n\nfunction runtimeDependencyInstallSpecs(manifest: {\n dependencies?: unknown;\n optionalDependencies?: unknown;\n peerDependencies?: unknown;\n}): string[] {\n const specs = new Map<string, string>();\n for (const dependencyMap of [manifest.dependencies, manifest.optionalDependencies, manifest.peerDependencies]) {\n if (typeof dependencyMap !== \"object\" || dependencyMap === null) {\n continue;\n }\n for (const [name, version] of Object.entries(dependencyMap)) {\n if (\n name === PM_CLI_PACKAGE_NAME ||\n typeof version !== \"string\" ||\n version.trim().length === 0 ||\n specs.has(name)\n ) {\n continue;\n }\n specs.set(name, `${name}@${version.trim()}`);\n }\n }\n return [...specs.values()];\n}\n\nasync function resolvePackageExtensionDirectory(packageRoot: string, sourceLabel: string): Promise<string> {\n const discovered = await collectPackageExtensionDirectories(packageRoot);\n if (discovered.length === 1) {\n return discovered[0];\n }\n if (discovered.length > 1) {\n const choices = discovered\n .map((entry) => path.relative(packageRoot, entry).replaceAll(path.sep, \"/\"))\n .sort((left, right) => left.localeCompare(right));\n throw new PmCliError(\n `Package source \"${sourceLabel}\" contains multiple extension manifests. Provide an explicit extension path. Candidates: ${choices.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n throw new PmCliError(\n `Unable to locate a pm extension manifest in package source \"${sourceLabel}\". Package installs currently activate only extension resources, so add package.json pm.extensions or an extensions/ directory. Metadata-only resources like pm.docs/pm.examples are catalog metadata and do not activate commands.`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function resolveGithubSourceDirectory(cloneDirectory: string, source: GithubInstallSource): Promise<{ directory: string; resolved_subpath?: string }> {\n const candidatePaths: string[] = [];\n /* c8 ignore start -- subpath candidate expansion permutations are covered by source-resolution integration suites */\n if (source.subpath) {\n candidatePaths.push(source.subpath);\n candidatePaths.push(path.posix.join(\".agents/pm/extensions\", source.subpath));\n candidatePaths.push(path.posix.join(\".custom/pm-extensions\", source.subpath));\n candidatePaths.push(path.posix.join(\".custom/pm-extension\", source.subpath));\n }\n /* c8 ignore stop */\n\n for (const candidate of candidatePaths) {\n const absolute = path.resolve(cloneDirectory, candidate);\n if (!isPathWithinDirectory(cloneDirectory, absolute)) {\n // source.subpath is user-controlled; never resolve a manifest outside the\n // cloned repository (path-traversal guard).\n continue;\n }\n if (await pathExists(path.join(absolute, \"manifest.json\"))) {\n return { directory: absolute, resolved_subpath: candidate };\n }\n }\n\n if (await pathExists(path.join(cloneDirectory, \"manifest.json\"))) {\n return { directory: cloneDirectory, resolved_subpath: \".\" };\n }\n\n const discoveredDirectory = await resolvePackageExtensionDirectory(cloneDirectory, source.input);\n return {\n directory: discoveredDirectory,\n resolved_subpath: path.relative(cloneDirectory, discoveredDirectory).replaceAll(path.sep, \"/\"),\n };\n}\n\n/**\n * Implements resolve install source for the public runtime surface of this module.\n */\nexport async function resolveInstallSource(source: InstallSource): Promise<ResolvedInstallSource> {\n if (source.kind === \"local\") {\n let localStats;\n try {\n localStats = await fs.stat(source.absolute_path);\n } catch {\n throw new PmCliError(`Local extension source does not exist: \"${source.absolute_path}\".`, EXIT_CODE.NOT_FOUND);\n }\n if (!localStats.isDirectory()) {\n throw new PmCliError(`Local extension source must be a directory: \"${source.absolute_path}\".`, EXIT_CODE.USAGE);\n }\n const directory = await resolvePackageExtensionDirectory(source.absolute_path, source.input);\n return {\n source,\n directory,\n };\n }\n\n if (source.kind === \"npm\") {\n const resolved = await resolveNpmSourceDirectory(source);\n return {\n source,\n directory: resolved.directory,\n cleanup: resolved.cleanup,\n resolved_subpath: path.relative(path.dirname(resolved.directory), resolved.directory).replaceAll(path.sep, \"/\"),\n npm_package: resolved.package,\n npm_version: resolved.version,\n };\n }\n\n const cloneDirectory = await fs.mkdtemp(path.join(os.tmpdir(), \"pm-extension-source-\"));\n const cloneArgs = [\"clone\", \"--depth\", \"1\"];\n if (source.ref) {\n cloneArgs.push(\"--branch\", source.ref);\n }\n cloneArgs.push(source.repository, cloneDirectory);\n\n try {\n await runGitCommand(cloneArgs);\n const commit = await runGitCommand([\"-C\", cloneDirectory, \"rev-parse\", \"HEAD\"]);\n const resolved = await resolveGithubSourceDirectory(cloneDirectory, source);\n return {\n source,\n directory: resolved.directory,\n resolved_subpath: resolved.resolved_subpath,\n commit,\n cleanup: async () => {\n await fs.rm(cloneDirectory, { recursive: true, force: true });\n },\n };\n } catch (error: unknown) {\n await fs.rm(cloneDirectory, { recursive: true, force: true });\n throw error;\n }\n}\n\n/**\n * Implements are directories equivalent for the public runtime surface of this module.\n */\nexport async function areDirectoriesEquivalent(left: string, right: string): Promise<boolean> {\n if (!(await pathExists(left)) || !(await pathExists(right))) {\n return false;\n }\n const [leftRealPath, rightRealPath] = await Promise.all([fs.realpath(left), fs.realpath(right)]);\n return leftRealPath === rightRealPath;\n}\n\nexport const _testOnlyInstallSources = {\n installNpmPackageRuntimeDependencies,\n npmPackageNameFromSpec,\n parsePackedNpmPackage,\n resolveNpmSourceDirectoryWithRunner,\n resolveNpmSourceDirectory,\n resolveNpmPackSpec,\n resolvePackageExtensionDirectory,\n runtimeDependencyInstallSpecs,\n hasHostedPmCliDependency,\n removeHostedPmCliDependency,\n linkHostedPmCliDependency,\n resolveDirectorySymlinkType,\n runNpmCommand,\n};\n"],"names":[],"mappings":"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","debugId":"76ef9a1c-698d-5324-a677-794b015787d5"}
|
|
1
|
+
{"version":3,"file":"install-sources.js","sources":["cli/commands/extension/install-sources.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/extension/install-sources\n *\n * Implements extension package-management support for Install Sources.\n */\nimport { execFile } from \"node:child_process\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { promisify } from \"node:util\";\nimport { collectPackageExtensionDirectories } from \"../../../core/packages/manifest.js\";\nimport { resolvePmPackageRootFromModule } from \"../../../core/packages/root.js\";\nimport { pathExists } from \"../../../core/fs/fs-utils.js\";\nimport { isPathWithinDirectory } from \"../../../core/fs/path-utils.js\";\nimport { EXIT_CODE } from \"../../../core/shared/constants.js\";\nimport { PmCliError, type PmCliErrorContext } from \"../../../core/shared/errors.js\";\n\nconst execFileAsync = promisify(execFile);\nconst PM_CLI_PACKAGE_NAME = \"@unbrained/pm-cli\";\n\ninterface LocalInstallSource {\n kind: \"local\";\n input: string;\n absolute_path: string;\n}\n\ninterface GithubInstallSource {\n kind: \"github\";\n input: string;\n owner: string;\n repo: string;\n repository: string;\n ref?: string;\n subpath?: string;\n}\n\ninterface NpmInstallSource {\n kind: \"npm\";\n input: string;\n spec: string;\n}\n\ntype InstallSource = LocalInstallSource | GithubInstallSource | NpmInstallSource;\n\ninterface ResolvedInstallSource {\n source: InstallSource;\n directory: string;\n resolved_subpath?: string;\n commit?: string;\n npm_package?: string;\n npm_version?: string;\n cleanup?: () => Promise<void>;\n}\n\nfunction parseGithubPathSpec(pathSpec: string, input: string, refOverride?: string): GithubInstallSource | null {\n const segments = pathSpec\n .split(\"/\")\n .map((segment) => segment.trim())\n .filter((segment) => segment.length > 0);\n if (segments.length < 2) {\n return null;\n }\n const owner = segments[0];\n const repo = segments[1].replace(/\\.git$/i, \"\");\n if (owner.length === 0 || repo.length === 0) {\n return null;\n }\n const tail = segments.slice(2);\n let ref: string | undefined;\n let subpath: string | undefined;\n if (tail[0] === \"tree\" && tail.length >= 2) {\n ref = tail[1];\n subpath = tail.slice(2).join(\"/\");\n } else if (tail.length > 0) {\n subpath = tail.join(\"/\");\n }\n if (typeof refOverride === \"string\" && refOverride.trim().length > 0) {\n ref = refOverride.trim();\n }\n return {\n kind: \"github\",\n input,\n owner,\n repo,\n repository: `https://github.com/${owner}/${repo}.git`,\n ref,\n subpath: subpath && subpath.length > 0 ? subpath : undefined,\n };\n}\n\n/**\n * Implements parse extension install source for the public runtime surface of this module.\n */\nexport function parseExtensionInstallSource(input: string, options: { forceGithub?: boolean; ref?: string } = {}): InstallSource {\n const normalizedInput = input.trim();\n if (normalizedInput.length === 0) {\n throw new PmCliError(\"Extension source is required for --install.\", EXIT_CODE.USAGE);\n }\n const refOverride = typeof options.ref === \"string\" && options.ref.trim().length > 0 ? options.ref.trim() : undefined;\n\n if (normalizedInput.startsWith(\"npm:\")) {\n const spec = normalizedInput.slice(\"npm:\".length).trim();\n if (spec.length === 0) {\n throw new PmCliError('npm package source must include a package spec after \"npm:\".', EXIT_CODE.USAGE);\n }\n if (options.forceGithub) {\n throw new PmCliError('Options \"--gh/--github\" cannot be combined with npm: package sources.', EXIT_CODE.USAGE);\n }\n if (refOverride) {\n throw new PmCliError('Option \"--ref\" cannot be combined with npm: package sources.', EXIT_CODE.USAGE);\n }\n return {\n kind: \"npm\",\n input: normalizedInput,\n spec,\n };\n }\n\n const maybeGithubByUrl = (() => {\n try {\n const parsed = new URL(normalizedInput);\n if (parsed.hostname !== \"github.com\") {\n return null;\n }\n const pathSpec = parsed.pathname.replace(/^\\/+/, \"\");\n return parseGithubPathSpec(pathSpec, normalizedInput, refOverride);\n } catch {\n return null;\n }\n })();\n if (maybeGithubByUrl) {\n return maybeGithubByUrl;\n }\n\n const strippedDomainInput = normalizedInput.startsWith(\"github.com/\") ? normalizedInput.slice(\"github.com/\".length) : null;\n if (strippedDomainInput) {\n const parsed = parseGithubPathSpec(strippedDomainInput, normalizedInput, refOverride);\n if (!parsed) {\n throw new PmCliError(`Invalid GitHub source \"${normalizedInput}\".`, EXIT_CODE.USAGE);\n }\n return parsed;\n }\n\n if (options.forceGithub) {\n const parsed = parseGithubPathSpec(normalizedInput, normalizedInput, refOverride);\n if (!parsed) {\n throw new PmCliError(`Invalid GitHub shorthand \"${normalizedInput}\".`, EXIT_CODE.USAGE);\n }\n return parsed;\n }\n\n if (/^https?:\\/\\//i.test(normalizedInput)) {\n throw new PmCliError(\n `Unsupported extension source URL \"${normalizedInput}\". Supported remote source host: github.com.`,\n EXIT_CODE.USAGE,\n );\n }\n\n return {\n kind: \"local\",\n input: normalizedInput,\n absolute_path: path.resolve(process.cwd(), normalizedInput),\n };\n}\n\n/**\n * Implements run git command for the public runtime surface of this module.\n */\nexport async function runGitCommand(\n args: string[],\n execRunner: typeof execFileAsync = execFileAsync,\n): Promise<string> {\n try {\n const result = await execRunner(\"git\", args, { encoding: \"utf8\" });\n return (result.stdout ?? \"\").trim();\n } catch (error: unknown) {\n /* c8 ignore start -- stderr-vs-error-message precedence is validated in integration command-runner paths */\n const stderr = typeof error === \"object\" && error !== null && \"stderr\" in error ? String((error as { stderr: unknown }).stderr) : \"\";\n const message = stderr.trim().length > 0 ? stderr.trim() : error instanceof Error ? error.message : String(error);\n /* c8 ignore stop */\n throw new PmCliError(`Git command failed: git ${args.join(\" \")}\\n${message}`, EXIT_CODE.GENERIC_FAILURE);\n }\n}\n\n/**\n * Implements resolve npm command name for the public runtime surface of this module.\n */\nexport function resolveNpmCommandName(platform: NodeJS.Platform = process.platform): \"npm\" | \"npm.cmd\" {\n return platform === \"win32\" ? \"npm.cmd\" : \"npm\";\n}\n\n/**\n * Implements should run npm command in shell for the public runtime surface of this module.\n */\nexport function shouldRunNpmCommandInShell(platform: NodeJS.Platform = process.platform): boolean {\n return platform === \"win32\";\n}\n\nasync function runNpmCommand(\n args: string[],\n cwd?: string,\n execRunner: typeof execFileAsync = execFileAsync,\n): Promise<string> {\n const npmCommand = resolveNpmCommandName();\n try {\n const result = await execRunner(npmCommand, args, { cwd, encoding: \"utf8\", shell: shouldRunNpmCommandInShell() });\n return (result.stdout ?? \"\").trim();\n } catch (error: unknown) {\n const stderr = typeof error === \"object\" && error !== null && \"stderr\" in error ? String((error as { stderr: unknown }).stderr) : \"\";\n const message = stderr.trim().length > 0 ? stderr.trim() : error instanceof Error ? error.message : String(error);\n throw new PmCliError(`npm command failed: ${npmCommand} ${args.join(\" \")}\\n${message}`, EXIT_CODE.GENERIC_FAILURE);\n }\n}\n\nfunction npmPackageNameFromSpec(spec: string): string {\n const trimmed = spec.trim();\n const withoutAlias = trimmed.includes(\"@file:\") ? trimmed.slice(0, trimmed.lastIndexOf(\"@file:\")) : trimmed;\n if (withoutAlias.startsWith(\"@\")) {\n const scoped = withoutAlias.match(/^(@[^/@\\s]+\\/[^/@\\s]+)/);\n return scoped?.[1] ?? withoutAlias;\n }\n const unscoped = withoutAlias.match(/^([^/@\\s]+)/);\n return unscoped?.[1] ?? withoutAlias;\n}\n\n/**\n * Implements check whether npm not found error for the public runtime surface of this module.\n */\nexport function isNpmNotFoundError(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n const normalized = message.toLowerCase();\n return (\n normalized.includes(\"npm err! code e404\") ||\n normalized.includes(\"404 not found\") ||\n normalized.includes(\"is not in this registry\")\n );\n}\n\n/**\n * Implements check whether npm pack not found error for the public runtime surface of this module.\n */\nexport function isNpmPackNotFoundError(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n const normalized = message.toLowerCase();\n return isNpmNotFoundError(error) || normalized.includes(\"not found\");\n}\n\nfunction isFirstPartyPmPackageName(packageName: string): boolean {\n const normalized = packageName.trim().toLowerCase();\n return normalized.startsWith(\"@unbrained/pm-\") || normalized.startsWith(\"pm-\");\n}\n\n/**\n * Implements build npm not found recovery for the public runtime surface of this module.\n */\nexport function buildNpmNotFoundRecovery(spec: string): {\n message: string;\n context: PmCliErrorContext;\n} {\n const packageName = npmPackageNameFromSpec(spec);\n const isFirstPartyPackage = isFirstPartyPmPackageName(packageName);\n const repoName = packageName.replace(/^.*\\//, \"\");\n const githubSource = isFirstPartyPackage ? `github.com/unbraind/${repoName}` : undefined;\n const nextBestCommand = githubSource ? `pm install --project ${githubSource}` : undefined;\n return {\n message: isFirstPartyPackage\n ? `npm package \"${spec}\" was not found in the registry. If this is an unpublished first-party pm package, install its GitHub repository instead.`\n : `npm package \"${spec}\" was not found in the registry.`,\n context: {\n code: \"npm_package_not_found\",\n required: \"Use an install source that exists, or publish the npm package before installing it with npm:<name>.\",\n why: \"Classifying npm 404s avoids repeated registry retries and gives agents a deterministic fallback path.\",\n examples: nextBestCommand ? [nextBestCommand, `pm package catalog --project --json`] : [`npm view ${packageName}`, `pm package catalog --project --json`],\n nextSteps: nextBestCommand\n ? [\n `Try ${nextBestCommand} if the repository exists.`,\n \"Use pm package catalog --project --json to inspect bundled package aliases before installing.\",\n ]\n : [\n `Verify ${packageName} exists in the npm registry and that you have access to it.`,\n \"Use pm package catalog --project --json to inspect bundled package aliases before installing.\",\n ],\n recovery: {\n attempted_command: `pm install --project npm:${spec}`,\n normalized_args: [\"install\", \"--project\", `npm:${spec}`],\n ...(githubSource && nextBestCommand\n ? {\n fallback_candidates: [\n {\n source: githubSource,\n command: nextBestCommand,\n reason: \"canonical first-party GitHub repository fallback for unpublished pm packages\",\n },\n ],\n next_best_command: nextBestCommand,\n }\n : {}),\n },\n },\n };\n}\n\n/**\n * Implements wrap npm pack resolution error for the public runtime surface of this module.\n */\nexport function wrapNpmPackResolutionError(spec: string, error: unknown): PmCliError | null {\n if (!isNpmPackNotFoundError(error)) {\n return null;\n }\n const recovery = buildNpmNotFoundRecovery(spec);\n return new PmCliError(recovery.message, EXIT_CODE.NOT_FOUND, recovery.context);\n}\n\nasync function resolveLocalNpmPackagePath(spec: string): Promise<string | null> {\n if (path.isAbsolute(spec) || spec.startsWith(\".\") || spec.startsWith(\"..\")) {\n const absolutePath = path.resolve(process.cwd(), spec);\n return (await pathExists(absolutePath)) ? absolutePath : null;\n }\n\n try {\n const parsed = new URL(spec);\n if (parsed.protocol === \"file:\") {\n const absolutePath = fileURLToPath(parsed);\n return (await pathExists(absolutePath)) ? absolutePath : null;\n }\n } catch {\n // Registry package specs are not URLs.\n }\n\n if (!/^[a-z][a-z0-9+.-]*:/i.test(spec)) {\n const absolutePath = path.resolve(process.cwd(), spec);\n if (await pathExists(absolutePath)) {\n return absolutePath;\n }\n }\n\n return null;\n}\n\nasync function resolveNpmPackSpec(spec: string): Promise<string> {\n const localPath = await resolveLocalNpmPackagePath(spec);\n if (localPath) {\n // Hand npm pack a NATIVE filesystem path, never a percent-encoded file URL:\n // npm opens the spec literally, so spaces (`%20`) or a Windows 8.3 `~` short\n // name (`%7E`) escaped by pathToFileURL make pack fail ENOENT on every\n // platform (GH-363). resolveLocalNpmPackagePath already decoded the path.\n return localPath;\n }\n\n const localFileAlias = normalizeNpmLocalFileAliasSpec(spec);\n if (localFileAlias !== spec) {\n return localFileAlias;\n }\n\n if (/^[a-z][a-z0-9+.-]*:/i.test(spec)) {\n return spec;\n }\n\n return spec;\n}\n\n/**\n * Implements normalize npm local file alias spec for the public runtime surface of this module.\n */\nexport function normalizeNpmLocalFileAliasSpec(spec: string, cwd: string = process.cwd()): string {\n const marker = \"@file:\";\n const markerIndex = spec.lastIndexOf(marker);\n if (markerIndex <= 0) {\n return spec;\n }\n const packageName = spec.slice(0, markerIndex);\n const target = spec.slice(markerIndex + marker.length);\n if (packageName.trim().length === 0 || target.trim().length === 0) {\n return spec;\n }\n // `file://host/share` (exactly two leading slashes) is a UNC / network spec,\n // not a local path — leave it for npm to resolve.\n if (target.startsWith(\"//\") && !target.startsWith(\"///\")) {\n return spec;\n }\n // A bare relative target resolves against cwd.\n if (!target.startsWith(\"/\")) {\n return `${packageName}@${path.resolve(cwd, target)}`;\n }\n // Resolve an absolute `file:` URL target to a NATIVE, percent-DECODED path\n // (never an encoded file URL): npm opens the alias target literally, so an\n // escaped path — spaces (`%20`) or a Windows 8.3 `~` short name escaped to\n // `%7E` — fails ENOENT on every platform (GH-363). Decode via URL +\n // decodeURIComponent rather than fileURLToPath, which throws\n // ERR_INVALID_FILE_URL_PATH for a driveless absolute path supplied on Windows;\n // strip the leading slash before a Windows drive letter (`/C:/x` -> `C:/x`).\n let decodedPath: string;\n try {\n decodedPath = decodeURIComponent(new URL(`file:${target}`).pathname);\n } catch {\n // Malformed percent-encoding (e.g. `%ZZ`) makes decodeURIComponent throw a\n // URIError; leave the spec untouched so npm surfaces a clear error instead\n // of crashing the CLI on an uncaught exception.\n return spec;\n }\n const nativePath = /^\\/[A-Za-z]:/.test(decodedPath) ? decodedPath.slice(1) : decodedPath;\n return `${packageName}@${nativePath}`;\n}\n\nfunction parsePackedNpmPackage(stdout: string, packDirectory: string): { tarball: string; package?: string; version?: string } {\n try {\n const parsed = JSON.parse(stdout) as Array<{ filename?: unknown; name?: unknown; version?: unknown }>;\n const first = Array.isArray(parsed) ? parsed[0] : undefined;\n if (first && typeof first.filename === \"string\" && first.filename.trim().length > 0) {\n return {\n tarball: path.resolve(packDirectory, first.filename),\n package: typeof first.name === \"string\" ? first.name : undefined,\n version: typeof first.version === \"string\" ? first.version : undefined,\n };\n }\n } catch {\n // Fall back to the last stdout line for older npm output.\n }\n const lastLine = stdout\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0)\n .at(-1);\n if (!lastLine) {\n throw new PmCliError(\"npm pack did not report a tarball filename.\", EXIT_CODE.GENERIC_FAILURE);\n }\n return {\n tarball: path.resolve(packDirectory, lastLine),\n };\n}\n\nasync function resolveNpmSourceDirectory(source: NpmInstallSource): Promise<{\n directory: string;\n package?: string;\n version?: string;\n cleanup: () => Promise<void>;\n}> {\n return resolveNpmSourceDirectoryWithRunner(source, runNpmCommand);\n}\n\nasync function resolveNpmSourceDirectoryWithRunner(\n source: NpmInstallSource,\n npmRunner: typeof runNpmCommand,\n): Promise<{\n directory: string;\n package?: string;\n version?: string;\n cleanup: () => Promise<void>;\n}> {\n const localPackageRoot = await resolveLocalNpmPackagePath(source.spec);\n if (localPackageRoot) {\n const packageJsonPath = path.join(localPackageRoot, \"package.json\");\n const packageJson = (await pathExists(packageJsonPath))\n ? JSON.parse(await fs.readFile(packageJsonPath, \"utf8\")) as { name?: unknown; version?: unknown }\n : {};\n return {\n directory: await resolvePackageExtensionDirectory(localPackageRoot, source.input),\n package: typeof packageJson.name === \"string\" ? packageJson.name : undefined,\n version: typeof packageJson.version === \"string\" ? packageJson.version : undefined,\n cleanup: async () => {},\n };\n }\n\n const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), \"pm-npm-package-source-\"));\n const packDirectory = path.join(tempRoot, \"pack\");\n const extractDirectory = path.join(tempRoot, \"extract\");\n await fs.mkdir(packDirectory, { recursive: true });\n await fs.mkdir(extractDirectory, { recursive: true });\n\n try {\n const packSpec = await resolveNpmPackSpec(source.spec);\n const packStdout = await npmRunner([\"pack\", packSpec, \"--json\", \"--pack-destination\", packDirectory]);\n const packed = parsePackedNpmPackage(packStdout, packDirectory);\n await execFileAsync(\"tar\", [\"-xzf\", packed.tarball, \"-C\", extractDirectory], { encoding: \"utf8\" });\n const packageRoot = path.join(extractDirectory, \"package\");\n await installNpmPackageRuntimeDependencies(packageRoot);\n const directory = await resolvePackageExtensionDirectory(packageRoot, source.input);\n return {\n directory,\n package: packed.package,\n version: packed.version,\n cleanup: async () => {\n await fs.rm(tempRoot, { recursive: true, force: true });\n },\n };\n } catch (error: unknown) {\n await fs.rm(tempRoot, { recursive: true, force: true });\n const wrappedError = wrapNpmPackResolutionError(source.spec, error);\n if (wrappedError) {\n throw wrappedError;\n }\n throw error;\n }\n}\n\nasync function installNpmPackageRuntimeDependencies(packageRoot: string): Promise<void> {\n const packageJsonPath = path.join(packageRoot, \"package.json\");\n if (!(await pathExists(packageJsonPath))) {\n return;\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(await fs.readFile(packageJsonPath, \"utf8\")) as unknown;\n } catch {\n return;\n }\n if (typeof parsed !== \"object\" || parsed === null) {\n return;\n }\n\n const manifest = parsed as { dependencies?: unknown; optionalDependencies?: unknown; peerDependencies?: unknown };\n const dependencySpecs = runtimeDependencyInstallSpecs(manifest);\n const shouldLinkHostedPmCli = hasHostedPmCliDependency(manifest);\n if (dependencySpecs.length === 0 && !shouldLinkHostedPmCli) {\n return;\n }\n\n const runtimeOnlyManifest = { ...(parsed as Record<string, unknown>) };\n delete runtimeOnlyManifest.devDependencies;\n const installManifest = { ...runtimeOnlyManifest };\n removeHostedPmCliDependency(installManifest);\n await fs.writeFile(packageJsonPath, `${JSON.stringify(installManifest, null, 2)}\\n`, \"utf8\");\n try {\n await Promise.all([\n fs.rm(path.join(packageRoot, \"package-lock.json\"), { force: true }),\n fs.rm(path.join(packageRoot, \"npm-shrinkwrap.json\"), { force: true }),\n ]);\n\n if (dependencySpecs.length > 0) {\n await runNpmCommand(\n [\n \"install\",\n \"--ignore-scripts\",\n \"--no-audit\",\n \"--fund=false\",\n \"--package-lock=false\",\n \"--no-save\",\n \"--omit=peer\",\n ...dependencySpecs,\n ],\n packageRoot,\n );\n }\n\n if (shouldLinkHostedPmCli) {\n await linkHostedPmCliDependency(packageRoot);\n }\n } finally {\n await fs.writeFile(packageJsonPath, `${JSON.stringify(runtimeOnlyManifest, null, 2)}\\n`, \"utf8\");\n }\n}\n\nfunction hasHostedPmCliDependency(manifest: {\n dependencies?: unknown;\n optionalDependencies?: unknown;\n peerDependencies?: unknown;\n}): boolean {\n for (const dependencyMap of [manifest.dependencies, manifest.optionalDependencies, manifest.peerDependencies]) {\n if (typeof dependencyMap === \"object\" && dependencyMap !== null && PM_CLI_PACKAGE_NAME in dependencyMap) {\n return true;\n }\n }\n return false;\n}\n\nfunction removeHostedPmCliDependency(manifest: Record<string, unknown>): void {\n for (const field of [\"dependencies\", \"optionalDependencies\", \"peerDependencies\"] as const) {\n const dependencyMap = manifest[field];\n if (typeof dependencyMap !== \"object\" || dependencyMap === null) {\n continue;\n }\n const nextMap = { ...(dependencyMap as Record<string, unknown>) };\n delete nextMap[PM_CLI_PACKAGE_NAME];\n if (Object.keys(nextMap).length === 0) {\n delete manifest[field];\n } else {\n manifest[field] = nextMap;\n }\n }\n}\n\nasync function linkHostedPmCliDependency(packageRoot: string): Promise<void> {\n const hostPackageRoot = resolvePmPackageRootFromModule(import.meta.url, [\"../../../..\"]);\n const [scope, packageName] = PM_CLI_PACKAGE_NAME.split(\"/\");\n const scopedDirectory = path.join(packageRoot, \"node_modules\", scope);\n const linkPath = path.join(scopedDirectory, packageName);\n await fs.mkdir(scopedDirectory, { recursive: true });\n await fs.rm(linkPath, { recursive: true, force: true });\n await fs.symlink(hostPackageRoot, linkPath, resolveDirectorySymlinkType(process.platform));\n}\n\nfunction resolveDirectorySymlinkType(platform: NodeJS.Platform): \"dir\" | \"junction\" {\n return platform === \"win32\" ? \"junction\" : \"dir\";\n}\n\nfunction runtimeDependencyInstallSpecs(manifest: {\n dependencies?: unknown;\n optionalDependencies?: unknown;\n peerDependencies?: unknown;\n}): string[] {\n const specs = new Map<string, string>();\n for (const dependencyMap of [manifest.dependencies, manifest.optionalDependencies, manifest.peerDependencies]) {\n if (typeof dependencyMap !== \"object\" || dependencyMap === null) {\n continue;\n }\n for (const [name, version] of Object.entries(dependencyMap)) {\n if (\n name === PM_CLI_PACKAGE_NAME ||\n typeof version !== \"string\" ||\n version.trim().length === 0 ||\n specs.has(name)\n ) {\n continue;\n }\n specs.set(name, `${name}@${version.trim()}`);\n }\n }\n return [...specs.values()];\n}\n\nasync function resolvePackageExtensionDirectory(packageRoot: string, sourceLabel: string): Promise<string> {\n const discovered = await collectPackageExtensionDirectories(packageRoot);\n if (discovered.length === 1) {\n return discovered[0];\n }\n if (discovered.length > 1) {\n const choices = discovered\n .map((entry) => path.relative(packageRoot, entry).replaceAll(path.sep, \"/\"))\n .sort((left, right) => left.localeCompare(right));\n throw new PmCliError(\n `Package source \"${sourceLabel}\" contains multiple extension manifests. Provide an explicit extension path. Candidates: ${choices.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n throw new PmCliError(\n `Unable to locate a pm extension manifest in package source \"${sourceLabel}\". Package installs currently activate only extension resources, so add package.json pm.extensions or an extensions/ directory. Metadata-only resources like pm.docs/pm.examples are catalog metadata and do not activate commands.`,\n EXIT_CODE.USAGE,\n );\n}\n\nasync function resolveGithubSourceDirectory(cloneDirectory: string, source: GithubInstallSource): Promise<{ directory: string; resolved_subpath?: string }> {\n const candidatePaths: string[] = [];\n /* c8 ignore start -- subpath candidate expansion permutations are covered by source-resolution integration suites */\n if (source.subpath) {\n candidatePaths.push(source.subpath);\n candidatePaths.push(path.posix.join(\".agents/pm/extensions\", source.subpath));\n candidatePaths.push(path.posix.join(\".custom/pm-extensions\", source.subpath));\n candidatePaths.push(path.posix.join(\".custom/pm-extension\", source.subpath));\n }\n /* c8 ignore stop */\n\n for (const candidate of candidatePaths) {\n const absolute = path.resolve(cloneDirectory, candidate);\n if (!isPathWithinDirectory(cloneDirectory, absolute)) {\n // source.subpath is user-controlled; never resolve a manifest outside the\n // cloned repository (path-traversal guard).\n continue;\n }\n if (await pathExists(path.join(absolute, \"manifest.json\"))) {\n return { directory: absolute, resolved_subpath: candidate };\n }\n }\n\n if (await pathExists(path.join(cloneDirectory, \"manifest.json\"))) {\n return { directory: cloneDirectory, resolved_subpath: \".\" };\n }\n\n const discoveredDirectory = await resolvePackageExtensionDirectory(cloneDirectory, source.input);\n return {\n directory: discoveredDirectory,\n resolved_subpath: path.relative(cloneDirectory, discoveredDirectory).replaceAll(path.sep, \"/\"),\n };\n}\n\n/**\n * Implements resolve install source for the public runtime surface of this module.\n */\nexport async function resolveInstallSource(source: InstallSource): Promise<ResolvedInstallSource> {\n if (source.kind === \"local\") {\n let localStats;\n try {\n localStats = await fs.stat(source.absolute_path);\n } catch {\n throw new PmCliError(`Local extension source does not exist: \"${source.absolute_path}\".`, EXIT_CODE.NOT_FOUND);\n }\n if (!localStats.isDirectory()) {\n throw new PmCliError(`Local extension source must be a directory: \"${source.absolute_path}\".`, EXIT_CODE.USAGE);\n }\n const directory = await resolvePackageExtensionDirectory(source.absolute_path, source.input);\n return {\n source,\n directory,\n };\n }\n\n if (source.kind === \"npm\") {\n const resolved = await resolveNpmSourceDirectory(source);\n return {\n source,\n directory: resolved.directory,\n cleanup: resolved.cleanup,\n resolved_subpath: path.relative(path.dirname(resolved.directory), resolved.directory).replaceAll(path.sep, \"/\"),\n npm_package: resolved.package,\n npm_version: resolved.version,\n };\n }\n\n const cloneDirectory = await fs.mkdtemp(path.join(os.tmpdir(), \"pm-extension-source-\"));\n const cloneArgs = [\"clone\", \"--depth\", \"1\"];\n if (source.ref) {\n cloneArgs.push(\"--branch\", source.ref);\n }\n cloneArgs.push(source.repository, cloneDirectory);\n\n try {\n await runGitCommand(cloneArgs);\n const commit = await runGitCommand([\"-C\", cloneDirectory, \"rev-parse\", \"HEAD\"]);\n const resolved = await resolveGithubSourceDirectory(cloneDirectory, source);\n return {\n source,\n directory: resolved.directory,\n resolved_subpath: resolved.resolved_subpath,\n commit,\n cleanup: async () => {\n await fs.rm(cloneDirectory, { recursive: true, force: true });\n },\n };\n } catch (error: unknown) {\n await fs.rm(cloneDirectory, { recursive: true, force: true });\n throw error;\n }\n}\n\n/**\n * Implements are directories equivalent for the public runtime surface of this module.\n */\nexport async function areDirectoriesEquivalent(left: string, right: string): Promise<boolean> {\n if (!(await pathExists(left)) || !(await pathExists(right))) {\n return false;\n }\n const [leftRealPath, rightRealPath] = await Promise.all([fs.realpath(left), fs.realpath(right)]);\n return leftRealPath === rightRealPath;\n}\n\nexport const _testOnlyInstallSources = {\n installNpmPackageRuntimeDependencies,\n npmPackageNameFromSpec,\n parsePackedNpmPackage,\n resolveNpmSourceDirectoryWithRunner,\n resolveNpmSourceDirectory,\n resolveNpmPackSpec,\n resolvePackageExtensionDirectory,\n runtimeDependencyInstallSpecs,\n hasHostedPmCliDependency,\n removeHostedPmCliDependency,\n linkHostedPmCliDependency,\n resolveDirectorySymlinkType,\n runNpmCommand,\n};\n"],"names":[],"mappings":"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","debugId":"eab3d475-6769-535e-96a9-6bc5153c9627"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
export declare const SCAFFOLD_PM_MIN_VERSION = "2026.6.24";
|
|
1
2
|
/**
|
|
2
3
|
* Capability shapes the package/extension scaffolder can target via the
|
|
3
|
-
* `--capability` selector
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `--capability` selector — one per SDK extension capability, so every
|
|
5
|
+
* registration surface has a runnable starter. `commands` emits the default
|
|
6
|
+
* command-only starter; `hooks` additionally wires an `after_command` lifecycle
|
|
7
|
+
* reactor; `search` wires an in-memory provider/adapter pair; `importers` wires
|
|
8
|
+
* importer and exporter command primitives so authors can customize project
|
|
9
|
+
* context movement; `schema` registers a custom item type, item field, and
|
|
10
|
+
* migration so authors can model their own project domain; `profile` registers a
|
|
11
|
+
* complete project-profile archetype (item types, statuses, fields, a workflow,
|
|
12
|
+
* config, a template, and package recommendations) via `api.registerProfile` so
|
|
13
|
+
* `pm profile apply` can tailor a tracker in one shot; `renderers` overrides how
|
|
14
|
+
* a command's output is serialized for a format; `parser` rewrites a command's
|
|
15
|
+
* parsed options before its handler runs; `preflight` adjusts pm's pre-run
|
|
16
|
+
* migration/format gate decision; and `services` overrides a built-in pm service
|
|
17
|
+
* (e.g. output formatting) — without starting from a blank extension.
|
|
8
18
|
*/
|
|
9
|
-
export declare const SCAFFOLD_CAPABILITIES: readonly ["commands", "hooks", "search", "importers"];
|
|
19
|
+
export declare const SCAFFOLD_CAPABILITIES: readonly ["commands", "hooks", "search", "importers", "schema", "profile", "renderers", "parser", "preflight", "services"];
|
|
10
20
|
/**
|
|
11
21
|
* Restricts the `--capability` selector to a {@link SCAFFOLD_CAPABILITIES} value.
|
|
12
22
|
*/
|
|
@@ -19,16 +29,29 @@ interface ExtensionScaffoldResult {
|
|
|
19
29
|
extension_name: string;
|
|
20
30
|
command_name: string;
|
|
21
31
|
capability: ExtensionScaffoldCapability;
|
|
32
|
+
/**
|
|
33
|
+
* Authoring style of the generated entrypoint: `"imperative"` (a hand-written
|
|
34
|
+
* `activate` body, the default) or `"declarative"` (a `composeExtension`
|
|
35
|
+
* blueprint). The declarative style is package-mode only (any capability).
|
|
36
|
+
*/
|
|
37
|
+
style: ExtensionScaffoldStyle;
|
|
22
38
|
target_path: string;
|
|
23
39
|
created_directory: boolean;
|
|
24
40
|
files: ExtensionScaffoldFileResult[];
|
|
25
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Authoring style the scaffolder targets for the generated entrypoint. The
|
|
44
|
+
* default `"imperative"` emits a hand-written `activate` body; `"declarative"`
|
|
45
|
+
* emits the SDK's `composeExtension` blueprint loop (package-mode only, for any
|
|
46
|
+
* capability — see {@link buildDeclarativeEntrypoint}).
|
|
47
|
+
*/
|
|
48
|
+
export type ExtensionScaffoldStyle = "imperative" | "declarative";
|
|
26
49
|
/**
|
|
27
50
|
* Implements build starter extension scaffold files for the public runtime surface of this module.
|
|
28
51
|
*/
|
|
29
|
-
export declare function buildStarterExtensionScaffoldFiles(extensionName: string, commandName: string, vocabulary: "extension" | "package", capability?: ExtensionScaffoldCapability): Record<string, string>;
|
|
52
|
+
export declare function buildStarterExtensionScaffoldFiles(extensionName: string, commandName: string, vocabulary: "extension" | "package", capability?: ExtensionScaffoldCapability, declarative?: boolean): Record<string, string>;
|
|
30
53
|
/**
|
|
31
54
|
* Implements scaffold extension project for the public runtime surface of this module.
|
|
32
55
|
*/
|
|
33
|
-
export declare function scaffoldExtensionProject(target: string, vocabulary?: "extension" | "package", capability?: string): Promise<ExtensionScaffoldResult>;
|
|
56
|
+
export declare function scaffoldExtensionProject(target: string, vocabulary?: "extension" | "package", capability?: string, declarative?: boolean): Promise<ExtensionScaffoldResult>;
|
|
34
57
|
export {};
|