- Accueil
- Plugins
- Développement et outils de plugins
- dsh-vscode (dsh-door)
dsh-vscode (dsh-door)
elk-9527/dsh-vscode/packages/dsh-door
Passerelle ACP limitée à loopback pour DeepSeek Harness : relie VS Code et d’autres clients locaux à un noyau en cours via l’adresse loopback locale, en partageant modèles, outils, mémoire et sessions. Permet de consulter l’historique, changer le mode de permissions et appeler les capacités enregistrées par les plugins DSH.
Installer
dsh plugin --profile web add github:elk-9527/dsh-vscodeCe plugin se trouve dans le sous-répertoire packages/dsh-door du dépôt.
README
DSH in VS Code
在 VS Code 侧边栏中接入 DeepSeek Harness(以下简称 DSH):
无需先启动桌面端即可直接提问。接入桌面端时使用同一个运行内核;自行启动时使用同一
$DSH_HOME 下已准备的 DSH 配置集。
本仓库由两个组成部分构成,两者都需要安装。
升级版为面板 0.19.1、接入点 0.7.1:“工具”视图提供代码审查和技能浏览,更多菜单提供文件技能管理;运行记录支持恢复、重试、清理及将报告显式带入对话。可选原生 @dsh Chat 与完整会话 API 集成在同一个主扩展中,继续保持一个活动栏入口。
面板输入框支持文件、选区、技能、Git 变更、问题诊断和内置命令;运行中可排队下一条消息,失败或停止后暂停队列。每轮回答附有改动与测试结果卡,当前窗口保留最近十轮差异,可查看旧轮差异、撤销最新轮的文件改动,并核对工作区测试结果是否已过期。
面板还支持图片选择、粘贴、拖入和发送前预览,显示图片与 GIF,并兼容 dsh-meme 图库。普通图片输入依赖当前会话模型和内核声明的图片能力;当前原生适配范围为 DSH 0.2.1-rc.5,具体格式、大小和历史读取边界见面板说明。
原生 Chat 支持显式文件和选区引用,包括未保存的编辑器内容;历史列表支持搜索、翻页、项目筛选和 Markdown 导出。审查发现可生成只读修复建议,经差异预览确认后逐项应用,并保存后重新审查。无工具修复生成要求 ACP 0.2.1-rc.5 的直接文本能力;能力缺失时提示手动修复,不启动普通工具会话。
完整审查报告保存到本地,离线和重开窗口后可阅读。实际应用的修复、修复前测试、每次重测和后续审查保留关联记录;测试直接依据选中的审查工作区,无需聊天轮次。
两个试点插件需要安装带 Bridge 注册补丁的适配包,发行附件保留原作者来源;市场中的原版插件继续保留原有入口。见下文安装方法。
提供方 SDK 0.1.1 包含类型、注册与校验助手、模拟宿主和独立示例,见 SDK 文档。
当前仅维护 DSH 0.2.1-rc.5(npm 与 Desktop 发行方式)。历史使用内核公开 sessionQuery,权限使用 catalog 接口;不再提供更早内核的适配和本地 v3 文件读取。当前候选的验收状态见 compat/versions.json。
| 包 | 内容 | 安装位置 |
|---|---|---|
packages/vscode-extension(dsh-panel) | VS Code 扩展:侧边栏面板,本身即 ACP 客户端 | VS Code 市场 / .vsix |
packages/dsh-door(dsh-acp-door) | DSH 插件:在运行中的内核上提供仅监听 127.0.0.1 的 ACP 接入点 | dsh plugin add / DSH 插件市场 |
packages/dsh-bridge-sdk | 第三方 Provider 类型、注册、契约验证及技能文件助手 | 插件的 npm 依赖 |
项目目录
packages/:扩展、接入点插件和 SDK 的源码、测试与包文档。tools/:构建、验证与兼容维护工具。docs/:正式接口与维护文档。compat/:兼容范围和对应的公开验证结果。build/:生成的安装包和临时验证产物,不纳入 Git。.local/:本地工作资料和备份,不纳入 Git。
扩展打包、预览和界面验收分别写入仓库根目录的 build/vscode-extension/、build/preview/ 和 build/uitest/。完整测试入口将子进程的临时目录限制在 build/test-runs/,结束时回收;浏览器配置和打包暂存目录也在退出时删除。build/install/ 中被安装配置引用的归档须保留。
为什么需要两个组成部分
ACP 默认使用标准输入输出传输,该通道只能在进程启动时建立,而桌面端此时已经启动并持有内核。 因此由插件在内核内提供一个仅监听本机回环地址的接入点,扩展连接到该接入点:
VS Code ── DSH ACP Panel 扩展(ACP 客户端)
│ ACP over 127.0.0.1:47821
▼
dsh-acp-door(插件:本机 ACP 接入点)
│
▼
运行中的 DSH 内核(agents / 会话 / 记忆 / 工具 / 权限)—— 只有一份
扩展驱动同一个 DSH 实例;聊天和代码审查使用独立会话,共用内核、配置和记忆服务。
两种运行模式
| 模式 | 使用时机 | 实际行为 | 需要准备的内容 |
|---|---|---|---|
| 接入现有内核 | 桌面端正在运行,且接入点已开放 | 面板连接同一个运行内核;会话、模型、工具和权限状态完全一致 | 桌面端配置集已安装接入点插件,并在安装后重启过内核 |
| 面板自行启动 | 桌面端未运行,或现有内核不可用 | 同步桌面端插件与运行时 bundle,并只读加载 desktop 的模型路由、插件开关和参数,再启动 vscode-panel;仍使用本机同一份 $DSH_HOME | 在 vscode-panel 中安装接入点插件,并确保 DSH 已选择默认模型 |
DSH 的会话、记忆与默认模型设置来自同一份 $DSH_HOME;各配置集内安装的依赖和补丁仍独立维护。
为避免桌面端关闭后丢失插件能力,扩展会在 vscode-panel 自启前读取 desktop 清单,并把其中已启用的
注册表插件按实际版本补齐;由当前 DSH 运行时提供的官方 bundle 也会直接启用。后台内核还会通过
--patch 只读叠加 desktop/cordis.patch.yml,所以模型路由、插件开关和参数不会因 Desktop 关闭而丢失,
且不会复制或覆盖任一配置文件。file:、Git、URL 等无法安全复现的来源不会自动复制,原因会写入日志。
运行环境
| 环境 | 支持状态 |
|---|---|
| 本地 Windows 桌面版编辑器 | 产品支持;每个候选仍需单独完成发行验收 |
| 本地 Linux / macOS | 保留本机实现及快速 CI;完整内核与编辑器发行验收待完成 |
| Remote SSH、WSL、开发容器 | 暂不支持;启动时说明内核位置与文件读取尚未适配 |
| 浏览器与虚拟工作区 | 暂不支持,需要本机文件目录及桌面扩展宿主 |
回环地址始终指扩展实际运行机器;当前不通过端口转发连接远程内核。历史通过记录不代表当前候选已满足发布要求,当前状态见兼容矩阵的 currentRelease。
首次安装(每台电脑分别完成)
前提
- 已安装 VS Code 1.90.2 或更高版本,以及可正常启动的本地 DSH。
- DSH 中已有可用的模型服务商和模型。本项目不提供模型账号、模型凭据或远程 DSH 服务。
- 本项目的完整端到端验证环境为 Windows;其它系统的启动分支保留在代码中,但尚未作为发布兼容性结论。
1. 准备面板使用的 DSH 配置集
桌面端已经运行且其中已安装配套插件时,面板会直接接入该内核。为了在桌面端未启动时仍可使用, 建议创建一个可由命令行启动的网页配置集,并在其中安装配套插件:
安装扩展后,可先在 VS Code 命令面板运行 DSH:准备或修复自启配置。该命令会创建
缺失的 vscode-panel web 配置集,安装或更新接入点插件,并同步桌面端已启用的注册表插件;
它不会覆盖已有的同名非 web 配置集。
也可以手工执行:
# 从 DSH 的 web 模板创建配置集(首次执行时)
dsh --profile vscode-panel --from-default-profile web --dump-config
# 安装配套插件,然后确认它已出现在清单中
dsh plugin --profile vscode-panel add dsh-acp-door
dsh plugin --profile vscode-panel list
插件安装后重启该配置集对应的 DSH 内核。插件会跟随该配置集中 DSH 当前选择的默认模型,
无需再次填写服务商与模型名;若该配置集尚未选择模型,请先在 DSH 中完成选择。仅在需要让
接入点固定到另一个模型时,才同时配置 provider 与 model。详见
packages/dsh-door/README.md。
2. 安装 VS Code 扩展
支持配套安装界面的 DSH 中,首次启用接入点时会提示安装 DSH ACP Panel。 选择编辑器和已有配置集后点击安装即可自动下载并验证;稍后也可从 DSH 设置 → VS Code 配套扩展继续安装。 无界面或旧版 DSH 可使用下方命令。
也可在扩展视图搜索 DSH ACP Panel,或执行:
code --install-extension Elk-ydy.dsh-acp-panel
离线安装 .vsix 时,使用实际文件路径并在安装后执行一次 Developer: Reload Window:
code --install-extension <dsh-acp-panel-版本>.vsix --force
打开活动栏中的 DSH 图标后即可开始对话。
DSH Desktop 0.2 无需另外把 dsh 加入 PATH:扩展会自动查找 Desktop 的安装位置和随附运行时。
dshPanel.dshCommand 只在自动发现失败或需要覆盖启动命令时使用。
Bridge 提供方安装
仅安装接入点可以使用普通聊天、模型、权限及历史功能。原生代码审查和技能管理还需要主动注册 Bridge 能力的提供方。发布版提供基于 @michengai/dsh-code-review@0.1.9、@linxin666/dsh-client-ui-skill-explorer@0.4.4 的适配归档,保留上游许可证和原有桌面入口;适配源码及精确来源校验见 tools/bridge/build-pilots.cjs。
当前源码对应未完成发行验收的候选包。开发验收时,先用下文的构建命令生成接入点、SDK 和 VSIX,再运行 node tools/bridge/build-pilots.cjs 生成 build/ide-bridge/pilots/ 下的 michengai-dsh-code-review-0.1.9-ide.8.tgz 与 linxin666-dsh-client-ui-skill-explorer-0.4.4-ide.7.tgz。使用同一轮候选归档,在专用验收配置集中安装:
dsh plugin --profile <验收配置集> add file:<接入点候选路径>.tgz file:<SDK候选路径>.tgz file:<审查适配包路径>.tgz file:<技能适配包路径>.tgz
上面的命令用于可由命令行管理的配置集,例如 vscode-panel。Desktop 的插件请通过桌面端插件界面安装或更新,再重启对应内核。适配归档使用明确的版本和上游来源,不把它当作原作者发布的注册表版本。更新后使用 DSH:诊断连接与配置 核对实际加载的能力。
其它电脑与后续更新
- 每台电脑都需分别安装 DSH、配套插件和 VS Code 扩展。面板不会把一台电脑的 DSH 暴露给另一台电脑,
也不会同步或复制
$DSH_HOME;记忆、会话和插件状态以各机器本地 DSH 为准。 - 接入点固定监听
127.0.0.1,不支持改为局域网地址、端口转发或隧道访问。这样做会绕开本项目明确的 本机安全边界。 - 从 VS Code 市场安装的扩展由 VS Code 按其更新设置升级;从
.vsix安装的扩展需要重新安装新版.vsix并执行 Reload Window。 - 配套插件的常规兼容更新,在目标配置集执行
dsh plugin --profile <配置集> update dsh-acp-door,再重启该配置集的 DSH 内核。 版本说明若标记为不兼容更新,应按该版本的安装说明处理。更新扩展和插件时,应同时阅读对应版本的更新记录。
开发
pnpm install --frozen-lockfile
# 扩展:单元与静态测试 + 界面回放测试
node packages/vscode-extension/test/run-all.js --all # 全部测试
node packages/vscode-extension/tools/uitest.js # 界面回放测试(无头 Chrome)
node tools/bridge/packages.cjs --out build/candidates # 构建并校验 VSIX、接入点和 SDK 候选
node packages/vscode-extension/tools/publish.js --candidate <候选.vsix> # 检查已有候选,不上传
# 插件:纯函数套件,以及端到端试验
node packages/dsh-door/test/frames.js # 帧判定
node packages/dsh-door/test/permission.js # 权限预设方法
node packages/dsh-door/test/port.js # 端口判定
node packages/dsh-door/test/history-events.js # 历史事件投影
node packages/dsh-door/tools/publish.cjs --candidate <候选接入点.tgz> # 检查已有候选,不上传
以上命令从仓库根目录执行,候选路径取自 build/candidates/manifest.json;已有同名候选时需选用新的输出目录。正式上传还需维护者授权及完整验收报告,见发布清单。
其中插件的四个套件也由扩展的 test/run-all.js 一并执行(见该文件中的套件清单)。
node packages/vscode-extension/test/run-all.js 是不依赖 DSH 的快速套件;--all 才会启动真实内核、写入专用测试档并执行
真实回合。提交 CI 运行快速、契约、界面与打包检查;每日及手动任务对官方候选版本执行隔离真实内核验收。
发布前在本机执行 --all --strict,再完成维护流程中的 Desktop、真实模型和最终安装包验收。
运行要求:Node 24、pnpm、本机已安装 DSH、Windows(界面回放测试在无头 Chrome 中执行)。
DSH 更新后的维护
完整步骤见 docs/DSH兼容维护流程.md。先运行只读诊断,
再对精确版本执行隔离真实内核验收;新版本不能仅通过放宽 peer dependency 宣称兼容。
pnpm compat:doctor -- --json
pnpm compat:contracts
pnpm compat:test -- --dsh 0.2.1-rc.5 --tgz <候选接入点.tgz>
pnpm compat:test -- --dsh 0.2.1-rc.5 --install --tgz <候选接入点.tgz>
pnpm compat:release-check -- --evidence <验收证据清单.json>
每日与手动兼容 CI 检查官方稳定版及预发布版,使用隔离数据和本机测试模型服务。 完整发布验收还需要 Desktop 接入、退出后的面板自启、配置继承、真实模型工具及实际 VSIX。 任一必测缺失、失败或跳过均阻止发布检查;市场发布仍由维护者显式执行。
目录说明
docs/—— 项目接口、维护和发布文档。docs/注释与文档规范.md—— 文档与注释规范。packages/*/test、packages/*/tools—— 测试与诊断工具,均不进入发布包。
许可
MIT,见 LICENSE。
Plugins associés
deepseek-harness
deepseek-ai/deepseek-harness
dsh-market
dsh-market/dsh-market
dsh-web (dsh-plugin-manager)
zhu1090093659/dsh-web
dsh-web
zhu1090093659/dsh-web