dsh-plugin-marketplace 0.3.5 → 0.3.6
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/LICENSE +21 -21
- package/README.md +10 -10
- package/README.zh.md +7 -7
- package/client.js +2 -2
- package/index.js +20 -20
- package/package.json +76 -75
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Scorp1o117
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Scorp1o117
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -22,14 +22,14 @@ from the settings page — no terminal needed.
|
|
|
22
22
|
- Zero client dependencies (React only), no build step — hand-written
|
|
23
23
|
ModuleLoader bundle
|
|
24
24
|
|
|
25
|
-
## Compatibility (v0.3.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
The host now stores live plugin settings in the Profile patch and the browser
|
|
29
|
-
uses `configForms`. This version was checked in a disposable Web profile.
|
|
30
|
-
Older hosts require an older plugin release; alpha releases remain `unknown`.
|
|
31
|
-
|
|
32
|
-
## Install
|
|
25
|
+
## Compatibility (v0.3.6)
|
|
26
|
+
|
|
27
|
+
Tested with DSH `0.1.7-rc.1` and `0.1.7-rc.2` (`next`); npm `latest` is `0.1.5-rc.3`.
|
|
28
|
+
The host now stores live plugin settings in the Profile patch and the browser
|
|
29
|
+
uses `configForms`. This version was checked in a disposable Web profile.
|
|
30
|
+
Older hosts require an older plugin release; alpha releases remain `unknown`.
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
33
|
|
|
34
34
|
As a profile bundle (recommended):
|
|
35
35
|
|
|
@@ -57,8 +57,8 @@ Manual mount in `$DSH_HOME/profiles/web/cordis.patch.yml`:
|
|
|
57
57
|
Then restart `dsh web` (new client plugins require a process restart to be
|
|
58
58
|
scanned into the browser roster) and open **Settings → Plugin Marketplace**.
|
|
59
59
|
|
|
60
|
-
Version 0.3.
|
|
61
|
-
settings. Use an older plugin release with older DSH hosts.
|
|
60
|
+
Version 0.3.6 uses DSH's `configForms` client service and Profile patch
|
|
61
|
+
settings. Use an older plugin release with older DSH hosts.
|
|
62
62
|
Note: when dsh web is opened from a non-loopback origin (a LAN IP, say), DSH
|
|
63
63
|
keeps settings writes process-local, so install / AI-explain requests never
|
|
64
64
|
reach the host.
|
package/README.zh.md
CHANGED
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
- 基于 GitHub 公开搜索 API(浏览器 CORS 直连,无需密钥;未认证限流 60 次/小时)
|
|
17
17
|
- 零客户端依赖(只用 React),无构建步骤 —— 手写 ModuleLoader bundle
|
|
18
18
|
|
|
19
|
-
## 兼容性(v0.3.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
新版使用 Profile patch 配置与客户端 `configForms`,已在一次性 Web Profile 验证。
|
|
23
|
-
旧宿主请使用插件旧版;alpha 版本继续标记 `unknown`。
|
|
24
|
-
|
|
25
|
-
## 安装
|
|
19
|
+
## 兼容性(v0.3.6)
|
|
20
|
+
|
|
21
|
+
已验证 DSH `0.1.7-rc.1` 与 `0.1.7-rc.2`(npm `next`);npm `latest` 是 `0.1.5-rc.3`。
|
|
22
|
+
新版使用 Profile patch 配置与客户端 `configForms`,已在一次性 Web Profile 验证。
|
|
23
|
+
旧宿主请使用插件旧版;alpha 版本继续标记 `unknown`。
|
|
24
|
+
|
|
25
|
+
## 安装
|
|
26
26
|
|
|
27
27
|
作为 profile bundle 安装(推荐):
|
|
28
28
|
|
package/client.js
CHANGED
|
@@ -52,7 +52,7 @@ window.__ModuleLoader__.load({
|
|
|
52
52
|
|
|
53
53
|
// ── locale ────────────────────────────────────────────────────────────
|
|
54
54
|
var NS = "marketplace";
|
|
55
|
-
var inject = ["slots", "locale", "configForms", "connection"];
|
|
55
|
+
var inject = ["slots", "locale", "configForms", "connection"];
|
|
56
56
|
var zh = {
|
|
57
57
|
nav: "插件市场",
|
|
58
58
|
search: "搜索插件(关键词或留空浏览全部)…",
|
|
@@ -441,7 +441,7 @@ window.__ModuleLoader__.load({
|
|
|
441
441
|
function apply(ctx) {
|
|
442
442
|
var t = ctx.locale.bind(NS);
|
|
443
443
|
ctx.effect(function () { return ctx.locale.register(NS, { zh: zh, en: en }); }, "dsh-plugin-marketplace: dictionaries");
|
|
444
|
-
var scope = ctx.configForms.get("plugin-marketplace");
|
|
444
|
+
var scope = ctx.configForms.get("plugin-marketplace");
|
|
445
445
|
// dsh 0.1.2-rc.1 dropped connection.api; only older hosts still carry
|
|
446
446
|
// the raw settings face there. writeField picks whichever exists.
|
|
447
447
|
var api = (ctx.connection && ctx.connection.api) ? ctx.connection.api : null;
|
package/index.js
CHANGED
|
@@ -32,11 +32,11 @@ const Config = z.object({
|
|
|
32
32
|
/** client-set timestamp; host dedups on it. */
|
|
33
33
|
ts: z.number().default(0),
|
|
34
34
|
}),
|
|
35
|
-
installState: z.object({
|
|
36
|
-
status: z.string().default("idle"), // idle | running | ok | error
|
|
37
|
-
message: z.string().default(""),
|
|
38
|
-
pkg: z.string().default(""),
|
|
39
|
-
ts: z.number().default(0),
|
|
35
|
+
installState: z.object({
|
|
36
|
+
status: z.string().default("idle"), // idle | running | ok | error
|
|
37
|
+
message: z.string().default(""),
|
|
38
|
+
pkg: z.string().default(""),
|
|
39
|
+
ts: z.number().default(0),
|
|
40
40
|
}),
|
|
41
41
|
/** AI-explain request (client writes repo/desc/readme, host answers). */
|
|
42
42
|
aiExplain: z.object({
|
|
@@ -52,13 +52,13 @@ const Config = z.object({
|
|
|
52
52
|
repo: z.string().default(""),
|
|
53
53
|
ts: z.number().default(0),
|
|
54
54
|
}),
|
|
55
|
-
}).volatile();
|
|
55
|
+
}).volatile();
|
|
56
56
|
|
|
57
57
|
/** npm package-name shape (scope/name, no spaces, no path chars). */
|
|
58
58
|
const PKG_NAME = /^@?[a-z0-9][a-z0-9-._]*(?:\/[a-z0-9][a-z0-9-._]*)?$/;
|
|
59
59
|
|
|
60
|
-
function apply(ctx, config) {
|
|
61
|
-
const sourceGetter = () => typeof config.get === "function" ? config.get() : config;
|
|
60
|
+
function apply(ctx, config) {
|
|
61
|
+
const sourceGetter = () => typeof config.get === "function" ? config.get() : config;
|
|
62
62
|
let lastTs = 0;
|
|
63
63
|
let lastExplainTs = 0;
|
|
64
64
|
|
|
@@ -70,23 +70,23 @@ function apply(ctx, config) {
|
|
|
70
70
|
// `installSettingsSection` export (the provider now lives at ctx.settings).
|
|
71
71
|
// Inline the same logic via ctx.inject(["settings"]) — works on both
|
|
72
72
|
// 0.1.1 (module export wrapper) and 0.1.2 (ctx.settings) hosts.
|
|
73
|
-
// DSH 0.1.7 stores live plugin fields in the profile patch. Config is a
|
|
74
|
-
// volatile proxy, and the settings service emits after a committed edit.
|
|
75
|
-
ctx.on("settings/document-updated", (id) => {
|
|
76
|
-
if (id !== NS) return;
|
|
77
|
-
void maybeRunInstall();
|
|
78
|
-
void maybeRunExplain();
|
|
79
|
-
});
|
|
80
|
-
queueMicrotask(() => {
|
|
81
|
-
void maybeRunInstall();
|
|
82
|
-
void maybeRunExplain();
|
|
83
|
-
});
|
|
73
|
+
// DSH 0.1.7 stores live plugin fields in the profile patch. Config is a
|
|
74
|
+
// volatile proxy, and the settings service emits after a committed edit.
|
|
75
|
+
ctx.on("settings/document-updated", (id) => {
|
|
76
|
+
if (id !== NS) return;
|
|
77
|
+
void maybeRunInstall();
|
|
78
|
+
void maybeRunExplain();
|
|
79
|
+
});
|
|
80
|
+
queueMicrotask(() => {
|
|
81
|
+
void maybeRunInstall();
|
|
82
|
+
void maybeRunExplain();
|
|
83
|
+
});
|
|
84
84
|
|
|
85
85
|
// DSH 0.1.0-rc.7+ exposes registered settings namespaces natively, allowing
|
|
86
86
|
// the browser client to write install requests without modifying host files.
|
|
87
87
|
/** Resolved current config (settings layer over the entry). */
|
|
88
88
|
function current() {
|
|
89
|
-
return sourceGetter();
|
|
89
|
+
return sourceGetter();
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/** Write the install-state report (and clear the consumed request). */
|
package/package.json
CHANGED
|
@@ -1,75 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsh-plugin-marketplace",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "DeepSeek Harness Web UI 内置插件市场:在设置页直接浏览 github.com/topics/dsh-plugin,支持搜索、按 Star 排序、查看安装方式。",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "index.js",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": "./index.js",
|
|
9
|
-
"./client": "./client.js",
|
|
10
|
-
"./package.json": "./package.json"
|
|
11
|
-
},
|
|
12
|
-
"dsh": {
|
|
13
|
-
"bundle": {
|
|
14
|
-
"patch": "./cordis.patch.yml"
|
|
15
|
-
},
|
|
16
|
-
"client": {
|
|
17
|
-
"platform": "web"
|
|
18
|
-
},
|
|
19
|
-
"compatibility": {
|
|
20
|
-
"dsh": ">=0.1.7-rc.1 <0.2.0",
|
|
21
|
-
"dshReleases": {
|
|
22
|
-
"0.1.5-rc.2": "incompatible",
|
|
23
|
-
"0.1.5-rc.3": "incompatible",
|
|
24
|
-
"0.1.6-alpha.1": "unknown",
|
|
25
|
-
"0.1.6-alpha.2": "unknown",
|
|
26
|
-
"0.1.7-alpha.1": "unknown",
|
|
27
|
-
"0.1.7-alpha.2": "unknown",
|
|
28
|
-
"0.1.7-rc.1": "compatible"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"README.
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
"dsh
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-plugin-marketplace",
|
|
3
|
+
"version": "0.3.6",
|
|
4
|
+
"description": "DeepSeek Harness Web UI 内置插件市场:在设置页直接浏览 github.com/topics/dsh-plugin,支持搜索、按 Star 排序、查看安装方式。",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./index.js",
|
|
9
|
+
"./client": "./client.js",
|
|
10
|
+
"./package.json": "./package.json"
|
|
11
|
+
},
|
|
12
|
+
"dsh": {
|
|
13
|
+
"bundle": {
|
|
14
|
+
"patch": "./cordis.patch.yml"
|
|
15
|
+
},
|
|
16
|
+
"client": {
|
|
17
|
+
"platform": "web"
|
|
18
|
+
},
|
|
19
|
+
"compatibility": {
|
|
20
|
+
"dsh": ">=0.1.7-rc.1 <0.2.0",
|
|
21
|
+
"dshReleases": {
|
|
22
|
+
"0.1.5-rc.2": "incompatible",
|
|
23
|
+
"0.1.5-rc.3": "incompatible",
|
|
24
|
+
"0.1.6-alpha.1": "unknown",
|
|
25
|
+
"0.1.6-alpha.2": "unknown",
|
|
26
|
+
"0.1.7-alpha.1": "unknown",
|
|
27
|
+
"0.1.7-alpha.2": "unknown",
|
|
28
|
+
"0.1.7-rc.1": "compatible",
|
|
29
|
+
"0.1.7-rc.2": "compatible"
|
|
30
|
+
},
|
|
31
|
+
"node": ">=20.18",
|
|
32
|
+
"profiles": [
|
|
33
|
+
"web"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"test": "node --test tests/settings-write-verify.test.mjs"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"index.js",
|
|
42
|
+
"client.js",
|
|
43
|
+
"cordis.patch.yml",
|
|
44
|
+
"README.md",
|
|
45
|
+
"README.zh.md",
|
|
46
|
+
"LICENSE",
|
|
47
|
+
"vendor"
|
|
48
|
+
],
|
|
49
|
+
"homepage": "https://github.com/Scorp1o117/dsh-plugin-marketplace",
|
|
50
|
+
"keywords": [
|
|
51
|
+
"dsh",
|
|
52
|
+
"dsh-plugin",
|
|
53
|
+
"deepseek-harness",
|
|
54
|
+
"marketplace",
|
|
55
|
+
"web-ui"
|
|
56
|
+
],
|
|
57
|
+
"license": "MIT",
|
|
58
|
+
"engines": {
|
|
59
|
+
"node": ">=20.18"
|
|
60
|
+
},
|
|
61
|
+
"repository": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "git+https://github.com/Scorp1o117/dsh-plugin-marketplace.git"
|
|
64
|
+
},
|
|
65
|
+
"bugs": {
|
|
66
|
+
"url": "https://github.com/Scorp1o117/dsh-plugin-marketplace/issues"
|
|
67
|
+
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"react": "^18.2.0",
|
|
70
|
+
"@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
|
|
71
|
+
"@deepseek-ai/dsh-llm": "^0.1.7-rc.1"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"@deepseek-ai/schemastery": "^3.18.4"
|
|
75
|
+
}
|
|
76
|
+
}
|