dsh-plugin 1.4.8 → 1.4.9
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/README.en.md +9 -9
- package/README.md +9 -9
- package/client/client.js +296 -296
- package/lib/services/probe.js +15 -4
- package/lib/services/profile/profile.js +33 -4
- package/lib/types/services/probe.d.ts +9 -0
- package/lib/types/services/profile/profile.d.ts +10 -0
- package/package.json +1 -1
- package/src/server/services/probe.ts +15 -3
- package/src/server/services/profile/profile.ts +29 -4
package/README.en.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
DSH Plugin Hub is a **community plugin marketplace for DeepSeek Harness**: an open-source plugin built to the official plugin development spec. Installed under **Settings → Plugin Hub**, it lets you browse, search and install community plugins without leaving the app. This is an independent community project, not affiliated with DeepSeek Harness.
|
|
30
30
|
|
|
31
31
|
<p align="center">
|
|
32
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
32
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-market-en.png?v=2" alt="DSH Plugin Hub plugin market UI" width="840">
|
|
33
33
|
</p>
|
|
34
34
|
|
|
35
35
|
## Plugin Hub Features
|
|
@@ -76,8 +76,8 @@ Questions, feature ideas or just want to talk plugins? Scan the QR code to join
|
|
|
76
76
|
**Installed plugins · Custom install**
|
|
77
77
|
|
|
78
78
|
<p align="center">
|
|
79
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
80
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
79
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-installed-en.png?v=2" alt="Installed plugins" width="400">
|
|
80
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-custom-install-en.png?v=2" alt="Custom install" width="400">
|
|
81
81
|
</p>
|
|
82
82
|
|
|
83
83
|
Manages every installed plugin with search, source filters and sorting, plus update / uninstall and reveal-in-Finder per row · Installs any plugin outside the catalog via three channels: npm package, GitHub source and DSH command
|
|
@@ -85,8 +85,8 @@ Manages every installed plugin with search, source filters and sorting, plus upd
|
|
|
85
85
|
**Settings · System logs**
|
|
86
86
|
|
|
87
87
|
<p align="center">
|
|
88
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
89
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
88
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-settings-en.png?v=2" alt="Settings" width="400">
|
|
89
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-system-logs-en.png?v=2" alt="System logs" width="400">
|
|
90
90
|
</p>
|
|
91
91
|
|
|
92
92
|
Centralizes update checks, npm mirror, proxy channel, trust toggles and log location · Records install / uninstall / settings / diagnostics trails, filterable by category and level, with a built-in viewer
|
|
@@ -94,8 +94,8 @@ Centralizes update checks, npm mirror, proxy channel, trust toggles and log loca
|
|
|
94
94
|
**Confirm install · Confirm uninstall**
|
|
95
95
|
|
|
96
96
|
<p align="center">
|
|
97
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
98
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
97
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-install-confirm-en.png?v=2" alt="Confirm install" width="400">
|
|
98
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-uninstall-confirm-en.png?v=2" alt="Confirm uninstall" width="400">
|
|
99
99
|
</p>
|
|
100
100
|
|
|
101
101
|
Shows the plugin, its source repo and the command before anything runs; the install starts only after confirmation · Shows what will be removed and its source; nothing is removed until the user confirms
|
|
@@ -103,8 +103,8 @@ Shows the plugin, its source repo and the command before anything runs; the inst
|
|
|
103
103
|
**Confirm update · Notifications**
|
|
104
104
|
|
|
105
105
|
<p align="center">
|
|
106
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
107
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
106
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-update-confirm-en.png?v=2" alt="Confirm update" width="400">
|
|
107
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-notifications-en.png?v=2" alt="Notifications" width="400">
|
|
108
108
|
</p>
|
|
109
109
|
|
|
110
110
|
Pops up when a newer version is found; confirming overwrite-installs in place to the latest release · Gathers install / remove / update history, live task progress and pending-restart reminders in one place
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
DSH Plugin Hub 是 **DeepSeek Harness 社区插件市场**:一个遵循官方插件开发规范构建的开源插件,安装进「设置 → 插件市场」后,无需离开应用即可浏览、搜索并一键安装社区插件。本项目为独立社区项目,与 DeepSeek Harness 官方无隶属关系。
|
|
30
30
|
|
|
31
31
|
<p align="center">
|
|
32
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
32
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-market-zh.png?v=2" alt="DSH Plugin Hub 插件市场界面" width="840">
|
|
33
33
|
</p>
|
|
34
34
|
|
|
35
35
|
## 插件市场特性
|
|
@@ -76,8 +76,8 @@ DSH Plugin Hub 是 **DeepSeek Harness 社区插件市场**:一个遵循官方
|
|
|
76
76
|
**已安装插件列表 · 自定义安装**
|
|
77
77
|
|
|
78
78
|
<p align="center">
|
|
79
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
80
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
79
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-installed-zh.png?v=2" alt="已安装插件列表" width="400">
|
|
80
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-custom-install-zh.png?v=2" alt="自定义安装" width="400">
|
|
81
81
|
</p>
|
|
82
82
|
|
|
83
83
|
集中管理当前环境已装的全部插件,支持搜索、来源筛选与排序,行尾提供更新、卸载与「在 Finder 中显示」 · 手动安装目录外的任意插件,支持 NPM 包、GitHub 源码与 DSH 命令行三种通道
|
|
@@ -85,8 +85,8 @@ DSH Plugin Hub 是 **DeepSeek Harness 社区插件市场**:一个遵循官方
|
|
|
85
85
|
**设置 · 系统日志**
|
|
86
86
|
|
|
87
87
|
<p align="center">
|
|
88
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
89
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
88
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-settings-zh.png?v=2" alt="设置" width="400">
|
|
89
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-system-logs-zh.png?v=2" alt="系统日志" width="400">
|
|
90
90
|
</p>
|
|
91
91
|
|
|
92
92
|
集中配置更新检查、NPM 镜像源、代理通道、安全信任与日志存放位置 · 记录安装、卸载、设置变更与诊断轨迹,按分类与级别筛选,内置日志查看器
|
|
@@ -94,8 +94,8 @@ DSH Plugin Hub 是 **DeepSeek Harness 社区插件市场**:一个遵循官方
|
|
|
94
94
|
**确认安装 · 确认卸载**
|
|
95
95
|
|
|
96
96
|
<p align="center">
|
|
97
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
98
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
97
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-install-confirm-zh.png?v=2" alt="确认安装" width="400">
|
|
98
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-uninstall-confirm-zh.png?v=2" alt="确认卸载" width="400">
|
|
99
99
|
</p>
|
|
100
100
|
|
|
101
101
|
安装前展示插件名称、来源仓库与执行命令,确认后才开始安装 · 卸载前展示待移除的插件,确认后才从环境移除,避免误删
|
|
@@ -103,8 +103,8 @@ DSH Plugin Hub 是 **DeepSeek Harness 社区插件市场**:一个遵循官方
|
|
|
103
103
|
**确认更新 · 通知中心**
|
|
104
104
|
|
|
105
105
|
<p align="center">
|
|
106
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
107
|
-
<img src="https://api.dsh-plugin.org/images/releases/1-4-
|
|
106
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-update-confirm-zh.png?v=2" alt="确认更新" width="400">
|
|
107
|
+
<img src="https://api.dsh-plugin.org/images/releases/1-4-8/dsh-plugin-hub-notifications-zh.png?v=2" alt="通知中心" width="400">
|
|
108
108
|
</p>
|
|
109
109
|
|
|
110
110
|
检测到新版本时弹出,确认后原位覆盖安装到最新版 · 集中管理安装、卸载、更新的历史记录、实时进度与待重启提醒
|
package/client/client.js
CHANGED
|
@@ -696,42 +696,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
696
696
|
css: css$11
|
|
697
697
|
});
|
|
698
698
|
var Header_module_css_default = {
|
|
699
|
-
"
|
|
700
|
-
"search": "qikqja_search",
|
|
701
|
-
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
702
|
-
"controls": "qikqja_controls",
|
|
703
|
-
"tab": "qikqja_tab",
|
|
704
|
-
"title": "qikqja_title",
|
|
705
|
-
"resultCount": "qikqja_resultCount",
|
|
706
|
-
"brandTitle": "qikqja_brandTitle",
|
|
707
|
-
"version": "qikqja_version",
|
|
699
|
+
"headerTitleRow": "qikqja_headerTitleRow",
|
|
708
700
|
"headerRight": "qikqja_headerRight",
|
|
709
|
-
"segBtn": "qikqja_segBtn",
|
|
710
701
|
"adText": "qikqja_adText",
|
|
711
|
-
"tabsRow": "qikqja_tabsRow",
|
|
712
|
-
"taglineLink": "qikqja_taglineLink",
|
|
713
|
-
"tabs": "qikqja_tabs",
|
|
714
|
-
"aboutBtn": "qikqja_aboutBtn",
|
|
715
|
-
"logoIcon": "qikqja_logoIcon",
|
|
716
|
-
"tabActive": "qikqja_tabActive",
|
|
717
|
-
"segLabel": "qikqja_segLabel",
|
|
718
|
-
"sortGroup": "qikqja_sortGroup",
|
|
719
702
|
"versionBtn": "qikqja_versionBtn",
|
|
720
|
-
"
|
|
703
|
+
"segBtn": "qikqja_segBtn",
|
|
704
|
+
"adBanner": "qikqja_adBanner",
|
|
705
|
+
"search": "qikqja_search",
|
|
721
706
|
"githubIcon": "qikqja_githubIcon",
|
|
707
|
+
"version": "qikqja_version",
|
|
708
|
+
"logoIcon": "qikqja_logoIcon",
|
|
709
|
+
"root": "qikqja_root",
|
|
710
|
+
"aboutBtn": "qikqja_aboutBtn",
|
|
711
|
+
"copyIcon": "qikqja_copyIcon",
|
|
712
|
+
"segGroup": "qikqja_segGroup",
|
|
713
|
+
"tabs": "qikqja_tabs",
|
|
722
714
|
"langBtn": "qikqja_langBtn",
|
|
723
|
-
"
|
|
724
|
-
"
|
|
715
|
+
"adBadge": "qikqja_adBadge",
|
|
716
|
+
"searchRow": "qikqja_searchRow",
|
|
717
|
+
"segLabel": "qikqja_segLabel",
|
|
725
718
|
"resultSeg": "qikqja_resultSeg",
|
|
719
|
+
"tab": "qikqja_tab",
|
|
720
|
+
"title": "qikqja_title",
|
|
721
|
+
"tabCount": "qikqja_tabCount",
|
|
722
|
+
"githubLink": "qikqja_githubLink",
|
|
723
|
+
"adArrow": "qikqja_adArrow",
|
|
724
|
+
"brandTitle": "qikqja_brandTitle",
|
|
725
|
+
"resultCount": "qikqja_resultCount",
|
|
726
|
+
"taglineLink": "qikqja_taglineLink",
|
|
727
|
+
"controls": "qikqja_controls",
|
|
728
|
+
"sortGroup": "qikqja_sortGroup",
|
|
729
|
+
"tabsRow": "qikqja_tabsRow",
|
|
726
730
|
"segBtnActive": "qikqja_segBtnActive",
|
|
727
|
-
"searchRow": "qikqja_searchRow",
|
|
728
731
|
"header": "qikqja_header",
|
|
729
|
-
"
|
|
730
|
-
"
|
|
731
|
-
"
|
|
732
|
-
"tagline": "qikqja_tagline",
|
|
733
|
-
"adBadge": "qikqja_adBadge",
|
|
734
|
-
"tabCount": "qikqja_tabCount"
|
|
732
|
+
"tabActive": "qikqja_tabActive",
|
|
733
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
734
|
+
"tagline": "qikqja_tagline"
|
|
735
735
|
};
|
|
736
736
|
//#endregion
|
|
737
737
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
@@ -750,136 +750,136 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
750
750
|
css: css$10
|
|
751
751
|
});
|
|
752
752
|
var Modal_module_css_default = {
|
|
753
|
-
"
|
|
754
|
-
"failList": "BiQ1zG_failList",
|
|
755
|
-
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
756
|
-
"modalInstall": "BiQ1zG_modalInstall",
|
|
757
|
-
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
758
|
-
"noticeHead": "BiQ1zG_noticeHead",
|
|
759
|
-
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
760
|
-
"aboutModal": "BiQ1zG_aboutModal",
|
|
761
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
762
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
763
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
764
|
-
"toast": "BiQ1zG_toast",
|
|
765
|
-
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
766
|
-
"errorTitle": "BiQ1zG_errorTitle",
|
|
767
|
-
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
753
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
768
754
|
"failEmpty": "BiQ1zG_failEmpty",
|
|
769
|
-
"
|
|
770
|
-
"
|
|
755
|
+
"resultTitle": "BiQ1zG_resultTitle",
|
|
756
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
757
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
758
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
771
759
|
"progressTrack": "BiQ1zG_progressTrack",
|
|
772
|
-
"
|
|
773
|
-
"
|
|
774
|
-
"
|
|
775
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
776
|
-
"detailModal": "BiQ1zG_detailModal",
|
|
760
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
761
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
762
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
777
763
|
"modalClose": "BiQ1zG_modalClose",
|
|
778
|
-
"
|
|
779
|
-
"
|
|
780
|
-
"
|
|
764
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
765
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
766
|
+
"failHead": "BiQ1zG_failHead",
|
|
767
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
768
|
+
"modal": "BiQ1zG_modal",
|
|
769
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
770
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
771
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
772
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
773
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
781
774
|
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
782
|
-
"
|
|
783
|
-
"
|
|
784
|
-
"
|
|
775
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
776
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
777
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
785
778
|
"detailDim": "BiQ1zG_detailDim",
|
|
779
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
780
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
781
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
786
782
|
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
783
|
+
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
784
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
785
|
+
"toast": "BiQ1zG_toast",
|
|
786
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
787
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
788
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
789
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
790
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
791
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
792
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
793
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
794
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
795
|
+
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
796
|
+
"detailLabel": "BiQ1zG_detailLabel",
|
|
797
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
798
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
799
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
800
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
801
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
802
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
787
803
|
"trustHint": "BiQ1zG_trustHint",
|
|
788
|
-
"
|
|
804
|
+
"result": "BiQ1zG_result",
|
|
805
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
789
806
|
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
790
|
-
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
791
|
-
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
792
|
-
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
793
|
-
"aboutContent": "BiQ1zG_aboutContent",
|
|
794
|
-
"failClear": "BiQ1zG_failClear",
|
|
795
|
-
"resultTitle": "BiQ1zG_resultTitle",
|
|
796
|
-
"detailArrow": "BiQ1zG_detailArrow",
|
|
797
|
-
"modalLink": "BiQ1zG_modalLink",
|
|
798
|
-
"modalCancel": "BiQ1zG_modalCancel",
|
|
799
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
800
|
-
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
801
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
802
|
-
"linkIcon": "BiQ1zG_linkIcon",
|
|
803
|
-
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
804
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
805
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
806
|
-
"modalActions": "BiQ1zG_modalActions",
|
|
807
807
|
"failRow": "BiQ1zG_failRow",
|
|
808
|
-
"
|
|
809
|
-
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
808
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
810
809
|
"modalLabel": "BiQ1zG_modalLabel",
|
|
810
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
811
|
+
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
812
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
813
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
814
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
815
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
816
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
817
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
818
|
+
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
819
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
820
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
821
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
811
822
|
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
812
|
-
"
|
|
813
|
-
"
|
|
823
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
824
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
825
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
826
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
827
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
828
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
829
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
830
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
831
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
832
|
+
"failClear": "BiQ1zG_failClear",
|
|
833
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
814
834
|
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
815
|
-
"
|
|
816
|
-
"
|
|
817
|
-
"
|
|
818
|
-
"
|
|
835
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
836
|
+
"errorModal": "BiQ1zG_errorModal",
|
|
837
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
838
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
839
|
+
"failKind": "BiQ1zG_failKind",
|
|
840
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
841
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
842
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
843
|
+
"failList": "BiQ1zG_failList",
|
|
844
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
845
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
846
|
+
"progressText": "BiQ1zG_progressText",
|
|
847
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
848
|
+
"progress": "BiQ1zG_progress",
|
|
849
|
+
"overlay": "BiQ1zG_overlay",
|
|
850
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
819
851
|
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
820
|
-
"queuedHint": "BiQ1zG_queuedHint",
|
|
821
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
822
852
|
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
823
853
|
"modalDesc": "BiQ1zG_modalDesc",
|
|
824
|
-
"
|
|
825
|
-
"
|
|
826
|
-
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
827
|
-
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
828
|
-
"detailPathText": "BiQ1zG_detailPathText",
|
|
829
|
-
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
830
|
-
"failKind": "BiQ1zG_failKind",
|
|
831
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
854
|
+
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
855
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
832
856
|
"modalValue": "BiQ1zG_modalValue",
|
|
833
|
-
"
|
|
834
|
-
"
|
|
835
|
-
"
|
|
836
|
-
"
|
|
837
|
-
"modalTitle": "BiQ1zG_modalTitle",
|
|
838
|
-
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
839
|
-
"toastIn": "BiQ1zG_toastIn",
|
|
840
|
-
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
841
|
-
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
842
|
-
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
843
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
844
|
-
"noticeTime": "BiQ1zG_noticeTime",
|
|
845
|
-
"errorBox": "BiQ1zG_errorBox",
|
|
846
|
-
"failCopy": "BiQ1zG_failCopy",
|
|
847
|
-
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
848
|
-
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
849
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
850
|
-
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
857
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
858
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
859
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
860
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
851
861
|
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
852
|
-
"
|
|
853
|
-
"
|
|
854
|
-
"
|
|
855
|
-
"
|
|
856
|
-
"modalBody": "BiQ1zG_modalBody",
|
|
857
|
-
"modalCmd": "BiQ1zG_modalCmd",
|
|
862
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
863
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
864
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
865
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
858
866
|
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
867
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
868
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
869
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
859
870
|
"logModal": "BiQ1zG_logModal",
|
|
860
|
-
"
|
|
861
|
-
"
|
|
862
|
-
"
|
|
863
|
-
"
|
|
864
|
-
"
|
|
865
|
-
"
|
|
871
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
872
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
873
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
874
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
875
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
876
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
877
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
866
878
|
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
867
|
-
"
|
|
868
|
-
"
|
|
869
|
-
"
|
|
870
|
-
"
|
|
871
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
872
|
-
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
873
|
-
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
874
|
-
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
875
|
-
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
876
|
-
"errorModal": "BiQ1zG_errorModal",
|
|
877
|
-
"modalRow": "BiQ1zG_modalRow",
|
|
878
|
-
"resultDesc": "BiQ1zG_resultDesc",
|
|
879
|
-
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
880
|
-
"progress": "BiQ1zG_progress",
|
|
881
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
882
|
-
"noticeRowOk": "BiQ1zG_noticeRowOk"
|
|
879
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
880
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
881
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
882
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy"
|
|
883
883
|
};
|
|
884
884
|
//#endregion
|
|
885
885
|
//#region src/client/logic/install-command.ts
|
|
@@ -949,7 +949,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
949
949
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
950
950
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
951
951
|
*/
|
|
952
|
-
const PLUGIN_VERSION = "1.4.
|
|
952
|
+
const PLUGIN_VERSION = "1.4.9";
|
|
953
953
|
const CATEGORY_ORDER = [
|
|
954
954
|
"interface",
|
|
955
955
|
"session",
|
|
@@ -1586,7 +1586,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1586
1586
|
*/
|
|
1587
1587
|
const hubHasUpdate = (() => {
|
|
1588
1588
|
if (!hubUpdateInfo) return false;
|
|
1589
|
-
if (hubUpdateInfo.version === "1.4.
|
|
1589
|
+
if (hubUpdateInfo.version === "1.4.9") return false;
|
|
1590
1590
|
const publishedAt = hubUpdateInfo.publishedAt;
|
|
1591
1591
|
if (publishedAt) {
|
|
1592
1592
|
const publishedMs = Date.parse(publishedAt);
|
|
@@ -4177,40 +4177,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4177
4177
|
css: css$9
|
|
4178
4178
|
});
|
|
4179
4179
|
var List_module_css_default = {
|
|
4180
|
+
"state": "_3XaZHa_state",
|
|
4181
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4182
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
4183
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
4184
|
+
"desc": "_3XaZHa_desc",
|
|
4185
|
+
"topics": "_3XaZHa_topics",
|
|
4186
|
+
"installBtn": "_3XaZHa_installBtn",
|
|
4187
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4188
|
+
"footer": "_3XaZHa_footer",
|
|
4189
|
+
"actions": "_3XaZHa_actions",
|
|
4190
|
+
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4191
|
+
"topic": "_3XaZHa_topic",
|
|
4192
|
+
"verified": "_3XaZHa_verified",
|
|
4193
|
+
"stats": "_3XaZHa_stats",
|
|
4194
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4195
|
+
"footLink": "_3XaZHa_footLink",
|
|
4196
|
+
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4197
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
4198
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4199
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
4200
|
+
"card": "_3XaZHa_card",
|
|
4180
4201
|
"cardSide": "_3XaZHa_cardSide",
|
|
4181
|
-
"
|
|
4182
|
-
"
|
|
4202
|
+
"list": "_3XaZHa_list",
|
|
4203
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4183
4204
|
"versionBadge": "_3XaZHa_versionBadge",
|
|
4184
|
-
"star": "_3XaZHa_star",
|
|
4185
|
-
"state": "_3XaZHa_state",
|
|
4186
|
-
"stateDesc": "_3XaZHa_stateDesc",
|
|
4187
|
-
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4188
4205
|
"cardMain": "_3XaZHa_cardMain",
|
|
4189
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4190
|
-
"desc": "_3XaZHa_desc",
|
|
4191
|
-
"list": "_3XaZHa_list",
|
|
4192
|
-
"card": "_3XaZHa_card",
|
|
4193
|
-
"footer": "_3XaZHa_footer",
|
|
4194
|
-
"fork": "_3XaZHa_fork",
|
|
4195
4206
|
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4196
|
-
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4197
|
-
"stateActions": "_3XaZHa_stateActions",
|
|
4198
|
-
"cardHead": "_3XaZHa_cardHead",
|
|
4199
|
-
"topics": "_3XaZHa_topics",
|
|
4200
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
4201
4207
|
"diagBtn": "_3XaZHa_diagBtn",
|
|
4202
|
-
"
|
|
4203
|
-
"topic": "_3XaZHa_topic",
|
|
4204
|
-
"body": "_3XaZHa_body",
|
|
4205
|
-
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4208
|
+
"fork": "_3XaZHa_fork",
|
|
4206
4209
|
"date": "_3XaZHa_date",
|
|
4210
|
+
"star": "_3XaZHa_star",
|
|
4207
4211
|
"detailBtn": "_3XaZHa_detailBtn",
|
|
4208
|
-
"
|
|
4209
|
-
"cardTitle": "_3XaZHa_cardTitle"
|
|
4210
|
-
"actions": "_3XaZHa_actions",
|
|
4211
|
-
"updateBadge": "_3XaZHa_updateBadge",
|
|
4212
|
-
"retryBtn": "_3XaZHa_retryBtn",
|
|
4213
|
-
"installBtn": "_3XaZHa_installBtn"
|
|
4212
|
+
"body": "_3XaZHa_body",
|
|
4213
|
+
"cardTitle": "_3XaZHa_cardTitle"
|
|
4214
4214
|
};
|
|
4215
4215
|
//#endregion
|
|
4216
4216
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4417,15 +4417,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4417
4417
|
css: css$8
|
|
4418
4418
|
});
|
|
4419
4419
|
var SectionTabs_module_css_default = {
|
|
4420
|
-
"
|
|
4421
|
-
"tabCount": "_7tvizq_tabCount",
|
|
4422
|
-
"root": "_7tvizq_root",
|
|
4423
|
-
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4420
|
+
"noticeCount": "_7tvizq_noticeCount",
|
|
4424
4421
|
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4425
4422
|
"tabActive": "_7tvizq_tabActive",
|
|
4426
4423
|
"tab": "_7tvizq_tab",
|
|
4424
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4427
4425
|
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4428
|
-
"
|
|
4426
|
+
"root": "_7tvizq_root",
|
|
4427
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
4428
|
+
"tabCount": "_7tvizq_tabCount"
|
|
4429
4429
|
};
|
|
4430
4430
|
//#endregion
|
|
4431
4431
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -4502,42 +4502,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4502
4502
|
css: css$7
|
|
4503
4503
|
});
|
|
4504
4504
|
var InstalledView_module_css_default = {
|
|
4505
|
-
"
|
|
4506
|
-
"
|
|
4507
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
4508
|
-
"rowMain": "_1nXeGW_rowMain",
|
|
4509
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4505
|
+
"segRow": "_1nXeGW_segRow",
|
|
4506
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4510
4507
|
"segBtn": "_1nXeGW_segBtn",
|
|
4508
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4511
4509
|
"versionBadge": "_1nXeGW_versionBadge",
|
|
4512
|
-
"
|
|
4513
|
-
"segRow": "_1nXeGW_segRow",
|
|
4514
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4515
|
-
"updateBadge": "_1nXeGW_updateBadge",
|
|
4510
|
+
"exampleRow": "_1nXeGW_exampleRow",
|
|
4516
4511
|
"root": "_1nXeGW_root",
|
|
4517
|
-
"
|
|
4512
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4518
4513
|
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4519
|
-
"
|
|
4514
|
+
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4515
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4520
4516
|
"rowCategory": "_1nXeGW_rowCategory",
|
|
4521
|
-
"
|
|
4522
|
-
"
|
|
4523
|
-
"
|
|
4524
|
-
"
|
|
4525
|
-
"
|
|
4517
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4518
|
+
"list": "_1nXeGW_list",
|
|
4519
|
+
"rowRestart": "_1nXeGW_rowRestart",
|
|
4520
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4521
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4526
4522
|
"statusDot": "_1nXeGW_statusDot",
|
|
4527
|
-
"
|
|
4523
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4524
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
4528
4525
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4529
|
-
"
|
|
4526
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4527
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
4528
|
+
"empty": "_1nXeGW_empty",
|
|
4530
4529
|
"row": "_1nXeGW_row",
|
|
4531
|
-
"list": "_1nXeGW_list",
|
|
4532
|
-
"searchWrap": "_1nXeGW_searchWrap",
|
|
4533
|
-
"rowMeta": "_1nXeGW_rowMeta",
|
|
4534
|
-
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4535
|
-
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4536
|
-
"segGroup": "_1nXeGW_segGroup",
|
|
4537
|
-
"rowRepo": "_1nXeGW_rowRepo",
|
|
4538
4530
|
"rowTitle": "_1nXeGW_rowTitle",
|
|
4539
|
-
"
|
|
4540
|
-
"
|
|
4531
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
4532
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
4533
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4534
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
4535
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4536
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4537
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4538
|
+
"rowDetail": "_1nXeGW_rowDetail",
|
|
4539
|
+
"rowMeta": "_1nXeGW_rowMeta",
|
|
4540
|
+
"segGroup": "_1nXeGW_segGroup"
|
|
4541
4541
|
};
|
|
4542
4542
|
//#endregion
|
|
4543
4543
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4783,28 +4783,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4783
4783
|
css: css$6
|
|
4784
4784
|
});
|
|
4785
4785
|
var CustomInstallView_module_css_default = {
|
|
4786
|
+
"helpNote": "zISxCG_helpNote",
|
|
4787
|
+
"installRow": "zISxCG_installRow",
|
|
4788
|
+
"installCardHead": "zISxCG_installCardHead",
|
|
4786
4789
|
"installLabel": "zISxCG_installLabel",
|
|
4787
|
-
"installInput": "zISxCG_installInput",
|
|
4788
|
-
"installError": "zISxCG_installError",
|
|
4789
|
-
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4790
|
-
"installBtn": "zISxCG_installBtn",
|
|
4791
|
-
"installCards": "zISxCG_installCards",
|
|
4792
4790
|
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4793
4791
|
"desc": "zISxCG_desc",
|
|
4792
|
+
"installCard": "zISxCG_installCard",
|
|
4793
|
+
"root": "zISxCG_root",
|
|
4794
|
+
"installCards": "zISxCG_installCards",
|
|
4795
|
+
"installInputError": "zISxCG_installInputError",
|
|
4796
|
+
"installInput": "zISxCG_installInput",
|
|
4794
4797
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4795
|
-
"installCardHead": "zISxCG_installCardHead",
|
|
4796
|
-
"installRow": "zISxCG_installRow",
|
|
4797
4798
|
"channelOff": "zISxCG_channelOff",
|
|
4799
|
+
"installBtn": "zISxCG_installBtn",
|
|
4800
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
4801
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4802
|
+
"helpBody": "zISxCG_helpBody",
|
|
4798
4803
|
"helpLine": "zISxCG_helpLine",
|
|
4799
|
-
"helpNote": "zISxCG_helpNote",
|
|
4800
4804
|
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
4801
|
-
"helpCmd": "zISxCG_helpCmd",
|
|
4802
|
-
"root": "zISxCG_root",
|
|
4803
4805
|
"installExample": "zISxCG_installExample",
|
|
4804
|
-
"
|
|
4805
|
-
"
|
|
4806
|
-
"channelOffText": "zISxCG_channelOffText",
|
|
4807
|
-
"helpBody": "zISxCG_helpBody"
|
|
4806
|
+
"installError": "zISxCG_installError",
|
|
4807
|
+
"helpCmd": "zISxCG_helpCmd"
|
|
4808
4808
|
};
|
|
4809
4809
|
//#endregion
|
|
4810
4810
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -5094,30 +5094,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5094
5094
|
css: css$5
|
|
5095
5095
|
});
|
|
5096
5096
|
var SettingsView_module_css_default = {
|
|
5097
|
-
"
|
|
5098
|
-
"card": "_506LLG_card",
|
|
5099
|
-
"settingTitle": "_506LLG_settingTitle",
|
|
5097
|
+
"proxyControl": "_506LLG_proxyControl",
|
|
5100
5098
|
"settingControlStack": "_506LLG_settingControlStack",
|
|
5101
|
-
"
|
|
5102
|
-
"
|
|
5103
|
-
"
|
|
5104
|
-
"
|
|
5099
|
+
"controlDropdown": "_506LLG_controlDropdown",
|
|
5100
|
+
"sidebar": "_506LLG_sidebar",
|
|
5101
|
+
"textInput": "_506LLG_textInput",
|
|
5102
|
+
"navItemActive": "_506LLG_navItemActive",
|
|
5103
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5105
5104
|
"pageTitle": "_506LLG_pageTitle",
|
|
5106
|
-
"
|
|
5105
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
5107
5106
|
"root": "_506LLG_root",
|
|
5108
|
-
"
|
|
5109
|
-
"textInput": "_506LLG_textInput",
|
|
5107
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
5110
5108
|
"navItem": "_506LLG_navItem",
|
|
5111
|
-
"
|
|
5112
|
-
"
|
|
5113
|
-
"sidebar": "_506LLG_sidebar",
|
|
5114
|
-
"proxyControl": "_506LLG_proxyControl",
|
|
5115
|
-
"navIcon": "_506LLG_navIcon",
|
|
5109
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
5110
|
+
"settingControl": "_506LLG_settingControl",
|
|
5116
5111
|
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5117
|
-
"
|
|
5112
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
5113
|
+
"card": "_506LLG_card",
|
|
5114
|
+
"navIcon": "_506LLG_navIcon",
|
|
5115
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
5118
5116
|
"proxyHint": "_506LLG_proxyHint",
|
|
5119
|
-
"
|
|
5120
|
-
"
|
|
5117
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
5118
|
+
"content": "_506LLG_content",
|
|
5119
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5120
|
+
"settingRow": "_506LLG_settingRow"
|
|
5121
5121
|
};
|
|
5122
5122
|
//#endregion
|
|
5123
5123
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -5136,18 +5136,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5136
5136
|
css: css$4
|
|
5137
5137
|
});
|
|
5138
5138
|
var Dropdown_module_css_default = {
|
|
5139
|
+
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
5139
5140
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
5140
|
-
"
|
|
5141
|
-
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5142
|
-
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
5141
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5143
5142
|
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5144
|
-
"
|
|
5145
|
-
"
|
|
5143
|
+
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5144
|
+
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5146
5145
|
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5147
|
-
"
|
|
5148
|
-
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
5146
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
5149
5147
|
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5150
|
-
"
|
|
5148
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5149
|
+
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
5150
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel"
|
|
5151
5151
|
};
|
|
5152
5152
|
//#endregion
|
|
5153
5153
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -5166,9 +5166,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5166
5166
|
css: css$3
|
|
5167
5167
|
});
|
|
5168
5168
|
var Toggle_module_css_default = {
|
|
5169
|
-
"knob": "k-cD4G_knob",
|
|
5170
5169
|
"toggle": "k-cD4G_toggle",
|
|
5171
|
-
"toggleOn": "k-cD4G_toggleOn"
|
|
5170
|
+
"toggleOn": "k-cD4G_toggleOn",
|
|
5171
|
+
"knob": "k-cD4G_knob"
|
|
5172
5172
|
};
|
|
5173
5173
|
//#endregion
|
|
5174
5174
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -5268,29 +5268,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5268
5268
|
css: css$2
|
|
5269
5269
|
});
|
|
5270
5270
|
var DiagnosticsView_module_css_default = {
|
|
5271
|
+
"meta": "k9eRya_meta",
|
|
5272
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
5273
|
+
"headHint": "k9eRya_headHint",
|
|
5274
|
+
"summaryOk": "k9eRya_summaryOk",
|
|
5275
|
+
"row": "k9eRya_row",
|
|
5276
|
+
"envDesc": "k9eRya_envDesc",
|
|
5277
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
5271
5278
|
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5272
|
-
"name": "k9eRya_name",
|
|
5273
5279
|
"summaryRunning": "k9eRya_summaryRunning",
|
|
5274
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
5275
5280
|
"envTitle": "k9eRya_envTitle",
|
|
5276
|
-
"panel": "k9eRya_panel",
|
|
5277
5281
|
"runBtn": "k9eRya_runBtn",
|
|
5278
|
-
"
|
|
5282
|
+
"badge": "k9eRya_badge",
|
|
5279
5283
|
"badgeFail": "k9eRya_badgeFail",
|
|
5280
|
-
"
|
|
5281
|
-
"diagPulse": "k9eRya_diagPulse",
|
|
5282
|
-
"summaryOk": "k9eRya_summaryOk",
|
|
5284
|
+
"summaryFail": "k9eRya_summaryFail",
|
|
5283
5285
|
"envRow": "k9eRya_envRow",
|
|
5284
5286
|
"display": "k9eRya_display",
|
|
5285
|
-
"
|
|
5286
|
-
"envLabel": "k9eRya_envLabel",
|
|
5287
|
-
"envDesc": "k9eRya_envDesc",
|
|
5288
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
5289
|
-
"summary": "k9eRya_summary",
|
|
5290
|
-
"summaryFail": "k9eRya_summaryFail",
|
|
5291
|
-
"meta": "k9eRya_meta",
|
|
5287
|
+
"head": "k9eRya_head",
|
|
5292
5288
|
"badgeIdle": "k9eRya_badgeIdle",
|
|
5293
|
-
"
|
|
5289
|
+
"panel": "k9eRya_panel",
|
|
5290
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
5291
|
+
"name": "k9eRya_name",
|
|
5292
|
+
"summary": "k9eRya_summary",
|
|
5293
|
+
"envLabel": "k9eRya_envLabel"
|
|
5294
5294
|
};
|
|
5295
5295
|
//#endregion
|
|
5296
5296
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5468,57 +5468,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5468
5468
|
css: css$1
|
|
5469
5469
|
});
|
|
5470
5470
|
var LogsView_module_css_default = {
|
|
5471
|
-
"footPath": "_3j77BW_footPath",
|
|
5472
|
-
"catInstall": "_3j77BW_catInstall",
|
|
5473
|
-
"footActions": "_3j77BW_footActions",
|
|
5474
|
-
"time": "_3j77BW_time",
|
|
5475
|
-
"message": "_3j77BW_message",
|
|
5476
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
5477
|
-
"catSystem": "_3j77BW_catSystem",
|
|
5478
|
-
"clearBtn": "_3j77BW_clearBtn",
|
|
5479
|
-
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5480
5471
|
"linkBtn": "_3j77BW_linkBtn",
|
|
5481
|
-
"filterBar": "_3j77BW_filterBar",
|
|
5482
|
-
"pathText": "_3j77BW_pathText",
|
|
5483
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5484
|
-
"catUninstall": "_3j77BW_catUninstall",
|
|
5485
5472
|
"searchInput": "_3j77BW_searchInput",
|
|
5473
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
5474
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5475
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5476
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5477
|
+
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5478
|
+
"catSettings": "_3j77BW_catSettings",
|
|
5486
5479
|
"list": "_3j77BW_list",
|
|
5487
|
-
"pathRow": "_3j77BW_pathRow",
|
|
5488
5480
|
"event": "_3j77BW_event",
|
|
5481
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5482
|
+
"message": "_3j77BW_message",
|
|
5483
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5484
|
+
"catBadge": "_3j77BW_catBadge",
|
|
5485
|
+
"pathRow": "_3j77BW_pathRow",
|
|
5486
|
+
"foot": "_3j77BW_foot",
|
|
5489
5487
|
"pathLabel": "_3j77BW_pathLabel",
|
|
5490
|
-
"
|
|
5491
|
-
"
|
|
5492
|
-
"headActions": "_3j77BW_headActions",
|
|
5493
|
-
"more": "_3j77BW_more",
|
|
5494
|
-
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5495
|
-
"panel": "_3j77BW_panel",
|
|
5496
|
-
"badge": "_3j77BW_badge",
|
|
5497
|
-
"footFail": "_3j77BW_footFail",
|
|
5498
|
-
"footCount": "_3j77BW_footCount",
|
|
5499
|
-
"headHint": "_3j77BW_headHint",
|
|
5488
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5489
|
+
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5500
5490
|
"entry": "_3j77BW_entry",
|
|
5501
|
-
"
|
|
5491
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
5492
|
+
"badge": "_3j77BW_badge",
|
|
5502
5493
|
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5503
|
-
"
|
|
5504
|
-
"
|
|
5505
|
-
"
|
|
5506
|
-
"
|
|
5494
|
+
"btn": "_3j77BW_btn",
|
|
5495
|
+
"footCount": "_3j77BW_footCount",
|
|
5496
|
+
"panel": "_3j77BW_panel",
|
|
5497
|
+
"catUninstall": "_3j77BW_catUninstall",
|
|
5498
|
+
"pathText": "_3j77BW_pathText",
|
|
5507
5499
|
"actions": "_3j77BW_actions",
|
|
5508
|
-
"
|
|
5509
|
-
"
|
|
5510
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5511
|
-
"pathDraft": "_3j77BW_pathDraft",
|
|
5512
|
-
"head": "_3j77BW_head",
|
|
5513
|
-
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5500
|
+
"headHint": "_3j77BW_headHint",
|
|
5501
|
+
"footActions": "_3j77BW_footActions",
|
|
5514
5502
|
"logList": "_3j77BW_logList",
|
|
5515
|
-
"
|
|
5503
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5504
|
+
"more": "_3j77BW_more",
|
|
5505
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5516
5506
|
"catUpdate": "_3j77BW_catUpdate",
|
|
5517
5507
|
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5518
|
-
"
|
|
5508
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
5509
|
+
"footFail": "_3j77BW_footFail",
|
|
5510
|
+
"headActions": "_3j77BW_headActions",
|
|
5511
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5512
|
+
"search": "_3j77BW_search",
|
|
5513
|
+
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5514
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5515
|
+
"time": "_3j77BW_time",
|
|
5519
5516
|
"badgeError": "_3j77BW_badgeError",
|
|
5520
|
-
"
|
|
5521
|
-
"
|
|
5517
|
+
"catInstall": "_3j77BW_catInstall",
|
|
5518
|
+
"head": "_3j77BW_head",
|
|
5519
|
+
"footPath": "_3j77BW_footPath",
|
|
5520
|
+
"empty": "_3j77BW_empty",
|
|
5521
|
+
"catSystem": "_3j77BW_catSystem"
|
|
5522
5522
|
};
|
|
5523
5523
|
//#endregion
|
|
5524
5524
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6767,7 +6767,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6767
6767
|
openSection: settingsSection,
|
|
6768
6768
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
6769
6769
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6770
|
-
info: catalog.hubUpdateInfo ?? { version: "1.4.
|
|
6770
|
+
info: catalog.hubUpdateInfo ?? { version: "1.4.9" },
|
|
6771
6771
|
lang,
|
|
6772
6772
|
t,
|
|
6773
6773
|
hasUpdate: catalog.hubHasUpdate,
|
package/lib/services/probe.js
CHANGED
|
@@ -71,6 +71,20 @@ function macSystemProxy() {
|
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* 从 `reg query … /v ProxyServer` 的输出里解析出 `http://host:port`;解析不出返回 null。
|
|
76
|
+
* 注册表里的值常见三种写法:`http://127.0.0.1:10793`(带 scheme)、`127.0.0.1:10793`、
|
|
77
|
+
* `http=host:port;https=host:port`(按协议分别配置)。
|
|
78
|
+
* 字符类必须同时排除 `/` 与 `=`:只排除 `=` 时,带 scheme 的值会让「主机名」吞掉 `//`,
|
|
79
|
+
* 拼出 `http:////127.0.0.1:10793` 这种立刻失败的非法地址 —— 代理本来是通的,却把诊断、
|
|
80
|
+
* 目录拉取、npm/git 预检全判成「不可达」(dsh-plugin-hub#66)。
|
|
81
|
+
*/
|
|
82
|
+
export function parseWinProxyServer(stdout) {
|
|
83
|
+
const m = /([^:\s=/]+):(\d+)/.exec(stdout);
|
|
84
|
+
if (m === null)
|
|
85
|
+
return null;
|
|
86
|
+
return `http://${m[1]}:${m[2]}`;
|
|
87
|
+
}
|
|
74
88
|
/** Windows 系统代理:WinINET Internet 设置注册表;未开启返回 null。 */
|
|
75
89
|
function winSystemProxy() {
|
|
76
90
|
try {
|
|
@@ -79,10 +93,7 @@ function winSystemProxy() {
|
|
|
79
93
|
const server = spawnSync('reg', ['query', key, '/v', 'ProxyServer'], { encoding: 'utf8', timeout: 1500 });
|
|
80
94
|
if (!/0x1/i.test(enable.stdout ?? ''))
|
|
81
95
|
return null;
|
|
82
|
-
|
|
83
|
-
if (m === null)
|
|
84
|
-
return null;
|
|
85
|
-
return `http://${m[1]}:${m[2]}`;
|
|
96
|
+
return parseWinProxyServer(server.stdout ?? '');
|
|
86
97
|
}
|
|
87
98
|
catch {
|
|
88
99
|
return null;
|
|
@@ -8,13 +8,42 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { homedir } from 'node:os';
|
|
11
|
-
import { join } from 'node:path';
|
|
11
|
+
import { basename, dirname, join } from 'node:path';
|
|
12
12
|
import { PACKAGE_RE, REPO_RE } from '../install/install-types.js';
|
|
13
13
|
/** Resolve the active profile from the booted CLI args, falling back to `web`. */
|
|
14
14
|
export function readProfileArg(fallback = 'web') {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
return profileFromArgv(process.argv, fallback);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 从启动参数解析当前 profile,两种宿主形态都认:
|
|
19
|
+
* - 官方 CLI:`--profile <name>`(也兼容 `--profile=<name>` 等号形式);
|
|
20
|
+
* - Electron 桌面宿主:不传 `--profile`,而是把 profile 目录作为位置参数传入
|
|
21
|
+
* (`… <dshRoot> <home>\profiles\desktop …`)。
|
|
22
|
+
* 桌面端只认 `--profile` 会永远落回 fallback,把路由/日志/安装全挂到错误的 profile 上
|
|
23
|
+
* (日志写进 profiles/web/hub.log、市场必然「插件数据加载失败」,dsh-plugin-hub#65)。
|
|
24
|
+
* 位置参数按「父目录名为 profiles」精确识别 profile 目录,避免误取其它位置参数。
|
|
25
|
+
*/
|
|
26
|
+
export function profileFromArgv(argv, fallback = 'web') {
|
|
27
|
+
const index = argv.indexOf('--profile');
|
|
28
|
+
const candidate = index >= 0 ? argv[index + 1] : undefined;
|
|
29
|
+
if (candidate !== undefined && !candidate.startsWith('-'))
|
|
30
|
+
return candidate;
|
|
31
|
+
const equals = argv.find((arg) => arg.startsWith('--profile='));
|
|
32
|
+
if (equals !== undefined) {
|
|
33
|
+
const name = equals.slice('--profile='.length);
|
|
34
|
+
if (name !== '')
|
|
35
|
+
return name;
|
|
36
|
+
}
|
|
37
|
+
for (const arg of argv.slice(2)) {
|
|
38
|
+
if (arg === '' || arg.startsWith('-'))
|
|
39
|
+
continue;
|
|
40
|
+
if (basename(dirname(arg)) !== 'profiles')
|
|
41
|
+
continue;
|
|
42
|
+
const name = basename(arg);
|
|
43
|
+
if (name !== '')
|
|
44
|
+
return name;
|
|
45
|
+
}
|
|
46
|
+
return fallback;
|
|
18
47
|
}
|
|
19
48
|
/** Resolve a profile directory (`DSH_HOME` or `~/.dsh`). */
|
|
20
49
|
export function profileDirectory(profile) {
|
|
@@ -27,6 +27,15 @@ export declare function curlTlsArgs(): string[];
|
|
|
27
27
|
export declare function curlRevokeFlagUnsupported(code: number | null, stderr: string): boolean;
|
|
28
28
|
/** stderr 是否指向 Schannel 取不到证书吊销信息(据此归因为环境 TLS 问题,而非网络不通)。 */
|
|
29
29
|
export declare function tlsRevocationBlocked(stderr: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 从 `reg query … /v ProxyServer` 的输出里解析出 `http://host:port`;解析不出返回 null。
|
|
32
|
+
* 注册表里的值常见三种写法:`http://127.0.0.1:10793`(带 scheme)、`127.0.0.1:10793`、
|
|
33
|
+
* `http=host:port;https=host:port`(按协议分别配置)。
|
|
34
|
+
* 字符类必须同时排除 `/` 与 `=`:只排除 `=` 时,带 scheme 的值会让「主机名」吞掉 `//`,
|
|
35
|
+
* 拼出 `http:////127.0.0.1:10793` 这种立刻失败的非法地址 —— 代理本来是通的,却把诊断、
|
|
36
|
+
* 目录拉取、npm/git 预检全判成「不可达」(dsh-plugin-hub#66)。
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseWinProxyServer(stdout: string): string | null;
|
|
30
39
|
/**
|
|
31
40
|
* 操作系统级代理(macOS 系统网络设置 / Windows Internet 设置)。
|
|
32
41
|
* Node 内置 http(s) 不读系统代理,浏览器挂的代理 Node 看不见 —— 这里读出来
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
/** Resolve the active profile from the booted CLI args, falling back to `web`. */
|
|
2
2
|
export declare function readProfileArg(fallback?: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* 从启动参数解析当前 profile,两种宿主形态都认:
|
|
5
|
+
* - 官方 CLI:`--profile <name>`(也兼容 `--profile=<name>` 等号形式);
|
|
6
|
+
* - Electron 桌面宿主:不传 `--profile`,而是把 profile 目录作为位置参数传入
|
|
7
|
+
* (`… <dshRoot> <home>\profiles\desktop …`)。
|
|
8
|
+
* 桌面端只认 `--profile` 会永远落回 fallback,把路由/日志/安装全挂到错误的 profile 上
|
|
9
|
+
* (日志写进 profiles/web/hub.log、市场必然「插件数据加载失败」,dsh-plugin-hub#65)。
|
|
10
|
+
* 位置参数按「父目录名为 profiles」精确识别 profile 目录,避免误取其它位置参数。
|
|
11
|
+
*/
|
|
12
|
+
export declare function profileFromArgv(argv: readonly string[], fallback?: string): string;
|
|
3
13
|
/** Resolve a profile directory (`DSH_HOME` or `~/.dsh`). */
|
|
4
14
|
export declare function profileDirectory(profile: string): string;
|
|
5
15
|
/** Build a safe explicit HTTPS Git target, or null when the repo is unsafe. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.9",
|
|
4
4
|
"description": "A community plugin marketplace for DeepSeek Harness, built to the official plugin spec — browse, search and install 10000+ human-curated community plugins without leaving the app. · DeepSeek Harness 社区插件市场(遵循官方开发规范):10000+ 人工精选社区插件,每日更新。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -90,6 +90,20 @@ function macSystemProxy(): string | null {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/**
|
|
94
|
+
* 从 `reg query … /v ProxyServer` 的输出里解析出 `http://host:port`;解析不出返回 null。
|
|
95
|
+
* 注册表里的值常见三种写法:`http://127.0.0.1:10793`(带 scheme)、`127.0.0.1:10793`、
|
|
96
|
+
* `http=host:port;https=host:port`(按协议分别配置)。
|
|
97
|
+
* 字符类必须同时排除 `/` 与 `=`:只排除 `=` 时,带 scheme 的值会让「主机名」吞掉 `//`,
|
|
98
|
+
* 拼出 `http:////127.0.0.1:10793` 这种立刻失败的非法地址 —— 代理本来是通的,却把诊断、
|
|
99
|
+
* 目录拉取、npm/git 预检全判成「不可达」(dsh-plugin-hub#66)。
|
|
100
|
+
*/
|
|
101
|
+
export function parseWinProxyServer(stdout: string): string | null {
|
|
102
|
+
const m = /([^:\s=/]+):(\d+)/.exec(stdout)
|
|
103
|
+
if (m === null) return null
|
|
104
|
+
return `http://${m[1]}:${m[2]}`
|
|
105
|
+
}
|
|
106
|
+
|
|
93
107
|
/** Windows 系统代理:WinINET Internet 设置注册表;未开启返回 null。 */
|
|
94
108
|
function winSystemProxy(): string | null {
|
|
95
109
|
try {
|
|
@@ -97,9 +111,7 @@ function winSystemProxy(): string | null {
|
|
|
97
111
|
const enable = spawnSync('reg', ['query', key, '/v', 'ProxyEnable'], { encoding: 'utf8', timeout: 1500 })
|
|
98
112
|
const server = spawnSync('reg', ['query', key, '/v', 'ProxyServer'], { encoding: 'utf8', timeout: 1500 })
|
|
99
113
|
if (!/0x1/i.test(enable.stdout ?? '')) return null
|
|
100
|
-
|
|
101
|
-
if (m === null) return null
|
|
102
|
-
return `http://${m[1]}:${m[2]}`
|
|
114
|
+
return parseWinProxyServer(server.stdout ?? '')
|
|
103
115
|
} catch {
|
|
104
116
|
return null
|
|
105
117
|
}
|
|
@@ -8,14 +8,39 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { readFileSync, writeFileSync } from 'node:fs'
|
|
10
10
|
import { homedir } from 'node:os'
|
|
11
|
-
import { join } from 'node:path'
|
|
11
|
+
import { basename, dirname, join } from 'node:path'
|
|
12
12
|
import { PACKAGE_RE, REPO_RE } from '../install/install-types.ts'
|
|
13
13
|
|
|
14
14
|
/** Resolve the active profile from the booted CLI args, falling back to `web`. */
|
|
15
15
|
export function readProfileArg(fallback = 'web'): string {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
return profileFromArgv(process.argv, fallback)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 从启动参数解析当前 profile,两种宿主形态都认:
|
|
21
|
+
* - 官方 CLI:`--profile <name>`(也兼容 `--profile=<name>` 等号形式);
|
|
22
|
+
* - Electron 桌面宿主:不传 `--profile`,而是把 profile 目录作为位置参数传入
|
|
23
|
+
* (`… <dshRoot> <home>\profiles\desktop …`)。
|
|
24
|
+
* 桌面端只认 `--profile` 会永远落回 fallback,把路由/日志/安装全挂到错误的 profile 上
|
|
25
|
+
* (日志写进 profiles/web/hub.log、市场必然「插件数据加载失败」,dsh-plugin-hub#65)。
|
|
26
|
+
* 位置参数按「父目录名为 profiles」精确识别 profile 目录,避免误取其它位置参数。
|
|
27
|
+
*/
|
|
28
|
+
export function profileFromArgv(argv: readonly string[], fallback = 'web'): string {
|
|
29
|
+
const index = argv.indexOf('--profile')
|
|
30
|
+
const candidate = index >= 0 ? argv[index + 1] : undefined
|
|
31
|
+
if (candidate !== undefined && !candidate.startsWith('-')) return candidate
|
|
32
|
+
const equals = argv.find((arg) => arg.startsWith('--profile='))
|
|
33
|
+
if (equals !== undefined) {
|
|
34
|
+
const name = equals.slice('--profile='.length)
|
|
35
|
+
if (name !== '') return name
|
|
36
|
+
}
|
|
37
|
+
for (const arg of argv.slice(2)) {
|
|
38
|
+
if (arg === '' || arg.startsWith('-')) continue
|
|
39
|
+
if (basename(dirname(arg)) !== 'profiles') continue
|
|
40
|
+
const name = basename(arg)
|
|
41
|
+
if (name !== '') return name
|
|
42
|
+
}
|
|
43
|
+
return fallback
|
|
19
44
|
}
|
|
20
45
|
|
|
21
46
|
/** Resolve a profile directory (`DSH_HOME` or `~/.dsh`). */
|