DeepSeek Harness 插件集:沙箱权限处理与路径查看器

前言

DeepSeek Harness (DSH) 生态支持通过插件扩展功能。@MarvekG/dsh-plugins 是一个由 MarvekG 维护的 DSH 插件集合,包含兼容性修复和功能增强。它解决了智能体开发中常见的两个具体问题:冗余的沙箱权限请求报错,以及在 Web 界面点击文件路径失败的问题。

核心功能

本插件包含以下已核实的能力:
1. 处理冗余沙箱权限请求:当 session 权限已切换为 danger-full-access,但重试请求仍携带窄于当前权限的 sandbox_permissions 和 justification 时,插件会自动清理这些冗余字段,避免 DSH 报错 sandbox escalation is not strictly wider。
2. 点击路径改为弹出网页查看器:将原生的文件打开请求(可能涉及 spawn powershell.exe)拦截并改为在浏览器中打开,解决 WSL 环境下的路径调用失败问题。
3. 多入口结构:包含 sandbox-same-mode 和 path-viewer 两个独立入口,每个入口拥有独立的 Cordis 生命周期。
4. 语法高亮:依赖 highlight.js 实现代码语法高亮。

安装与启用

需要确保 dsh 命令行工具已安装并运行正常。

从 GitHub 安装

执行以下命令将插件安装到 web profile(请根据实际情况替换 profile 名):

dsh plugin --profile web add github:MarvekG/dsh-plugins

安装或更新后,必须重启 DSH Web 才能生效。

从旧版本升级

本包已从 @MarvekG/dsh-bug-fix 重命名为 @MarvekG/dsh-plugins。升级时必须先卸载旧包,再安装新包,不能走更新流程。

dsh plugin --profile web remove @MarvekG/dsh-bug-fix
dsh plugin --profile web add github:MarvekG/dsh-plugins
dsh web

注意:卸载与重装之间不要重启 DSH Web,避免旧名缺失导致的装配告警。

本地调试与测试

本地调试

克隆仓库后,在根目录执行:

dsh plugin --profile web add .
dsh web

运行测试

在插件目录执行:

npm test

典型用法

沙箱权限处理

插件在工具注册时包装执行函数,覆盖全局工具和 DSH Web 的 preset-scoped 工具。当满足以下条件时,会删除冗余的升级字段并按当前权限执行:
1. sandbox_permissions 是工具 schema 明确公开的枚举值;
2. justification 是非空字符串;
3. 请求权限不宽于当前调用、当前 session 的有效 sandbox 权限。

真正的权限升级和非法输入仍按原流程处理。

路径查看器

插件通过 cordis.patch.yml 单独挂载了 dsh-plugins-path-viewer 入口。
* 查看路径:访问 GET /view?path=<绝对路径>[&line=N]。文件会被渲染为行号表格,目录渲染为可点击的列表页。
* 配置项:
* maxBytes:单次渲染字节上限。
* intercept:改道的 RPC 方法列表。
* 实现机制:通过 webserver/index-inject 向 GUI 页面注入脚本,拦截 host.openPath 和 host.openTextFile RPC,改用 window.open('/view?path=…') 在新标签页展示。若被拦截,自动放行原始请求。

注意事项

  1. 安装或更新后务必重启 DSH Web。
  2. 插件不扩大工作区,也不修改 workspaceRoot,仅做路径展示和权限清理。
  3. 插件基于 MIT 许可证开源。

友情链接

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

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

小夜