dsh-plugin 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client/client.js CHANGED
@@ -59,13 +59,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
59
59
  gitInstallInvalid: "请输入 GitHub 仓库地址,例如:owner/repo 或 https://github.com/owner/repo",
60
60
  dshCmdLabel: "DeepSeek Harness 命令",
61
61
  dshCmdPlaceholder: "粘贴官方 dsh plugin 命令",
62
- dshCmdExample: "例如:dsh plugin --profile web add github:owner/repo",
63
- dshCmdInvalid: "请输入官方 dsh plugin 安装命令(--profile 必填)。例如:dsh plugin --profile web add github:owner/repo",
62
+ dshCmdInsertHubUpdate: "插入更新命令",
63
+ dshCmdExample: "例如:dsh plugin --profile web add github:owner/repo,或 dsh plugin --profile web update dsh-plugin",
64
+ dshCmdInvalid: "请输入官方 dsh plugin 命令(--profile 必填,支持 add / update)。例如:dsh plugin --profile web update dsh-plugin",
64
65
  installHelp: "帮助",
65
66
  helpModalTitle: "支持的命令格式",
66
67
  npmInstallHelp: "lodash、@scope/pkg 直接输入包名\nnpm install lodash\nnpm i lodash\npnpm add @scope/pkg\npnpm i @scope/pkg\nnpm install -g @scope/cli 全局安装 CLI 工具,不进「已安装」列表",
67
68
  gitInstallHelp: "owner/repo\nhttps://github.com/owner/repo\ngithub:owner/repo\ngit+https://github.com/owner/repo.git\ngit@github.com:owner/repo.git",
68
- dshCmdHelp: "dsh plugin --profile web add <目标>\ndsh plugin --profile=web add <目标>\n --profile 必填,官方 CLI 无 -p 简写;<目标> 可为 npm 包名或 github:owner/repo",
69
+ dshCmdHelp: "dsh plugin --profile web add <目标> 安装\ndsh plugin --profile web update <目标> 更新已安装目标到最新版本\ndsh plugin --profile=web add <目标>\ndsh plugin --profile=web update <目标>\n --profile 必填,官方 CLI 无 -p 简写;<目标> 可为 npm 包名或 github:owner/repo;卸载请用「已安装」列表",
69
70
  globalNpmHint: "将全局安装 CLI 工具(npm install -g),不会出现在「已安装」列表,无需重启宿主",
70
71
  installCliBtn: "安装",
71
72
  channelDisabledHint: "该安装通道已关闭,请在「设置 → 安全信任」中打开开关",
@@ -359,13 +360,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
359
360
  gitInstallInvalid: "Enter a GitHub repository address, e.g. owner/repo or https://github.com/owner/repo",
360
361
  dshCmdLabel: "DeepSeek Harness command",
361
362
  dshCmdPlaceholder: "Paste an official dsh plugin command",
362
- dshCmdExample: "e.g. dsh plugin --profile web add github:owner/repo",
363
- dshCmdInvalid: "Paste an official dsh plugin install command (--profile required), e.g. dsh plugin --profile web add github:owner/repo",
363
+ dshCmdInsertHubUpdate: "Insert update command",
364
+ dshCmdExample: "e.g. dsh plugin --profile web add github:owner/repo, or dsh plugin --profile web update dsh-plugin",
365
+ dshCmdInvalid: "Paste an official dsh plugin command (--profile required, add / update), e.g. dsh plugin --profile web update dsh-plugin",
364
366
  installHelp: "Help",
365
367
  helpModalTitle: "Supported command formats",
366
368
  npmInstallHelp: "lodash or @scope/pkg just type the package name\nnpm install lodash\nnpm i lodash\npnpm add @scope/pkg\npnpm i @scope/pkg\nnpm install -g @scope/cli installs the CLI globally, not shown in Installed",
367
369
  gitInstallHelp: "owner/repo\nhttps://github.com/owner/repo\ngithub:owner/repo\ngit+https://github.com/owner/repo.git\ngit@github.com:owner/repo.git",
368
- dshCmdHelp: "dsh plugin --profile web add <target>\ndsh plugin --profile=web add <target>\n --profile is required and there is no -p shorthand; <target> can be an npm package or github:owner/repo",
370
+ dshCmdHelp: "dsh plugin --profile web add <target> install\ndsh plugin --profile web update <target> update an installed target to the latest version\ndsh plugin --profile=web add <target>\ndsh plugin --profile=web update <target>\n --profile is required and there is no -p shorthand; <target> can be an npm package or github:owner/repo; uninstall from the Installed list",
369
371
  globalNpmHint: "This installs CLI tools globally (npm install -g). They won't appear in Installed and no host restart is needed.",
370
372
  installCliBtn: "Install",
371
373
  channelDisabledHint: "This install channel is disabled — enable it in Settings → Security & Trust",
@@ -632,42 +634,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
632
634
  css: css$11
633
635
  });
634
636
  var Header_module_css_default = {
635
- "tabsRow": "qikqja_tabsRow",
636
- "copyIcon": "qikqja_copyIcon",
637
637
  "segBtnActive": "qikqja_segBtnActive",
638
+ "adBanner": "qikqja_adBanner",
638
639
  "segBtn": "qikqja_segBtn",
639
- "headerRight": "qikqja_headerRight",
640
- "sortGroup": "qikqja_sortGroup",
641
- "versionBtn": "qikqja_versionBtn",
642
- "aboutBtn": "qikqja_aboutBtn",
643
- "controls": "qikqja_controls",
644
- "taglineLink": "qikqja_taglineLink",
645
- "tagline": "qikqja_tagline",
646
- "resultSeg": "qikqja_resultSeg",
647
- "tabActive": "qikqja_tabActive",
648
- "segGroup": "qikqja_segGroup",
649
640
  "brandTitle": "qikqja_brandTitle",
650
- "hubUpdateBadge": "qikqja_hubUpdateBadge",
641
+ "adArrow": "qikqja_adArrow",
651
642
  "header": "qikqja_header",
643
+ "resultSeg": "qikqja_resultSeg",
644
+ "githubIcon": "qikqja_githubIcon",
652
645
  "logoIcon": "qikqja_logoIcon",
653
- "adArrow": "qikqja_adArrow",
646
+ "tabs": "qikqja_tabs",
654
647
  "tab": "qikqja_tab",
655
- "tabCount": "qikqja_tabCount",
656
- "langBtn": "qikqja_langBtn",
657
- "resultCount": "qikqja_resultCount",
648
+ "adBadge": "qikqja_adBadge",
658
649
  "adText": "qikqja_adText",
659
- "githubLink": "qikqja_githubLink",
660
- "segLabel": "qikqja_segLabel",
661
- "version": "qikqja_version",
662
- "root": "qikqja_root",
663
- "githubIcon": "qikqja_githubIcon",
650
+ "title": "qikqja_title",
651
+ "versionBtn": "qikqja_versionBtn",
652
+ "taglineLink": "qikqja_taglineLink",
653
+ "search": "qikqja_search",
664
654
  "headerTitleRow": "qikqja_headerTitleRow",
665
- "adBanner": "qikqja_adBanner",
666
- "adBadge": "qikqja_adBadge",
655
+ "githubLink": "qikqja_githubLink",
656
+ "copyIcon": "qikqja_copyIcon",
657
+ "langBtn": "qikqja_langBtn",
667
658
  "searchRow": "qikqja_searchRow",
668
- "search": "qikqja_search",
669
- "title": "qikqja_title",
670
- "tabs": "qikqja_tabs"
659
+ "tabCount": "qikqja_tabCount",
660
+ "root": "qikqja_root",
661
+ "segGroup": "qikqja_segGroup",
662
+ "version": "qikqja_version",
663
+ "controls": "qikqja_controls",
664
+ "hubUpdateBadge": "qikqja_hubUpdateBadge",
665
+ "aboutBtn": "qikqja_aboutBtn",
666
+ "headerRight": "qikqja_headerRight",
667
+ "tagline": "qikqja_tagline",
668
+ "resultCount": "qikqja_resultCount",
669
+ "segLabel": "qikqja_segLabel",
670
+ "tabActive": "qikqja_tabActive",
671
+ "tabsRow": "qikqja_tabsRow",
672
+ "sortGroup": "qikqja_sortGroup"
671
673
  };
672
674
  //#endregion
673
675
  //#region \0dsh-css:src/client/styles/Modal.module.css.mjs
@@ -686,134 +688,134 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
686
688
  css: css$10
687
689
  });
688
690
  var Modal_module_css_default = {
689
- "queueSection": "BiQ1zG_queueSection",
690
- "modalDesc": "BiQ1zG_modalDesc",
691
- "modalHead": "BiQ1zG_modalHead",
692
- "queueRowTrack": "BiQ1zG_queueRowTrack",
693
- "modalWide": "BiQ1zG_modalWide",
694
- "errorBox": "BiQ1zG_errorBox",
695
- "aboutMeta": "BiQ1zG_aboutMeta",
696
- "modalTitle": "BiQ1zG_modalTitle",
697
- "queuedHint": "BiQ1zG_queuedHint",
698
- "linkIcon": "BiQ1zG_linkIcon",
699
- "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
700
- "queueRowPct": "BiQ1zG_queueRowPct",
701
- "logModal": "BiQ1zG_logModal",
702
- "dangerConfirm": "BiQ1zG_dangerConfirm",
703
- "noticeFoot": "BiQ1zG_noticeFoot",
704
- "noticeIgnore": "BiQ1zG_noticeIgnore",
705
- "failRepo": "BiQ1zG_failRepo",
706
- "modalCloseIcon": "BiQ1zG_modalCloseIcon",
707
- "resultCheckIcon": "BiQ1zG_resultCheckIcon",
708
- "failList": "BiQ1zG_failList",
709
- "noticeRowMain": "BiQ1zG_noticeRowMain",
710
- "noticeTextFail": "BiQ1zG_noticeTextFail",
711
- "hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
712
- "detailLink": "BiQ1zG_detailLink",
713
- "modalTitleBusy": "BiQ1zG_modalTitleBusy",
714
- "failKindUninstall": "BiQ1zG_failKindUninstall",
691
+ "noticeRemove": "BiQ1zG_noticeRemove",
692
+ "restartNow": "BiQ1zG_restartNow",
693
+ "failPrepareHint": "BiQ1zG_failPrepareHint",
694
+ "modalValue": "BiQ1zG_modalValue",
695
+ "aboutModal": "BiQ1zG_aboutModal",
696
+ "overlay": "BiQ1zG_overlay",
697
+ "noticeList": "BiQ1zG_noticeList",
698
+ "aboutContent": "BiQ1zG_aboutContent",
699
+ "detailUpdateHint": "BiQ1zG_detailUpdateHint",
700
+ "modalIn": "BiQ1zG_modalIn",
701
+ "noticeTextOk": "BiQ1zG_noticeTextOk",
715
702
  "pendingRowActions": "BiQ1zG_pendingRowActions",
716
- "modalCopy": "BiQ1zG_modalCopy",
717
- "modalRow": "BiQ1zG_modalRow",
718
- "hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
719
- "errorModal": "BiQ1zG_errorModal",
720
- "failKind": "BiQ1zG_failKind",
703
+ "failHead": "BiQ1zG_failHead",
704
+ "resultCheckIcon": "BiQ1zG_resultCheckIcon",
705
+ "errorTitle": "BiQ1zG_errorTitle",
706
+ "logModal": "BiQ1zG_logModal",
721
707
  "detailMono": "BiQ1zG_detailMono",
722
- "progress": "BiQ1zG_progress",
723
- "queueRowTarget": "BiQ1zG_queueRowTarget",
724
- "queueRowStatus": "BiQ1zG_queueRowStatus",
708
+ "modalClose": "BiQ1zG_modalClose",
709
+ "hubUpdateModal": "BiQ1zG_hubUpdateModal",
710
+ "failRow": "BiQ1zG_failRow",
711
+ "detailValue": "BiQ1zG_detailValue",
725
712
  "overlayIn": "BiQ1zG_overlayIn",
726
- "overlay": "BiQ1zG_overlay",
727
- "noticeMain": "BiQ1zG_noticeMain",
728
- "modalCmdText": "BiQ1zG_modalCmdText",
729
- "detailDim": "BiQ1zG_detailDim",
730
- "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
731
- "errorCopySoft": "BiQ1zG_errorCopySoft",
732
- "modalTitleQueued": "BiQ1zG_modalTitleQueued",
733
- "resultTitle": "BiQ1zG_resultTitle",
734
- "noticeRemove": "BiQ1zG_noticeRemove",
735
- "noticeVersion": "BiQ1zG_noticeVersion",
736
- "detailStatusPending": "BiQ1zG_detailStatusPending",
737
- "failEmpty": "BiQ1zG_failEmpty",
738
- "detailStatusRunning": "BiQ1zG_detailStatusRunning",
739
- "errorHint": "BiQ1zG_errorHint",
740
- "modalCmdCopy": "BiQ1zG_modalCmdCopy",
741
- "confirmPrimary": "BiQ1zG_confirmPrimary",
713
+ "noticeIgnore": "BiQ1zG_noticeIgnore",
742
714
  "queueSectionTitle": "BiQ1zG_queueSectionTitle",
743
- "failCopy": "BiQ1zG_failCopy",
744
- "failBigIssue": "BiQ1zG_failBigIssue",
715
+ "modalCmdText": "BiQ1zG_modalCmdText",
716
+ "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
745
717
  "detailPathBtn": "BiQ1zG_detailPathBtn",
746
- "progressFill": "BiQ1zG_progressFill",
747
- "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
748
- "detailPathActions": "BiQ1zG_detailPathActions",
749
- "progressFillFail": "BiQ1zG_progressFillFail",
750
- "failKindInstall": "BiQ1zG_failKindInstall",
751
- "modalClose": "BiQ1zG_modalClose",
752
- "noticeTime": "BiQ1zG_noticeTime",
718
+ "confirmIconWrap": "BiQ1zG_confirmIconWrap",
719
+ "resultCheck": "BiQ1zG_resultCheck",
720
+ "detailDim": "BiQ1zG_detailDim",
753
721
  "modalCmd": "BiQ1zG_modalCmd",
754
- "uninstallConfirm": "BiQ1zG_uninstallConfirm",
722
+ "queueRowDesc": "BiQ1zG_queueRowDesc",
723
+ "modalRow": "BiQ1zG_modalRow",
724
+ "noticeTextFail": "BiQ1zG_noticeTextFail",
725
+ "resultDesc": "BiQ1zG_resultDesc",
755
726
  "failClear": "BiQ1zG_failClear",
756
- "detailLabel": "BiQ1zG_detailLabel",
757
- "modalLabel": "BiQ1zG_modalLabel",
758
- "confirmIconDanger": "BiQ1zG_confirmIconDanger",
759
- "toast": "BiQ1zG_toast",
760
- "result": "BiQ1zG_result",
761
- "resultRestarting": "BiQ1zG_resultRestarting",
762
- "failRow": "BiQ1zG_failRow",
763
- "toastFail": "BiQ1zG_toastFail",
764
- "modalLink": "BiQ1zG_modalLink",
765
- "modalInstall": "BiQ1zG_modalInstall",
766
- "progressHead": "BiQ1zG_progressHead",
767
- "restartNow": "BiQ1zG_restartNow",
768
- "noticeTextOk": "BiQ1zG_noticeTextOk",
727
+ "progressFill": "BiQ1zG_progressFill",
728
+ "detailPathText": "BiQ1zG_detailPathText",
729
+ "queueRowTarget": "BiQ1zG_queueRowTarget",
769
730
  "detailStars": "BiQ1zG_detailStars",
770
- "queueRow": "BiQ1zG_queueRow",
771
- "aboutContent": "BiQ1zG_aboutContent",
772
- "failedCopyHint": "BiQ1zG_failedCopyHint",
773
- "progressTrack": "BiQ1zG_progressTrack",
774
- "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
731
+ "cliOnlyHint": "BiQ1zG_cliOnlyHint",
732
+ "aboutMeta": "BiQ1zG_aboutMeta",
733
+ "noticeFoot": "BiQ1zG_noticeFoot",
734
+ "modalInstall": "BiQ1zG_modalInstall",
775
735
  "modal": "BiQ1zG_modal",
776
- "failPrepareHint": "BiQ1zG_failPrepareHint",
777
- "noticeRowOk": "BiQ1zG_noticeRowOk",
778
- "restartLater": "BiQ1zG_restartLater",
736
+ "failRepo": "BiQ1zG_failRepo",
737
+ "detailLink": "BiQ1zG_detailLink",
738
+ "hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
739
+ "errorModal": "BiQ1zG_errorModal",
740
+ "result": "BiQ1zG_result",
741
+ "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
742
+ "failedCopyHint": "BiQ1zG_failedCopyHint",
743
+ "progressFillFail": "BiQ1zG_progressFillFail",
744
+ "noticeRowMain": "BiQ1zG_noticeRowMain",
745
+ "queueRowTrack": "BiQ1zG_queueRowTrack",
746
+ "detailRow": "BiQ1zG_detailRow",
747
+ "noticeMain": "BiQ1zG_noticeMain",
748
+ "queueRowHead": "BiQ1zG_queueRowHead",
779
749
  "toastIn": "BiQ1zG_toastIn",
780
- "stripCancel": "BiQ1zG_stripCancel",
781
- "modalCancel": "BiQ1zG_modalCancel",
782
- "queueRowDesc": "BiQ1zG_queueRowDesc",
750
+ "modalTitle": "BiQ1zG_modalTitle",
783
751
  "modalBody": "BiQ1zG_modalBody",
784
- "detailUpdateHint": "BiQ1zG_detailUpdateHint",
785
- "hubUpdateModal": "BiQ1zG_hubUpdateModal",
786
- "detailModal": "BiQ1zG_detailModal",
787
- "detailRow": "BiQ1zG_detailRow",
788
752
  "modalActions": "BiQ1zG_modalActions",
753
+ "linkIcon": "BiQ1zG_linkIcon",
754
+ "uninstallConfirm": "BiQ1zG_uninstallConfirm",
789
755
  "pendingRowStatus": "BiQ1zG_pendingRowStatus",
790
- "restartNowWarning": "BiQ1zG_restartNowWarning",
791
- "detailArrow": "BiQ1zG_detailArrow",
792
- "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
793
- "errorTitle": "BiQ1zG_errorTitle",
794
- "resultCheck": "BiQ1zG_resultCheck",
795
- "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
756
+ "errorHint": "BiQ1zG_errorHint",
796
757
  "detailPath": "BiQ1zG_detailPath",
797
- "queueRowBody": "BiQ1zG_queueRowBody",
798
- "aboutModal": "BiQ1zG_aboutModal",
758
+ "noticeHead": "BiQ1zG_noticeHead",
759
+ "modalLabel": "BiQ1zG_modalLabel",
760
+ "resultRestarting": "BiQ1zG_resultRestarting",
761
+ "progressText": "BiQ1zG_progressText",
762
+ "modalHead": "BiQ1zG_modalHead",
763
+ "failList": "BiQ1zG_failList",
764
+ "noticeVersion": "BiQ1zG_noticeVersion",
765
+ "noticeRowOk": "BiQ1zG_noticeRowOk",
766
+ "detailPathActions": "BiQ1zG_detailPathActions",
799
767
  "detailGrid": "BiQ1zG_detailGrid",
800
- "detailValue": "BiQ1zG_detailValue",
801
- "helpModal": "BiQ1zG_helpModal",
768
+ "toast": "BiQ1zG_toast",
769
+ "errorCopySoft": "BiQ1zG_errorCopySoft",
770
+ "modalCloseIcon": "BiQ1zG_modalCloseIcon",
771
+ "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
772
+ "modalCmdCopy": "BiQ1zG_modalCmdCopy",
773
+ "detailArrow": "BiQ1zG_detailArrow",
774
+ "restartNowWarning": "BiQ1zG_restartNowWarning",
775
+ "failKind": "BiQ1zG_failKind",
776
+ "detailModal": "BiQ1zG_detailModal",
777
+ "queueRow": "BiQ1zG_queueRow",
802
778
  "confirmIcon": "BiQ1zG_confirmIcon",
803
- "confirmIconWrap": "BiQ1zG_confirmIconWrap",
804
- "queueRowHead": "BiQ1zG_queueRowHead",
805
- "noticeHead": "BiQ1zG_noticeHead",
806
- "detailPathText": "BiQ1zG_detailPathText",
779
+ "queuedHint": "BiQ1zG_queuedHint",
780
+ "errorBox": "BiQ1zG_errorBox",
781
+ "trustHint": "BiQ1zG_trustHint",
782
+ "toastFail": "BiQ1zG_toastFail",
783
+ "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
784
+ "detailStatusPending": "BiQ1zG_detailStatusPending",
785
+ "queueRowStatus": "BiQ1zG_queueRowStatus",
786
+ "resultTitle": "BiQ1zG_resultTitle",
787
+ "failKindUninstall": "BiQ1zG_failKindUninstall",
788
+ "failEmpty": "BiQ1zG_failEmpty",
789
+ "modalCopy": "BiQ1zG_modalCopy",
790
+ "failCopy": "BiQ1zG_failCopy",
791
+ "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
792
+ "failKindInstall": "BiQ1zG_failKindInstall",
793
+ "queueRowPct": "BiQ1zG_queueRowPct",
794
+ "stripCancel": "BiQ1zG_stripCancel",
795
+ "confirmPrimary": "BiQ1zG_confirmPrimary",
796
+ "queueSection": "BiQ1zG_queueSection",
797
+ "progressTrack": "BiQ1zG_progressTrack",
798
+ "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
799
+ "detailLabel": "BiQ1zG_detailLabel",
800
+ "hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
801
+ "dangerConfirm": "BiQ1zG_dangerConfirm",
802
+ "failBigIssue": "BiQ1zG_failBigIssue",
803
+ "restartLater": "BiQ1zG_restartLater",
804
+ "progress": "BiQ1zG_progress",
807
805
  "detailStatusText": "BiQ1zG_detailStatusText",
808
- "modalIn": "BiQ1zG_modalIn",
809
- "progressText": "BiQ1zG_progressText",
810
- "modalValue": "BiQ1zG_modalValue",
811
- "failHead": "BiQ1zG_failHead",
806
+ "modalCancel": "BiQ1zG_modalCancel",
812
807
  "noticeRow": "BiQ1zG_noticeRow",
813
- "noticeList": "BiQ1zG_noticeList",
814
- "resultDesc": "BiQ1zG_resultDesc",
815
- "cliOnlyHint": "BiQ1zG_cliOnlyHint",
816
- "trustHint": "BiQ1zG_trustHint"
808
+ "modalDesc": "BiQ1zG_modalDesc",
809
+ "modalWide": "BiQ1zG_modalWide",
810
+ "confirmIconDanger": "BiQ1zG_confirmIconDanger",
811
+ "modalTitleQueued": "BiQ1zG_modalTitleQueued",
812
+ "detailStatusRunning": "BiQ1zG_detailStatusRunning",
813
+ "queueRowBody": "BiQ1zG_queueRowBody",
814
+ "modalLink": "BiQ1zG_modalLink",
815
+ "progressHead": "BiQ1zG_progressHead",
816
+ "helpModal": "BiQ1zG_helpModal",
817
+ "noticeTime": "BiQ1zG_noticeTime",
818
+ "modalTitleBusy": "BiQ1zG_modalTitleBusy"
817
819
  };
818
820
  //#endregion
819
821
  //#region src/client/logic/install-command.ts
@@ -822,7 +824,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
822
824
  * (走 npm registry tarball,更快、与 GitHub 网络无关);无 npm 包名 → git 直装。
823
825
  * 返回值 target 即传给后端 /install 的安装目标(npm 包名 或 owner/repo)。
824
826
  */
825
- function installTargetOf$1(p) {
827
+ function installTargetOf(p) {
826
828
  const pkg = (p.source?.npmPackage ?? "").trim();
827
829
  const repo = (p.source?.repo ?? "").trim();
828
830
  if (pkg && repo) return {
@@ -838,7 +840,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
838
840
  * 需专属 profile(--profile dsh-tui),无法从 repo/npm 包名推断,必须用官方命令);
839
841
  * 常规插件无目录命令时按通道回退生成:npm 显示包名,git 显示显式 HTTPS URL。 */
840
842
  function installCommandOf(p, withProfile = false) {
841
- const { target, via } = installTargetOf$1(p);
843
+ const { target, via } = installTargetOf(p);
842
844
  if (via === "npm") {
843
845
  const cmd = p.install?.command;
844
846
  if (cmd) return cmd;
@@ -883,7 +885,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
883
885
  * tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
884
886
  * node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
885
887
  */
886
- const PLUGIN_VERSION = "1.3.3";
888
+ const PLUGIN_VERSION = "1.3.5";
887
889
  const CATEGORY_ORDER = [
888
890
  "interface",
889
891
  "session",
@@ -1516,7 +1518,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1516
1518
  */
1517
1519
  const hubHasUpdate = (() => {
1518
1520
  if (!hubUpdateInfo) return false;
1519
- return hubUpdateInfo.version !== "1.3.3";
1521
+ return hubUpdateInfo.version !== "1.3.5";
1520
1522
  })();
1521
1523
  (0, react.useMemo)(() => {
1522
1524
  if (!plugins) return [];
@@ -2323,7 +2325,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
2323
2325
  const installNow = async (p, opts) => {
2324
2326
  const repo = p.source?.repo ?? "";
2325
2327
  if (!repo) return;
2326
- const { target } = installTargetOf$1(p);
2328
+ const { target } = installTargetOf(p);
2327
2329
  if (!target) return;
2328
2330
  await submitInstall({
2329
2331
  target,
@@ -3236,7 +3238,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
3236
3238
  codeSpans.push(String(code));
3237
3239
  return `\u0000${codeSpans.length - 1}\u0000`;
3238
3240
  });
3239
- out = out.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g, (m, alt, url) => /^https?:\/\//i.test(String(url)) && !/[\u0000]/.test(String(url)) ? `<img src="${String(url)}" alt="${String(alt)}" loading="lazy">` : m);
3241
+ out = out.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g, (m, alt, url) => {
3242
+ const src = String(url);
3243
+ if (!/^https?:\/\//i.test(src) || /[\u0000]/.test(src)) return m;
3244
+ if (/\/dsh-plugin-user-group-qr-[^/]*$/i.test(src)) return `<img src="${src}" alt="${String(alt)}" width="250" height="250" loading="lazy">`;
3245
+ return `<img src="${src}" alt="${String(alt)}" loading="lazy">`;
3246
+ });
3240
3247
  out = out.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (m, text, url) => /^https?:\/\//i.test(String(url)) && !/[\u0000]/.test(String(url)) ? `<a href="${String(url)}" target="_blank" rel="noopener noreferrer">${String(text)}</a>` : m);
3241
3248
  out = out.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>");
3242
3249
  out = out.replace(/(^|[^*])\*([^*]+)\*/g, "$1<em>$2</em>");
@@ -3875,42 +3882,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
3875
3882
  }
3876
3883
  const cssRegistry$9 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
3877
3884
  if (!cssRegistry$9.some((e) => e.tagId === tagId$9)) cssRegistry$9.push({
3878
- tagId: tagId$9,
3879
- css: css$9
3880
- });
3881
- var List_module_css_default = {
3882
- "stateTitle": "_3XaZHa_stateTitle",
3883
- "fork": "_3XaZHa_fork",
3884
- "installBtn": "_3XaZHa_installBtn",
3885
- "detailBtn": "_3XaZHa_detailBtn",
3886
- "moreSentinel": "_3XaZHa_moreSentinel",
3887
- "versionBadge": "_3XaZHa_versionBadge",
3888
- "list": "_3XaZHa_list",
3889
- "date": "_3XaZHa_date",
3890
- "installBtnUpdate": "_3XaZHa_installBtnUpdate",
3891
- "topics": "_3XaZHa_topics",
3892
- "topic": "_3XaZHa_topic",
3893
- "actions": "_3XaZHa_actions",
3894
- "installBtnInstalled": "_3XaZHa_installBtnInstalled",
3885
+ tagId: tagId$9,
3886
+ css: css$9
3887
+ });
3888
+ var List_module_css_default = {
3895
3889
  "body": "_3XaZHa_body",
3896
- "card": "_3XaZHa_card",
3897
- "stats": "_3XaZHa_stats",
3898
- "updateBadge": "_3XaZHa_updateBadge",
3899
- "state": "_3XaZHa_state",
3900
3890
  "verified": "_3XaZHa_verified",
3901
- "star": "_3XaZHa_star",
3902
- "cardTitle": "_3XaZHa_cardTitle",
3891
+ "actions": "_3XaZHa_actions",
3892
+ "topic": "_3XaZHa_topic",
3893
+ "cardSide": "_3XaZHa_cardSide",
3903
3894
  "uninstallBtn": "_3XaZHa_uninstallBtn",
3904
- "stateDesc": "_3XaZHa_stateDesc",
3905
3895
  "footLink": "_3XaZHa_footLink",
3906
- "installBtnCopied": "_3XaZHa_installBtnCopied",
3907
- "footer": "_3XaZHa_footer",
3908
- "categoryBadge": "_3XaZHa_categoryBadge",
3896
+ "versionBadge": "_3XaZHa_versionBadge",
3909
3897
  "desc": "_3XaZHa_desc",
3898
+ "cardMain": "_3XaZHa_cardMain",
3899
+ "fork": "_3XaZHa_fork",
3900
+ "categoryBadge": "_3XaZHa_categoryBadge",
3901
+ "stateDesc": "_3XaZHa_stateDesc",
3902
+ "installBtnInstalled": "_3XaZHa_installBtnInstalled",
3903
+ "topics": "_3XaZHa_topics",
3910
3904
  "cardHead": "_3XaZHa_cardHead",
3905
+ "stats": "_3XaZHa_stats",
3906
+ "list": "_3XaZHa_list",
3907
+ "footer": "_3XaZHa_footer",
3908
+ "state": "_3XaZHa_state",
3909
+ "updateBadge": "_3XaZHa_updateBadge",
3911
3910
  "retryBtn": "_3XaZHa_retryBtn",
3912
- "cardSide": "_3XaZHa_cardSide",
3913
- "cardMain": "_3XaZHa_cardMain"
3911
+ "stateTitle": "_3XaZHa_stateTitle",
3912
+ "card": "_3XaZHa_card",
3913
+ "detailBtn": "_3XaZHa_detailBtn",
3914
+ "date": "_3XaZHa_date",
3915
+ "installBtnUpdate": "_3XaZHa_installBtnUpdate",
3916
+ "installBtnCopied": "_3XaZHa_installBtnCopied",
3917
+ "installBtn": "_3XaZHa_installBtn",
3918
+ "star": "_3XaZHa_star",
3919
+ "moreSentinel": "_3XaZHa_moreSentinel",
3920
+ "cardTitle": "_3XaZHa_cardTitle"
3914
3921
  };
3915
3922
  //#endregion
3916
3923
  //#region src/client/hooks/useIncrementalList.ts
@@ -4112,15 +4119,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4112
4119
  css: css$8
4113
4120
  });
4114
4121
  var SectionTabs_module_css_default = {
4115
- "tab": "_7tvizq_tab",
4116
- "tabIcon": "_7tvizq_tabIcon",
4117
4122
  "tabCountActive": "_7tvizq_tabCountActive",
4118
- "noticeIcon": "_7tvizq_noticeIcon",
4119
4123
  "noticeBtn": "_7tvizq_noticeBtn",
4124
+ "noticeIcon": "_7tvizq_noticeIcon",
4120
4125
  "tabActive": "_7tvizq_tabActive",
4121
- "noticeCount": "_7tvizq_noticeCount",
4122
4126
  "tabCount": "_7tvizq_tabCount",
4123
- "root": "_7tvizq_root"
4127
+ "tabIcon": "_7tvizq_tabIcon",
4128
+ "root": "_7tvizq_root",
4129
+ "tab": "_7tvizq_tab",
4130
+ "noticeCount": "_7tvizq_noticeCount"
4124
4131
  };
4125
4132
  //#endregion
4126
4133
  //#region src/client/components/layout/SectionTabs.tsx
@@ -4197,42 +4204,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4197
4204
  css: css$7
4198
4205
  });
4199
4206
  var InstalledView_module_css_default = {
4200
- "rowTitleLine": "_1nXeGW_rowTitleLine",
4201
- "statusInactive": "_1nXeGW_statusInactive",
4202
- "rowMeta": "_1nXeGW_rowMeta",
4203
- "toolbar": "_1nXeGW_toolbar",
4204
- "segBtn": "_1nXeGW_segBtn",
4205
- "emptyDesc": "_1nXeGW_emptyDesc",
4206
4207
  "searchWrap": "_1nXeGW_searchWrap",
4208
+ "toolbar": "_1nXeGW_toolbar",
4209
+ "segBtnActive": "_1nXeGW_segBtnActive",
4210
+ "rowRepo": "_1nXeGW_rowRepo",
4211
+ "row": "_1nXeGW_row",
4212
+ "rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
4207
4213
  "root": "_1nXeGW_root",
4208
- "rowDesc": "_1nXeGW_rowDesc",
4209
- "rowActions": "_1nXeGW_rowActions",
4210
- "exampleBadge": "_1nXeGW_exampleBadge",
4211
- "rowUninstall": "_1nXeGW_rowUninstall",
4212
- "rowCategory": "_1nXeGW_rowCategory",
4213
- "segLabel": "_1nXeGW_segLabel",
4214
- "list": "_1nXeGW_list",
4215
- "empty": "_1nXeGW_empty",
4214
+ "versionBadge": "_1nXeGW_versionBadge",
4216
4215
  "rowMain": "_1nXeGW_rowMain",
4217
4216
  "rowSourceTag": "_1nXeGW_rowSourceTag",
4218
- "rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
4217
+ "segRow": "_1nXeGW_segRow",
4218
+ "emptyDesc": "_1nXeGW_emptyDesc",
4219
+ "rowRestart": "_1nXeGW_rowRestart",
4220
+ "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
4221
+ "rowCategory": "_1nXeGW_rowCategory",
4222
+ "empty": "_1nXeGW_empty",
4223
+ "searchInput": "_1nXeGW_searchInput",
4224
+ "updateBadge": "_1nXeGW_updateBadge",
4225
+ "emptyTitle": "_1nXeGW_emptyTitle",
4226
+ "rowActions": "_1nXeGW_rowActions",
4227
+ "rowUninstall": "_1nXeGW_rowUninstall",
4228
+ "rowTitleLine": "_1nXeGW_rowTitleLine",
4229
+ "exampleBadge": "_1nXeGW_exampleBadge",
4230
+ "statusInactive": "_1nXeGW_statusInactive",
4231
+ "segGroup": "_1nXeGW_segGroup",
4219
4232
  "rowDetail": "_1nXeGW_rowDetail",
4233
+ "rowMeta": "_1nXeGW_rowMeta",
4220
4234
  "rowTitle": "_1nXeGW_rowTitle",
4221
- "segGroup": "_1nXeGW_segGroup",
4222
- "segRow": "_1nXeGW_segRow",
4235
+ "segLabel": "_1nXeGW_segLabel",
4236
+ "statusDot": "_1nXeGW_statusDot",
4223
4237
  "statusPending": "_1nXeGW_statusPending",
4238
+ "list": "_1nXeGW_list",
4224
4239
  "rowUpdate": "_1nXeGW_rowUpdate",
4225
- "updateBadge": "_1nXeGW_updateBadge",
4226
- "emptyTitle": "_1nXeGW_emptyTitle",
4227
- "rowRepo": "_1nXeGW_rowRepo",
4240
+ "segBtn": "_1nXeGW_segBtn",
4228
4241
  "exampleRow": "_1nXeGW_exampleRow",
4229
- "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
4230
- "statusDot": "_1nXeGW_statusDot",
4231
- "versionBadge": "_1nXeGW_versionBadge",
4232
- "searchInput": "_1nXeGW_searchInput",
4233
- "segBtnActive": "_1nXeGW_segBtnActive",
4234
- "rowRestart": "_1nXeGW_rowRestart",
4235
- "row": "_1nXeGW_row"
4242
+ "rowDesc": "_1nXeGW_rowDesc"
4236
4243
  };
4237
4244
  //#endregion
4238
4245
  //#region src/client/components/views/InstalledView.tsx
@@ -4463,7 +4470,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4463
4470
  }
4464
4471
  //#endregion
4465
4472
  //#region \0dsh-css:src/client/styles/CustomInstallView.module.css.mjs
4466
- const css$6 = ".zISxCG_root{flex-direction:column;gap:10px;min-width:0;max-width:560px;display:flex}.zISxCG_desc{color:var(--hub-text-tertiary);margin:0;font-size:12px;line-height:18px}.zISxCG_installCards{flex-direction:column;flex-shrink:0;gap:10px;min-width:0;display:flex}.zISxCG_installCard{background:var(--hub-bg-1);border:1px solid var(--hub-border-1);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.zISxCG_installCardHead{align-items:center;min-width:0;display:flex}.zISxCG_installLabel{color:var(--hub-text-primary);font-size:12px;font-weight:600;line-height:18px}.zISxCG_installHelpBtn{width:18px;height:18px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:6px;padding:0;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.zISxCG_installHelpBtn:hover{color:var(--hub-brand);background:var(--hub-brand-tint);border-color:var(--hub-brand-border-soft)}.zISxCG_installExample{color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;line-height:16px;overflow:hidden}.zISxCG_installRow{align-items:center;gap:8px;min-width:0;display:flex}.zISxCG_installInput{min-width:0;height:28px;color:var(--hub-text-primary);border:1px solid var(--hub-border-2);background:0 0;border-radius:6px;outline:none;flex:auto;padding:0 9px;font-size:12px;line-height:26px;transition:border-color .12s}.zISxCG_installInput::placeholder{color:var(--hub-text-tertiary)}.zISxCG_installInput:focus{border-color:var(--hub-brand)}.zISxCG_installInputError,.zISxCG_installInputError:focus{border-color:var(--hub-danger-text)}.zISxCG_installBtn{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;flex-shrink:0;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:background .12s,opacity .12s}.zISxCG_installBtn:hover{background:var(--hub-brand-hover)}.zISxCG_installBtn:disabled{opacity:.45;cursor:default}.zISxCG_installCardDisabled{opacity:.8}.zISxCG_channelOff{min-width:0;color:var(--hub-warn);background:var(--hub-warn-tint);border:1px solid var(--hub-warn-border);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 9px;font-size:12px;line-height:16px;display:flex}.zISxCG_channelOffText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.zISxCG_channelOffBtn{color:var(--hub-warn-strong);border:1px solid var(--hub-warn-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:background .12s,color .12s}.zISxCG_channelOffBtn:hover{background:var(--hub-warn-tint);color:var(--hub-warn)}.zISxCG_installError{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;padding:5px 8px;font-size:12px;line-height:16px}.zISxCG_helpBody{flex-direction:column;gap:7px;padding:4px 2px;display:flex}.zISxCG_helpLine{align-items:baseline;gap:12px;min-width:0;font-size:12px;line-height:20px;display:flex}.zISxCG_helpCmd{color:var(--hub-text-primary);white-space:nowrap;flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.zISxCG_helpNote{min-width:0;color:var(--hub-text-tertiary);font-size:11px}";
4473
+ const css$6 = ".zISxCG_root{flex-direction:column;gap:10px;min-width:0;max-width:560px;display:flex}.zISxCG_desc{color:var(--hub-text-tertiary);margin:0;font-size:12px;line-height:18px}.zISxCG_installCards{flex-direction:column;flex-shrink:0;gap:10px;min-width:0;display:flex}.zISxCG_installCard{background:var(--hub-bg-1);border:1px solid var(--hub-border-1);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.zISxCG_installCardHead{align-items:center;min-width:0;display:flex}.zISxCG_installLabel{color:var(--hub-text-primary);font-size:12px;font-weight:600;line-height:18px}.zISxCG_installHelpBtn{width:18px;height:18px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:6px;padding:0;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.zISxCG_installHelpBtn:hover{color:var(--hub-brand);background:var(--hub-brand-tint);border-color:var(--hub-brand-border-soft)}.zISxCG_installInsertBtn{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;flex-shrink:0;margin-left:auto;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.zISxCG_installInsertBtn:hover{color:var(--hub-brand);border-color:var(--hub-brand-border-soft);background:var(--hub-brand-tint)}.zISxCG_installExample{color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;line-height:16px;overflow:hidden}.zISxCG_installRow{align-items:center;gap:8px;min-width:0;display:flex}.zISxCG_installInput{min-width:0;height:28px;color:var(--hub-text-primary);border:1px solid var(--hub-border-2);background:0 0;border-radius:6px;outline:none;flex:auto;padding:0 9px;font-size:12px;line-height:26px;transition:border-color .12s}.zISxCG_installInput::placeholder{color:var(--hub-text-tertiary)}.zISxCG_installInput:focus{border-color:var(--hub-brand)}.zISxCG_installInputError,.zISxCG_installInputError:focus{border-color:var(--hub-danger-text)}.zISxCG_installBtn{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;flex-shrink:0;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:background .12s,opacity .12s}.zISxCG_installBtn:hover{background:var(--hub-brand-hover)}.zISxCG_installBtn:disabled{opacity:.45;cursor:default}.zISxCG_installCardDisabled{opacity:.8}.zISxCG_channelOff{min-width:0;color:var(--hub-warn);background:var(--hub-warn-tint);border:1px solid var(--hub-warn-border);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 9px;font-size:12px;line-height:16px;display:flex}.zISxCG_channelOffText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.zISxCG_channelOffBtn{color:var(--hub-warn-strong);border:1px solid var(--hub-warn-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:background .12s,color .12s}.zISxCG_channelOffBtn:hover{background:var(--hub-warn-tint);color:var(--hub-warn)}.zISxCG_installError{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;padding:5px 8px;font-size:12px;line-height:16px}.zISxCG_helpBody{flex-direction:column;gap:7px;padding:4px 2px;display:flex}.zISxCG_helpLine{align-items:baseline;gap:12px;min-width:0;font-size:12px;line-height:20px;display:flex}.zISxCG_helpCmd{color:var(--hub-text-primary);white-space:nowrap;flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.zISxCG_helpNote{min-width:0;color:var(--hub-text-tertiary);font-size:11px}";
4467
4474
  const tagId$6 = "dsh-plugin/CustomInstallView.module.css";
4468
4475
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
4469
4476
  const tag = document.createElement("style");
@@ -4478,27 +4485,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4478
4485
  css: css$6
4479
4486
  });
4480
4487
  var CustomInstallView_module_css_default = {
4481
- "channelOffText": "zISxCG_channelOffText",
4482
- "helpLine": "zISxCG_helpLine",
4483
- "installCardDisabled": "zISxCG_installCardDisabled",
4484
- "installHelpBtn": "zISxCG_installHelpBtn",
4485
- "installCard": "zISxCG_installCard",
4486
- "desc": "zISxCG_desc",
4487
- "installError": "zISxCG_installError",
4488
4488
  "helpBody": "zISxCG_helpBody",
4489
- "installInputError": "zISxCG_installInputError",
4489
+ "helpCmd": "zISxCG_helpCmd",
4490
+ "helpNote": "zISxCG_helpNote",
4490
4491
  "channelOff": "zISxCG_channelOff",
4491
- "installExample": "zISxCG_installExample",
4492
+ "installInsertBtn": "zISxCG_installInsertBtn",
4493
+ "installError": "zISxCG_installError",
4494
+ "installCard": "zISxCG_installCard",
4492
4495
  "installRow": "zISxCG_installRow",
4493
- "helpCmd": "zISxCG_helpCmd",
4494
- "installBtn": "zISxCG_installBtn",
4496
+ "helpLine": "zISxCG_helpLine",
4497
+ "root": "zISxCG_root",
4498
+ "installExample": "zISxCG_installExample",
4495
4499
  "installCards": "zISxCG_installCards",
4496
- "installLabel": "zISxCG_installLabel",
4500
+ "installCardDisabled": "zISxCG_installCardDisabled",
4497
4501
  "installCardHead": "zISxCG_installCardHead",
4502
+ "desc": "zISxCG_desc",
4503
+ "installHelpBtn": "zISxCG_installHelpBtn",
4498
4504
  "installInput": "zISxCG_installInput",
4505
+ "installInputError": "zISxCG_installInputError",
4506
+ "channelOffText": "zISxCG_channelOffText",
4507
+ "installLabel": "zISxCG_installLabel",
4499
4508
  "channelOffBtn": "zISxCG_channelOffBtn",
4500
- "helpNote": "zISxCG_helpNote",
4501
- "root": "zISxCG_root"
4509
+ "installBtn": "zISxCG_installBtn"
4502
4510
  };
4503
4511
  //#endregion
4504
4512
  //#region src/client/components/views/CustomInstallView.tsx
@@ -4526,20 +4534,27 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4526
4534
  const GITHUB_BARE_RE = /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/;
4527
4535
  /** npm 包名(含 @scope/pkg) */
4528
4536
  const NPM_PACKAGE_RE = /^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+$/;
4529
- /** DSH 命令行前缀(官方唯一形式 `dsh plugin --profile <name> add <target>`)—— 提取其中的安装目标。
4537
+ /** DSH 命令行前缀(官方唯一形式 `dsh plugin --profile <name> <add|update> <target>`)—— 提取其中的动作与目标。
4530
4538
  * 官方 CLI(apps/cli/src/args.ts,commander):--profile 为必填长选项(无 -p 简写,省略即报错),
4531
- * 支持 `--profile=<name>` 等号形式;命令大小写不敏感。与 server 端 installTargetOf 口径一致。 */
4532
- const DSH_PLUGIN_CMD_RE = /^dsh\s+plugin\s+--profile(?:\s+|=)\S+\s+add\s+(.+)$/i;
4539
+ * 支持 `--profile=<name>` 等号形式;命令大小写不敏感。update = 已安装目标覆盖更新到最新;
4540
+ * remove 不走这里(卸载由「已安装」列表的卸载按钮执行,命令框不认卸载动词)。
4541
+ * 与 server 端 installTargetOf 口径一致。 */
4542
+ const DSH_PLUGIN_CMD_RE = /^dsh\s+plugin\s+--profile(?:\s+|=)\S+\s+(add|update)\s+(.+)$/i;
4533
4543
  /** npm 全局安装命令(官方 README 格式,如 `npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui`)——
4534
4544
  * 提取 -g 之后的包列表;任一包名非法返回 null(交给格式错误提示)。与 server 端 globalNpmPackagesOf 口径一致。 */
4535
4545
  const NPM_GLOBAL_CMD_RE = /^npm\s+(?:install|i)\s+(?:-g|--global)\s+(.+)$/i;
4536
4546
  /** 常规 npm/pnpm 安装命令(装进当前 profile,如 `npm install lodash`、`pnpm add @scope/pkg`)——
4537
4547
  * 提取命令后的包列表;包列表在 splitPackages 里逐个校验。 */
4538
4548
  const NPM_INSTALL_CMD_RE = /^(?:npm\s+(?:install|i)|pnpm\s+(?:add|i|install))\s+(.+)$/i;
4539
- function installTargetOf(raw) {
4549
+ /** 解析 DSH 命令:返回 { action, target };非官方命令返回 null(交给格式错误提示)。 */
4550
+ function parseDshCommand(raw) {
4540
4551
  const input = raw.trim();
4541
4552
  const match = DSH_PLUGIN_CMD_RE.exec(input);
4542
- return match !== null ? match[1].trim() : input;
4553
+ if (match === null) return null;
4554
+ return {
4555
+ action: match[1].toLowerCase(),
4556
+ target: match[2].trim()
4557
+ };
4543
4558
  }
4544
4559
  /** 空格分隔的包列表:逐个按 npm 包名语法校验 + 拒绝以 - 开头的 token(npm 会把 --xxx 当参数而非包名),
4545
4560
  * 任一非法返回 null(交给格式错误提示)。与 server 端 globalNpmPackagesOf 同口径。 */
@@ -4578,9 +4593,6 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4578
4593
  const input = raw.trim();
4579
4594
  return GITHUB_URL_RE.test(input) || GITHUB_BARE_RE.test(input);
4580
4595
  }
4581
- function isDshCommand(raw) {
4582
- return DSH_PLUGIN_CMD_RE.test(raw.trim());
4583
- }
4584
4596
  /** 卡片标题旁的「帮助」弹窗:三块卡片各自的标题与格式清单语言包 key。 */
4585
4597
  const HELP_CARDS = {
4586
4598
  npm: {
@@ -4596,7 +4608,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4596
4608
  contentKey: "dshCmdHelp"
4597
4609
  }
4598
4610
  };
4599
- function CustomInstallView({ t, onInstallCustom, enableNpm, enableGit, enableDsh, onOpenSettings }) {
4611
+ function CustomInstallView({ t, onInstallCustom, enableNpm, enableGit, enableDsh, onOpenSettings, profile }) {
4600
4612
  /** 自定义安装:NPM 包输入与格式错误('' = 无错误) */
4601
4613
  const [npmQuery, setNpmQuery] = (0, react.useState)("");
4602
4614
  const [npmError, setNpmError] = (0, react.useState)("");
@@ -4641,14 +4653,20 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4641
4653
  const submitCmd = () => {
4642
4654
  const raw = cmdQuery.trim();
4643
4655
  if (!raw) return;
4644
- if (!isDshCommand(raw)) {
4656
+ const parsed = parseDshCommand(raw);
4657
+ if (parsed === null) {
4645
4658
  setCmdError(t("dshCmdInvalid"));
4646
4659
  return;
4647
4660
  }
4648
- onInstallCustom(installTargetOf(raw));
4661
+ onInstallCustom(parsed.target);
4649
4662
  setCmdQuery("");
4650
4663
  setCmdError("");
4651
4664
  };
4665
+ /** 一键插入 DSH Plugin Hub 自身的更新命令:按当前 profile 拼官方命令填进输入框,用户确认后提交 */
4666
+ const insertHubUpdate = () => {
4667
+ setCmdQuery(`dsh plugin --profile ${profile} update dsh-plugin`);
4668
+ setCmdError("");
4669
+ };
4652
4670
  return (0, react.createElement)("div", { className: CustomInstallView_module_css_default.root }, (0, react.createElement)("p", { className: CustomInstallView_module_css_default.desc }, t("customViewDesc")), (0, react.createElement)("div", { className: CustomInstallView_module_css_default.installCards }, (0, react.createElement)("div", { className: enableNpm ? CustomInstallView_module_css_default.installCard : `${CustomInstallView_module_css_default.installCard} ${CustomInstallView_module_css_default.installCardDisabled}` }, (0, react.createElement)("div", { className: CustomInstallView_module_css_default.installCardHead }, (0, react.createElement)("span", { className: CustomInstallView_module_css_default.installLabel }, t("npmInstallLabel")), (0, react.createElement)("button", {
4653
4671
  type: "button",
4654
4672
  className: CustomInstallView_module_css_default.installHelpBtn,
@@ -4711,7 +4729,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4711
4729
  title: t("installHelp"),
4712
4730
  "aria-label": t("installHelp"),
4713
4731
  onClick: () => setHelpFor("cmd")
4714
- }, (0, react.createElement)(HelpIcon))), !enableDsh ? channelOffRow : [
4732
+ }, (0, react.createElement)(HelpIcon)), enableDsh ? (0, react.createElement)("button", {
4733
+ type: "button",
4734
+ className: CustomInstallView_module_css_default.installInsertBtn,
4735
+ onClick: insertHubUpdate
4736
+ }, t("dshCmdInsertHubUpdate")) : null), !enableDsh ? channelOffRow : [
4715
4737
  (0, react.createElement)("div", { className: CustomInstallView_module_css_default.installExample }, t("dshCmdExample")),
4716
4738
  (0, react.createElement)("div", { className: CustomInstallView_module_css_default.installRow }, (0, react.createElement)("input", {
4717
4739
  className: cmdError ? `${CustomInstallView_module_css_default.installInput} ${CustomInstallView_module_css_default.installInputError}` : CustomInstallView_module_css_default.installInput,
@@ -4771,26 +4793,26 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4771
4793
  css: css$5
4772
4794
  });
4773
4795
  var SettingsView_module_css_default = {
4796
+ "controlDropdown": "_506LLG_controlDropdown",
4797
+ "settingTitle": "_506LLG_settingTitle",
4774
4798
  "settingControl": "_506LLG_settingControl",
4775
- "root": "_506LLG_root",
4799
+ "settingControlStack": "_506LLG_settingControlStack",
4800
+ "sidebar": "_506LLG_sidebar",
4801
+ "navItemActive": "_506LLG_navItemActive",
4802
+ "settingLabel": "_506LLG_settingLabel",
4803
+ "card": "_506LLG_card",
4804
+ "pageTitle": "_506LLG_pageTitle",
4805
+ "navIcon": "_506LLG_navIcon",
4776
4806
  "pageHeader": "_506LLG_pageHeader",
4777
4807
  "pageDesc": "_506LLG_pageDesc",
4778
- "controlDropdown": "_506LLG_controlDropdown",
4779
4808
  "textInput": "_506LLG_textInput",
4809
+ "root": "_506LLG_root",
4810
+ "navItem": "_506LLG_navItem",
4780
4811
  "settingDesc": "_506LLG_settingDesc",
4781
- "settingLabel": "_506LLG_settingLabel",
4782
- "pageTitle": "_506LLG_pageTitle",
4783
- "settingControlStack": "_506LLG_settingControlStack",
4784
- "settingRowStack": "_506LLG_settingRowStack",
4785
- "navItemActive": "_506LLG_navItemActive",
4786
- "navIcon": "_506LLG_navIcon",
4812
+ "resetBtn": "_506LLG_resetBtn",
4787
4813
  "content": "_506LLG_content",
4788
- "settingTitle": "_506LLG_settingTitle",
4789
- "sidebar": "_506LLG_sidebar",
4790
- "navItem": "_506LLG_navItem",
4791
4814
  "settingRow": "_506LLG_settingRow",
4792
- "resetBtn": "_506LLG_resetBtn",
4793
- "card": "_506LLG_card"
4815
+ "settingRowStack": "_506LLG_settingRowStack"
4794
4816
  };
4795
4817
  //#endregion
4796
4818
  //#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
@@ -4809,17 +4831,17 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4809
4831
  css: css$4
4810
4832
  });
4811
4833
  var Dropdown_module_css_default = {
4834
+ "dropdownArrow": "B_Gxsq_dropdownArrow",
4812
4835
  "dropdownItemActive": "B_Gxsq_dropdownItemActive",
4836
+ "dropdownLabel": "B_Gxsq_dropdownLabel",
4813
4837
  "dropdownCount": "B_Gxsq_dropdownCount",
4814
- "dropdownCountActive": "B_Gxsq_dropdownCountActive",
4815
- "dropdownArrow": "B_Gxsq_dropdownArrow",
4838
+ "dropdownBtn": "B_Gxsq_dropdownBtn",
4816
4839
  "dropdown": "B_Gxsq_dropdown",
4817
4840
  "dropdownPanel": "B_Gxsq_dropdownPanel",
4818
- "dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
4819
- "dropdownBtn": "B_Gxsq_dropdownBtn",
4841
+ "dropdownCountActive": "B_Gxsq_dropdownCountActive",
4820
4842
  "dropdownItem": "B_Gxsq_dropdownItem",
4821
- "dropdownLabel": "B_Gxsq_dropdownLabel",
4822
- "dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen"
4843
+ "dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
4844
+ "dropdownItemLabel": "B_Gxsq_dropdownItemLabel"
4823
4845
  };
4824
4846
  //#endregion
4825
4847
  //#region src/client/components/ui/Dropdown.tsx
@@ -4897,9 +4919,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4897
4919
  css: css$3
4898
4920
  });
4899
4921
  var Toggle_module_css_default = {
4922
+ "knob": "k-cD4G_knob",
4900
4923
  "toggleOn": "k-cD4G_toggleOn",
4901
- "toggle": "k-cD4G_toggle",
4902
- "knob": "k-cD4G_knob"
4924
+ "toggle": "k-cD4G_toggle"
4903
4925
  };
4904
4926
  //#endregion
4905
4927
  //#region src/client/components/ui/Toggle.tsx
@@ -4940,29 +4962,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4940
4962
  css: css$2
4941
4963
  });
4942
4964
  var DiagnosticsView_module_css_default = {
4943
- "summary": "k9eRya_summary",
4965
+ "panel": "k9eRya_panel",
4944
4966
  "summaryRunning": "k9eRya_summaryRunning",
4945
- "meta": "k9eRya_meta",
4946
- "diagPulse": "k9eRya_diagPulse",
4967
+ "envRow": "k9eRya_envRow",
4968
+ "headHint": "k9eRya_headHint",
4969
+ "runBtn": "k9eRya_runBtn",
4970
+ "display": "k9eRya_display",
4947
4971
  "badge": "k9eRya_badge",
4948
- "summaryOk": "k9eRya_summaryOk",
4949
- "head": "k9eRya_head",
4950
4972
  "envCopyBtn": "k9eRya_envCopyBtn",
4951
4973
  "envDesc": "k9eRya_envDesc",
4952
- "display": "k9eRya_display",
4953
- "headHint": "k9eRya_headHint",
4954
- "envRow": "k9eRya_envRow",
4974
+ "diagPulse": "k9eRya_diagPulse",
4975
+ "envLabel": "k9eRya_envLabel",
4976
+ "summaryOk": "k9eRya_summaryOk",
4977
+ "head": "k9eRya_head",
4978
+ "summaryFail": "k9eRya_summaryFail",
4979
+ "row": "k9eRya_row",
4955
4980
  "badgeOk": "k9eRya_badgeOk",
4956
- "badgeRunning": "k9eRya_badgeRunning",
4981
+ "summary": "k9eRya_summary",
4957
4982
  "envTitle": "k9eRya_envTitle",
4958
- "summaryFail": "k9eRya_summaryFail",
4959
- "envLabel": "k9eRya_envLabel",
4960
4983
  "badgeIdle": "k9eRya_badgeIdle",
4961
- "name": "k9eRya_name",
4962
- "runBtn": "k9eRya_runBtn",
4963
- "row": "k9eRya_row",
4964
4984
  "badgeFail": "k9eRya_badgeFail",
4965
- "panel": "k9eRya_panel"
4985
+ "badgeRunning": "k9eRya_badgeRunning",
4986
+ "name": "k9eRya_name",
4987
+ "meta": "k9eRya_meta"
4966
4988
  };
4967
4989
  //#endregion
4968
4990
  //#region src/client/components/views/DiagnosticsView.tsx
@@ -5125,57 +5147,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5125
5147
  css: css$1
5126
5148
  });
5127
5149
  var LogsView_module_css_default = {
5128
- "pathDraft": "_3j77BW_pathDraft",
5129
- "searchInput": "_3j77BW_searchInput",
5130
- "panel": "_3j77BW_panel",
5131
- "list": "_3j77BW_list",
5132
- "foot": "_3j77BW_foot",
5133
- "catInstall": "_3j77BW_catInstall",
5150
+ "badgeError": "_3j77BW_badgeError",
5151
+ "pathDialogHint": "_3j77BW_pathDialogHint",
5152
+ "search": "_3j77BW_search",
5134
5153
  "catUpdate": "_3j77BW_catUpdate",
5154
+ "more": "_3j77BW_more",
5155
+ "panel": "_3j77BW_panel",
5156
+ "entry": "_3j77BW_entry",
5157
+ "filterChip": "_3j77BW_filterChip",
5135
5158
  "event": "_3j77BW_event",
5159
+ "pathDialogRow": "_3j77BW_pathDialogRow",
5160
+ "foot": "_3j77BW_foot",
5161
+ "pathDialogReset": "_3j77BW_pathDialogReset",
5162
+ "actions": "_3j77BW_actions",
5163
+ "badgeWarn": "_3j77BW_badgeWarn",
5164
+ "catUninstall": "_3j77BW_catUninstall",
5165
+ "catSettings": "_3j77BW_catSettings",
5166
+ "clearBtn": "_3j77BW_clearBtn",
5167
+ "pathLabel": "_3j77BW_pathLabel",
5168
+ "logList": "_3j77BW_logList",
5136
5169
  "footCount": "_3j77BW_footCount",
5137
- "catDiagnostics": "_3j77BW_catDiagnostics",
5138
- "message": "_3j77BW_message",
5139
- "linkBtn": "_3j77BW_linkBtn",
5140
- "badgeSuccess": "_3j77BW_badgeSuccess",
5170
+ "catInstall": "_3j77BW_catInstall",
5171
+ "previewRow": "_3j77BW_previewRow",
5141
5172
  "badgeInfo": "_3j77BW_badgeInfo",
5142
- "pathText": "_3j77BW_pathText",
5173
+ "moreEnd": "_3j77BW_moreEnd",
5174
+ "catSystem": "_3j77BW_catSystem",
5143
5175
  "footFail": "_3j77BW_footFail",
5144
- "filterChip": "_3j77BW_filterChip",
5176
+ "btn": "_3j77BW_btn",
5177
+ "catBadge": "_3j77BW_catBadge",
5178
+ "pathDraft": "_3j77BW_pathDraft",
5179
+ "linkBtn": "_3j77BW_linkBtn",
5145
5180
  "head": "_3j77BW_head",
5146
- "empty": "_3j77BW_empty",
5147
- "search": "_3j77BW_search",
5148
- "pathDialog": "_3j77BW_pathDialog",
5149
- "badgeDebug": "_3j77BW_badgeDebug",
5150
- "pathRow": "_3j77BW_pathRow",
5151
- "badgeError": "_3j77BW_badgeError",
5152
- "headHint": "_3j77BW_headHint",
5153
- "clearBtn": "_3j77BW_clearBtn",
5154
- "pathLabel": "_3j77BW_pathLabel",
5155
- "headActions": "_3j77BW_headActions",
5156
- "moreEnd": "_3j77BW_moreEnd",
5157
- "badgeWarn": "_3j77BW_badgeWarn",
5158
- "pathDialogRow": "_3j77BW_pathDialogRow",
5159
5181
  "badge": "_3j77BW_badge",
5160
- "more": "_3j77BW_more",
5182
+ "list": "_3j77BW_list",
5183
+ "searchInput": "_3j77BW_searchInput",
5184
+ "catDiagnostics": "_3j77BW_catDiagnostics",
5185
+ "empty": "_3j77BW_empty",
5161
5186
  "footActions": "_3j77BW_footActions",
5162
- "pathDialogReset": "_3j77BW_pathDialogReset",
5163
- "catBadge": "_3j77BW_catBadge",
5164
- "logList": "_3j77BW_logList",
5187
+ "badgeSuccess": "_3j77BW_badgeSuccess",
5188
+ "badgeDebug": "_3j77BW_badgeDebug",
5165
5189
  "pathDialogFoot": "_3j77BW_pathDialogFoot",
5166
- "catUninstall": "_3j77BW_catUninstall",
5167
- "catSettings": "_3j77BW_catSettings",
5168
- "catSystem": "_3j77BW_catSystem",
5169
- "filterChipActive": "_3j77BW_filterChipActive",
5170
- "actions": "_3j77BW_actions",
5171
- "time": "_3j77BW_time",
5172
- "previewRow": "_3j77BW_previewRow",
5173
5190
  "footPath": "_3j77BW_footPath",
5174
- "pathDialogDesc": "_3j77BW_pathDialogDesc",
5175
- "pathDialogHint": "_3j77BW_pathDialogHint",
5191
+ "pathText": "_3j77BW_pathText",
5176
5192
  "filterBar": "_3j77BW_filterBar",
5177
- "btn": "_3j77BW_btn",
5178
- "entry": "_3j77BW_entry"
5193
+ "pathRow": "_3j77BW_pathRow",
5194
+ "pathDialog": "_3j77BW_pathDialog",
5195
+ "filterChipActive": "_3j77BW_filterChipActive",
5196
+ "time": "_3j77BW_time",
5197
+ "headActions": "_3j77BW_headActions",
5198
+ "message": "_3j77BW_message",
5199
+ "headHint": "_3j77BW_headHint",
5200
+ "pathDialogDesc": "_3j77BW_pathDialogDesc"
5179
5201
  };
5180
5202
  //#endregion
5181
5203
  //#region src/client/components/modals/LogsModal.tsx
@@ -6321,6 +6343,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6321
6343
  enableGit: hubSettings.enableGitInstall,
6322
6344
  enableDsh: hubSettings.enableDshInstall,
6323
6345
  onOpenSettings: () => setView("settings"),
6346
+ profile: env?.profile ?? "web",
6324
6347
  onInstallCustom: (raw, opts) => {
6325
6348
  const target = raw.trim();
6326
6349
  if (!target) return;
@@ -6353,7 +6376,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6353
6376
  });
6354
6377
  }
6355
6378
  }), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
6356
- info: catalog.hubUpdateInfo ?? { version: "1.3.3" },
6379
+ info: catalog.hubUpdateInfo ?? { version: "1.3.5" },
6357
6380
  lang,
6358
6381
  t,
6359
6382
  hasUpdate: catalog.hubHasUpdate,