dsh-plugin-marketplace 0.2.4 → 0.2.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/README.md +4 -0
- package/README.zh.md +4 -0
- package/index.js +12 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
**GitHub**: [Scorp1o117/dsh-plugin-marketplace](https://github.com/Scorp1o117/dsh-plugin-marketplace) · **npm**: [dsh-plugin-marketplace](https://www.npmjs.com/package/dsh-plugin-marketplace)
|
|
6
6
|
|
|
7
|
+
[](https://github.com/Scorp1o117/dsh-enhancement-suite) [](https://www.npmjs.com/package/dsh-enhancement-suite)
|
|
8
|
+
|
|
9
|
+
Part of the [DeepSeek Harness Enhancement Suite](https://github.com/Scorp1o117/dsh-enhancement-suite) — Vision · Soul/Persona · Long-term Memory · Plugin Marketplace.
|
|
10
|
+
|
|
7
11
|
A **plugin marketplace** inside the DeepSeek Harness Web UI: browse
|
|
8
12
|
[github.com/topics/dsh-plugin](https://github.com/topics/dsh-plugin) right
|
|
9
13
|
from the settings page — no terminal needed.
|
package/README.zh.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**GitHub**: [Scorp1o117/dsh-plugin-marketplace](https://github.com/Scorp1o117/dsh-plugin-marketplace) · **npm**: [dsh-plugin-marketplace](https://www.npmjs.com/package/dsh-plugin-marketplace) · [English](README.md)
|
|
4
4
|
|
|
5
|
+
[](https://github.com/Scorp1o117/dsh-enhancement-suite) [](https://www.npmjs.com/package/dsh-enhancement-suite)
|
|
6
|
+
|
|
7
|
+
属于 [DeepSeek Harness Enhancement Suite](https://github.com/Scorp1o117/dsh-enhancement-suite) —— Vision · Soul/Persona · 长期记忆 · 插件市场。
|
|
8
|
+
|
|
5
9
|
在 DeepSeek Harness **Web UI 里内置的插件市场**:直接在设置页浏览
|
|
6
10
|
[github.com/topics/dsh-plugin](https://github.com/topics/dsh-plugin),无需打开终端。
|
|
7
11
|
|
package/index.js
CHANGED
|
@@ -135,15 +135,24 @@ function apply(ctx, config) {
|
|
|
135
135
|
* Bundle plugins (already in `dsh.profile.bundles`, or whose installed
|
|
136
136
|
* package declares `dsh.bundle.patch`) are mounted by their own bundle
|
|
137
137
|
* layer — adding a manual row would create a duplicate loader entry and
|
|
138
|
-
* abort boot
|
|
138
|
+
* abort boot. A STALE manual row left by an earlier non-bundle version is
|
|
139
|
+
* removed instead, so reinstalling a bundle plugin never breaks boot.
|
|
139
140
|
*/
|
|
140
141
|
function ensureMounted(pkg, profile) {
|
|
141
142
|
const dshHome = process.env.DSH_HOME || join(os.homedir(), ".dsh");
|
|
142
143
|
const patchPath = join(dshHome, "profiles", profile, "cordis.patch.yml");
|
|
143
144
|
if (!existsSync(patchPath)) return " (patch file not found; mount manually)";
|
|
144
145
|
const bundles = profileManifest(profile)?.dsh?.profile?.bundles ?? [];
|
|
145
|
-
if (bundles.includes(pkg)
|
|
146
|
-
|
|
146
|
+
if (bundles.includes(pkg) || isBundlePackage(pkg, profile)) {
|
|
147
|
+
// Bundle layer auto-mounts; remove any stale manual row (pre-bundle).
|
|
148
|
+
const src = readFileSync(patchPath, "utf8");
|
|
149
|
+
const cleaned = src.replace(new RegExp(`[ \\t]*- id: [^\\n]*\\n[ \\t]*name: ['"]${pkg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}['"]\\n?`, "g"), "");
|
|
150
|
+
if (cleaned !== src) {
|
|
151
|
+
writeFileSync(patchPath, cleaned, "utf8");
|
|
152
|
+
return " (removed stale manual mount row; bundle layer auto-mounts)";
|
|
153
|
+
}
|
|
154
|
+
return bundles.includes(pkg) ? " (already mounted via dsh.profile.bundles)" : " (bundle plugin: auto-mounted via its own dsh.bundle layer)";
|
|
155
|
+
}
|
|
147
156
|
const id = pkg.replace(/^@[^/]+\//, "").replace(/[^a-z0-9-]/g, "-") || pkg;
|
|
148
157
|
let src = readFileSync(patchPath, "utf8");
|
|
149
158
|
if (src.includes(`name: '${pkg}'`) || src.includes(`name: "${pkg}"`)) return " (already mounted)";
|