@max-null/dsh-plugin-center 0.2.11 → 0.2.12

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.
Files changed (3) hide show
  1. package/README.md +4 -4
  2. package/dist/update.js +17 -0
  3. package/package.json +85 -85
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # dsh-plugin-center
2
2
 
3
+ This plugin belongs to the **`@max-null/*` family** — a set of plugins that together form the **[SSID (思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** desktop experience. SSID is the box that bundles them all: `dsh-capture` · `dsh-chat-rail` · `dsh-chinese-thinking` · `dsh-draft-polish` · `dsh-guardian` · `dsh-habit` · `dsh-header-unify` · `dsh-memory` · `dsh-node-appearance` · `dsh-plugin-center` · `dsh-skill-mcp-center` · `dsh-ssid-panels` · `dsh-ssid-zh-ui`.
4
+
5
+ 本插件属于 **`@max-null/*` 插件系列**——这一系列共同构成 **[SSID(思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** 桌面体验。SSID 是整合它们的盒:`dsh-capture` · `dsh-chat-rail` · `dsh-chinese-thinking` · `dsh-draft-polish` · `dsh-guardian` · `dsh-habit` · `dsh-header-unify` · `dsh-memory` · `dsh-node-appearance` · `dsh-plugin-center` · `dsh-skill-mcp-center` · `dsh-ssid-panels` · `dsh-ssid-zh-ui`。
6
+
3
7
  Plugin center for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) — browse, install, and update community plugins from inside the Web UI.
4
8
 
5
9
  插件管理中心:在 DSH Web 界面里管理已安装插件、浏览社区市场、一键安装与更新。
@@ -15,10 +19,6 @@ Plugin center for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-har
15
19
 
16
20
  ## Part of the SSID family / SSID 系列成员
17
21
 
18
- This plugin belongs to the **`@max-null/*` family** — a set of plugins that together form the **[SSID (思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** desktop experience. SSID is the box that bundles them all: `dsh-chat-rail` · `dsh-chinese-thinking` · `dsh-draft-polish` · `dsh-guardian` · `dsh-habit` · `dsh-header-unify` · `dsh-memory` · `dsh-node-appearance` · `dsh-plugin-center` · `dsh-skill-mcp-center` · `dsh-ssid-panels` · `dsh-ssid-zh-ui`.
19
-
20
- 本插件属于 **`@max-null/*` 插件系列**——这一系列共同构成 **[SSID(思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** 桌面体验。SSID 是整合它们的盒:`dsh-chat-rail` · `dsh-chinese-thinking` · `dsh-draft-polish` · `dsh-guardian` · `dsh-habit` · `dsh-header-unify` · `dsh-memory` · `dsh-node-appearance` · `dsh-plugin-center` · `dsh-skill-mcp-center` · `dsh-ssid-panels` · `dsh-ssid-zh-ui`。
21
-
22
22
  ## Screenshots / 截图
23
23
 
24
24
  | Installed / 已安装 | Market / 市场 | Updates / 更新 |
package/dist/update.js CHANGED
@@ -424,6 +424,23 @@ export async function updatePlugin(packageName, version, profileDir) {
424
424
  const pkgDir = join(profileDir, 'node_modules', packageName);
425
425
  const before = snapshotHostFiles(pkgDir);
426
426
  const result = await runPnpm(['add', '-w', `${packageName}@${version}`], profileDir);
427
+ if (result.ok) {
428
+ // no-op 识破:pnpm add 可能 exit 0 但什么都不装(2026-08-25 SSiD 内实测:
429
+ // 连续三次 142ms 静默成功、spec/版本均未变,hot 判定把「没变化」误报成
430
+ // 「已热生效」)。逐一核对已安装版本,不一致即报真实错误并附手动命令,
431
+ // 而不是继续走 hot / 待重启链路。
432
+ let installed = null;
433
+ try {
434
+ const pkg = JSON.parse(readFileSync(join(pkgDir, 'package.json'), 'utf8'));
435
+ installed = typeof pkg.version === 'string' ? pkg.version : null;
436
+ }
437
+ catch { /* 包目录缺失:视为未生效 */ }
438
+ if (installed !== version) {
439
+ result.ok = false;
440
+ result.detail = `pnpm add 未生效(exit 0,安装版本仍为 ${installed ?? '缺失'})。若重试仍失败,请在 profile 目录(${profileDir})手动执行:pnpm add -w ${packageName}@${version}`;
441
+ return result;
442
+ }
443
+ }
427
444
  if (result.ok && before !== null && before.length > 0) {
428
445
  const after = snapshotHostFiles(pkgDir);
429
446
  if (after !== null && !hostFilesChanged(before, after)) {
package/package.json CHANGED
@@ -1,85 +1,85 @@
1
- {
2
- "name": "@max-null/dsh-plugin-center",
3
- "version": "0.2.11",
4
- "description": "Plugin center for DeepSeek Harness 閳?installed metadata, community market, update detection, and What\u0027s New",
5
- "license": "MIT",
6
- "publishConfig": {
7
- "access": "public"
8
- },
9
- "type": "module",
10
- "main": "dist/index.js",
11
- "types": "dist/index.d.ts",
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "default": "./dist/index.js"
16
- },
17
- "./client": "./client.js",
18
- "./cordis.patch.yml": "./cordis.patch.yml",
19
- "./package.json": "./package.json"
20
- },
21
- "files": [
22
- "dist",
23
- "client.js",
24
- "cordis.patch.yml",
25
- "assets"
26
- ],
27
- "dsh": {
28
- "bundle": {
29
- "patch": "./cordis.patch.yml"
30
- },
31
- "client": {
32
- "inject": [
33
- "@deepseek-ai/dsh-client-connection",
34
- "@deepseek-ai/dsh-client-runtime",
35
- "@deepseek-ai/dsh-client-locale",
36
- "@deepseek-ai/dsh-client-ui-settings",
37
- "@deepseek-ai/dsh-client-ui-conversation",
38
- "@deepseek-ai/dsh-client-ui-slots",
39
- "@deepseek-ai/dsh-api-remotes"
40
- ],
41
- "platform": "web",
42
- "immediately": true
43
- }
44
- },
45
- "keywords": [
46
- "deepseek",
47
- "harness",
48
- "dsh",
49
- "dsh-plugin",
50
- "deepseek-harness",
51
- "plugin",
52
- "market",
53
- "update",
54
- "cordis"
55
- ],
56
- "repository": {
57
- "type": "git",
58
- "url": "git+https://github.com/Max-Null/dsh-plugin-center.git"
59
- },
60
- "scripts": {
61
- "build": "tsc -p tsconfig.json \u0026\u0026 node build-client.mjs",
62
- "typecheck": "tsc --noEmit -p tsconfig.json"
63
- },
64
- "dependencies": {
65
- "js-yaml": "^4.1.0"
66
- },
67
- "peerDependencies": {
68
- "@deepseek-ai/cordis": "^4.0.1",
69
- "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
70
- "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
71
- "@deepseek-ai/dsh-host-apiproxy": "^0.1.1-rc.1"
72
- },
73
- "devDependencies": {
74
- "@deepseek-ai/cordis": "^4.0.1",
75
- "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
76
- "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
77
- "@deepseek-ai/dsh-host-apiproxy": "^0.1.1-rc.1",
78
- "@types/js-yaml": "^4.0.9",
79
- "@types/node": "^26.2.0",
80
- "@types/react": "~18.3.1",
81
- "esbuild": "^0.24.0",
82
- "react": "^18.2.0",
83
- "typescript": "^5.5.0"
84
- }
85
- }
1
+ {
2
+ "name": "@max-null/dsh-plugin-center",
3
+ "version": "0.2.12",
4
+ "description": "Plugin center for DeepSeek Harness 閳?installed metadata, community market, update detection, and What's New",
5
+ "license": "MIT",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "type": "module",
10
+ "main": "dist/index.js",
11
+ "types": "dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ },
17
+ "./client": "./client.js",
18
+ "./cordis.patch.yml": "./cordis.patch.yml",
19
+ "./package.json": "./package.json"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "client.js",
24
+ "cordis.patch.yml",
25
+ "assets"
26
+ ],
27
+ "dsh": {
28
+ "bundle": {
29
+ "patch": "./cordis.patch.yml"
30
+ },
31
+ "client": {
32
+ "inject": [
33
+ "@deepseek-ai/dsh-client-connection",
34
+ "@deepseek-ai/dsh-client-runtime",
35
+ "@deepseek-ai/dsh-client-locale",
36
+ "@deepseek-ai/dsh-client-ui-settings",
37
+ "@deepseek-ai/dsh-client-ui-conversation",
38
+ "@deepseek-ai/dsh-client-ui-slots",
39
+ "@deepseek-ai/dsh-api-remotes"
40
+ ],
41
+ "platform": "web",
42
+ "immediately": true
43
+ }
44
+ },
45
+ "keywords": [
46
+ "deepseek",
47
+ "harness",
48
+ "dsh",
49
+ "dsh-plugin",
50
+ "deepseek-harness",
51
+ "plugin",
52
+ "market",
53
+ "update",
54
+ "cordis"
55
+ ],
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "git+https://github.com/Max-Null/dsh-plugin-center.git"
59
+ },
60
+ "scripts": {
61
+ "build": "tsc -p tsconfig.json && node build-client.mjs",
62
+ "typecheck": "tsc --noEmit -p tsconfig.json"
63
+ },
64
+ "dependencies": {
65
+ "js-yaml": "^4.1.0"
66
+ },
67
+ "peerDependencies": {
68
+ "@deepseek-ai/cordis": "^4.0.1",
69
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
70
+ "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
71
+ "@deepseek-ai/dsh-host-apiproxy": "^0.1.1-rc.1"
72
+ },
73
+ "devDependencies": {
74
+ "@deepseek-ai/cordis": "^4.0.1",
75
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
76
+ "@deepseek-ai/dsh-client-connection": "^0.1.1-rc.1",
77
+ "@deepseek-ai/dsh-host-apiproxy": "^0.1.1-rc.1",
78
+ "@types/js-yaml": "^4.0.9",
79
+ "@types/node": "^26.2.0",
80
+ "@types/react": "~18.3.1",
81
+ "esbuild": "^0.24.0",
82
+ "react": "^18.2.0",
83
+ "typescript": "^5.5.0"
84
+ }
85
+ }