dsh-plugin-tool-management 0.9.0 → 0.9.1
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 +275 -245
- package/README.md +51 -51
- package/README_EN.md +51 -51
- package/docs/images/1-EN.png +0 -0
- package/docs/images/1.png +0 -0
- package/docs/images/2-EN.png +0 -0
- package/docs/images/2.png +0 -0
- package/docs/images/3-EN.png +0 -0
- package/docs/images/3.png +0 -0
- package/docs/images/4-EN.png +0 -0
- package/docs/images/4.png +0 -0
- package/docs/images/5-EN.png +0 -0
- package/docs/images/5.png +0 -0
- package/docs/images/6-EN.png +0 -0
- package/docs/images/6.png +0 -0
- package/docs/images/7-EN.png +0 -0
- package/docs/images/7.png +0 -0
- package/docs/images/8-EN.png +0 -0
- package/docs/images/8.png +0 -0
- package/docs/update.md +132 -111
- package/lib/client.js +560 -82
- package/lib/context-inject.js +113 -16
- package/lib/index.js +431 -49
- package/lib/rules/archive-engine.js +30 -10
- package/lib/rules/archive.js +7 -1
- package/lib/rules/service.js +48 -4
- package/lib/scene-prompt-sync.js +4 -12
- package/lib/skills/service.js +56 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,35 +24,35 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
24
24
|
|
|
25
25
|
## 截图
|
|
26
26
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
| 
|
|
30
|
-
| **场景**
|
|
31
|
-
| 
|
|
32
|
-
| **技能**
|
|
33
|
-
|  | 
|
|
34
|
-
| **提示词**
|
|
35
|
-
| 
|
|
36
|
-
| **会话**
|
|
27
|
+
| | |
|
|
28
|
+
|:----------------------------:|:------------------------------:|
|
|
29
|
+
|  |  |
|
|
30
|
+
| **场景** | **MCP** |
|
|
31
|
+
|  |  |
|
|
32
|
+
| **技能** | **子智能体** |
|
|
33
|
+
|  |  |
|
|
34
|
+
| **提示词** | **记忆** |
|
|
35
|
+
|  |  |
|
|
36
|
+
| **会话** | **兼容** |
|
|
37
37
|
|
|
38
38
|
## 核心亮点
|
|
39
39
|
|
|
40
40
|
一句话:**把「工作 / 写作 / 编程」各配成一套场景,点一下整套切换;插件管的东西,模型都看得见。**
|
|
41
41
|
|
|
42
|
-
| 亮点
|
|
43
|
-
|
|
44
|
-
| 一键换场景
|
|
45
|
-
| 记忆自动送到模型眼前
|
|
46
|
-
| 给 MCP 服务器写备注
|
|
47
|
-
| 单个工具也能关
|
|
48
|
-
| 技能状况一眼看穿
|
|
49
|
-
| 子智能体 = 一个文件一个角色 | 写一份角色说明就能派活;跑完只回结果、不占你的会话记录;哪些角色能用还能按场景定
|
|
50
|
-
| 提示词备好几套
|
|
51
|
-
| 会话不再丢
|
|
52
|
-
| 模型一定看得见
|
|
53
|
-
| 锁住就不怕手滑
|
|
54
|
-
| 删了能找回,配好能带走
|
|
55
|
-
| 安全、不添乱
|
|
42
|
+
| 亮点 | 说明 |
|
|
43
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| 一键换场景 | 每个场景各配一套:用哪些 MCP 服务器、哪些技能、哪些人设、哪些记忆;点一下整套切换,关掉自动还原 |
|
|
45
|
+
| 记忆自动送到模型眼前 | 每个场景下写几段 `.md` 就是它的资料库,正文自动进上下文,不用每次复制粘贴 |
|
|
46
|
+
| 给 MCP 服务器写备注 | 像「A 不可用时改用 B 兜底」这种话写进备注,模型看得到,会照做 |
|
|
47
|
+
| 单个工具也能关 | 一台服务器里只停掉某个工具,模型看不见也调不到;「重启」只重连,不会偷偷改变开关 |
|
|
48
|
+
| 技能状况一眼看穿 | 哪些在生效、哪些被同名技能覆盖、哪一份是首选,都标得清清楚楚 |
|
|
49
|
+
| 子智能体 = 一个文件一个角色 | 写一份角色说明就能派活;跑完只回结果、不占你的会话记录;哪些角色能用还能按场景定 |
|
|
50
|
+
| 提示词备好几套 | AGENTS.md 可以存多份(简洁模式 / 教学口吻……),一键切换;场景可以各自绑一份 |
|
|
51
|
+
| 会话不再丢 | 归档按项目分组、能搜、能批量恢复;Claude Code / Cursor / Codex 的聊天记录都能导进来 |
|
|
52
|
+
| 模型一定看得见 | 插件管的内容(记忆 / MCP / 技能 / 子智能体 / 提示词)会主动告诉模型,每个域各发一条、内容没变不重复;极简模式下默认不注入(跟随预设),可在「兼容」页逐项打开 |
|
|
53
|
+
| 锁住就不怕手滑 | 场景可以上锁:五个域整体只读,先解锁才能改 |
|
|
54
|
+
| 删了能找回,配好能带走 | 删除都进回收站,随时恢复;技能 / 记忆 / 人设 / 提示词都能勾选打包成 zip,也能再导回来 |
|
|
55
|
+
| 安全、不添乱 | 密钥默认打码、看明文要令牌;只写自己的文件,技能源文件一个不动,升级重启配置都在 |
|
|
56
56
|
|
|
57
57
|
## 快速开始
|
|
58
58
|
|
|
@@ -73,7 +73,7 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
73
73
|
装完提醒我硬刷新浏览器。
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
模型可用 14 个工具管理上述功能(`mcp_manager_*` / `skill_manager_*` / `prompt_manager_*` / `memory_manager_*` / `
|
|
76
|
+
模型可用 14 个工具管理上述功能(`mcp_manager_*` / `skill_manager_*` / `prompt_manager_*` / `memory_manager_*` / `subagent_manager_*`);脚本走 `POST /dsh-plugin-tool-management/api`(`{op, args}` 协议)。
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -84,7 +84,7 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
84
84
|
- **场景 = 分组,记忆 = `.md` 文件**。`memories/<场景>/<名>.md`,整篇正文自动注入上下文,文件名支持中文。
|
|
85
85
|
- **单选启用**:同时只启用一个场景(其余置灰),关掉全部 = 只注入「全局」与 `_shared`。新场景默认不启动。
|
|
86
86
|
- **场景绑提示词**:切换场景直接改写 `~/.dsh/AGENTS.md`(覆盖前 5 代备份,关掉自动恢复基线);预设挂不到官方 AGENTS.md 通道时(极简),改为把这份正文直接注入上下文。
|
|
87
|
-
- **场景档案**:每个场景搭配 MCP 工具集 / 技能集 / 子智能体 / 记忆(任意组合);打开场景即应用并收窄注入,关闭按快照原文恢复(开关是唯一入口)。勾选集语义:**勾的启用、没勾的停用,整段没建 = 一个都没勾 = 该域全部停用**(所以「没配 MCP 工具集」的场景进去就是全部 MCP
|
|
87
|
+
- **场景档案**:每个场景搭配 MCP 工具集 / 技能集 / 子智能体 / 记忆(任意组合);打开场景即应用并收窄注入,关闭按快照原文恢复(开关是唯一入口)。勾选集语义:**勾的启用、没勾的停用,整段没建 = 一个都没勾 = 该域全部停用**(所以「没配 MCP 工具集」的场景进去就是全部 MCP 停用,退出再开回来)。**场景内这四个域(含提示词)的开关照常可用**——这里的改动会同步写进该场景的档案(当下生效、下次进这个场景照旧生效),只有**锁定**才冻结;记忆域的开关本来就是单一真相源,不经过档案。
|
|
88
88
|
- **导入**:`.md` / `.zip`(目录名 = 场景,bundle 带附件),同名跳过绝不覆盖,超限逐条回报。
|
|
89
89
|
- **导出**:勾选记忆打包成 zip,保留「场景/名称」层级;bundle 型连目录里的附件一起打进去。只读源文件。
|
|
90
90
|
- **注入预算**:默认 64 KiB,放不下的跳过并列出清单。删除进回收站。
|
|
@@ -96,7 +96,7 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
96
96
|
- **一个文件一个人设**:`agents/<人设>.md`,frontmatter 全可选。
|
|
97
97
|
- **工具限制按 Agent 预设**:每个预设一份白/黑名单(互相排斥),运行期按当前预设生效——堵掉旧「全体并集」名单换预设后子代理起不来的坑。
|
|
98
98
|
- **即用即弃**:`subagent_manager_run` 带人设运行、只回传结果、不进 History,自动继承场景记忆。场景可绑定可用人设。
|
|
99
|
-
- **启停开关**:停用的人设不注入上下文、模型不可见(文件不动);新建 / 导入 / 恢复自动启用。**进场景按档案勾选集全量对齐**(勾了的开、没勾的关,整段没建 =
|
|
99
|
+
- **启停开关**:停用的人设不注入上下文、模型不可见(文件不动);新建 / 导入 / 恢复自动启用。**进场景按档案勾选集全量对齐**(勾了的开、没勾的关,整段没建 = 全关),退出按进场景前的开关精确还原;场景内这个开关照常可用,改动会同步写进该场景的档案(只有**锁定**才冻结);退出场景时回到进场景前的状态。
|
|
100
100
|
- **人设目录自动注入**:只列名字 + 描述,模型知道有哪些人设可委派;人设名可改,场景绑定自动跟着改。
|
|
101
101
|
|
|
102
102
|
### MCP 服务
|
|
@@ -144,27 +144,27 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
144
144
|
|
|
145
145
|
## 数据落点
|
|
146
146
|
|
|
147
|
-
| 内容
|
|
148
|
-
|
|
149
|
-
| MCP 定义
|
|
150
|
-
| 技能策略 / 自定义目录
|
|
151
|
-
| 技能 / 记忆 / 人设 / 预设
|
|
152
|
-
| 子智能体启停
|
|
153
|
-
| 回收站
|
|
154
|
-
| 归档账本 / 保留期
|
|
155
|
-
| 记忆索引 / 场景 / 档案
|
|
156
|
-
| MCP 侧车(停用表 / 已知工具 / 备注 / 设置) | `~/.dsh/tool-management/mcp-*.json`
|
|
157
|
-
| 注入设置(五个域开关 / 压制型预设口径)
|
|
158
|
-
| 运行日志 / patch 备份
|
|
147
|
+
| 内容 | 位置 |
|
|
148
|
+
| ------------------------------------------- | ------------------------------------------------------------------------- |
|
|
149
|
+
| MCP 定义 | `~/.dsh/cordis.patch.yml`(插件只写它;改前自动备份到 hub 的 `backups/`) |
|
|
150
|
+
| 技能策略 / 自定义目录 | `~/.dsh/tool-management/skills-state.json` |
|
|
151
|
+
| 技能 / 记忆 / 人设 / 预设 | `~/.dsh/tool-management/{skills,memories,subagents,prompts}/` |
|
|
152
|
+
| 子智能体启停 | `~/.dsh/tool-management/subagents-index.json` |
|
|
153
|
+
| 回收站 | `~/.dsh/tool-management/trash/{skills,subagents,prompts,scenes}-trash/` |
|
|
154
|
+
| 归档账本 / 保留期 | `~/.dsh/tool-management/history-*.json` |
|
|
155
|
+
| 记忆索引 / 场景 / 档案 | `~/.dsh/tool-management/memories-index.json` |
|
|
156
|
+
| MCP 侧车(停用表 / 已知工具 / 备注 / 设置) | `~/.dsh/tool-management/mcp-*.json` |
|
|
157
|
+
| 注入设置(五个域开关 / 压制型预设口径) | `~/.dsh/tool-management/inject-settings.json` |
|
|
158
|
+
| 运行日志 / patch 备份 | `~/.dsh/tool-management/tool-management.log` · `backups/` |
|
|
159
159
|
|
|
160
160
|
**插件安装目录里不存用户数据**(`dsh plugin update` 会整体替换该目录)。
|
|
161
161
|
|
|
162
162
|
## 配置与安全
|
|
163
163
|
|
|
164
|
-
| 字段
|
|
165
|
-
|
|
166
|
-
| `token`
|
|
167
|
-
| `maxBodyBytes` | 请求体上限,默认 88 MiB。
|
|
164
|
+
| 字段 | 说明 |
|
|
165
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
+
| `token` | 访问令牌。设了之后**所有写操作 + 明文密钥**都要求 `x-dsh-token`;**不设时明文接口一律关闭**。也是 curl / 局域网的逃生门。 |
|
|
167
|
+
| `maxBodyBytes` | 请求体上限,默认 88 MiB。 |
|
|
168
168
|
|
|
169
169
|
- **浏览器**:读写走 cookie,不需要 token;但**明文密钥**(显示密钥 / 导出)要令牌。
|
|
170
170
|
- **curl / 脚本**:带 `x-dsh-token`,或带浏览器 cookie。
|
|
@@ -172,14 +172,14 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
172
172
|
|
|
173
173
|
## 常见问题
|
|
174
174
|
|
|
175
|
-
| 现象
|
|
176
|
-
|
|
177
|
-
| 装完没有页面
|
|
178
|
-
| 重复 MCP 页签
|
|
179
|
-
| 改坏配置 DSH 起不来
|
|
180
|
-
| 升级 DSH 后动作不可用
|
|
181
|
-
| `approval=never` 还要确认吗
|
|
182
|
-
| `subagent_manager_run` 报 spawn 不可用
|
|
175
|
+
| 现象 | 解决 |
|
|
176
|
+
| ----------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
177
|
+
| 装完没有页面 | 硬刷新;不行重启 DSH。 |
|
|
178
|
+
| 重复 MCP 页签 | 删 `cordis.patch.yml` 里的旧 loader 行后重启。 |
|
|
179
|
+
| 改坏配置 DSH 起不来 | 取最近的 `.bak-<时间戳>` 恢复。 |
|
|
180
|
+
| 升级 DSH 后动作不可用 | 设置 → 工具 → **兼容** 看原因;`doctor.mjs` → `host-deps.mjs --fix`。 |
|
|
181
|
+
| `approval=never` 还要确认吗 | 不弹卡,直接放行并记日志;想问回来切回「工作区内修改」。 |
|
|
182
|
+
| `subagent_manager_run` 报 spawn 不可用 | 宿主没注册 spawn provider;挂载 `@deepseek-ai/dsh-subagent-spawn-in-process` 后重启。 |
|
|
183
183
|
| 场景绑了 A 人设,官方 `subagent` 还跑别的 | 两条通道:本插件只管 `subagent_manager_run`;官方 `subagent` / `subagent_fork` 无确认门、不认人设。 |
|
|
184
184
|
|
|
185
185
|
---
|
package/README_EN.md
CHANGED
|
@@ -24,35 +24,35 @@ Hard-refresh the browser (Cmd/Ctrl+Shift-R) afterwards — a **Tools** panel in
|
|
|
24
24
|
|
|
25
25
|
## Screenshots
|
|
26
26
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
| 
|
|
30
|
-
| **Scenes**
|
|
31
|
-
| 
|
|
32
|
-
| **Skills**
|
|
33
|
-
| 
|
|
34
|
-
| **Prompts**
|
|
35
|
-
|  | 
|
|
36
|
-
| **Sessions**
|
|
27
|
+
| | |
|
|
28
|
+
|:---------------------------------:|:----------------------------------:|
|
|
29
|
+
|  |  |
|
|
30
|
+
| **Scenes** | **MCP** |
|
|
31
|
+
|  |  |
|
|
32
|
+
| **Skills** | **Subagents** |
|
|
33
|
+
|  |  |
|
|
34
|
+
| **Prompts** | **Memories** |
|
|
35
|
+
|  |  |
|
|
36
|
+
| **Sessions** | **Host** |
|
|
37
37
|
|
|
38
38
|
## Highlights
|
|
39
39
|
|
|
40
40
|
In one line: **set up a scene for each kind of work — "day job / writing / coding" — and switch the whole stack with one click. Everything the plugin manages, the model can actually see.**
|
|
41
41
|
|
|
42
|
-
| Highlight
|
|
43
|
-
|
|
44
|
-
| One-click scene switch
|
|
45
|
-
| Memories reach the model on their own | Write a few `.md` files under a scene and they become its knowledge base — injected automatically, no copy-pasting every session
|
|
46
|
-
| Notes for MCP servers
|
|
47
|
-
| Disable a single tool
|
|
48
|
-
| Skills at a glance
|
|
49
|
-
| Subagent = one file, one role
|
|
50
|
-
| Several prompt presets
|
|
51
|
-
| Sessions no longer lost
|
|
52
|
-
| The model always sees it
|
|
53
|
-
| Lock it and relax
|
|
54
|
-
| Deleted is not gone
|
|
55
|
-
| Safe by default
|
|
42
|
+
| Highlight | What it means |
|
|
43
|
+
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| One-click scene switch | Each scene carries its own set: which MCP servers, which skills, which personas, which memories; flip it on and the whole stack follows, turn it off and everything comes back |
|
|
45
|
+
| Memories reach the model on their own | Write a few `.md` files under a scene and they become its knowledge base — injected automatically, no copy-pasting every session |
|
|
46
|
+
| Notes for MCP servers | Write "if A is down, fall back to B" as a note — the model sees it and acts on it |
|
|
47
|
+
| Disable a single tool | Keep a server but mute one tool: invisible and uncallable; "Restart" only reconnects and never flips switches |
|
|
48
|
+
| Skills at a glance | Which copy is in effect, which is shadowed by a same-name skill, which is preferred — all marked in the list |
|
|
49
|
+
| Subagent = one file, one role | Write a role file and delegate; only the result comes back and it never clutters your History; which roles are available can follow the scene |
|
|
50
|
+
| Several prompt presets | Keep multiple AGENTS.md baselines (terse mode, teaching tone, …), switch with one click; a scene can bind its own |
|
|
51
|
+
| Sessions no longer lost | Archive grouped by project, searchable, batch-restorable; import transcripts from Claude Code / Cursor / Codex |
|
|
52
|
+
| The model always sees it | Everything the plugin manages (memories / MCP / skills / subagents / prompts) is announced to the model — one message per domain, republished only on change; under Minimal nothing is injected by default (follows the preset), force any domain on in the Host tab |
|
|
53
|
+
| Lock it and relax | Lock a scene to make all five domains read-only; unlock first to change anything |
|
|
54
|
+
| Deleted is not gone | Deletes land in a recycle bin and can be restored; skills / memories / personas / presets zip out and back in |
|
|
55
|
+
| Safe by default | Secrets masked, plaintext needs a token; only the plugin's own files are written, skill sources stay untouched, and your config survives restarts and upgrades |
|
|
56
56
|
|
|
57
57
|
## Quick start
|
|
58
58
|
|
|
@@ -73,7 +73,7 @@ dsh plugin --profile web add dsh-plugin-tool-management@latest
|
|
|
73
73
|
Then remind me to hard-refresh the browser.
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
The model can manage everything above via 14 tools (`mcp_manager_*` / `skill_manager_*` / `prompt_manager_*` / `memory_manager_*` / `
|
|
76
|
+
The model can manage everything above via 14 tools (`mcp_manager_*` / `skill_manager_*` / `prompt_manager_*` / `memory_manager_*` / `subagent_manager_*`); scripts use `POST /dsh-plugin-tool-management/api` (`{op, args}` protocol).
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
@@ -84,7 +84,7 @@ The model can manage everything above via 14 tools (`mcp_manager_*` / `skill_man
|
|
|
84
84
|
- **A scene = a group, a memory = a `.md` file**. `memories/<scene>/<name>.md`, the whole body is injected, file names can be non-ASCII.
|
|
85
85
|
- **Single-choice toggle**: only one scene at a time (others greyed out); turning all off = only `global` and `_shared` inject. New scenes start off.
|
|
86
86
|
- **Scene-bound prompt**: switching scenes rewrites `~/.dsh/AGENTS.md` (5-gen backup, auto-restore on exit).
|
|
87
|
-
- **Scene profile**: every scene combines MCP tools / skills / subagents / memories (any mix); opening a scene applies and narrows injection, closing restores verbatim (the toggle is the only entry). Checked means on, unchecked means off, and **a missing section means nothing is checked — so that whole domain is off** (a scene with no MCP section therefore stops every MCP server, and exit starts them again). While a scene is active those switches (MCP, skills, subagents, prompts)
|
|
87
|
+
- **Scene profile**: every scene combines MCP tools / skills / subagents / memories (any mix); opening a scene applies and narrows injection, closing restores verbatim (the toggle is the only entry). Checked means on, unchecked means off, and **a missing section means nothing is checked — so that whole domain is off** (a scene with no MCP section therefore stops every MCP server, and exit starts them again). While a scene is active those switches (MCP, skills, subagents, prompts) still work — changes are written into that scene's profile too (they take effect immediately and are kept for the next visit); only locking freezes them. The memory domain has a single source of truth and never goes through the profile.
|
|
88
88
|
- **Import**: `.md` / `.zip` (dir name = scene, bundles carry attachments), same names skipped never overwritten, over-limit items reported.
|
|
89
89
|
- **Export**: pick memories and zip them, keeping the `scene/name` layout; bundle memories bring their attachments along. Sources are read-only.
|
|
90
90
|
- **Injection budget**: default 64 KiB, oversized memories skipped with a list. Deletes go to recycle bin.
|
|
@@ -96,7 +96,7 @@ The model can manage everything above via 14 tools (`mcp_manager_*` / `skill_man
|
|
|
96
96
|
- **One file per persona**: `agents/<persona>.md`, frontmatter entirely optional.
|
|
97
97
|
- **Tool limits per Agent preset**: each preset gets its own allow/deny list (mutually exclusive), effective at runtime by the current preset — fixes the old "union of all presets" list that broke subagents after a preset switch.
|
|
98
98
|
- **Run and discard**: `subagent_manager_run` runs with the persona, returns only the result, never enters History, inherits scene memories. Scenes can bind which personas are available.
|
|
99
|
-
- **On/off toggles**: a disabled persona is not injected and invisible to the model (file untouched); newly created / imported / restored personas start enabled. Entering a scene applies the profile's persona list exactly (checked on, everything else off; no section = all off) and exit restores the pre-scene switches. Inside a scene these toggles are
|
|
99
|
+
- **On/off toggles**: a disabled persona is not injected and invisible to the model (file untouched); newly created / imported / restored personas start enabled. Entering a scene applies the profile's persona list exactly (checked on, everything else off; no section = all off) and exit restores the pre-scene switches. Inside a scene these toggles still work and are synced into the scene profile (only locking freezes them); leaving the scene restores the pre-scene state.
|
|
100
100
|
- **Persona catalog enters the system prompt**: names + descriptions only, so the model knows what it can delegate to; personas are renameable, scene bindings follow.
|
|
101
101
|
|
|
102
102
|
### MCP servers
|
|
@@ -142,27 +142,27 @@ The plugin uses the host's own `@deepseek-ai/*` libraries at runtime — they mu
|
|
|
142
142
|
|
|
143
143
|
## Where data lives
|
|
144
144
|
|
|
145
|
-
| Content
|
|
146
|
-
|
|
147
|
-
| MCP definitions
|
|
148
|
-
| Skill policy / custom dirs
|
|
149
|
-
| Skills / memories / personas / presets
|
|
150
|
-
| Subagent toggles
|
|
151
|
-
| Recycle bin
|
|
152
|
-
| Archive ledger / retention
|
|
153
|
-
| Memory index / scenes / profiles
|
|
154
|
-
| MCP sidecars (disabled tools / known tools / notes / settings)
|
|
155
|
-
| Injection settings (five domain switches / suppressing-preset policy) | `~/.dsh/tool-management/inject-settings.json`
|
|
156
|
-
| Runtime log / patch backups
|
|
145
|
+
| Content | Location |
|
|
146
|
+
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
147
|
+
| MCP definitions | `~/.dsh/cordis.patch.yml` (written by the plugin; pre-write copies land in the hub's `backups/`) |
|
|
148
|
+
| Skill policy / custom dirs | `~/.dsh/tool-management/skills-state.json` |
|
|
149
|
+
| Skills / memories / personas / presets | `~/.dsh/tool-management/{skills,memories,subagents,prompts}/` |
|
|
150
|
+
| Subagent toggles | `~/.dsh/tool-management/subagents-index.json` |
|
|
151
|
+
| Recycle bin | `~/.dsh/tool-management/trash/{skills,subagents,prompts,scenes}-trash/` |
|
|
152
|
+
| Archive ledger / retention | `~/.dsh/tool-management/history-*.json` |
|
|
153
|
+
| Memory index / scenes / profiles | `~/.dsh/tool-management/memories-index.json` |
|
|
154
|
+
| MCP sidecars (disabled tools / known tools / notes / settings) | `~/.dsh/tool-management/mcp-*.json` |
|
|
155
|
+
| Injection settings (five domain switches / suppressing-preset policy) | `~/.dsh/tool-management/inject-settings.json` |
|
|
156
|
+
| Runtime log / patch backups | `~/.dsh/tool-management/tool-management.log` · `backups/` |
|
|
157
157
|
|
|
158
158
|
**No user data is stored inside the plugin's install directory** (`dsh plugin update` replaces it wholesale).
|
|
159
159
|
|
|
160
160
|
## Configuration & security
|
|
161
161
|
|
|
162
|
-
| Field
|
|
163
|
-
|
|
164
|
-
| `token`
|
|
165
|
-
| `maxBodyBytes` | Request body cap, default 88 MiB.
|
|
162
|
+
| Field | Description |
|
|
163
|
+
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
164
|
+
| `token` | Access token. When set, **all writes + plaintext secrets** require `x-dsh-token`; **unset = plaintext endpoints closed**. Also the escape hatch for curl / LAN. |
|
|
165
|
+
| `maxBodyBytes` | Request body cap, default 88 MiB. |
|
|
166
166
|
|
|
167
167
|
- **Browser**: reads/writes via cookie, no token needed; but **plaintext secrets** (Reveal / export) need a token.
|
|
168
168
|
- **curl / scripts**: send `x-dsh-token`, or carry the browser cookie.
|
|
@@ -170,14 +170,14 @@ The plugin uses the host's own `@deepseek-ai/*` libraries at runtime — they mu
|
|
|
170
170
|
|
|
171
171
|
## FAQ
|
|
172
172
|
|
|
173
|
-
| Symptom
|
|
174
|
-
|
|
175
|
-
| Pages missing after install
|
|
176
|
-
| Duplicate MCP tabs
|
|
177
|
-
| Broken config, DSH won't boot
|
|
178
|
-
| Action stopped after DSH upgrade
|
|
179
|
-
| Still asked to confirm in `approval=never`?
|
|
180
|
-
| `subagent_manager_run` reports spawn unavailable
|
|
173
|
+
| Symptom | Fix |
|
|
174
|
+
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
175
|
+
| Pages missing after install | Hard refresh; restart DSH if that fails. |
|
|
176
|
+
| Duplicate MCP tabs | Remove the stale loader row from `cordis.patch.yml`, restart. |
|
|
177
|
+
| Broken config, DSH won't boot | Restore the newest `.bak-<timestamp>`. |
|
|
178
|
+
| Action stopped after DSH upgrade | Settings → Tools → **Host** for the reason; `doctor.mjs` → `host-deps.mjs --fix`. |
|
|
179
|
+
| Still asked to confirm in `approval=never`? | No card appears — straight through with a log line; switch back to "workspace write" to get asked again. |
|
|
180
|
+
| `subagent_manager_run` reports spawn unavailable | Host has no spawn provider; mount `@deepseek-ai/dsh-subagent-spawn-in-process` and restart. |
|
|
181
181
|
| Scene binds persona A, but official `subagent` ran something else | Two channels: this plugin only governs `subagent_manager_run`; official `subagent` / `subagent_fork` have no gate and don't know about personas. |
|
|
182
182
|
|
|
183
183
|
---
|
package/docs/images/1-EN.png
CHANGED
|
Binary file
|
package/docs/images/1.png
CHANGED
|
Binary file
|
package/docs/images/2-EN.png
CHANGED
|
Binary file
|
package/docs/images/2.png
CHANGED
|
Binary file
|
package/docs/images/3-EN.png
CHANGED
|
Binary file
|
package/docs/images/3.png
CHANGED
|
Binary file
|
package/docs/images/4-EN.png
CHANGED
|
Binary file
|
package/docs/images/4.png
CHANGED
|
Binary file
|
package/docs/images/5-EN.png
CHANGED
|
Binary file
|
package/docs/images/5.png
CHANGED
|
Binary file
|
package/docs/images/6-EN.png
CHANGED
|
Binary file
|
package/docs/images/6.png
CHANGED
|
Binary file
|
package/docs/images/7-EN.png
CHANGED
|
Binary file
|
package/docs/images/7.png
CHANGED
|
Binary file
|
package/docs/images/8-EN.png
CHANGED
|
Binary file
|
package/docs/images/8.png
CHANGED
|
Binary file
|