DSH 桌面版 0.2.0 移除了对预设目录的扫描。在 0.1.x 环境下常用的 ~/.dsh/.agent-presets 目录下的预设会从模式选择器消失。本插件旨在恢复这一发现通道,把 0.1.x 惯例的预设目录重新接入 DSH 桌面版 0.2.x 的模式列表。
插件概述¶
- 名称:dsh-preset-bridge
- 维护者:Lyrissonare
- 分类:工作流
- 核心功能:
- 把 0.1.x 惯例的预设目录重新接入 DSH 桌面版 0.2.x 的模式列表。
- 处理
@deepseek-ai/dsh-workflow-worker-thread到官方dsh-workflow-ptc的兼容性映射。 - 支持在
cordis.patch.yml中配置额外扫描目录(roots)。 - 重写相对行名为绝对
file:URL 以修复挂载错误。
安装与启用¶
安装插件需要使用管理员权限,执行以下命令:
D:\DSH\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add https://github.com/Lyrissonare/dsh-preset-bridge
安装完成后必须重启桌面端。重启后,在新建会话时检查模式选择器,应能出现 .agent-presets 下的各预设;或在“设置” -> “Agent 预设” -> “自定义”中查看。
配置¶
插件支持在 profile 的 cordis.patch.yml 中按 id 覆盖配置:
- id: dsh-preset-bridge
config:
roots: # 额外扫描目录;缺省只扫 ${DSH_HOME:-~/.dsh}/.agent-presets
- D:/somewhere/else/presets
注意事项¶
- 版本限制:只适用于 0.2.x 桌面版 profile(>=0.2.0-rc <0.3.0-0),不要装到 0.1.x 环境。
- 挂载状态:能被“发现”≠能“健康挂载”。插件只负责把预设注册进注册表,预设内容自身的 0.2.x 兼容性它管不了。如果预设挂载失败,会显示在“设置” -> “Agent 预设” -> “自定义”里。
- 兼容映射:兼容映射是逐个积累的,当前只覆盖已知的坑(主要是
worker-thread到workflow-ptc的替换)。如果预设引用了其他被 0.2.0 移除的包,仍会挂载失败。 - 引擎差异:
worker-thread与workflow-ptc是两种不同的引擎实现(线程池 vs spawn 子进程)。工作流类预设的运行细节可能有微妙差异。 - 大版本更新:DSH 大版本更新可能使其失效(0.3.0+ 这些约定随时可能变化)。
- 过渡期性质:本插件属于过渡期补丁,随时可能退役。
- 无保证:本插件按“现状”提供,不作任何保证。
技术细节¶
- 相对路径修复:0.2.0 注册表挂载预设时按“声明处 baseUrl”解析相对脚本名,预设目录里的本地脚本会解析失败。插件在挂载前会将
./开头的行名重写为pathToFileURL绝对地址。 - 依赖替换:0.1.x 预设的 delegation 组通常包含
@deepseek-ai/dsh-workflow-worker-thread,0.2.0 已将其移除。插件在注册前会将其原位替换为官方的@deepseek-ai/dsh-workflow-ptc。 - 重名处理:预设重名(与内置或彼此撞 id)时注册表会抛错,插件会捕获后告警跳过,不让单个坏预设拖垮其余注册。
总结¶
dsh-preset-bridge 是为了解决 DSH 桌面版 0.2.0 移除目录扫描而引入的过渡方案。它能将本地 .agent-presets 目录中的预设重新接入系统,但仅覆盖已知兼容性问题,并不承诺对所有预设生效。