🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

输入区增强 luzonghao/dsh-input-light

DeepSeek Harness
luzonghao26 天前有提交已提供中文文档扫描:无法判定

Tab 切权限档,⌘S 两下续跑中断任务

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/5 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add luzonghao/dsh-input-light
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · security
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · luzonghao
  • · dsh-input-light
  • · tarball)
扫描于 2026/11/1(0 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • Tab切换权限预设
  • ⌘S两步恢复中断任务
  • 权限标签按预设配色

README

由 DeepSeek 最新模型翻译生成
dsh-input-light 输入区增强插件,用于 DeepSeek Harness(dsh): Tab 循环权限档、⌘S 按两下继续中断的工作、权限 chip 按档配色。 纯客户端、零配置、中英双语。 功能 | 功能 | 触发 | 行为 | | 切换权限档 | Tab | 只读 ⇄ 工作区内修改 —— 永不自动进 Full access / Auto | | 继续中断的工作 | ⌘S 按两下,或 chip 右侧的 ↻ 按钮点两下 | 发送「你的工作中断了,请你继续。」 | | 权限 chip 配色 | 自动 | 只读 = 黄、工作区写入 = 蓝、完全访问 = 红 | 1. Tab 循环权限档 Read Only ⇄ Workspace Write 为什么只有两档:/permission <preset> 作为命令是直接执行、无确认的(只有通过可见控件选择才需要确认风险)。所以循环刻意只用两档安全模式 ——要 Full access 仍请走 UI 的确认弹窗。 从危险档(Full access / Auto)按 Tab 会收回只读(安全方向)。 2. ⌘S 继续中断的工作 发送固定文案:「你的工作中断了,请你继续。
展开完整文档(README 剩余 1 节)
dsh-input-light

输入区增强插件,用于 DeepSeek Harness(dsh): Tab 循环权限档、⌘S 按两下继续中断的工作、权限 chip 按档配色。
纯客户端、零配置、中英双语。

功能

| 功能 | 触发 | 行为 |
| 切换权限档 | Tab | 只读 ⇄ 工作区内修改 —— 永不自动进 Full access / Auto |
| 继续中断的工作 | ⌘S 按两下,或 chip 右侧的 ↻ 按钮点两下 | 发送「你的工作中断了,请你继续。」 |
| 权限 chip 配色 | 自动 | 只读 = 黄、工作区写入 = 蓝、完全访问 = 红 |

1. Tab 循环权限档

Read Only ⇄ Workspace Write

为什么只有两档:/permission <preset> 作为命令是直接执行、无确认的(只有通过可见控件选择才需要确认风险)。所以循环刻意只用两档安全模式 ——要 Full access 仍请走 UI 的确认弹窗。

从危险档(Full access / Auto)按 Tab 会收回只读(安全方向)。

2. ⌘S 继续中断的工作

发送固定文案:「你的工作中断了,请你继续。」

走宿主自己的输入面提交,因此与手动按 Enter 行为完全一致:

ctx.sessions.binding(sessionId) // → 会话 binding
→ ctx.uiSession.sourceFor(binding) // → 该会话的 provide 通道面 → .props.inputActions // → { setDraft, submit, … } → setDraft(RECOVERY_TEXT); submit();

结果会在会话日志里产生真正的 user/message(source.kind === "user"),而不是"调用返回 ok 但什么都没发生"。

⚠️ 反例备忘:ctx.remote.session.prompt(...) 是 ACP 协议方法,调用会 resolve,但不会产生 user 消息(实测会话日志 0 条)。不要改回它。

两步确认(防误触) —— ⌘S 与按钮共用同一状态机:

| 第几步 | ⌘S | 按钮 | 表现 |
| 第一下 | 按一下 | 点一下 | 进入确认态:按钮变 ✓ 黄底、tooltip 变「再按一次确认发送」,不发送 |
| 第二下(3 秒内) | 再按一下 | 再点一下 | 发送 |

- 两条路径共享状态 ⇒「⌘S 一下 → 再点按钮」也能确认(反之亦然)
- 确认窗口 3 秒,超时自动撤销回灰色 ↻
- 按钮带原生 tooltip,显示功能与快捷键键帽(⌘ S)

3. 权限 chip 按档配色

| 档位 | 颜色 | 宿主主题变量 |
| Read Only | 黄 | --dsw-alias-state-warn-primary |
| Workspace Write | 蓝 | --dsw-alias-state-business-primary |
| Full access | 红 | --dsw-alias-state-error-primary |

用主题变量而非写死色值 ⇒ 明暗主题自动跟随。
chip 的原始内联样式会被保存,插件卸载时完整还原,不留痕。

键位可改绑

两个键位注册在宿主快捷键服务里,会出现在快捷键面板(⌘/):

| 命令 id | 默认键 | 说明 |
| input-light.cycleMode | Tab | 切换权限模式 |
| input-light.recover | ⌘S | 继续中断的工作(按两下) |

在那个面板里改绑即可,无需改代码。

安装

plugin_manager action=install_bundle
target=<dsh-input-light 的路径>

详见 INSTALL.md。要点:把 bundle 注册进 DSH profile,然后重启 DSH (新增 bundle 只在启动时被读取;之后改代码只需刷新页面)。

实现约束

完整工程日志见 index.md。一路上导致反复返工的四条约束:

1. 外部客户端插件只能渲染进 root 作用域座位。 conversation.input. 这类座位是 scope: "session":插件注册成功但永不渲染 (实测 5/5 座位 mounted: false)。本插件用 shell.overlay(kind: "list", scope: "root")。

2. 快捷键必须走 ctx.shortcuts。 裸 DOM keydown 永远看不到 Tab / ⌘S —— 宿主键盘层在 DOM 之前就消费掉了它们(普通字符能到,这两个从来不到)。注册还必须带 regions: ['page', 'editable'],否则输入框聚焦时命令不触发。

3. Cordis 服务及其子命名空间都必须 inject。 访问未声明的会抛异常*(cannot get property "remote.commands" without inject)。

4. 注册必须幂等。 apply 会被调用多次;重复注册同一命令 id 会抛 Duplicate shortcut command,而若这次抛错发生在注册第二个命令之前,两个命令都不会注册上 ——会悄悄弄坏一个本来能用的快捷键。

自检

node test/logic.test.mjs # 60 例纯逻辑,不需要 DSH

浏览器控制台里:

__dshInputLight.probe() // { chipFound, preset, sessionId, tooltip }
__dshInputLight.state() // 最近一次 cycle / recover 的结果
__dshInputLight.confirmStage() // 'idle' | 'confirm'
__dshInputLight.cycle() // 手动切一次
__dshInputLight.confirm() // 走两步确认(与 ⌘S 同一条路)
__dshInputLight.send() // 跳过确认直接发送(仅自检)
__dshInputLight.restoreChip() // 还原 chip 样式

许可

MIT © 2026 luzonghao
预览分享卡片长什么样 ↓luzonghao/dsh-input-light
分享 · DeepSeek Harness Hub
luzonghao/dsh-input-light

Tab 切权限档,⌘S 两下续跑中断任务

回到顶部