dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
DeepSeek Harness 插件:一键安装「极简模式 (Git Bash)」agent preset —— 把 DSH 自带极简模式中的 bash 调用映射到 Git for Windows 的 bash(MSYS),让 Windows 上的极简模式真正可用。
DSH 自带的极简模式在 Windows 上无法使用,失败有两层原因:
@deepseek-ai/dsh-subprocess-local 在 win32 上直接拒绝(terminal inspection is unsupported on platform win32),与 bash 是否存在无关;@deepseek-ai/dsh-bash-local 硬编码从 PATH 找 bash,Windows 上默认没有。本插件交付一个可安装的预设变体:同一套极简 persona + str_replace_editor 双工具表面,但 bash 工具每次命令执行 <git bash> -c <command>,并通过沙箱感知门控保证不绕过安全边界。
${DSH_HOME:-~/.dsh}/.agent-presets/minimal-gitbash/),已存在则跳过,force: true 才覆盖;GIT_BASH 环境变量 → 常见安装目录(ProgramFiles / ProgramFiles(x86) / LOCALAPPDATA)→ PATH 中的 bash.exe → 兜底 bash,无需硬编码路径;str_replace_editor、无上下文压缩,与原极简模式一致。| 环节 | 说明 |
|---|---|
| 插件行 | cordis.patch.yml 在 web profile 组合中插入 dsh-gitbash-preset,启动时安装预设文件 |
| 预设组合 | agent.cordis.yml 中 gitbash-shell 组以 entry-local realm 提供 shell 服务,tool-bash 注册模型工具 |
| 执行器 | gitbash-executor.mjs 通过 host 的 subprocess 服务执行 bash -c,处理超时、后台、输出截断与错误诊断 |
| 沙箱门控 | run/start 校验策略:仅 danger-full-access(或部署无沙箱)放行,否则抛出带指引的错误 |
dsh plugin --profile web add @icelily/dsh-gitbash-preset
或手动合并 cordis.patch.yml 到 profile patch 层。重启 DSH 后生效;重启后插件会自动安装预设(已存在则 no-op,不会覆盖你已有的版本)。
也可以不装插件,直接把 agent-presets/minimal-gitbash/ 目录复制到 ~/.dsh/.agent-presets/。
sandbox_permissions: "danger-full-access" + justification 单次升级(走正常审批流程)。预设配置(agent-presets/minimal-gitbash/agent.cordis.yml 中 gitbash-executor):
| 字段 | 默认 | 说明 |
|---|---|---|
shellPath |
自动探测 | 显式指定时优先(如 'C:\\Program Files\\Git\\bin\\bash.exe') |
timeoutMs |
120000 | 单次命令默认超时(上限 maxTimeoutMs) |
maxTimeoutMs |
600000 | 超时上限 |
maxOutputBytes |
64000 | 单流保留字节数(溢出写入 spill 文件) |
graceMs |
3000 | 终止进程的 SIGTERM→SIGKILL 宽限 |
插件配置(cordis.patch.yml 插入行):
| 字段 | 默认 | 说明 |
|---|---|---|
force |
false |
预设已存在时是否用包内文件覆盖(保留用户额外文件) |
npm run check # 三个文件语法检查(插件、执行器、测试)
npm run test # 单元测试:路径转换 / 探测优先级 / 配置校验,10 个用例
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。