dsh-plugin-tool-management 0.6.0 → 0.8.0

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 (42) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/README.md +117 -221
  3. package/README_EN.md +116 -220
  4. package/docs/images/1/345/234/272/346/231/257.png +0 -0
  5. package/docs/images/1/345/234/272/346/231/257_en.png +0 -0
  6. package/docs/images/2MCP.png +0 -0
  7. package/docs/images/2MCP_en.png +0 -0
  8. package/docs/images/3/346/212/200/350/203/275.png +0 -0
  9. package/docs/images/3/346/212/200/350/203/275_en.png +0 -0
  10. package/docs/images/4/345/255/220/346/231/272/350/203/275/344/275/223.png +0 -0
  11. package/docs/images/4/345/255/220/346/231/272/350/203/275/344/275/223_en.png +0 -0
  12. package/docs/images/5/346/217/220/347/244/272/350/257/215.png +0 -0
  13. package/docs/images/5/346/217/220/347/244/272/350/257/215_en.png +0 -0
  14. package/docs/images/6/350/256/260/345/277/206.png +0 -0
  15. package/docs/images/6/350/256/260/345/277/206_en.png +0 -0
  16. package/docs/images/7/344/274/232/350/257/235.png +0 -0
  17. package/docs/images/7/344/274/232/350/257/235_en.png +0 -0
  18. package/docs/images/8/345/205/274/345/256/271.png +0 -0
  19. package/docs/images/8/345/205/274/345/256/271_en.png +0 -0
  20. package/docs/update.md +56 -38
  21. package/lib/agents-md/service.js +84 -5
  22. package/lib/client.js +1488 -475
  23. package/lib/compat/preset-reach.js +425 -0
  24. package/lib/compat/probe.js +8 -0
  25. package/lib/http-fence.js +21 -0
  26. package/lib/hub.js +160 -2
  27. package/lib/index.js +687 -47
  28. package/lib/mcp/override-blocks.js +195 -0
  29. package/lib/mcp/state-section.js +90 -0
  30. package/lib/prompt-sections.js +148 -0
  31. package/lib/rules/archive-engine.js +99 -29
  32. package/lib/rules/archive.js +56 -28
  33. package/lib/rules/service.js +332 -35
  34. package/lib/skills/core.js +15 -1
  35. package/lib/skills/service.js +3 -0
  36. package/lib/subagents/catalog.js +89 -0
  37. package/lib/subagents/service.js +384 -41
  38. package/lib/subagents/tools.js +18 -5
  39. package/package.json +97 -96
  40. package/screenshots.json +10 -10
  41. package/docs/Changelog.md +0 -144
  42. package/lib/rules/provider.js +0 -121
package/CHANGELOG.md ADDED
@@ -0,0 +1,179 @@
1
+ # 变更日志
2
+
3
+ 本文件记录本项目的所有重要变更。
4
+
5
+ 格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循[语义化版本](https://semver.org/lang/zh-CN/)。
6
+
7
+ - 只想看「大致改了什么」→ [版本更新概要](docs/update.md)
8
+ - 功能说明与用法 → [README](README.md) / [README_EN](README_EN.md)
9
+ - 工程细节(根因分析、实测数据、设计取舍)在 git 历史里,不在这里。
10
+
11
+ ---
12
+
13
+ ## [0.8.0] - 2026-09-15
14
+
15
+ ### 新增
16
+
17
+ - 场景锁定:锁定后 MCP / 技能 / 子智能体 / 记忆 / 提示词五个域整体只读;未启动不能上锁,锁定中不能关闭或切换,先解锁再改。
18
+ - 子智能体开关:停用的人设不注入上下文、模型不可见(文件不动);新建 / 导入 / 回收站恢复的人设自动启用,首次升级全部启用。
19
+ - 场景联动:启动场景时档案勾选的子智能体自动启用,退出按快照精确停回。
20
+ - 子智能体人设目录进入系统提示词:只列名字 + 描述,正文仅在委派时传给子代理。
21
+ - MCP 服务器状态与用户备注进入系统提示词:只列当前真正可用的 server,备注作为决策提示带给模型。
22
+ - 四个管理域补上导出(技能 / 子智能体 / 提示词 / 记忆):勾选条目打包 zip 写到指定目录,只读源文件。
23
+ - 提示词预设支持描述:只显示在插件界面,不写进 AGENTS.md。
24
+
25
+ ### 变更
26
+
27
+ - 导出弹窗重做:固定宽高、默认不勾选、条目分组折叠(技能按来源文件夹、记忆按场景、会话按工作区目录),组内同名条目全部展示。
28
+ - 导入入口统一:提示词补上与技能页同源的导入弹窗;四个导入弹窗一律用「文件要求」清单。
29
+ - 删除场景不再要求先清空:连它下面的全部记忆一起进同一条回收站条目,恢复按原路径整条放回;使用中的场景仍拒绝删除。
30
+ - 场景名与人设名可以改了:改名连带目录与档案绑定同步;保留场景、重名、正在使用的场景明确拒绝。
31
+ - 场景开关成为唯一入口:打开 = 进入场景(应用档案 + 启用),关闭 = 恢复全局默认;「退出模式」与开关走同一条路径。
32
+ - 记忆改为单一真相源 `enabled`:档案弹窗的勾选就是记忆自身的开关;新建与导入的记忆默认不开启。
33
+ - 提示词「应用」生效时机口径修正:下一轮对话即生效(宿主每轮重读 AGENTS.md),不再说「新会话生效」。
34
+ - 技能回收站弹窗重做:上下两块(目录 / 技能)各占一半、各自滚动,两组的后果差异写进界面;入口移到工具栏。
35
+ - MCP 新增默认级别改为全局;「Profile 级」更名「应用级」,级别下拉全局在上。
36
+ - 界面统一化:按钮四级语义、列表类弹窗固定尺寸且只允许列表层滚动、工具栏顺序固定、命名统一「新增 / 导入 / 导出 + 页名」;提示词 / 子智能体页补统计行。
37
+ - 备注输入框加 200 字上限,备注标签如实说明(会随请求发送给模型)。
38
+
39
+ ### 修复
40
+
41
+ - 进 / 退模式报 EPERM 且开关要点两次:索引与技能管理状态的原子写遇文件占用(EPERM/EACCES/EBUSY)自动重试。
42
+ - 退出场景模式后 MCP 服务器级与技能目录不回滚:快照的服务器级 / 来源级名单在读盘时被剥掉,现在原样保留。
43
+ - 列表类弹窗条目多时看不到滚动条:列表组被 flex 收缩后条目直接被裁掉;现在列表层正常滚动并带常驻细滚动条。
44
+ - 顶部「当前模式」横幅永远不显示:开关与按钮各写一个状态、互不同步,现在两者恒等。
45
+ - 长文本排版错位与截断丢失:标题截断补齐并加 `title` 提示。
46
+ - 历史页两个工作区分组标签区分无实际意义,统一为「已移除」。
47
+ - 兼容页把 semver 上界当受支持版本展示。
48
+ - 清理 CSS 死规则、未定义类名与 i18n 死键;滚动容器改为向上查找。
49
+
50
+ ### 移除
51
+
52
+ - 「切入此模式」按钮(开关承担)。
53
+ - 场景档案的 `memories` 段:老档案里的该字段被忽略,不做自动迁移。
54
+ - `memoryAllowed` / `computeMemoriesPlan`(单一真相源后不再需要)。
55
+
56
+ ### 说明
57
+
58
+ - 新建记忆默认不开启是行为变更:已有记忆的 `enabled` 原样保留,不受影响。
59
+ - 老数据里 `mode.scene` 与 `active` 可能不一致:不做一次性迁移,下次拨动任一场景开关时自然对齐。
60
+
61
+ ## [0.7.0] - 2026-09-15
62
+
63
+ ### 新增
64
+
65
+ - 回收站扩到子智能体 / 场景 / 提示词预设三处:删除都进回收站,可恢复或永久删除(恢复绝不覆盖)。
66
+ - 子智能体工具限制改为按 Agent 预设:每个预设一份白/黑名单(互相排斥),运行期按当前预设生效。
67
+ - 兼容页「预设注入边界」改版:五列标签(记忆 / 提示词 / 技能 / MCP / 子智能体),绿/红/灰框一眼看出哪个域被预设关掉。
68
+
69
+ ### 变更
70
+
71
+ - 已移除的来源并入回收站(分目录/技能两部分,目录支持永久删除)。
72
+ - 五处回收站排版统一(固定高度容器、行内边距收紧)。
73
+ - MCP「整理补丁」重新上线:删多余启停覆盖块(生效状态不变),界面只留一个按钮。
74
+
75
+ ### 修复
76
+
77
+ - 技能页「移除来源 / 恢复读取」死按钮:补客户端 op 映射 + 补进 writeOps 门禁清单。
78
+ - `rules-toggle` 不传 `enabled` 时静默 no-op 却返回成功:改为缺参明确拒绝、不写盘。
79
+ - 场景档案「技能集」把来源 key 当技能名显示:改为技能名与来源名分开回传,不再显示 `custom-<hash>`。
80
+
81
+ ### 安全
82
+
83
+ - 明文密钥改为一律要令牌:「显示密钥」与配置导出没配 `token` 时一律拒绝,不再只靠宿主栅栏。
84
+
85
+ ---
86
+
87
+ ## [0.6.0] - 2026-09-14
88
+
89
+ ### 新增
90
+
91
+ - 「工具 → 兼容」页(第 8 个页签,只读):宿主版本、能力可用数、每个动作走原生/适配/不可用、降级项与原因。
92
+ - `node scripts/doctor.mjs`:命令行版兼容体检。
93
+ - `node scripts/host-deps.mjs --fix/--restore`:把插件依赖 junction 到宿主安装。
94
+ - 归档分组可重建:工作区登记被删后按会话目录自动重建,可一键重新登记。
95
+ - 恢复归档顺带挂回工作区归属(此前会掉进「未分组」)。
96
+ - 场景可绑定提示词预设;切换场景直接改写 `~/.dsh/AGENTS.md`(关掉自动恢复基线)。
97
+ - 提示词预设库:新建即可写正文、编辑可改 id(= 目录改名,场景绑定自动跟着改)。
98
+ - 正在生效的提示词预设不能删除。
99
+ - 场景启用改单选(同时只启用一个,新场景默认不启动)。
100
+
101
+ ### 变更
102
+
103
+ - 兼容判定换底座:源码文本比对 → 模块实体 + 能力探测;拒绝永远在写入之前。
104
+ - 技能来源权限语义修正:默认来源必须读取但技能可删;外部目录可停用/移除但技能只读。
105
+ - 用户数据搬出插件目录(归档账本等移入 hub)。
106
+ - 归档服务改为独立门面:`cordis.patch.yml` 只插入本插件。
107
+ - 弹窗按钮统一(取消/关闭只在右上角)。
108
+ - 面板语言跟随宿主;会话页与 AGENTS.md 页接入中英词典。
109
+ - AGENTS.md 应用保留 5 代备份。
110
+ - 提示词预设 id 口径放宽(中文、空格等可用)。
111
+ - `history-retention-set` 拒绝小数;`rules-set-active` 必须显式传参;`mcpm-set-enabled` 停用幂等。
112
+ - 写操作门禁:先过宿主栅栏,`token` 作为脚本/局域网逃生门。
113
+
114
+ ### 修复
115
+
116
+ - 进出场景模式会静默改写技能策略(数据污染):快照只取生效项,已处于目标状态的不再写。
117
+ - 导入技能删进回收站拿不回来:按作用域分岔,用户级来源按 key 重新解析路径。
118
+ - 技能回收站显示字面量 `undefined`。
119
+ - 面板不随宿主语言切换、两页硬编码中文、词条键写错导致界面露原始键名。
120
+ - `subagent_run` 确认门早于参数校验:人设不存在时不再先弹卡。
121
+ - 删除链路前置实现检查:在任何破坏性步骤之前校验所需方法。
122
+ - 英文界面下兼容页结论条仍是中文:改为客户端按当前语言拼。
123
+ - 两处过时文案(AGENTS.md 应用说明、创建技能确认卡落点)。
124
+
125
+ ### 安全
126
+
127
+ - `mcpm-reveal` / `mcpm-export` 额外要求带 `Origin` 头。
128
+ - `history-workspace-register` 补入 WRITE_OPS(此前漏了 token 门禁)。
129
+
130
+ ---
131
+
132
+ ## [0.5.1] - 2026-09-13
133
+
134
+ ### 新增
135
+
136
+ - 场景档案弹窗新加段默认一项都不勾:记忆段只预勾本场景已启用的,其余三段是空集。
137
+
138
+ ### 变更
139
+
140
+ - 档案弹窗「记忆」段只列被编辑场景自己的记忆。
141
+ - 场景页排版重做:卡片只留名字+描述+动作,数量收进页首「当前模式」条。
142
+ - 保留场景「全局」不再出现在场景页与档案弹窗。
143
+
144
+ ---
145
+
146
+ ## [0.5.0] - 2026-09-13
147
+
148
+ ### 新增
149
+
150
+ - 插件自有技能来源「导入技能」(新建/导入落点,优先级高于 `~/.dsh/skills/`)。
151
+ - 「移除来源」= 连目录都不再扫描(文件零改动,可恢复)。
152
+ - 场景档案编辑器新增第 4 段「记忆」。
153
+ - 人设模型与工具限制收进「高级选项」折叠区。
154
+
155
+ ### 变更
156
+
157
+ - **破坏性**:插件产生的文件全部收进 `~/.dsh/tool-management/`(旧位置自动搬入)。
158
+ - 场景升级为显式记录(带描述与顺序);空场景合法;根层裸 `.md` 不再注入。
159
+ - 斜杠命令全部下线。
160
+
161
+ ### 修复
162
+
163
+ - 工具页整页白屏(`sceneLabel` 闭包作用域错)。
164
+ - 导出静默丢失(导出写在 `apply` 体内)。
165
+ - Skills 页被锁死(状态文件缺键被判非法 → 改为缺键自愈)。
166
+
167
+ ---
168
+
169
+ ## [0.2.0] - 2026-09-12
170
+
171
+ ### 新增
172
+
173
+ - 五个域合并进一个「工具」设置面板:MCP / Skills / AGENTS.md 预设 / History。
174
+ - MCP:工具级独立启停、重启只重连不改启停、密钥默认打码、改写补丁前自动 `.bak`(保留 5 份)。
175
+ - Skills:接入 `~/.agents` / `~/.codex` / `~/.claude` 与自定义目录;创建 / ZIP 导入 / 回收站;目录后台监听自动刷新。
176
+ - AGENTS.md 预设库:多套全局基线,一键应用。
177
+ - History:归档会话按项目分组、批量恢复 / 删除、保留期清理;从 Claude Code / Cursor / Codex / 任意文本导入;导出 Markdown / JSONL。
178
+
179
+ > 0.1.1 / 0.1.2 / 0.1.3 没有独立记录(只有 git tag),此处不拆分它们的差异。