dsh-skill-browser 1.9.11 → 2.0.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +7 -0
  3. package/lib/client.js +1147 -137
  4. package/lib/groups.js +171 -21
  5. package/lib/index.js +141 -2
  6. package/lib/mcp.js +853 -0
  7. package/locale/en.json +2 -2
  8. package/locale/zh.json +2 -2
  9. package/package.json +85 -86
  10. package/lib/client.js.bak-6colimp-20261028-230915 +0 -3748
  11. package/lib/client.js.bak-auth12-20261029-020107 +0 -3749
  12. package/lib/client.js.bak-auth12b-20261029-020140 +0 -3749
  13. package/lib/client.js.bak-auth12c-20261029-020206 +0 -3749
  14. package/lib/client.js.bak-auth12d-20261029-020232 +0 -3747
  15. package/lib/client.js.bak-auto-20261028-171351 +0 -3669
  16. package/lib/client.js.bak-auto2-20261028-171422 +0 -3676
  17. package/lib/client.js.bak-auto3-20261028-171545 +0 -3676
  18. package/lib/client.js.bak-followball-20261028-224743 +0 -3720
  19. package/lib/client.js.bak-gearico-20261028-230937 +0 -3748
  20. package/lib/client.js.bak-glow-20261030 +0 -3676
  21. package/lib/client.js.bak-grid-20261028-220142 +0 -3680
  22. package/lib/client.js.bak-guide-20261029-003108 +0 -3750
  23. package/lib/client.js.bak-guide2-20261029-003213 +0 -3751
  24. package/lib/client.js.bak-guide3-20261029-003236 +0 -3763
  25. package/lib/client.js.bak-guide4-20261029-003249 +0 -3768
  26. package/lib/client.js.bak-guidefc-20261029-003535 +0 -3775
  27. package/lib/client.js.bak-guideico-20261029-013809 +0 -3776
  28. package/lib/client.js.bak-guideorder-20261029-004345 +0 -3775
  29. package/lib/client.js.bak-headbtn-20261028-232114 +0 -3750
  30. package/lib/client.js.bak-menu6col-20261028-225126 +0 -3741
  31. package/lib/client.js.bak-menu6col2-20261028-225348 +0 -3741
  32. package/lib/client.js.bak-menu6col2-20261028-225527 +0 -3741
  33. package/lib/client.js.bak-monobtn-20261028-230502 +0 -3741
  34. package/lib/client.js.bak-navsimple-20261029-015235 +0 -3786
  35. package/lib/client.js.bak-nobadge-20261029-015354 +0 -3784
  36. package/lib/client.js.bak-nodrag-20261028-170713 +0 -3651
  37. package/lib/client.js.bak-official-20261028-171240 +0 -3653
  38. package/lib/client.js.bak-official2-20261028-171304 +0 -3668
  39. package/lib/client.js.bak-renumber-20261028-215518 +0 -3681
  40. package/lib/client.js.bak-sbgap-20261029-013144 +0 -3776
  41. package/lib/client.js.bak-sbgap-20261029-013202 +0 -3776
  42. package/lib/client.js.bak-sbrowh-20261029-012307 +0 -3776
  43. package/lib/client.js.bak-sbrowh-20261029-012333 +0 -3776
  44. package/lib/client.js.bak-scope-sb-20261029-011711 +0 -3776
  45. package/lib/client.js.bak-skinclarity-20261029-011027 +0 -3776
  46. package/lib/client.js.bak-skincols-20261028-224614 +0 -3720
  47. package/lib/client.js.bak-star-20261028-231205 +0 -3748
  48. package/lib/client.js.bak-star-20261028-231233 +0 -3748
  49. package/lib/client.js.bak-sync-20261028-220538 +0 -3680
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.1 — 2026-11-08
4
+
5
+ ### 修复
6
+ - **npm 包体积修正**:`files` 白名单里的 `"lib"` 整目录会把 `lib/` 下 40 个 `client.js.bak-*` 历史备份一并打进包(包体积 3.7MB)。移除该条目,改为只收 `lib/**/*.js` / `lib/**/*.ps1` / `lib/orb/*.html`,包降到 ~806KB / 39 个文件。功能无变化。
7
+
8
+ ## 2.0.0 — 2026-11-07
9
+
10
+ ### 新增:MCP 管理(面板第 4 个 Tab,位于「调用台账」与「快速上手」之间)
11
+ - **读取正在使用的 MCP 配置**:枚举运行时 `ctx.loader` 里每一个 `@deepseek-ai/dsh-mcp-client` 条目,返回真实合并后的配置(serverName / transport / command / args / cwd / url / env 键名),不是读文件猜测。`GET /dsh-skill-browser/mcp/servers`,页面右上「刷新」按钮即时重读。
12
+ - **真实状态**:直接读 Cordis FiberState(pending / loading / active / failed),叠加 `disabled` 与已注册工具数,不再靠日志推断。
13
+ - **工具清单与自动功能概括**:按 `mcp__<serverName>__` 前缀从工具注册表取每个 MCP 的工具与描述;按工具名/描述里的动词关键词自动归类(查询 / 执行 / 写入配置 / 删除停止 / 导出 / 文件 / 会话),生成「N 个工具,主要提供…能力」的概括。
14
+ - **调用统计(落盘累计)**:监听官方 `tools/result` 事件,按 `mcp__<server>` 归类写入 `~/.dsh/data/dsh-skill-browser/mcp-calls.jsonl`(3MB 自动压实为最近 3000 条)。卡片显示累计/失败次数与最近调用时间,详情内显示工具调用排行与近 24 小时计数。提供「清空统计」。
15
+ - **启停 / 重连**:停用/启用会写入 profile `cordis.patch.yml` 末尾一个带 `BEGIN/END` 标记的**受管覆盖块**(纯文本追加,幂等);**不改写整份 YAML、不丢失任何中文注释**(`loader.update` 走 `yaml.dump` 会重写整文件并抹掉 3449 行注释,已排除)。DSH 用户补丁层支持 HMR,改完热应用、重启同样保留。重连走 Cordis Fiber 的内存重启(`fiber.update(config,true)`),不碰文件。
16
+ - **导出**:反解为 Claude Desktop / Cursor 同构的 `mcpServers` JSON,一键复制;可选打码敏感环境变量。`GET /mcp/export?mask=0|1`。
17
+
18
+ ### 实现要点
19
+ - 新增宿主子模块 `lib/mcp.js`(走 `RELOAD_V` 热加载,与 scan/groups 一致);`lib/index.js` 增加 MCP 统计监听与 `/mcp/*` 七条路由;`lib/client.js` 增加第 4 个 Tab、卡片网格、状态胶囊、详情、导出弹层与事件委托。
20
+ - 统计与主数据**分开请求**(`Promise.all`),统计失败不清空服务器列表。
21
+ - 启停前自动备份 `cordis.patch.yml` 到 `~/.dsh/backups/`(保留最近 20 份)。
22
+
23
+ ### 追加(同日):AI 分组提速 / 缓存 / 计时 + MCP 扫描与 AI 修复
24
+ - **AI 分组提速**:补漏调用仅在遗漏 > 20 个技能时才执行;`reasoningEffort` 可压到 low(provider 不支持时自动去掉该参数并重试,实测 magpie 报 `UNSUPPORTED_REASONING_EFFORT` 已自愈);超时放宽到 150s;模型流 abort 时自动重试一次。
25
+ - **结果缓存**:按「技能目录集 + mode」指纹缓存 24 小时,命中直接复用、秒回不调模型;设置面板与分组方案弹层均可一键清除缓存。
26
+ - **计时可视化**:分组进行中面板浮窗显示「已用 Xs / 预计约 40s」+ 进度条;完成后方案弹层显示累计用时;分组工具栏常驻「上次分组 X.Xs · 并行N批 / 串行」或「缓存 0.0s」,写入 localStorage,折叠 / 切走对话 / 重开面板均保留。
27
+ - **AI 分组只读铁律(代码级约束)**:模型输入只允许元数据白名单(目录名 + 中文名 / frontmatter description 前 60 字 + 现分类),**绝不读取 SKILL.md 正文**,**绝不修改 / 移动 / 重命名 / 删除任何技能文件**;含行长断言兜底,超长即拒绝。
28
+ - **并行分批**:技能数 ≥ 45 时最多 4 批并行分类,结果按同名大类归并去重;任一批失败自动回退串行单次(`PARALLEL_CLASSIFY` 单点开关可关)。
29
+ - **MCP「🔍 本机 MCP」**:扫描 DSH 已配置的 MCP + 各 profile / 本地插件 / 全局 npm 目录里所有含 mcp 的包,列出「已配置 / 已装未配置」清单(只读)。接口 `GET /mcp/local-scan`。
30
+ - **MCP「🛠 AI 修复」**:诊断异常 MCP(启动失败 / 调用失败 / 已停用),规则 + AI 给出修复动作(reconnect / enable / disable / clean),确认后执行;写配置前自动备份。接口 `GET /mcp/ai-diagnose`、`POST /mcp/ai-fix/apply`。
31
+ - **修复「新建分组 / 重命名 / 新建子类」点不动**:Electron 不支持 `window.prompt`(静默返回空),改为面板内输入弹层(回车确认 / Esc 取消)。
32
+ - **技能卡片开关对齐**:卡片等高 + 底部操作区 `margin-top:auto` 贴底,同一行内各卡开关滑块落在同一水平线。
33
+
34
+ ### 已知边界(本轮未做)
35
+ - 「粘贴 JSON 一键导入」属 P2,暂未实现(导出已有,导入需写 insert 块,风险面更大,另行提交)。
36
+ - 未提供新增/编辑/删除 MCP 的表单(需精确改写 109KB 补丁文件,误操作可致 DSH 起不来,暂不提供)。
37
+ - 若某 MCP 来自内置层(不在用户 profile 补丁里),启停会返回「无法用文件覆盖」而不是冒险改内置层。
38
+
3
39
  ## 1.9.10 — 2026-10-25
4
40
 
5
41
  ### 修复
package/README.md CHANGED
@@ -84,6 +84,13 @@ pnpm add dsh-skill-browser
84
84
  2. 在 `~/.dsh/profiles/desktop/package.json` 的 `dsh.profile.bundles` 数组加 `"dsh-skill-browser"`(**不要**加进 `dependencies`——本插件零 npm 依赖)
85
85
  3. 重启 DSH,右下角出现 🧩 悬浮球;打开 ⚙ 设置选择你的技能库文件夹即可
86
86
 
87
+ ## 适配版本
88
+
89
+ - DSH 内核(`@deepseek-ai/dsh`):**0.2.1-rc.3**(`package.json` 的 `engines.dsh` 已声明 `>=0.1.7-rc.1`)
90
+ - DSH 桌面端:**2.0.20-next**(DSH NEXT)
91
+ - Node.js:`^22.19.0 || >=24.0.0`
92
+ - 已在上述版本实测通过;低版本 `0.1.7-rc.1` 及以上兼容。
93
+
87
94
  > ⚠️ **发布 24 小时内安装报错?** 这不是插件问题。DSH 桌面端内置供应链安全策略(minimumReleaseAge):刚发布不到 24 小时的 npm 包会被 pnpm 拒绝安装(报错含 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`)。**等一天再装即可**,无需任何配置。
88
95
 
89
96
  ## API(宿主端,仅回环可访问)