dsh-approval-enter:用键盘审批 DSH 权限请求

前言

DeepSeek Harness(DSH)的权限审批卡片本身支持 Enter 和 Escape,但只有在键盘焦点位于卡片上时才生效。当请求到来时,卡片会替换编辑器,焦点自动回到 body,导致按 Enter 不起作用。这迫使开发者不得不把鼠标点回卡片,破坏了键盘流。dsh-approval-enter 解决这个问题,让审批过程完全通过键盘完成。

是什么

这是一个为 DeepSeek Harness(DSH)客户端设计的插件,由维护者 wood007924 开发。它的核心价值是:当权限请求的审批卡片出现时,插件自动将焦点引导至卡片区域,并捕获键盘事件,让 Enter 对应「允许一次」,Escape 对应「拒绝」。插件不自动审批、不静默超时,审批逻辑仍走 DSH 原生的锁机制、IME 守卫和重复键守卫。

核心功能

  • 自动聚焦:当审批卡片出现时,插件将焦点移到卡片的 tabindex=0 区域。
  • 捕获阶段监听:如果焦点不在卡片上,插件在捕获阶段拦截 Enter / Escape,先聚焦卡片,再把按键事件重新触发到卡片,使其内置的审批逻辑生效。
  • 不干扰其他输入:插件不会从文本字段抢走焦点,也不会处理除 Enter / Escape 以外的按键。
  • 依赖 DSH 原生逻辑:审批结果仍由 DSH 的 pending-request 锁、IME 守卫和重复键守卫控制,不会绕过这些安全机制。

安装与启用

从 npm 安装(需插件已发布):

dsh plugin --profile <profile> add dsh-approval-enter

从本地 checkout 安装(开发调试):

dsh plugin --profile <profile> add link:/absolute/path/to/dsh-approval-enter

或手动方式:把包放入 <DSH_HOME>/profiles/<profile>/plugins/,链接到该 profile 的 node_modules,并在 profile 的 package.json 中添加 dsh.profile.bundles 条目。

安装后需要重启 DeepSeek Harness,插件才会生效。

典型用法

  1. 打开 DSH,进入插件管理页面,确认「Enter to approve」插件已启用。
  2. 触发一个需要审批的操作(权限模式下才会出现审批卡片)。
  3. 不要使用鼠标,直接按 Enter,请求应立即被允许。
  4. 再触发一次,按 Escape,请求应被拒绝。

注意:只有权限模式会弹出审批卡片。在「完全访问」模式下 DSH 不会询问,因此没有卡片可确认,这是预期行为。

适用场景与注意

适合习惯键盘流、希望减少鼠标操作的 DSH 用户。插件运行在 DSH 进程的权限上下文中,应确保来源可信、查看许可证后再安装。当前版本兼容 DSH 0.2.1-rc.2(桌面、Web UI)。插件依赖 @deepseek-ai/dsh-client-ui-approval 暴露的 [data-approval-key](卡片根)和 [data-approval-scroll](可聚焦区域)两个属性,若未来 DSH 更改这些属性,需要更新 client.js 中的选择器。

结尾

dsh-approval-enter 让审批流程回归键盘,减少鼠标操作,提升操作连贯性。如需更多信息或提交问题,可访问插件目录或 GitHub 仓库。

  • 插件目录:https://www.skillhub.cn/plugins/wood007924/dsh-approval-enter
  • GitHub:https://github.com/wood007924/dsh-approval-enter
羽毛球分组比赛记分
小程序二维码

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

Xiaoye