dsh-wsl-preset

DSH 标准模式在 Windows 上默认使用 PowerShell 作为 shell,但开发工作常需 Linux 命令(如 grep、rsync 等)。dsh-wsl-preset 将 DSH 标准模式中的 shell 调用映射到 Windows Subsystem for Linux (WSL),让 Windows 上的开发环境拥有完整的 Linux 命令行能力。

插件定位

  • 名称:dsh-wsl-preset
  • 维护者:yukitakasama
  • 类别:工作流
  • 许可证:MIT

核心能力

  • 一键安装:通过 dsh plugin 一键安装「WSL 模式」agent preset。
  • 环境映射:将 shell 执行器改为 wsl -e bash -c,保留标准 persona 和完整工具表面(bash、文件系统、搜索、技能、工作流、委托、present 等)。
  • 自动探测:自动探测 wsl.exe 是否可用,无需硬编码路径。
  • 沙箱感知:WSL 无法在 Windows 受限令牌沙箱内启动,仅允许在完全访问策略下执行,受限时给出明确的升级指引。
  • 幂等自修复:插件启动时将预设装进 ${DSH_HOME:-~/.dsh}/.agent-presets/wsl/,已存在文件不一致时自动刷新,修复旧版本遗留问题。

安装

推荐方式:GitHub 直装

dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset

锁定特定版本:

dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset#v0.3.0

使用流程

  1. Web 界面新建会话,选择 WSL 模式。
  2. 启用命令执行:
    • 将会话沙箱切换到完全访问,之后所有命令直接走 WSL。
    • 或保持 workspace-write,让模型在第一次调用失败后按提示使用 sandbox_permissions: "danger-full-access" + justification 单次升级。

配置与限制

预设配置(agent-presets/wsl/agent.cordis.yml 中的 wsl-executor):
* timeoutMs:120000(单次命令默认超时)
* maxTimeoutMs:600000(超时上限)
* maxOutputBytes:64000(单流保留字节数)
* maxSpillBytes:67108864(spill 文件上限)
* graceMs:3000(SIGTERM→SIGKILL 宽限)

插件配置(cordis.patch.yml 插入行):
* autoUpdate:true(已装预设与包内文件不一致时自动刷新)
* force:false(即使文件已经一致也覆盖)

限制:
* 沙箱限制:会话沙箱为 workspace-write(或更窄)时,WSL 无法启动,必须切换完全访问或单次升级。
* 状态隔离:每次命令调用均为新 shell,不保持 cd/export 状态。
* 工具名:工具名固定为 bash。
* 系统要求:需系统已安装并启用 WSL。

生态背景

DSH 理念为「一切皆插件」。本插件由社区维护,与 DeepSeek / 幻方无官方从属关系。

参考资料

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

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

小夜