dsh-preset-bridge:DSH 桌面版 0.2.x 模式目录桥接

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

注意事项

  1. 版本限制:只适用于 0.2.x 桌面版 profile(>=0.2.0-rc <0.3.0-0),不要装到 0.1.x 环境。
  2. 挂载状态:能被“发现”≠能“健康挂载”。插件只负责把预设注册进注册表,预设内容自身的 0.2.x 兼容性它管不了。如果预设挂载失败,会显示在“设置” -> “Agent 预设” -> “自定义”里。
  3. 兼容映射:兼容映射是逐个积累的,当前只覆盖已知的坑(主要是 worker-thread 到 workflow-ptc 的替换)。如果预设引用了其他被 0.2.0 移除的包,仍会挂载失败。
  4. 引擎差异:worker-thread 与 workflow-ptc 是两种不同的引擎实现(线程池 vs spawn 子进程)。工作流类预设的运行细节可能有微妙差异。
  5. 大版本更新:DSH 大版本更新可能使其失效(0.3.0+ 这些约定随时可能变化)。
  6. 过渡期性质:本插件属于过渡期补丁,随时可能退役。
  7. 无保证:本插件按“现状”提供,不作任何保证。

技术细节

  • 相对路径修复: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 目录中的预设重新接入系统,但仅覆盖已知兼容性问题,并不承诺对所有预设生效。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜