@unbrained/pm-cli 2026.6.21 → 2026.6.23
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 +44 -0
- package/dist/cli/commands/completion.js +7 -4
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +70 -0
- package/dist/cli/commands/extension/describe.js +76 -0
- package/dist/cli/commands/extension/describe.js.map +1 -0
- package/dist/cli/commands/extension/doctor.d.ts +11 -0
- package/dist/cli/commands/extension/doctor.js +31 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +16 -2
- package/dist/cli/commands/extension/scaffold.js +529 -48
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +3 -1
- package/dist/cli/commands/extension.js +35 -5
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/help-content.js +20 -4
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/register-setup.js +14 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/{activity-KW3IRP44.js → activity-H2LMOSSW.js} +11 -11
- package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +18 -0
- package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js → aggregate-EGJLZQBI.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js → aggregate-R725FC3S.js} +10 -10
- package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js → append-5J345QGU.js} +8 -8
- package/dist/cli-bundle/chunks/{append-QEOLX3XB.js → append-O5HPBMRN.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js → chunk-2A34E3BA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A4Z7ZOL5.js → chunk-2BFPAUAF.js} +31 -15
- package/dist/cli-bundle/chunks/chunk-2BFPAUAF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js → chunk-2CKH2LMV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js → chunk-2RDVQEWV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js → chunk-2T3JG6V4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js → chunk-34EONI5F.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js → chunk-3VY3YQO6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js → chunk-46G6RSB6.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js → chunk-4BHT5VDC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js → chunk-4KD54S3Z.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js → chunk-55ISXAQH.js} +7 -4
- package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js.map → chunk-55ISXAQH.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js → chunk-5UVVASSA.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js → chunk-5VOINNKT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js → chunk-66MEDTUD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js → chunk-7AUB5HNA.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js → chunk-7K2XXO4I.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js → chunk-7MRQ4HMK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js → chunk-7SV63ZHD.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js → chunk-7UGEAPRY.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js → chunk-7XGQXHFB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js → chunk-AD3A7ZD6.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js → chunk-AONIHR2C.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js → chunk-BB6MDVNQ.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js +691 -0
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js → chunk-CE5P2NQR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js → chunk-CIIK67GW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js → chunk-CKGNPJAG.js} +31 -15
- package/dist/cli-bundle/chunks/chunk-CKGNPJAG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js → chunk-DT5LPYOD.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js → chunk-FIGAZ4Y7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js → chunk-FXR67XVQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js → chunk-G6N5VEOK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5PCI3UBT.js → chunk-G6PYHBBR.js} +152 -253
- package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js → chunk-GAJVRGGA.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js → chunk-H2IP4QLJ.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js → chunk-H4IIJDE4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js → chunk-HFFUQR73.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js → chunk-IB3GYLQE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js → chunk-IPKJ6B36.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js → chunk-JR2LV3M4.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js → chunk-KFWBJPSG.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-32R4PIC6.js → chunk-KQMUV6LX.js} +145 -253
- package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js → chunk-LRKKONT2.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js → chunk-M4T5DXD5.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js → chunk-MJTINN54.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-HMOADQVT.js → chunk-MJTSZKK5.js} +107 -3
- package/dist/cli-bundle/chunks/chunk-MJTSZKK5.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js +694 -0
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js → chunk-NCVCO3NZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js → chunk-NK3UPBVG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js → chunk-O6LLO73I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js → chunk-P77P2ILI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js → chunk-Q2KNGP7C.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js → chunk-QH3PJYON.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js → chunk-QL5RVYOA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js → chunk-S26C36QC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js → chunk-S2RUQSX2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js → chunk-SBQTAVJZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js → chunk-SKH7OGE5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js → chunk-SKN7LC5W.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js → chunk-SR3EKWZG.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-B473GZWW.js → chunk-T5472OMV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js → chunk-T72AZDBA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js → chunk-TQZH6OD6.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js → chunk-U2Z5YUSO.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-434HM6Z5.js → chunk-UELRKQQU.js} +100 -3
- package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js → chunk-UVC5LOR7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js → chunk-VAYA4XFX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js → chunk-VFAQ4LMN.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js → chunk-W72GHSJE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js → chunk-WBRKK5QR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js → chunk-WM5ZVBPE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js → chunk-WZQWHN4R.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js → chunk-XVF4YARA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js → chunk-Y4SUQQYH.js} +8 -5
- package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js.map → chunk-Y4SUQQYH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js → chunk-YDEXO24S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js → chunk-YJ3SUEPD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js → chunk-YUDJD3XO.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js → chunk-ZQ3ZVXX2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js → chunk-ZRK4O56R.js} +13 -13
- package/dist/cli-bundle/chunks/{claim-RC56YUWG.js → claim-4KHAA2RN.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js → claim-CSPJFLNH.js} +10 -10
- package/dist/cli-bundle/chunks/close-A3EMKBBY.js +15 -0
- package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js → close-W56IOGYG.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js → close-many-BX5DCSVV.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js → close-many-TQU5F4E4.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js → comments-U5KUC4EU.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js → comments-VRECH75R.js} +10 -10
- package/dist/cli-bundle/chunks/{config-OZCUABPB.js → config-D3OKQO52.js} +8 -8
- package/dist/cli-bundle/chunks/{config-7CK62S7T.js → config-MMJA4LLK.js} +8 -8
- package/dist/cli-bundle/chunks/{context-PUG2A7RC.js → context-BLBD3PUB.js} +13 -13
- package/dist/cli-bundle/chunks/{context-OEC366TO.js → context-DHLVPXN3.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js → contracts-C3SZCXXG.js} +7 -5
- package/dist/cli-bundle/chunks/contracts-C3SZCXXG.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js → contracts-XGVMMPC5.js} +8 -6
- package/dist/cli-bundle/chunks/contracts-XGVMMPC5.js.map +1 -0
- package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js → copy-5D5DX3VK.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-6QLHILAC.js → copy-HHL3K4QP.js} +7 -7
- package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js → create-IXY43O4H.js} +14 -14
- package/dist/cli-bundle/chunks/create-QVGFYA2X.js +30 -0
- package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js → delete-IBUR3M42.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js → delete-QQC2FGUH.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js → deps-KWKRHXIN.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js → deps-VTPO4BSE.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js → docs-7CHFHXLN.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-C75YIXHC.js → docs-IIO3FEUO.js} +9 -9
- package/dist/cli-bundle/chunks/{eval-GTENKE24.js → eval-CEYYEPSX.js} +12 -12
- package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js → eval-IO7LREOL.js} +12 -12
- package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js → extension-KCPUWSY2.js} +6 -5
- package/dist/cli-bundle/chunks/{extension-46NWACO3.js → extension-UTTQDUYI.js} +6 -5
- package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js → files-TPUL6KWB.js} +9 -9
- package/dist/cli-bundle/chunks/{files-DSZBOSSN.js → files-Z2HHEFGP.js} +9 -9
- package/dist/cli-bundle/chunks/{focus-5STQXDPU.js → focus-JVJCGC2D.js} +8 -8
- package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js → focus-YRNNH7IP.js} +8 -8
- package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js → gc-O5GUO3SU.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js → gc-PYVVEELM.js} +3 -3
- package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js → get-ENLTEGTX.js} +11 -11
- package/dist/cli-bundle/chunks/{get-J2IPJRZW.js → get-X4O3HBEY.js} +11 -11
- package/dist/cli-bundle/chunks/{health-WOYBR3KU.js → health-5EXTY44Q.js} +14 -13
- package/dist/cli-bundle/chunks/{health-WOYBR3KU.js.map → health-5EXTY44Q.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-IVMA3XQC.js → health-BOTB7YSU.js} +16 -15
- package/dist/cli-bundle/chunks/{health-IVMA3XQC.js.map → health-BOTB7YSU.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-RLH2QCRO.js → history-AJTXLT6S.js} +10 -10
- package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js → history-compact-43OOUAWD.js} +12 -12
- package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js → history-compact-46MRHW3I.js} +12 -12
- package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js → history-redact-KUUUVUFM.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +21 -0
- package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js → history-repair-B5PZBOPU.js} +12 -12
- package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js → history-repair-VQTYOSRS.js} +12 -12
- package/dist/cli-bundle/chunks/{init-2BNZOO6F.js → init-BNLVFPRG.js} +11 -10
- package/dist/cli-bundle/chunks/init-RCRKW5PL.js +21 -0
- package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js → learnings-MUUU5KMC.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js → learnings-XSGX52S7.js} +10 -10
- package/dist/cli-bundle/chunks/{list-K6FPV4J4.js → list-32U7BSKE.js} +10 -10
- package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js → list-ZEEOHLTQ.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-PU74EPKV.js → notes-NJ45OZGF.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js → notes-OHU25L3M.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js → plan-KQA7CAKI.js} +14 -14
- package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js → plan-LWWAEV5Y.js} +14 -14
- package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js → register-list-query-DDCHPONM.js} +19 -19
- package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js → register-list-query-YNPBVIKM.js} +19 -19
- package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js → register-mutation-7ALWDDAX.js} +33 -33
- package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js → register-mutation-LAVKYY63.js} +33 -33
- package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js → register-operations-R4VOQ6EF.js} +32 -32
- package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js → register-operations-U5JAW3WE.js} +32 -32
- package/dist/cli-bundle/chunks/{register-setup-EG2U6CEU.js → register-setup-KBXQDCXE.js} +27 -18
- package/dist/cli-bundle/chunks/register-setup-KBXQDCXE.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-DYBFLEZX.js → register-setup-RCRUHMSZ.js} +28 -19
- package/dist/cli-bundle/chunks/register-setup-RCRUHMSZ.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +19 -0
- package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js → restore-6K53WOWO.js} +11 -11
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js → scheduling-shortcuts-NJ5UVJFB.js} +14 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js → scheduling-shortcuts-OQVJXG3M.js} +14 -14
- package/dist/cli-bundle/chunks/{schema-263RI4WW.js → schema-MNTAVQCY.js} +9 -9
- package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js → schema-RBTJ2YXW.js} +9 -9
- package/dist/cli-bundle/chunks/{search-SFRJOVDG.js → search-6HOIVZDU.js} +12 -12
- package/dist/cli-bundle/chunks/{search-LECJYSXE.js → search-ZWYEMASC.js} +12 -12
- package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js → stats-FS742AMA.js} +8 -8
- package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js → stats-R5OAJVZK.js} +8 -8
- package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js → telemetry-7DIGDQUO.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js → telemetry-FWEXSJLQ.js} +4 -4
- package/dist/cli-bundle/chunks/{test-3EGNS3T5.js → test-NZF7OT2F.js} +16 -15
- package/dist/cli-bundle/chunks/test-QJXLKV26.js +36 -0
- package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js → test-all-DPN62TX7.js} +16 -15
- package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js.map → test-all-DPN62TX7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js → test-all-KL7TLMJF.js} +18 -17
- package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js.map → test-all-KL7TLMJF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js → test-runs-C6CFIVOS.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js → test-runs-IAJDL6CA.js} +5 -5
- package/dist/cli-bundle/chunks/update-2XCQNOD6.js +28 -0
- package/dist/cli-bundle/chunks/update-IWUCXVH2.js +24 -0
- package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js → update-many-MUTIOAP3.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js → update-many-YEH2DQL6.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js → upgrade-HYJ3SWWU.js} +8 -7
- package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js.map → upgrade-HYJ3SWWU.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js → upgrade-UBNLBZNR.js} +6 -5
- package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js.map → upgrade-UBNLBZNR.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js → validate-6QWQVCX2.js} +21 -20
- package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js.map → validate-6QWQVCX2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js → validate-W5V5ZGQX.js} +23 -22
- package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js.map → validate-W5V5ZGQX.js.map} +1 -1
- package/dist/cli-bundle/main.js +38 -22
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/activation-summary.d.ts +109 -0
- package/dist/core/extensions/activation-summary.js +60 -0
- package/dist/core/extensions/activation-summary.js.map +1 -0
- package/dist/core/extensions/capability-usage.d.ts +92 -0
- package/dist/core/extensions/capability-usage.js +142 -0
- package/dist/core/extensions/capability-usage.js.map +1 -0
- package/dist/core/extensions/extension-capability-aliases.d.ts +7 -0
- package/dist/core/extensions/extension-capability-aliases.js +12 -2
- package/dist/core/extensions/extension-capability-aliases.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.js +3 -2
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/telemetry/runtime.js +5 -2
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +4 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts.js +26 -13
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/compose.d.ts +297 -0
- package/dist/sdk/compose.js +420 -0
- package/dist/sdk/compose.js.map +1 -0
- package/dist/sdk/define.d.ts +194 -0
- package/dist/sdk/define.js +205 -0
- package/dist/sdk/define.js.map +1 -0
- package/dist/sdk/index.d.ts +8 -26
- package/dist/sdk/index.js +8 -10
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +667 -2
- package/dist/sdk/testing.js +654 -18
- package/dist/sdk/testing.js.map +1 -1
- package/docs/COMMANDS.md +1 -0
- package/docs/EXTENSIONS.md +10 -11
- package/docs/SDK.md +502 -16
- package/package.json +2 -2
- package/dist/cli-bundle/chunks/activity-CIHV64UC.js +0 -18
- package/dist/cli-bundle/chunks/chunk-32R4PIC6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-434HM6Z5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5PCI3UBT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A4Z7ZOL5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HC4AWIKT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HMOADQVT.js.map +0 -7
- package/dist/cli-bundle/chunks/close-DNMHGOCX.js +0 -15
- package/dist/cli-bundle/chunks/contracts-3THOLA7L.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-N65FXEOL.js.map +0 -1
- package/dist/cli-bundle/chunks/create-NNP6TSFO.js +0 -30
- package/dist/cli-bundle/chunks/history-WX3MGFS2.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-YQGU3XRA.js +0 -21
- package/dist/cli-bundle/chunks/init-SC2P6CHP.js +0 -20
- package/dist/cli-bundle/chunks/register-setup-DYBFLEZX.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-EG2U6CEU.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-5KHR2YYQ.js +0 -19
- package/dist/cli-bundle/chunks/test-RQCTSWUK.js +0 -35
- package/dist/cli-bundle/chunks/update-6YXOGHRT.js +0 -24
- package/dist/cli-bundle/chunks/update-V33YUBRP.js +0 -28
- /package/dist/cli-bundle/chunks/{activity-KW3IRP44.js.map → activity-H2LMOSSW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-CIHV64UC.js.map → activity-XUZ2AHCW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js.map → aggregate-EGJLZQBI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js.map → aggregate-R725FC3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js.map → append-5J345QGU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-QEOLX3XB.js.map → append-O5HPBMRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js.map → chunk-2A34E3BA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js.map → chunk-2CKH2LMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js.map → chunk-2RDVQEWV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js.map → chunk-2T3JG6V4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js.map → chunk-34EONI5F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js.map → chunk-3VY3YQO6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js.map → chunk-46G6RSB6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js.map → chunk-4BHT5VDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js.map → chunk-4KD54S3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js.map → chunk-5UVVASSA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js.map → chunk-5VOINNKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js.map → chunk-66MEDTUD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js.map → chunk-7AUB5HNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js.map → chunk-7K2XXO4I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js.map → chunk-7MRQ4HMK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js.map → chunk-7SV63ZHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js.map → chunk-7UGEAPRY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js.map → chunk-7XGQXHFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js.map → chunk-AD3A7ZD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js.map → chunk-AONIHR2C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js.map → chunk-BB6MDVNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js.map → chunk-CE5P2NQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js.map → chunk-CIIK67GW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js.map → chunk-DT5LPYOD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js.map → chunk-FIGAZ4Y7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js.map → chunk-FXR67XVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js.map → chunk-G6N5VEOK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js.map → chunk-GAJVRGGA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js.map → chunk-H2IP4QLJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js.map → chunk-H4IIJDE4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js.map → chunk-HFFUQR73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js.map → chunk-IB3GYLQE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js.map → chunk-IPKJ6B36.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js.map → chunk-JR2LV3M4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js.map → chunk-KFWBJPSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js.map → chunk-LRKKONT2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js.map → chunk-M4T5DXD5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js.map → chunk-MJTINN54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js.map → chunk-NCVCO3NZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js.map → chunk-NK3UPBVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js.map → chunk-O6LLO73I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js.map → chunk-P77P2ILI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js.map → chunk-Q2KNGP7C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js.map → chunk-QH3PJYON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js.map → chunk-QL5RVYOA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js.map → chunk-S26C36QC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js.map → chunk-S2RUQSX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js.map → chunk-SBQTAVJZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js.map → chunk-SKH7OGE5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js.map → chunk-SKN7LC5W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js.map → chunk-SR3EKWZG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B473GZWW.js.map → chunk-T5472OMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js.map → chunk-T72AZDBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js.map → chunk-TQZH6OD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js.map → chunk-U2Z5YUSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js.map → chunk-UVC5LOR7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js.map → chunk-VAYA4XFX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js.map → chunk-VFAQ4LMN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js.map → chunk-W72GHSJE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js.map → chunk-WBRKK5QR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js.map → chunk-WM5ZVBPE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js.map → chunk-WZQWHN4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js.map → chunk-XVF4YARA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js.map → chunk-YDEXO24S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js.map → chunk-YJ3SUEPD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js.map → chunk-YUDJD3XO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js.map → chunk-ZQ3ZVXX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js.map → chunk-ZRK4O56R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-RC56YUWG.js.map → claim-4KHAA2RN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js.map → claim-CSPJFLNH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-DNMHGOCX.js.map → close-A3EMKBBY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js.map → close-W56IOGYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js.map → close-many-BX5DCSVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js.map → close-many-TQU5F4E4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js.map → comments-U5KUC4EU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js.map → comments-VRECH75R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-OZCUABPB.js.map → config-D3OKQO52.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-7CK62S7T.js.map → config-MMJA4LLK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-PUG2A7RC.js.map → context-BLBD3PUB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-OEC366TO.js.map → context-DHLVPXN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js.map → copy-5D5DX3VK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-6QLHILAC.js.map → copy-HHL3K4QP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js.map → create-IXY43O4H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-NNP6TSFO.js.map → create-QVGFYA2X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js.map → delete-IBUR3M42.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js.map → delete-QQC2FGUH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js.map → deps-KWKRHXIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js.map → deps-VTPO4BSE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js.map → docs-7CHFHXLN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-C75YIXHC.js.map → docs-IIO3FEUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-GTENKE24.js.map → eval-CEYYEPSX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js.map → eval-IO7LREOL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js.map → extension-KCPUWSY2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-46NWACO3.js.map → extension-UTTQDUYI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js.map → files-TPUL6KWB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-DSZBOSSN.js.map → files-Z2HHEFGP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-5STQXDPU.js.map → focus-JVJCGC2D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js.map → focus-YRNNH7IP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js.map → gc-O5GUO3SU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js.map → gc-PYVVEELM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js.map → get-ENLTEGTX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-J2IPJRZW.js.map → get-X4O3HBEY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-RLH2QCRO.js.map → history-AJTXLT6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-WX3MGFS2.js.map → history-AK3E5Z3C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js.map → history-compact-43OOUAWD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js.map → history-compact-46MRHW3I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js.map → history-redact-KUUUVUFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-YQGU3XRA.js.map → history-redact-TWIYQV5J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js.map → history-repair-B5PZBOPU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js.map → history-repair-VQTYOSRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-2BNZOO6F.js.map → init-BNLVFPRG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-SC2P6CHP.js.map → init-RCRKW5PL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js.map → learnings-MUUU5KMC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js.map → learnings-XSGX52S7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-K6FPV4J4.js.map → list-32U7BSKE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js.map → list-ZEEOHLTQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-PU74EPKV.js.map → notes-NJ45OZGF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js.map → notes-OHU25L3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js.map → plan-KQA7CAKI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js.map → plan-LWWAEV5Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js.map → register-list-query-DDCHPONM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js.map → register-list-query-YNPBVIKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js.map → register-mutation-7ALWDDAX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js.map → register-mutation-LAVKYY63.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js.map → register-operations-R4VOQ6EF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js.map → register-operations-U5JAW3WE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-5KHR2YYQ.js.map → restore-2ZKT6UDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js.map → restore-6K53WOWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js.map → scheduling-shortcuts-NJ5UVJFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js.map → scheduling-shortcuts-OQVJXG3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-263RI4WW.js.map → schema-MNTAVQCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js.map → schema-RBTJ2YXW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-SFRJOVDG.js.map → search-6HOIVZDU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-LECJYSXE.js.map → search-ZWYEMASC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js.map → stats-FS742AMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js.map → stats-R5OAJVZK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js.map → telemetry-7DIGDQUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js.map → telemetry-FWEXSJLQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-3EGNS3T5.js.map → test-NZF7OT2F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-RQCTSWUK.js.map → test-QJXLKV26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js.map → test-runs-C6CFIVOS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js.map → test-runs-IAJDL6CA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-V33YUBRP.js.map → update-2XCQNOD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-6YXOGHRT.js.map → update-IWUCXVH2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js.map → update-many-MUTIOAP3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js.map → update-many-YEH2DQL6.js.map} +0 -0
|
@@ -1,41 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
scaffoldExtensionProject
|
|
3
|
+
} from "./chunk-MVKFOLLM.js";
|
|
1
4
|
import {
|
|
2
5
|
normalizeExtensionNameForMatch,
|
|
3
6
|
normalizeManagedDirectoryName,
|
|
4
7
|
normalizeStringList,
|
|
5
8
|
parseExtensionManifest,
|
|
6
9
|
validateExtensionDirectory
|
|
7
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-5VOINNKT.js";
|
|
8
11
|
import {
|
|
9
12
|
splitCommaList
|
|
10
13
|
} from "./chunk-5HIZDR5A.js";
|
|
11
14
|
import {
|
|
12
15
|
nowIso
|
|
13
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-P77P2ILI.js";
|
|
14
17
|
import {
|
|
15
18
|
EXIT_CODE,
|
|
16
19
|
EXTENSION_CAPABILITY_CONTRACT,
|
|
17
20
|
KNOWN_EXTENSION_CAPABILITIES,
|
|
18
21
|
PmCliError,
|
|
19
22
|
activateExtensions,
|
|
23
|
+
collectUsedExtensionCapabilities,
|
|
20
24
|
isPathWithinDirectory,
|
|
21
25
|
loadExtensions,
|
|
22
26
|
nextExtensionReloadToken,
|
|
27
|
+
normalizeExtensionName,
|
|
23
28
|
parseLegacyExtensionCapabilityAliasWarning,
|
|
24
29
|
parseUnknownExtensionCapabilityWarning,
|
|
25
30
|
pathExists,
|
|
26
31
|
readSettings,
|
|
32
|
+
reconcileExtensionCapabilityUsage,
|
|
27
33
|
resolveExtensionRoots,
|
|
28
34
|
resolveGlobalPmRoot,
|
|
29
35
|
resolvePmPackageRootFromModule,
|
|
30
36
|
resolvePmRoot,
|
|
31
37
|
writeSettings
|
|
32
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-MJTSZKK5.js";
|
|
33
39
|
|
|
34
40
|
// dist/cli/commands/extension.js
|
|
35
41
|
import { execFile as execFile2 } from "node:child_process";
|
|
36
|
-
import
|
|
42
|
+
import fs5 from "node:fs/promises";
|
|
37
43
|
import os2 from "node:os";
|
|
38
|
-
import
|
|
44
|
+
import path5 from "node:path";
|
|
39
45
|
import { promisify as promisify2 } from "node:util";
|
|
40
46
|
|
|
41
47
|
// dist/cli/commands/extension/managed-state.js
|
|
@@ -1178,235 +1184,87 @@ function projectPackageCatalogEntry(entry, fields) {
|
|
|
1178
1184
|
return projected;
|
|
1179
1185
|
}
|
|
1180
1186
|
|
|
1181
|
-
// dist/
|
|
1182
|
-
import fs5 from "node:fs/promises";
|
|
1183
|
-
import path5 from "node:path";
|
|
1187
|
+
// dist/core/extensions/activation-summary.js
|
|
1184
1188
|
!(function() {
|
|
1185
1189
|
try {
|
|
1186
1190
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1187
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
1191
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "13c88992-4da1-549d-8644-3ac448f6960e");
|
|
1188
1192
|
} catch (e2) {
|
|
1189
1193
|
}
|
|
1190
1194
|
})();
|
|
1191
|
-
var
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
const entrypoint = [
|
|
1205
|
-
'/** @param {import("@unbrained/pm-cli/sdk").ExtensionApi} api */',
|
|
1206
|
-
"export function activate(api) {",
|
|
1207
|
-
" api.registerCommand({",
|
|
1208
|
-
` name: ${JSON.stringify(commandName)},`,
|
|
1209
|
-
' description: "Starter scaffold command. Replace with your own behavior.",',
|
|
1210
|
-
" run: async (context) => ({",
|
|
1211
|
-
" ok: true,",
|
|
1212
|
-
` source: ${JSON.stringify(extensionName)},`,
|
|
1213
|
-
" command: context.command,",
|
|
1214
|
-
' message: "Starter extension scaffold is active.",',
|
|
1215
|
-
" }),",
|
|
1216
|
-
" });",
|
|
1217
|
-
"}",
|
|
1218
|
-
"",
|
|
1219
|
-
"export default {",
|
|
1220
|
-
" activate,",
|
|
1221
|
-
"};",
|
|
1222
|
-
""
|
|
1223
|
-
].join("\n");
|
|
1224
|
-
if (vocabulary === "package") {
|
|
1225
|
-
const packageJson = `${JSON.stringify({
|
|
1226
|
-
name: packageName,
|
|
1227
|
-
version: "0.1.0",
|
|
1228
|
-
private: true,
|
|
1229
|
-
type: "module",
|
|
1230
|
-
keywords: ["pm-package"],
|
|
1231
|
-
// `node --test` runs the colocated *.test.js sample against the peer SDK
|
|
1232
|
-
// testing helpers; no extra dev-dependency or test runner is required.
|
|
1233
|
-
scripts: {
|
|
1234
|
-
test: "node --test"
|
|
1235
|
-
},
|
|
1236
|
-
peerDependencies: {
|
|
1237
|
-
"@unbrained/pm-cli": "*"
|
|
1238
|
-
},
|
|
1239
|
-
pm: {
|
|
1240
|
-
aliases: [extensionName],
|
|
1241
|
-
extensions: ["."],
|
|
1242
|
-
docs: ["README.md"],
|
|
1243
|
-
examples: ["README.md"],
|
|
1244
|
-
catalog: {
|
|
1245
|
-
display_name: extensionName,
|
|
1246
|
-
category: "workflow",
|
|
1247
|
-
summary: "Starter pm package scaffold.",
|
|
1248
|
-
tags: ["starter"]
|
|
1249
|
-
}
|
|
1250
|
-
}
|
|
1251
|
-
}, null, 2)}
|
|
1252
|
-
`;
|
|
1253
|
-
const sampleTest = [
|
|
1254
|
-
'import assert from "node:assert/strict";',
|
|
1255
|
-
'import { test } from "node:test";',
|
|
1256
|
-
'import { activateExtensionForTest, assertRegisteredCommandContract } from "@unbrained/pm-cli/sdk/testing";',
|
|
1257
|
-
'import extension from "./index.js";',
|
|
1258
|
-
"",
|
|
1259
|
-
`test(${JSON.stringify(`${extensionName} registers its starter command`)}, async () => {`,
|
|
1260
|
-
" // `capabilities` mirrors manifest.json so the in-memory activation grants",
|
|
1261
|
-
" // the `commands` capability the entrypoint relies on.",
|
|
1262
|
-
" const activation = await activateExtensionForTest(extension, {",
|
|
1263
|
-
` name: ${JSON.stringify(extensionName)},`,
|
|
1264
|
-
' capabilities: ["commands"],',
|
|
1265
|
-
" });",
|
|
1266
|
-
" // assertRegisteredCommandContract throws if the command is not",
|
|
1267
|
-
" // registered, so reaching here already proves the wiring; assert on the",
|
|
1268
|
-
" // returned definition to demonstrate inspecting registered metadata.",
|
|
1269
|
-
" const registered = assertRegisteredCommandContract(activation.registrations, {",
|
|
1270
|
-
` command: ${JSON.stringify(commandName)},`,
|
|
1271
|
-
` extensionName: ${JSON.stringify(extensionName)},`,
|
|
1272
|
-
" });",
|
|
1273
|
-
' assert.equal(typeof registered.command.description, "string");',
|
|
1274
|
-
"});",
|
|
1275
|
-
""
|
|
1276
|
-
].join("\n");
|
|
1277
|
-
const gitignore = ["node_modules/", "*.log", ""].join("\n");
|
|
1278
|
-
const packageReadme = [
|
|
1279
|
-
`# ${packageName}`,
|
|
1280
|
-
"",
|
|
1281
|
-
"Generated by `pm package init`.",
|
|
1282
|
-
"",
|
|
1283
|
-
"## Included Files",
|
|
1284
|
-
"- `package.json`: package metadata, `test` script, and `pm` resource manifest.",
|
|
1285
|
-
"- `manifest.json`: extension metadata and capabilities.",
|
|
1286
|
-
"- `index.js`: starter command registration using the `commands` capability.",
|
|
1287
|
-
"- `index.test.js`: sample `node:test` suite using the SDK testing helpers.",
|
|
1288
|
-
"- `.gitignore`: ignores `node_modules/` and log files.",
|
|
1289
|
-
"",
|
|
1290
|
-
"## Quick Start",
|
|
1291
|
-
"```bash",
|
|
1292
|
-
"pm install --project <package-path>",
|
|
1293
|
-
`pm ${commandName}`,
|
|
1294
|
-
"pm package doctor --project --detail summary",
|
|
1295
|
-
"```",
|
|
1296
|
-
"",
|
|
1297
|
-
"## Validate the Package",
|
|
1298
|
-
"Install the peer SDK once, then run the colocated sample test:",
|
|
1299
|
-
"```bash",
|
|
1300
|
-
"npm install",
|
|
1301
|
-
"npm test",
|
|
1302
|
-
"```",
|
|
1303
|
-
"`npm test` runs `node --test`, which executes `index.test.js` against the",
|
|
1304
|
-
"`@unbrained/pm-cli/sdk/testing` helpers \u2014 no extra test runner required.",
|
|
1305
|
-
"",
|
|
1306
|
-
"## Compatibility Bounds",
|
|
1307
|
-
"`manifest.json` cannot hold comments, so the version-compatibility fields are documented here:",
|
|
1308
|
-
`- \`manifest_version\` (integer): manifest schema generation. Leave at \`${SCAFFOLD_MANIFEST_VERSION}\` unless you adopt a newer manifest schema.`,
|
|
1309
|
-
`- \`pm_min_version\` (string): lowest pm CLI version that may load this package. Scaffolded as \`${SCAFFOLD_PM_MIN_VERSION}\`. The loader blocks the package on older CLIs.`,
|
|
1310
|
-
"- `pm_max_version` (string, optional): highest pm CLI version that may load this package. Add it to block CLIs that are newer than the version you have validated against. The loader blocks the package when the CLI exceeds this bound.",
|
|
1311
|
-
"",
|
|
1312
|
-
"## Notes",
|
|
1313
|
-
"- Keep simple starter runtime behavior at the package root so local installs work without dependency bootstrapping.",
|
|
1314
|
-
"- Move larger runtimes into subdirectories only after adding package dependencies and validating `pm package doctor`.",
|
|
1315
|
-
"- Add capabilities to the extension manifest only when the entrypoint uses the matching SDK API.",
|
|
1316
|
-
"- Use `@unbrained/pm-cli/sdk` as the public SDK import for richer package runtimes.",
|
|
1317
|
-
""
|
|
1318
|
-
].join("\n");
|
|
1319
|
-
return {
|
|
1320
|
-
"package.json": packageJson,
|
|
1321
|
-
"manifest.json": manifest,
|
|
1322
|
-
"index.js": entrypoint,
|
|
1323
|
-
"index.test.js": sampleTest,
|
|
1324
|
-
".gitignore": gitignore,
|
|
1325
|
-
"README.md": packageReadme
|
|
1326
|
-
};
|
|
1327
|
-
}
|
|
1328
|
-
const readme = [
|
|
1329
|
-
`# ${extensionName}`,
|
|
1330
|
-
"",
|
|
1331
|
-
"Generated by `pm extension init`.",
|
|
1332
|
-
"",
|
|
1333
|
-
"## Included Files",
|
|
1334
|
-
"- `manifest.json`: extension metadata and capabilities.",
|
|
1335
|
-
"- `index.js`: starter command registration using the `commands` capability.",
|
|
1336
|
-
"",
|
|
1337
|
-
"## Quick Start",
|
|
1338
|
-
"```bash",
|
|
1339
|
-
"pm extension --install --project <scaffold-path>",
|
|
1340
|
-
`pm ${commandName}`,
|
|
1341
|
-
"pm extension --doctor --project --detail summary",
|
|
1342
|
-
"```",
|
|
1343
|
-
"",
|
|
1344
|
-
"## Compatibility Bounds",
|
|
1345
|
-
"`manifest.json` cannot hold comments, so the version-compatibility fields are documented here:",
|
|
1346
|
-
`- \`manifest_version\` (integer): manifest schema generation. Leave at \`${SCAFFOLD_MANIFEST_VERSION}\` unless you adopt a newer manifest schema.`,
|
|
1347
|
-
`- \`pm_min_version\` (string): lowest pm CLI version that may load this extension. Scaffolded as \`${SCAFFOLD_PM_MIN_VERSION}\`. The loader blocks the extension on older CLIs.`,
|
|
1348
|
-
"- `pm_max_version` (string, optional): highest pm CLI version that may load this extension. Add it to block CLIs that are newer than the version you have validated against. The loader blocks the extension when the CLI exceeds this bound.",
|
|
1349
|
-
"",
|
|
1350
|
-
"## Notes",
|
|
1351
|
-
"- This scaffold uses ESM exports so it works in package scopes with `type: module`.",
|
|
1352
|
-
"- Update `manifest.json` capabilities and `index.js` command behavior as your extension evolves.",
|
|
1353
|
-
""
|
|
1354
|
-
].join("\n");
|
|
1195
|
+
var HOOK_REGISTRY_FIELD_TO_KIND = [
|
|
1196
|
+
["beforeCommand", "before_command"],
|
|
1197
|
+
["afterCommand", "after_command"],
|
|
1198
|
+
["onWrite", "on_write"],
|
|
1199
|
+
["onRead", "on_read"],
|
|
1200
|
+
["onIndex", "on_index"]
|
|
1201
|
+
];
|
|
1202
|
+
function describeExtensionActivation(activation, options = {}) {
|
|
1203
|
+
const filter = options.extensionName !== void 0 ? normalizeExtensionName(options.extensionName) : null;
|
|
1204
|
+
const matches = (name) => filter === null || normalizeExtensionName(name) === filter;
|
|
1205
|
+
const collect = (entries, identify) => sortUnique(entries.filter((entry) => matches(entry.name)).map(identify));
|
|
1206
|
+
const collectFlat = (entries, expand) => sortUnique(entries.filter((entry) => matches(entry.name)).flatMap(expand));
|
|
1207
|
+
const { registrations, commands, parsers, preflight, services, renderers, hooks } = activation;
|
|
1355
1208
|
return {
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1209
|
+
capabilities: collectUsedExtensionCapabilities(activation, options),
|
|
1210
|
+
commands: collect(registrations.commands, (entry) => entry.command),
|
|
1211
|
+
command_overrides: collect(commands.overrides, (entry) => entry.command),
|
|
1212
|
+
command_handlers: collect(commands.handlers, (entry) => entry.command),
|
|
1213
|
+
hooks: HOOK_REGISTRY_FIELD_TO_KIND.filter(([field]) => hooks[field].some((entry) => matches(entry.name))).map(([, kind]) => kind),
|
|
1214
|
+
flag_commands: collect(registrations.flags, (entry) => entry.target_command),
|
|
1215
|
+
item_types: collectFlat(registrations.item_types, (entry) => entry.types.map((type) => type.name)),
|
|
1216
|
+
item_fields: collectFlat(registrations.item_fields, (entry) => entry.fields.map((field) => field.name)),
|
|
1217
|
+
migrations: collectFlat(registrations.migrations, (entry) => typeof entry.definition.id === "string" ? [entry.definition.id] : []),
|
|
1218
|
+
importers: collect(registrations.importers, (entry) => entry.importer),
|
|
1219
|
+
exporters: collect(registrations.exporters, (entry) => entry.exporter),
|
|
1220
|
+
search_providers: collect(registrations.search_providers, (entry) => entry.definition.name),
|
|
1221
|
+
vector_store_adapters: collect(registrations.vector_store_adapters, (entry) => entry.definition.name),
|
|
1222
|
+
parser_overrides: collect(parsers.overrides, (entry) => entry.command),
|
|
1223
|
+
service_overrides: collect(services.overrides, (entry) => entry.service),
|
|
1224
|
+
renderer_overrides: collect(renderers.overrides, (entry) => entry.format),
|
|
1225
|
+
preflight_overrides: preflight.overrides.filter((entry) => matches(entry.name)).length
|
|
1359
1226
|
};
|
|
1360
1227
|
}
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
throw new PmCliError(`Scaffold target "${targetPath}" exists and is not a directory.`, EXIT_CODE.CONFLICT);
|
|
1372
|
-
}
|
|
1373
|
-
} else {
|
|
1374
|
-
await fs5.mkdir(targetPath, { recursive: true });
|
|
1375
|
-
createdDirectory = true;
|
|
1376
|
-
}
|
|
1377
|
-
for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
|
|
1378
|
-
const absolutePath = path5.join(targetPath, relativePath);
|
|
1379
|
-
if (!await pathExists(absolutePath)) {
|
|
1380
|
-
continue;
|
|
1381
|
-
}
|
|
1382
|
-
const existingContent = await fs5.readFile(absolutePath, "utf8");
|
|
1383
|
-
if (existingContent !== content) {
|
|
1384
|
-
throw new PmCliError(`Scaffold file "${relativePath}" already exists with different content in "${targetPath}". Choose a new target path or remove conflicting files.`, EXIT_CODE.CONFLICT);
|
|
1385
|
-
}
|
|
1386
|
-
}
|
|
1387
|
-
const files = [];
|
|
1388
|
-
for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
|
|
1389
|
-
const absolutePath = path5.join(targetPath, relativePath);
|
|
1390
|
-
if (await pathExists(absolutePath)) {
|
|
1391
|
-
files.push({
|
|
1392
|
-
path: relativePath,
|
|
1393
|
-
status: "unchanged"
|
|
1394
|
-
});
|
|
1395
|
-
continue;
|
|
1396
|
-
}
|
|
1397
|
-
await fs5.mkdir(path5.dirname(absolutePath), { recursive: true });
|
|
1398
|
-
await fs5.writeFile(absolutePath, content, "utf8");
|
|
1399
|
-
files.push({
|
|
1400
|
-
path: relativePath,
|
|
1401
|
-
status: "created"
|
|
1402
|
-
});
|
|
1228
|
+
function sortUnique(values) {
|
|
1229
|
+
return [...new Set(values)].sort((left, right) => left.localeCompare(right));
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
// dist/cli/commands/extension/describe.js
|
|
1233
|
+
!(function() {
|
|
1234
|
+
try {
|
|
1235
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1236
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7a92163a-99b2-5969-acc2-e2b6b0336c2e");
|
|
1237
|
+
} catch (e2) {
|
|
1403
1238
|
}
|
|
1239
|
+
})();
|
|
1240
|
+
function layerNameKey(layer, name) {
|
|
1241
|
+
return `${layer}:${normalizeExtensionNameForMatch(name)}`;
|
|
1242
|
+
}
|
|
1243
|
+
function buildExtensionDescribeResult(target, loadResult, activationResult) {
|
|
1244
|
+
const activationFailedKeys = new Set(activationResult.failed.map((entry) => layerNameKey(entry.layer, entry.name)));
|
|
1245
|
+
const candidates = [
|
|
1246
|
+
...loadResult.loaded.map((entry) => ({
|
|
1247
|
+
name: entry.name,
|
|
1248
|
+
layer: entry.layer,
|
|
1249
|
+
version: entry.version,
|
|
1250
|
+
activation_status: activationFailedKeys.has(layerNameKey(entry.layer, entry.name)) ? "failed" : "ok",
|
|
1251
|
+
surfaces: describeExtensionActivation(activationResult, { extensionName: entry.name })
|
|
1252
|
+
})),
|
|
1253
|
+
...loadResult.failed.map((entry) => ({
|
|
1254
|
+
name: entry.name,
|
|
1255
|
+
layer: entry.layer,
|
|
1256
|
+
version: "unknown",
|
|
1257
|
+
activation_status: "not_loaded",
|
|
1258
|
+
surfaces: describeExtensionActivation(activationResult, { extensionName: entry.name })
|
|
1259
|
+
}))
|
|
1260
|
+
].sort((left, right) => left.name.localeCompare(right.name) || left.layer.localeCompare(right.layer));
|
|
1261
|
+
const normalizedTarget = typeof target === "string" ? normalizeExtensionNameForMatch(target) : null;
|
|
1262
|
+
const extensions = normalizedTarget === null ? candidates : candidates.filter((entry) => normalizeExtensionNameForMatch(entry.name) === normalizedTarget);
|
|
1404
1263
|
return {
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
files
|
|
1264
|
+
target: typeof target === "string" ? target.trim() : null,
|
|
1265
|
+
total: extensions.length,
|
|
1266
|
+
extensions,
|
|
1267
|
+
union: describeExtensionActivation(activationResult, normalizedTarget === null ? {} : { extensionName: target })
|
|
1410
1268
|
};
|
|
1411
1269
|
}
|
|
1412
1270
|
|
|
@@ -1414,7 +1272,7 @@ async function scaffoldExtensionProject(target, vocabulary = "extension") {
|
|
|
1414
1272
|
!(function() {
|
|
1415
1273
|
try {
|
|
1416
1274
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1417
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
1275
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "52b725dc-48e3-5436-8136-47e5314b07eb");
|
|
1418
1276
|
} catch (e2) {
|
|
1419
1277
|
}
|
|
1420
1278
|
})();
|
|
@@ -1661,6 +1519,15 @@ function classifyDoctorActivationFailureWarnings(activationFailures = []) {
|
|
|
1661
1519
|
}
|
|
1662
1520
|
return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
|
|
1663
1521
|
}
|
|
1522
|
+
function classifyUnusedCapabilityWarnings(loadResult, activationResult) {
|
|
1523
|
+
const warnings = [];
|
|
1524
|
+
for (const entry of reconcileExtensionCapabilityUsage(loadResult.loaded, activationResult)) {
|
|
1525
|
+
for (const capability of entry.unused) {
|
|
1526
|
+
warnings.push(`extension_capability_unused:${entry.layer}:${entry.name}:${capability}`);
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
|
|
1530
|
+
}
|
|
1664
1531
|
function buildExtensionTriageSummary(scope, warnings, extensions, options = {}) {
|
|
1665
1532
|
const normalizedWarnings = [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
|
|
1666
1533
|
const managedTotal = extensions.filter((entry) => entry.managed).length;
|
|
@@ -1711,6 +1578,9 @@ function buildExtensionTriageSummary(scope, warnings, extensions, options = {})
|
|
|
1711
1578
|
if (normalizedWarnings.some((warning) => warning.startsWith("extension_capability_missing:"))) {
|
|
1712
1579
|
remediation.push(`Extension activation failed because code registered a surface missing from manifest capabilities. Run ${lifecycleFlagCommand(options, "doctor")} ${scopeFlag} --detail deep --trace and add the reported missing_capability to manifest.json before publishing.`);
|
|
1713
1580
|
}
|
|
1581
|
+
if (normalizedWarnings.some((warning) => warning.startsWith("extension_capability_unused:"))) {
|
|
1582
|
+
remediation.push(`Extension manifests declare capabilities that are never registered against. Remove each reported unused capability from manifest.json to keep least privilege, or add the matching registration. Run ${lifecycleFlagCommand(options, "doctor")} ${scopeFlag} --detail deep --trace for per-extension registration counts.`);
|
|
1583
|
+
}
|
|
1714
1584
|
if (normalizedWarnings.some((warning) => warning.startsWith("extension_command_definition_legacy_handler_alias:"))) {
|
|
1715
1585
|
remediation.push("Extension command definitions using legacy handler were auto-remapped. Update command definitions to use run: (context) => ... for forward compatibility.");
|
|
1716
1586
|
}
|
|
@@ -1872,7 +1742,7 @@ function buildDoctorConsistencySummary(scope, installedExtensions, loadedExtensi
|
|
|
1872
1742
|
!(function() {
|
|
1873
1743
|
try {
|
|
1874
1744
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
1875
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
1745
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "bc327a80-93b0-5be9-9ebf-8864cf67d23d");
|
|
1876
1746
|
} catch (e2) {
|
|
1877
1747
|
}
|
|
1878
1748
|
})();
|
|
@@ -1952,11 +1822,11 @@ function sleep(ms) {
|
|
|
1952
1822
|
setTimeout(resolve, ms);
|
|
1953
1823
|
});
|
|
1954
1824
|
}
|
|
1955
|
-
async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDirectory, copyDirectory =
|
|
1825
|
+
async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDirectory, copyDirectory = fs5.cp) {
|
|
1956
1826
|
for (let attempt = 1; attempt <= EXTENSION_INSTALL_COPY_ATTEMPTS; attempt += 1) {
|
|
1957
1827
|
try {
|
|
1958
1828
|
if (await pathExists(destinationDirectory)) {
|
|
1959
|
-
await
|
|
1829
|
+
await fs5.rm(destinationDirectory, { recursive: true, force: true });
|
|
1960
1830
|
}
|
|
1961
1831
|
await copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destinationDirectory, copyDirectory);
|
|
1962
1832
|
return;
|
|
@@ -1969,8 +1839,8 @@ async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDire
|
|
|
1969
1839
|
}
|
|
1970
1840
|
}
|
|
1971
1841
|
async function copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destinationDirectory, copyDirectory) {
|
|
1972
|
-
const resolvedSource =
|
|
1973
|
-
const resolvedDestination =
|
|
1842
|
+
const resolvedSource = path5.resolve(sourceDirectory);
|
|
1843
|
+
const resolvedDestination = path5.resolve(destinationDirectory);
|
|
1974
1844
|
if (resolvedSource === resolvedDestination) {
|
|
1975
1845
|
return;
|
|
1976
1846
|
}
|
|
@@ -1978,28 +1848,28 @@ async function copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destina
|
|
|
1978
1848
|
await copyDirectory(sourceDirectory, destinationDirectory, { recursive: true, force: true });
|
|
1979
1849
|
return;
|
|
1980
1850
|
}
|
|
1981
|
-
const stagingRoot = await
|
|
1982
|
-
const stagedDirectory =
|
|
1851
|
+
const stagingRoot = await fs5.mkdtemp(path5.join(os2.tmpdir(), "pm-extension-copy-"));
|
|
1852
|
+
const stagedDirectory = path5.join(stagingRoot, "extension");
|
|
1983
1853
|
try {
|
|
1984
1854
|
await copyDirectory(sourceDirectory, stagedDirectory, { recursive: true, force: true });
|
|
1985
1855
|
await copyDirectory(stagedDirectory, destinationDirectory, { recursive: true, force: true });
|
|
1986
1856
|
} finally {
|
|
1987
|
-
await
|
|
1857
|
+
await fs5.rm(stagingRoot, { recursive: true, force: true });
|
|
1988
1858
|
}
|
|
1989
1859
|
}
|
|
1990
1860
|
async function withExtensionInstallLock(settingsRoot, destinationDirectoryName, run, options) {
|
|
1991
|
-
const lockRoot =
|
|
1992
|
-
const lockPath =
|
|
1993
|
-
await
|
|
1861
|
+
const lockRoot = path5.join(settingsRoot, "runtime", "extension-install-locks");
|
|
1862
|
+
const lockPath = path5.join(lockRoot, `${destinationDirectoryName}.lock`);
|
|
1863
|
+
await fs5.mkdir(lockRoot, { recursive: true });
|
|
1994
1864
|
const attempts = Math.max(1, Math.floor(options?.attempts ?? EXTENSION_INSTALL_LOCK_ATTEMPTS));
|
|
1995
1865
|
const delayMs = Math.max(0, Math.floor(options?.delay_ms ?? EXTENSION_INSTALL_LOCK_DELAY_MS));
|
|
1996
1866
|
const staleMs = Math.max(0, Math.floor(options?.stale_ms ?? EXTENSION_INSTALL_LOCK_STALE_MS));
|
|
1997
1867
|
let acquired = false;
|
|
1998
1868
|
for (let attempt = 1; attempt <= attempts; attempt += 1) {
|
|
1999
1869
|
try {
|
|
2000
|
-
await
|
|
1870
|
+
await fs5.mkdir(lockPath);
|
|
2001
1871
|
acquired = true;
|
|
2002
|
-
await
|
|
1872
|
+
await fs5.writeFile(path5.join(lockPath, "owner.json"), `${JSON.stringify({ pid: process.pid, created_at: nowIso(), destination: destinationDirectoryName }, null, 2)}
|
|
2003
1873
|
`, "utf8");
|
|
2004
1874
|
break;
|
|
2005
1875
|
} catch (error) {
|
|
@@ -2008,12 +1878,12 @@ async function withExtensionInstallLock(settingsRoot, destinationDirectoryName,
|
|
|
2008
1878
|
}
|
|
2009
1879
|
let stat = null;
|
|
2010
1880
|
try {
|
|
2011
|
-
stat = await
|
|
1881
|
+
stat = await fs5.stat(lockPath);
|
|
2012
1882
|
} catch {
|
|
2013
1883
|
stat = null;
|
|
2014
1884
|
}
|
|
2015
1885
|
if (stat && Date.now() - stat.mtimeMs > staleMs) {
|
|
2016
|
-
await
|
|
1886
|
+
await fs5.rm(lockPath, { recursive: true, force: true });
|
|
2017
1887
|
continue;
|
|
2018
1888
|
}
|
|
2019
1889
|
await sleep(delayMs);
|
|
@@ -2025,7 +1895,7 @@ async function withExtensionInstallLock(settingsRoot, destinationDirectoryName,
|
|
|
2025
1895
|
try {
|
|
2026
1896
|
return await run();
|
|
2027
1897
|
} finally {
|
|
2028
|
-
await
|
|
1898
|
+
await fs5.rm(lockPath, { recursive: true, force: true }).catch(() => void 0);
|
|
2029
1899
|
}
|
|
2030
1900
|
}
|
|
2031
1901
|
async function resolveInstalledExtensionCandidate(installed, extensionTarget) {
|
|
@@ -2103,6 +1973,7 @@ function resolveAction(target, options) {
|
|
|
2103
1973
|
options.uninstall ? "uninstall" : null,
|
|
2104
1974
|
options.explore ? "explore" : null,
|
|
2105
1975
|
options.manage ? "manage" : null,
|
|
1976
|
+
options.describe ? "describe" : null,
|
|
2106
1977
|
options.reload ? "reload" : null,
|
|
2107
1978
|
options.doctor ? "doctor" : null,
|
|
2108
1979
|
options.catalog ? "catalog" : null,
|
|
@@ -2138,7 +2009,7 @@ function resolveAction(target, options) {
|
|
|
2138
2009
|
if (target === void 0) {
|
|
2139
2010
|
return "explore";
|
|
2140
2011
|
}
|
|
2141
|
-
throw new PmCliError("One action flag is required. Use one of: --install, --uninstall, --explore, --manage, --reload, --doctor, --catalog, --init/--scaffold, --adopt, --adopt-all, --activate, --deactivate. Bare `pm package` and `pm extension` default to --explore.", EXIT_CODE.USAGE);
|
|
2012
|
+
throw new PmCliError("One action flag is required. Use one of: --install, --uninstall, --explore, --manage, --describe, --reload, --doctor, --catalog, --init/--scaffold, --adopt, --adopt-all, --activate, --deactivate. Bare `pm package` and `pm extension` default to --explore.", EXIT_CODE.USAGE);
|
|
2142
2013
|
}
|
|
2143
2014
|
if (selected.length > 1) {
|
|
2144
2015
|
throw new PmCliError("Extension action flags are mutually exclusive.", EXIT_CODE.USAGE);
|
|
@@ -2203,7 +2074,7 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
|
|
|
2203
2074
|
warnings: []
|
|
2204
2075
|
};
|
|
2205
2076
|
}
|
|
2206
|
-
const entries = await
|
|
2077
|
+
const entries = await fs5.readdir(extensionsRoot, { withFileTypes: true });
|
|
2207
2078
|
const directories = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name).sort((left, right) => left.localeCompare(right));
|
|
2208
2079
|
const managedByName = /* @__PURE__ */ new Map();
|
|
2209
2080
|
const managedByDirectory = /* @__PURE__ */ new Map();
|
|
@@ -2214,8 +2085,8 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
|
|
|
2214
2085
|
const warnings = [];
|
|
2215
2086
|
const summaries = [];
|
|
2216
2087
|
for (const directoryName of directories) {
|
|
2217
|
-
const extensionDirectory =
|
|
2218
|
-
const manifestPath =
|
|
2088
|
+
const extensionDirectory = path5.join(extensionsRoot, directoryName);
|
|
2089
|
+
const manifestPath = path5.join(extensionDirectory, "manifest.json");
|
|
2219
2090
|
if (!await pathExists(manifestPath)) {
|
|
2220
2091
|
warnings.push(`extension_manifest_missing:${scope}:${directoryName}`);
|
|
2221
2092
|
const managedEntry2 = managedByDirectory.get(normalizeExtensionNameForMatch(directoryName));
|
|
@@ -2244,7 +2115,7 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
|
|
|
2244
2115
|
}
|
|
2245
2116
|
let rawManifest;
|
|
2246
2117
|
try {
|
|
2247
|
-
rawManifest = JSON.parse(await
|
|
2118
|
+
rawManifest = JSON.parse(await fs5.readFile(manifestPath, "utf8"));
|
|
2248
2119
|
} catch {
|
|
2249
2120
|
warnings.push(`extension_manifest_invalid_json:${scope}:${directoryName}`);
|
|
2250
2121
|
continue;
|
|
@@ -2421,7 +2292,7 @@ async function adoptUnmanagedExtensions(extensionsRoot, scope, installedExtensio
|
|
|
2421
2292
|
let nextState = state;
|
|
2422
2293
|
const adoptedEntries = [];
|
|
2423
2294
|
for (const candidate of sortedCandidates) {
|
|
2424
|
-
const extensionDirectory =
|
|
2295
|
+
const extensionDirectory = path5.join(extensionsRoot, candidate.directory);
|
|
2425
2296
|
const validated = await validateExtensionDirectory(extensionDirectory);
|
|
2426
2297
|
const now = nowIso();
|
|
2427
2298
|
const sourceRecord = {
|
|
@@ -2523,6 +2394,9 @@ async function runExtension(target, options, global2) {
|
|
|
2523
2394
|
if (options.fixManagedState === true && action !== "manage" && action !== "doctor") {
|
|
2524
2395
|
throw new PmCliError("--fix-managed-state is only valid with --manage or --doctor.", EXIT_CODE.USAGE);
|
|
2525
2396
|
}
|
|
2397
|
+
if (options.capability !== void 0 && action !== "init") {
|
|
2398
|
+
throw new PmCliError("--capability is only valid with --init/--scaffold.", EXIT_CODE.USAGE);
|
|
2399
|
+
}
|
|
2526
2400
|
const normalizedTarget = (() => {
|
|
2527
2401
|
const normalizedInput = target?.trim().toLowerCase();
|
|
2528
2402
|
if (action === "doctor" && normalizedInput === "doctor") {
|
|
@@ -2577,7 +2451,7 @@ async function runExtension(target, options, global2) {
|
|
|
2577
2451
|
throw new PmCliError('Action "init" does not accept --gh/--github/--ref options.', EXIT_CODE.USAGE);
|
|
2578
2452
|
}
|
|
2579
2453
|
const scaffoldTarget = requireTarget(normalizedTarget, action);
|
|
2580
|
-
const scaffold = await scaffoldExtensionProject(scaffoldTarget, options.vocabulary ?? "extension");
|
|
2454
|
+
const scaffold = await scaffoldExtensionProject(scaffoldTarget, options.vocabulary ?? "extension", options.capability);
|
|
2581
2455
|
const quotedTargetPath = JSON.stringify(scaffold.target_path);
|
|
2582
2456
|
const quotedShellTargetPath = JSON.stringify(scaffold.target_path.replace(/\\/g, "/"));
|
|
2583
2457
|
return withResult({
|
|
@@ -2586,6 +2460,7 @@ async function runExtension(target, options, global2) {
|
|
|
2586
2460
|
name: scaffold.extension_name,
|
|
2587
2461
|
command: scaffold.command_name
|
|
2588
2462
|
},
|
|
2463
|
+
capability: scaffold.capability,
|
|
2589
2464
|
target_path: scaffold.target_path,
|
|
2590
2465
|
created_directory: scaffold.created_directory,
|
|
2591
2466
|
files: scaffold.files,
|
|
@@ -2702,10 +2577,10 @@ async function runExtension(target, options, global2) {
|
|
|
2702
2577
|
const settings = await readSettings(resolvedRoots.settings_root);
|
|
2703
2578
|
const managedStateRead = await readManagedExtensionState(resolvedRoots.selected_root);
|
|
2704
2579
|
warnings.push(...managedStateRead.warnings);
|
|
2705
|
-
const destinationDirectory =
|
|
2580
|
+
const destinationDirectory = path5.join(resolvedRoots.selected_root, destinationDirectoryName);
|
|
2706
2581
|
const destinationExists = await pathExists(destinationDirectory);
|
|
2707
2582
|
const installInPlace = await areDirectoriesEquivalent(validated.directory, destinationDirectory);
|
|
2708
|
-
await
|
|
2583
|
+
await fs5.mkdir(resolvedRoots.selected_root, { recursive: true });
|
|
2709
2584
|
if (!installInPlace) {
|
|
2710
2585
|
await copyExtensionDirectoryForInstall(validated.directory, destinationDirectory);
|
|
2711
2586
|
}
|
|
@@ -2852,7 +2727,7 @@ async function runExtension(target, options, global2) {
|
|
|
2852
2727
|
}
|
|
2853
2728
|
});
|
|
2854
2729
|
}
|
|
2855
|
-
const extensionDirectory =
|
|
2730
|
+
const extensionDirectory = path5.join(resolvedRoots.selected_root, candidate.directory);
|
|
2856
2731
|
const validated = await validateExtensionDirectory(extensionDirectory);
|
|
2857
2732
|
const now = nowIso();
|
|
2858
2733
|
const sourceRecord = githubOption === void 0 ? {
|
|
@@ -2917,8 +2792,8 @@ async function runExtension(target, options, global2) {
|
|
|
2917
2792
|
if (!candidate) {
|
|
2918
2793
|
throw new PmCliError(`Installed extension "${extensionTarget}" was not found in ${scope} scope.`, EXIT_CODE.NOT_FOUND);
|
|
2919
2794
|
}
|
|
2920
|
-
const destinationDirectory =
|
|
2921
|
-
await
|
|
2795
|
+
const destinationDirectory = path5.join(resolvedRoots.selected_root, candidate.directory);
|
|
2796
|
+
await fs5.rm(destinationDirectory, { recursive: true, force: true });
|
|
2922
2797
|
const updatedState = {
|
|
2923
2798
|
...managedStateRead.state,
|
|
2924
2799
|
updated_at: nowIso(),
|
|
@@ -3004,6 +2879,7 @@ async function runExtension(target, options, global2) {
|
|
|
3004
2879
|
warnings.push(...classifyDoctorLoadFailureWarnings(loadResult.failed));
|
|
3005
2880
|
warnings.push(...activationResult.warnings);
|
|
3006
2881
|
warnings.push(...classifyDoctorActivationFailureWarnings(activationResult.failed));
|
|
2882
|
+
warnings.push(...classifyUnusedCapabilityWarnings(loadResult, activationResult));
|
|
3007
2883
|
warnings.push(...collectGlobalOutputOverrideDoctorWarnings(activationResult));
|
|
3008
2884
|
const runtimeInstalledExtensions = applyDoctorRuntimeActivationState(refreshedInstalled.extensions, loadResult, activationResult);
|
|
3009
2885
|
const doctorConsistency = buildDoctorConsistencySummary(scope, runtimeInstalledExtensions, loadResult.loaded.map((entry) => ({ layer: entry.layer, name: entry.name })), loadResult.failed.map((entry) => ({ name: entry.name })), loadResult.disabled_by_flag);
|
|
@@ -3173,6 +3049,29 @@ async function runExtension(target, options, global2) {
|
|
|
3173
3049
|
}
|
|
3174
3050
|
return withResult(details);
|
|
3175
3051
|
}
|
|
3052
|
+
if (action === "describe") {
|
|
3053
|
+
const settings = await readSettings(resolvedRoots.settings_root);
|
|
3054
|
+
const loadResult = await loadExtensions({
|
|
3055
|
+
pmRoot: resolvedRoots.pm_root,
|
|
3056
|
+
settings,
|
|
3057
|
+
cwd: process.cwd(),
|
|
3058
|
+
noExtensions: global2.noExtensions === true
|
|
3059
|
+
});
|
|
3060
|
+
const activationResult = await activateExtensions(loadResult);
|
|
3061
|
+
warnings.push(...loadResult.warnings);
|
|
3062
|
+
warnings.push(...activationResult.warnings);
|
|
3063
|
+
const describeResult = buildExtensionDescribeResult(normalizedTarget, loadResult, activationResult);
|
|
3064
|
+
if (normalizedTarget !== void 0 && describeResult.extensions.length === 0) {
|
|
3065
|
+
const noun = options.vocabulary === "package" ? "package" : "extension";
|
|
3066
|
+
throw new PmCliError(`No loaded ${noun} named "${normalizedTarget}" was found in ${scope} scope. Run pm ${noun} explore to list discovered ${noun}s.`, EXIT_CODE.NOT_FOUND);
|
|
3067
|
+
}
|
|
3068
|
+
return withResult({
|
|
3069
|
+
target: describeResult.target,
|
|
3070
|
+
total: describeResult.total,
|
|
3071
|
+
extensions: describeResult.extensions,
|
|
3072
|
+
union: describeResult.union
|
|
3073
|
+
});
|
|
3074
|
+
}
|
|
3176
3075
|
if (action === "explore" || action === "manage") {
|
|
3177
3076
|
const settings = await readSettings(resolvedRoots.settings_root);
|
|
3178
3077
|
const configuredPolicy = buildExtensionPolicyDetails(settings.extensions.policy);
|
|
@@ -3321,4 +3220,4 @@ export {
|
|
|
3321
3220
|
runExtension,
|
|
3322
3221
|
_testOnly
|
|
3323
3222
|
};
|
|
3324
|
-
//# sourceMappingURL=chunk-
|
|
3223
|
+
//# sourceMappingURL=chunk-G6PYHBBR.js.map
|