dsh-plan-switch

by a903067276-rgb

UI 增强github 检测到 manifest package.json#dsh 社区精选 收录于 08-17

DSH web 输入栏的一键进入/退出 Plan 模式,/plan 的快捷按钮

One-click enter/exit Plan mode for the DSH web input bar, a quick-click shortcut for /plan.

安装

dsh plugin --profile web add github:a903067276-rgb/dsh-plan-switch

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

预览截图

dsh-plan-switch 截图

README

目录

English | 简体中文

License: MIT

输入框一键进/出 Plan 模式按钮 —— DeepSeek Harness(dsh)web 插件(/plan 的快捷点击)。

非官方项目:社区成员独立开发维护,非 DeepSeek 官方产品。

截图

dsh-plan-switch 输入框 Plan 按钮

输入框工具行左侧的清单图标按钮(官方 dsw 设计风格,跟随深浅色主题)。

功能

  • 一键进/出 Plan 模式:输入框工具行左侧的清单图标按钮,点击执行官方 /plan 切换命令(快捷点击)。
  • Plan 模式中自动隐藏:plan 进行中按钮隐藏自身,状态由官方 Plan 卡片接管显示——不会出现重复指示。
  • 切换 pending 防反:/plan 切换排队期间按钮禁用(语义等同官方 Plan 圆片的"切换中"),防止误点反向切换。
  • 状态实时同步:按钮通过官方投影实时读取 plan 状态,任何入口(/plan 命令、官方圆片、agent 运行中切换)的变化都即时反映。

安装

官方 bundle 一行安装:

dsh plugin --profile web add "github:a903067276-rgb/dsh-plan-switch#main"

装完重启 dsh web(bundle 层在启动时合成)。需要 pnpm(dsh plugin 是 pnpm 转发器)。

手动兜底:详见 docs/install.md —— 软链到 ~/.dsh/profiles/web/node_modules/ + ~/.dsh/cordis.patch.yml 单 entry,重启生效。

用法

输入框工具行左侧的清单图标按钮(官方 dsw 设计风格,跟随深浅色主题),点击进入 plan 模式(等同 /plan)。plan 模式进行中按钮自动隐藏——状态由官方 Plan 卡片接管,不会出现重复指示;/plan 切换 pending 期间按钮禁用,防止再点反向切换。

平台支持

平台 状态
macOS ✅ 全功能实测(开发环境)
Linux ⚠️ 预期可用(纯前端按钮,无平台依赖),未实测
Windows ⚠️ 预期可用(纯前端按钮,无平台依赖),未实测

环境要求

  • DSH web(≥ 0.1.0-rc.6)(dsh web 运行)——代码自适应:先按 rc.8+ 的 3 参契约调用官方 commands.execute,rc.6/rc.7 上自动降级为 2 参
  • 版本对照:
  • 维护策略:本插件将持续跟随 DSH 最新版本演进;对旧版 DSH 的兼容仅是尽力而为、不保证长期有效。
你的 DSH 版本 装这个 说明
0.1.0-rc.6 及以上(含 0.1.1-rc.1/rc.2) main(v0.3.2+) 尽力兼容——3 参调用、rc.6/rc.7 自动降级 2 参(本地实测 rc.6/rc.8,不保证)
0.1.0-rc.8 及以上(保守) v0.3.1 — dsh plugin add github:a903067276-rgb/dsh-plan-switch#v0.3.1 无降级逻辑的最后一版
0.1.0-rc.6 – 0.1.0-rc.7(保守) v0.3.0 — dsh plugin add github:a903067276-rgb/dsh-plan-switch#v0.3.0 2 参 commands.execute 契约
  • 无需任何 host 侧配置:host 半为空实现——整个插件就是浏览器侧一个按钮,调用官方 /plan 命令,全平台无额外依赖

工作原理

  • Host(lib/index.js):无行为——纯 UI 插件;client 半通过 package.json 的 dsh.client 声明被发现(exports["./client"])。
  • Client(lib/client.js):conversation.input.left 插槽注册清单图标按钮(官方 dsw 设计 token,跟随明暗主题);通过 useProjection("plan") 实时读取 plan 状态;点击经 ctx.remote.commands.execute(sessionId, "/plan", []) 执行官方 /plan 命令——全流程走官方命令链。
  • 状态处理:有效 plan 状态照抄官方 PlanChip 算法(pending ? !active : active)。plan 模式进行中按钮返回 null(隐藏——指示归官方 Plan 卡片,不重复);切换 pending 期间按钮禁用,防第二次点击反向;命令失败按钮变错误色,错误信息显示在 tooltip。

注意事项

  • 纯 client 侧:无 host 路由、不写文件、不存数据。
  • 安装/更新后重启 dsh web(bundle 层在启动时合成);client 改动刷新页面即可生效。

开发

  • 源码:lib/index.js(host 侧,空实现)、lib/client.js(web 端注入)
  • 开发流程:本地改 → push main → pnpm update 验证安装

许可证

MIT

原始 README: https://github.com/a903067276-rgb/dsh-plan-switch/blob/main/README.zh-CN.md ↗