DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Very12345 /

Very12345/dsh-computer-use-windows

Verified

Windows desktop computer use for DSH: bound windows, observations, verified input, native approvals and stop controls

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1dd3c42e

DSH Windows Computer Use

为 DeepSeek Harness 0.2 系列提供 Windows 桌面应用操作。参照 Codex 的窗口选择、观察后操作、操作后刷新和错误恢复流程,独立实现 DSH 原生控制层。不包含浏览器 DOM、标签页、扩展或浏览器输入,也不分发 OpenAI 的程序。

安装

dsh plugin --profile desktop add github:Very12345/dsh-computer-use-windows --ignore-scripts

安装后重启 DSH,在设置 → 电脑操作中开启。默认允许所有普通桌面应用,无需逐个添加或授权;浏览器、终端和敏感应用仍被排除。也可切换到“仅预先授权的应用”,用应用列表逐项添加或移除。该模式下未添加的应用通过 DSH 请求会话授权,审批策略为 never 时会被拒绝。页面支持深浅色、窄屏、自动保存,以及独立的暂停与恢复。

推荐卸载旧 dsh-computer-use-win,避免两套控制器。新插件开启时通过 DSH 工具守卫拒绝旧 mcp__wincu__* 调用。它不修改其他插件、模型、预设或 PowerShell/Git Bash 工具。

行为

  • 窗口 id 由真实枚举产生,绑定 HWND、PID 和进程启动时间;标题变化保留绑定,关闭或重建后须重新选择。
  • 截图与 UIA 状态生成一次性 observation_id。默认 5 分钟有效,适应模型较长的思考时间;其他输入会使旧观察失效,窗口、布局、焦点及视觉输入的鼠标位置仍在操作前校验。控件索引属于对应观察,不能跨会话使用。
  • 点击坐标使用返回截图中的像素。插件处理缩放和窗口移动,窗口尺寸变化则要求重新观察。遮挡兜底截图禁止坐标操作。
  • 截图宽高读取实际 PNG,未缩小的截图也包含完整坐标元数据;横纵轴分别处理缩图舍入。窗口尺寸检查使用一致的 Win32 矩形,避免 UIA 边框差异被误判为缩放。200% 等 Windows 显示缩放不需要模型再次换算。
  • 所有桌面任务共用串行队列。每次输入后返回新截图和 UIA 状态,不自动重试输入。
  • computer_scroll 的横纵参数是 Windows 滚轮 delta(每格 120),不是像素。一次动作会依次发送最多 30 个独立滚轮刻度,适用于微信等把大型 delta 钳制为单格的自绘界面;超出上限时回包同时给出请求量、实际发送量和 limited,仍只消耗一次 observation。每格间留有短间隔并检查 Esc 急停;中途输入被拒时返回未知结果,须重新观察再决定。
  • 文本输入使用剪贴板;可识别的编辑控件输入前核对焦点和旧值。空控件输入及整值替换在有限等待内回读完整值。既有文本中的插入或无法回读的控件要求模型检查实际状态。
  • 0.6.3 在 Ctrl+V 前持久写入 Unicode 文本并逐字回读校验;写入失败或剪贴板被其他复制操作改写时,拒绝粘贴。可回读控件观察到输入文本后才恢复先前的剪贴板格式;微信等视觉输入无法确认异步读取完成,因此保留本次输入文字,不再在 250ms 后恢复为空或旧内容。回包的 clipboard.write_verified、restored、retained 明确区分剪贴板准备与编辑器输入结果;剪贴板校验成功不代表控件已经收到文字。
  • type_text 默认 input_mode:auto:可识别的编辑控件走 UIA 检查;微信等自绘界面走视觉输入,要求刚完成左键点击、查看点击后截图,并保持同一窗口、原生焦点和鼠标位置。视觉输入只报告 dispatched,由截图确认,不冒充文本回读。input_mode:uia 可明确禁用视觉路径。
  • verified 表示预期值已回读;dispatched 表示已投递并刷新,须检查界面;outcome_unknown 表示可能已产生效果,先观察再决定是否重试。
  • rejected 表示原生检查明确拒绝且未发送输入;超时、取消或无法确定效果仍为 outcome_unknown。工具不自动重发。
  • 截图作为 DSH 附件保存并发送给支持图像的模型,JSON 不携带 base64。文本模型仍可读取无障碍树,不能凭没有收到的截图猜坐标。
  • 原生系统提示及 windows-desktop 技能包含选择窗口、焦点检查、逐步操作、失败恢复及确认要求。
  • 开始读取或操作窗口时,当前显示器出现约 40 DIP 宽、向内渐隐的蓝色光晕,以及居中的蓝色鲸鱼提示条“DSH is using your computer · Esc to cancel”;实际鼠标动作带有蓝色位置指示和点击反馈。提示层不抢焦点、不接收点击,支持 Windows 缩放。按键盘上的实体 Esc 会立即隐藏提示、取消输入并暂停控制器;需在设置中恢复后重新观察。插件发送的 Escape 快捷键不会触发急停。会话结束、暂停或关闭插件时自动隐藏,也可在设置中关闭视觉提示;关闭视觉提示仍保留 Esc 急停。蓝色鼠标是操作位置提示,输入仍使用系统鼠标。
  • 普通桌面应用默认可用;收紧权限时可选择应用列表模式。中文可执行文件名也能识别。立即停止优先于尚未完成的设置保存,不会被较晚返回的保存请求自动恢复。

工具

computer_list_apps、computer_list_windows、computer_launch_app、computer_get_window、computer_get_window_state、computer_click、computer_type_text、computer_press_key、computer_scroll、computer_drag、computer_set_value、computer_secondary_action、computer_activate_window、computer_stop。

launch_app 支持返回的应用 id 或明确的本地绝对 .exe 路径,不接受命令行或参数。secondary_action 支持 Raise、Invoke、Toggle、Select、Expand/Collapse 和控件滚动;状态提供对应 UIA patterns。set_value 支持可写 ValuePattern,空值替换也适用于可编辑 Document。按键支持小键盘与常见 X keysym 别名,拖动按持续时间生成连续轨迹。

原生工具模式可直接调用。PTC 模式通过宿主生成的 SDK 调用这些工具;截图沿用宿主附件投影。先获取状态,查看结果,再发出下一次动作。

范围与限制

Windows 10/11 交互桌面、PowerShell 5.1、Node ≥22。不要求安装 Python、浏览器扩展或第三方 npm 运行依赖。后台 STA 工作进程使用 UI Automation、Win32 输入及截图;C# P/Invoke/WGC 帮助代码首次编译后缓存。

实际输入占用 Windows 前台。锁屏、UAC、提权窗口、失效焦点或遮挡可能拒绝操作。浏览器、终端、认证、密码管理器和安全应用不接受授权;不允许 Win 键。删除、对外发送、权限修改、支付等动作必须声明 requires_confirmation:true 并通过 DSH 当次审批。通用像素点击不能自动识别所有业务语义,这部分还依赖模型遵循操作技能,并非完整的系统沙箱。

应用目录来自常见系统应用和 Windows App Paths,不声称覆盖所有 UWP/商店应用;运行中的其他允许应用可通过窗口列表发现。UIA 很弱的画布需要模型视觉理解。相同工具设计不保证不同模型具有相同成功率。

开发与验证

npm ci --ignore-scripts
npm run setup-sdk
npm test
npm pack --dry-run
npm run smoke
npm run smoke:tools

npm test 覆盖状态隔离、句柄更换、缩放、窗口移动/尺寸变化、输入不重放、验证延迟、取消、并发串行、审批、图像投影和 DSH SDK 注册。SDK 集成检查需要宿主提供 peer 包。

主清单没有开发依赖或安装/构建脚本,GitHub 安装直接加载发布源码。setup-sdk 仅用于本仓库开发验证:按 test/sdk-packages.json 安装固定版本的 SDK。安装期间临时声明开发依赖,结束后原样恢复主清单,不改锁文件,不属于插件运行步骤。

npm run smoke 在 Windows 上用记事本打开专用空白测试文件,验证选择、原尺寸与缩小截图的真实宽高、像素点击后的系统鼠标位置、输入、完整回读和整值替换。只编辑脚本创建的测试文件,测试后保存其空白原值并关闭测试标签页,不关闭其他文档或进程。截图和本地验证记录放入忽略的 .tmp/,不进入发布包。

npm run smoke:tools 编译本仓库原创的内存测试应用,逐项验证 14 个 DSH 工具,以及中文回读、自绘控件输入、辅助动作、空值替换和小键盘。该应用不访问用户文档、网络或账号,关闭后丢弃测试内容。对照结果和范围见 功能对照记录。

架构与来源

DSH 原生工具 / 设置 / 审批 / 技能 / 附件
  → DesktopController:窗口绑定、观察、串行、验证、取消
  → WindowsBackend:插件拥有的持久 STA 子进程
  → Windows UIA / user32 输入 / PrintWindow、WGC 截图

Windows 后端基于 MIT 项目 Yu-tao-Li/dsh-computer-use-win 的 0.2.3 版本,保留其及 cgissing 的许可,修改了目标身份、控件作用域、焦点、坐标和输入路径。详见 NOTICE、native/LICENSE。DSH 控制层与测试是本仓库代码。主许可证为 MIT。

设置页面

设置页与 Windows 电脑操作页使用一致的分区、开关、状态和主题样式,支持窄屏。可即时生效的开关与选项会自动保存。

边缘采用每像素透明度渐变,提示条使用蓝色渐变、居中的白色鲸鱼轮廓与取消说明。鲸鱼直接使用 DeepSeek 官方 SVG 的原始轮廓,来源与 MIT 许可保存在 native/assets 和 NOTICE。

设置页采用紧凑的行间距与分区留白,保持原生正文字号。侧栏及页面标题使用独立 SVG 图标,并随深浅色主题显示。当前宿主的固定齿轮通过插件内、仅限自身导航项的样式适配替换;卸载时恢复,不修改宿主文件。

—/ 5

No ratings yet

Verified DSH bundle

Commit 1dd3c42ea81f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout