dsh-unplug 0.2.2 → 0.2.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.3 (2026-08-20)
4
+
5
+ - README.md 改为中英双语(中文在前),中文用户打开仓库首页即可看懂。
6
+ - 主仓库首页不再只展示英文。
7
+
8
+
3
9
  ## 0.2.2 (2026-08-20)
4
10
 
5
11
  - 中文本地化:CLI 帮助与输出、agent 工具描述双语;新增 README.zh.md。
package/README.md CHANGED
@@ -1,6 +1,64 @@
1
1
  # dsh-unplug
2
2
 
3
- Plug/unplug any DeepSeek Harness plugin cleanly.
3
+ [![npm](https://img.shields.io/npm/v/dsh-unplug)](https://www.npmjs.com/package/dsh-unplug)
4
+
5
+ 让 DeepSeek Harness(dsh)的插件**装得容易、拔得干净**——所有插件都能插拔自如。
6
+ Plug/unplug any DeepSeek Harness plugin cleanly. 简体中文 · [English](#english)
7
+
8
+ ## 中文说明
9
+
10
+ **为什么需要它?** 官方 `dsh plugin remove` 只处理 profile 里 `dsh.profile.bundles` 列表中的 bundle:
11
+
12
+ - 不会清理 profile/home 的 `cordis.patch.yml` 里残留的插件行
13
+ - 没有"禁用但保留配置"的能力(插拔自如)
14
+ - 没有审计接口,拔完也不知道有没有残留
15
+
16
+ `dsh-unplug` 补上这三个缺口。
17
+
18
+ ### 快速开始
19
+
20
+ ```sh
21
+ dsh plugin add dsh-unplug
22
+ ```
23
+
24
+ ### 命令行
25
+
26
+ ```sh
27
+ dsh-unplug list # 列出所有已挂载插件(bundles + 补丁行)
28
+ dsh-unplug remove <插件> --yes # 完整卸载(bundle + 补丁行 + 依赖)
29
+ dsh-unplug disable <插件> # 禁用但不删除(保留依赖,可随时启用)
30
+ dsh-unplug enable <插件> # 重新启用
31
+ dsh-unplug audit # 检测孤立行 / 悬空 bundle
32
+ dsh-unplug reconcile --yes # 一键自动修复悬空与孤立状态
33
+ ```
34
+
35
+ 选项:`--profile <名>`(默认 `default`)、`--home <路径>`、`--json`、`--yes`。
36
+
37
+ ### Agent 可调用工具
38
+
39
+ 安装后 agent 获得 `unplug` 工具:
40
+
41
+ - `list` / `audit` — 只读,任何时候可用
42
+ - `remove` / `reconcile` — 需要 `force: true` 显式确认
43
+ - `disable` / `enable` — 可逆操作,无需确认
44
+
45
+ 返回 `dsh-unplug/v1` 报告。
46
+
47
+ ### 工作原理
48
+
49
+ - bundle 列表(`dsh.profile.bundles`)— 移出列表 + pnpm remove
50
+ - 禁用列表(`dsh.profile.disabledBundles`)— 在 bundles/disabled 之间移动
51
+ - profile 的 `cordis.patch.yml` — 删除插件行或切换 `disabled: true`
52
+ - home 的 `cordis.patch.yml` — 同上
53
+ - 孤立/悬空状态 — audit 发现,reconcile 修复
54
+
55
+ ### 安全
56
+
57
+ 默认只读;`remove` / `reconcile` 需要显式 `--yes`(CLI)或 `force: true`(工具)。
58
+
59
+ ---
60
+
61
+ ## English
4
62
 
5
63
  **Why?** The official `dsh plugin remove` only handles bundles in the profile's
6
64
  `dsh.profile.bundles` list. It does not:
@@ -11,13 +69,13 @@ Plug/unplug any DeepSeek Harness plugin cleanly.
11
69
 
12
70
  `dsh-unplug` fills all three gaps.
13
71
 
14
- ## Quick start
72
+ ### Quick start
15
73
 
16
74
  ```sh
17
75
  dsh plugin add dsh-unplug
18
76
  ```
19
77
 
20
- ## CLI
78
+ ### CLI
21
79
 
22
80
  ```sh
23
81
  dsh-unplug list # show every mounted plugin row
@@ -25,27 +83,32 @@ dsh-unplug remove <plugin> --yes # fully unplug (bundle + patch + deps)
25
83
  dsh-unplug disable <plugin> # disable without deleting
26
84
  dsh-unplug enable <plugin> # re-enable
27
85
  dsh-unplug audit # detect orphaned/dangling state
86
+ dsh-unplug reconcile --yes # auto-fix dangling bundles and orphan rows
28
87
  ```
29
88
 
30
89
  Options: `--profile <name>` (default: `default`), `--home <path>`, `--json`, `--yes`.
31
90
 
32
- ## Agent-callable tool
91
+ ### Agent-callable tool
33
92
 
34
93
  Once installed, the agent gains the `unplug` tool:
35
94
 
36
95
  - `list` / `audit` — always allowed (read-only)
37
- - `remove <plugin> force: true` — requires explicit confirmation
96
+ - `remove` / `reconcile`require `force: true`
38
97
  - `disable` / `enable` — reversible, no confirmation needed
39
98
 
40
99
  Returns a `dsh-unplug/v1` report.
41
100
 
42
- ## How it works
101
+ ### How it works
43
102
 
44
103
  - Bundle list (`dsh.profile.bundles`) — remove entry + pnpm remove
45
104
  - Disabled list (`dsh.profile.disabledBundles`) — move between bundles/disabled lists
46
105
  - Profile `cordis.patch.yml` — delete entry or toggle `disabled: true`
47
106
  - Home `cordis.patch.yml` — same as above
48
- - Orphaned rows — detect + report via audit
107
+ - Orphaned rows — detect via audit, fix via reconcile
108
+
109
+ ### Security
110
+
111
+ Read-only by default; `remove` / `reconcile` require explicit `--yes` (CLI) or `force: true` (tool).
49
112
 
50
113
  ## License
51
114
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-unplug",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Plug/unplug any DeepSeek Harness plugin cleanly: list every mounted layer, disable/enable without deleting, remove bundles + patch rows + dependencies in one pass, and audit for orphaned/dangling plugin state. Zero runtime dependencies; read-only by default.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",