← 返回列表
⚠ 装前注意
DSH Coding PresetDSH 编码模式预设
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/8/22 · 已提供中文文档
适用于 Windows 的 DSH 编码代理预设,带有持久化的 PowerShell 7(pwsh)和 str_replace_editor,与官方最小预设保持一致。
综合分
33.7
GitHub 分
33.7
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Saikel-Orado-Liu/dsh-coding-preset未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@gamegeek-saikel/dsh-coding-preset(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 03:09:57
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DSH Coding Preset(DSH 编码模式预设) English · 简体中文 ⚠️ 已弃用 DSH 官方极简模式现已默认提供该功能,本包不再推荐安装,仅作历史参考。 本包已弃用,因为 DSH 官方极简模式已默认实现该功能。 DSH Coding Preset 是为 DeepSeek Harness(DSH)打造的 Windows 适配版“编码模式”Agent 预设——官方极简模式(minimal)的 Windows 移植。它保留官方 minimal 的组成(固定 persona、无上下文压缩、仅 pwsh + str_replace_editor 两个工具),但把官方持久 bash 替换为持久 PowerShell 7(pwsh)。 - PTY 后端(packages/dsh-terminal-pwsh/):基于 node-pty/ConPTY 的持久 pwsh 后端,仿照 @deepseek-ai/dsh-terminal-bash。 - 模型侧工具(packages/dsh-tool-pwsh-persistent/):持久 pwsh 工具,仿照 @deepseek-ai/dsh-tool-bash-persistent。 - 预设文件(agent.cordis.yml / preset.yml):把两个本地包挂载到 DSH 的 coding Agent 预设中。 安装 注意: 本包已弃用,请优先使用 DSH 官方极简模式(minimal),官方已默认提供相同功能。以下命令仅作历史参考保留。 本项目以单个 npm 包(@gamegeek-saikel/dsh-coding-agent-preset)发布。安装到 DSH web profile 后,包的 postinstall 脚本会自动部署预设文件与两个内部包。 前置要求: 本预设需要 PowerShell 7(pwsh),不是 Windows 自带的 Windows PowerShell 5.1(powershell.exe)。请手动安装 PowerShell 7,例如从 下载,或运行 winget install Microsoft.PowerShell。 安装到 web profile: npx @deepseek-ai/dsh plugin --profile web add @gamegeek-saikel/dsh-coding-agent-preset 启动 DSH: npx @deepseek-ai/dsh web 如果已全局安装 DSH CLI,也可以用 dsh 代替 npx @deepseek-ai/dsh: dsh plugin --profile web add @gamegeek-saikel/dsh-coding-agent-preset dsh web 本包也保留手动安装方式:将 agent.cordis.yml / preset.yml 复制到 ~/.dsh/.agent-presets/coding/,然后运行 install.ps1 把两个内部包复制到 ~/.dsh/profiles/node_modules 与 harness node_modules。 Demo / 评测数据 使用 DeepSeek V4 Pro(reasoningEffort=max)在两条“一句话网页应用生成”任务上验证。两次会话都只使用 pwsh + str_replace_editor,并生成了完整的单文件 HTML Demo。 | 产物 | 推理模块 | we | let's | let me | 可见回复 | 工具调用 | 耗时 | |---|---:|---:|---:|---:|---:|---:|---:| | blackhole.html | 98 | 411 | 383 | 6 | 1 | 102 | ~29 分钟 | | mc.html | 162 | 525 | 539 | 4 | 1 | 167 | ~54 分钟 | Demo 文件与 Session 日志:demo/ 完整分析:docs/pro-test-evaluation.md 概述 官方持久 bash 后端无法在 Windows 上运行(其 subprocess 终端检查仅支持 Linux/macOS),而官方 dsh-tool-pwsh 又不是持久的(每次命令都新起一个 pwsh -Command)。因此本项目提供了一套 Windows 原生的持久 pwsh 栈,与官方持久 bash 保持相同的三层架构: 1. PTY 注册表——复用官方 @deepseek-ai/dsh-terminal 服务,并放在 agent 私有的 terminals realm 中。 2. 后端——dsh-terminal-pwsh 通过 node-pty/ConPTY 直接启动 pwsh,用受控提示符检测就绪,并用 taskkill 清理进程树。 3. 工具——dsh-tool-pwsh-persistent 实现相同的 start/end marker 协议与 PowerShell 命令包装,使 cwd、变量、函数、别名、激活的环境在多次调用间保持。 关键性质 | 性质 | 值 | |---|---| | 范围 | 官方 minimal 编码预设的 Windows 适配 | | Shell | 持久 PowerShell 7(pwsh),基于 node-pty/ConPTY | | 工具 | 仅 pwsh + str_replace_editor | | Persona | 与官方 minimal 逐字一致:You are a helpful software engineer assistant. | | 命令包装 | Invoke-Expression + 反引号转义双引号字符串;$ErrorActionPreference = 'Stop' | | 就绪检测 | 受控提示符 __DSH_PERSISTENT_PWSH_PROMPT__ + 静默/超时兜底 | | 沙箱模式 | danger-full-access → 持久 PTY shell;受限模式 → 一次性 pwsh 执行 | | 提权 | 单次 sandbox_permissions + justification,经 ctx.approval 审批;fail-closed | | 模式切换 | 任何有效沙箱模式变化都会关闭持久终端;下一次调用按新模式重建 | | 安装 | dsh plugin --profile web add @gamegeek-saikel/dsh-coding-agent-preset | | 测试 | 提示面一致性、沙箱提权、沙箱模式切换 | | 本地化 | 简体中文 + English(预设展示随 DSH Web 界面语言切换) | | 许可证 | MIT | 用法 安装并重启后,“编码模式”会话内只会看到两个工具:pwsh 和 str_replace_editor。 - 持久路径(danger-full-access):命令运行在共享的持久 pwsh PTY 中。变量、函数、别名与当前目录在多次调用间保持。 - 受限路径(read-only / workspace-write):命令以一次性 pwsh -Command 方式执行,与官方非持久 dsh-tool-pwsh 行为一致,状态不保持。 - 沙箱提权:受限命令被拒绝时,输出会包含 [sandbox: file access denied ...] 与 escalation available — retry this exact command once with sandbox_permissions。重试时带上 sandbox_permissions 和 justification 可申请单次审批;获批权限只作用于该次调用,不改变会话模式。 快速验证: Write-Output "hello" 然后在 danger-full-access 会话中再运行一条读取变量的命令,即可看到持久性。 架构 | 层 | 官方(bash,Linux/macOS) | 本项目(pwsh,Windows) | |---|---|---| | PTY 注册表 | @deepseek-ai/dsh-terminal(terminals 服务) | 复用官方同一服务,isolate: terminals 私有 realm | | 后端 | dsh-terminal-bash(subprocess + Linux 进程检查器) | dsh-terminal-pwsh:node-pty/ConPTY、受控提示符就绪、taskkill 树清理 | | 工具 | dsh-tool-bash-persistent(start/end marker 协议) | dsh-tool-pwsh-persistent:同一协议 + PowerShell 方言包装 | 关键实现点: - 命令包装——Invoke-Expression + 反引号转义双引号字符串;多行命令、$ 插值与引号都能安全存活。 - 退出码语义——$ErrorActionPreference = 'Stop' 使失败 cmdlet 对齐 bash 的非零退出语义;try/catch 与显式 -ErrorAction 不受影响。 - 就绪检测——PowerShell/PSReadLine 会剥离 OSC 133 提示符标记,因此用受控提示符文本尾部匹配 + 静默/超时兜底。 - 生命周期——超时关闭并重置 shell;exit 检测并重置;owner 级缓存与串行队列与官方设计一致。 - 双路径执行——danger-full-access 使用持久 PTY shell;受限模式使用一次性执行。 - 单次提权——sandbox_permissions + justification 经 ctx.approval 审批;拒绝、非加宽请求、缺 justification、无审批服务均 fail-closed。 - 沙箱模式切换——任何有效模式变化都会在后台关闭持久终端;下一次调用透明地按新模式重建。 - 提示面一致性——persona 与工具描述保持与官方 minimal 对齐;运行时不再拼接提权段落。 项目结构 dsh-coding-preset/ ├── agent.cordis.yml # 根预设组合(手动安装用) ├── preset.yml # 根预设元数据(手动安装用) ├── cordis.patch.yml # Web profile bundle 补丁(默认使用 coding 预设;替换 agent-preset UI) ├── presets/coding/ # npm 包内随附、可自动安装的预设目录 │ ├── agent.cordis.yml │ └── preset.yml ├── dsh-coding-preset-client/ # dsh-client-ui-agent-preset 的 fork,加入 coding-mode 本地化支持 │ ├── package.json │ └── lib/ │ ├── client.js # 浏览器半区:把 coding 加入内置预设本地化表 │ └── index.js # 宿主插件桩 ├── install.ps1 # 一键部署到当前 DSH ├── package.json # 用于 npm 发布的单包元数据 ├── pnpm-lock.yaml # 锁文件(npm/GitHub Actions 使用) ├── LICENSE # MIT 许可证 ├── README.md # English documentation ├── README.zh-CN.md # 简体中文文档 ├── DEPRECATED.md # 弃用说明(DSH 官方已默认实现) ├── docs/ │ ├── pro-test-evaluation.md # Pro 模式黑洞 / MC 评测数据 │ └── pro-test-data.json # 机器可读的评测数据 ├── demo/ │ ├── blackhole/ # 黑洞 Demo 产物 + Session 日志 │ └── mc/ # MC 风格 Demo 产物 ├── .github/workflows/publish.yml # v* 标签触发 npm 自动发布 ├── scripts/ │ ├── analyze-session.mjs # Session JSONL 轨迹词频分析器 │ ├── check.mjs # pnpm build 使用的语法检查脚本 │ └── install-preset.mjs # postinstall:复制预设与内部包到 DSH 目录 ├── packages/ │ ├── dsh-terminal-pwsh/ # PTY 后端包(node-pty/ConPTY) │ │ └── lib/index.js │ └── dsh-tool-pwsh-persistent/ # 模型侧持久 pwsh 工具包 │ └── lib/index.js └── tests/ ├── prompt-parity.mjs # 提示面一致性(无需 PTY) ├── sandbox-escalation.mjs # 提权 / 双路径行为 └── sandbox-mode-switch.mjs # 沙箱模式切换行为 开发与测试 仓库根目录已有用于 npm 发布的 package.json;本项目没有运行时构建步骤,pnpm build 只对包内 JS/MJS 做语法检查。测试仍是直接使用 Node 运行的脚本,从已安装的 DSH harness node_modules 导入依赖。 node tests/prompt-parity.mjs prompt-parity.mjs 不需要 PTY,可在受限模式下运行。另外两个套件会启动真实的 ConPTY pwsh 会话,因此需要 danger-full-access: node tests/sandbox-escalation.mjs node tests/sandbox-mode-switch.mjs 先运行 install.ps1,确保两个包已出现在测试所引用的 harness node_modules 路径中。 文档 - packages/dsh-terminal-pwsh/README.md——后端设计与配置 - packages/dsh-tool-pwsh-persistent/README.md——工具契约与已知 Windows 限制 - README.md — English version 许可证 本仓库(源码、测试、README 与 DSH 预设形态)以 MIT License 授权——见 LICENSE。 Copyright (c) 2026 Saikel-Orado-Liu aka GameGeek-Saikel
同作者(Saikel-Orado-Liu)的其他插件
扫码进群