DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

BaronCyrus /

BaronCyrus/dsh-harness-ally

Verified

DeepSeek Harness 联盟模式:自由组合 DSH、Claude Code、Codex 与全部已配置模型,保留原生 Agent 生命周期与实时执行过程。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@3e276321

Harness联盟模式(DSH Agent Preset)

让 DeepSeek Harness、Claude Code 和 Codex 共享同一个 DSH 会话生命周期,并与 DSH 原生模型选择器自由组合。

  • 模型仍由 DSH 原生模型选择器决定,自动使用当前已配置的全部 provider/model。
  • Harness由独立的「选择Harness」控件决定,每个回合可切换 DeepSeek Harness、Claude Code 或 Codex。
  • DSH 始终拥有 history、turn、step、checkpoint、权限、取消和最终结果;外部 CLI 只负责执行当前 Agent 模型步骤。

功能

  • 不替换原生 composer/model selector:模型目录与现有 DSH 配置保持单一真源。
  • 严格模式隔离:Harness 选择器只在「Harness联盟模式」出现,Standard 模式完全不显示。
  • 真实外部执行:选择 Claude Code/Codex 后,由对应 CLI 实际执行;提示会明确区分外部执行 Harness 与 DSH 宿主。
  • 完整实时输出:Claude Code 使用 partial messages,Codex 使用 app-server item/agentMessage/delta,正文不再等待进程结束后一次性出现。
  • 可见执行过程:外部回合立即显示 Claude Code/Codex · 正在执行;thinking、reasoning summary、Bash、文件修改、WebSearch、MCP 等活动实时显示在只读 Think 过程区。
  • 不会重复执行工具:外部活动绝不伪装成 DSH tool call,因此 Standard Agent 不会把同一命令再执行一次。
  • CLI 自动检测与托管安装:优先使用 PATH 中的全局 CLI;缺失时在 Harness 菜单内显示「安装」,安装到 DSH 自有目录,不使用 sudo。
  • 并行委派:preset 同时提供 subagent_claude_code 与 subagent_codex。

环境要求

  • DSH(DeepSeek Harness)Web 部署
  • Node.js 与 pnpm(DSH Web Profile 已使用 pnpm)
  • Claude Code / Codex CLI 二者均为可选:可以预先全局安装,也可以在「选择Harness」菜单中按需安装
  • macOS、Linux、Windows

安装

# 1. 克隆到固定 preset id(Host 的隔离规则依赖 harness-ally)
git clone https://github.com/BaronCyrus/dsh-harness-ally.git ~/.dsh/.agent-presets/harness-ally
# Windows PowerShell:
# git clone https://github.com/BaronCyrus/dsh-harness-ally.git "$env:USERPROFILE\.dsh\.agent-presets\harness-ally"

# 2. 把同一仓库以 link 方式注册到 Web Profile
node ~/.dsh/.agent-presets/harness-ally/setup/install.mjs

如果设置了 DSH_HOME,将上面的 ~/.dsh 替换为对应目录。

安装后重启现有 dsh web 进程,然后新建「Harness联盟模式」会话。不要另起替代 Web server;已经打开的 GUI 只会连接原来的 DSH 进程。

使用

  1. 继续使用 DSH 原生模型选择器选择 provider/model。
  2. 打开「选择Harness」,选择 DeepSeek Harness、Claude Code 或 Codex。
  3. 正常发送消息。回合进行中 Harness 会锁定,停止仍由原生 composer 控制。
  4. 外部回合会先出现 Think · Claude Code/Codex · 正在执行;后续 thinking 和工具活动实时更新。
  5. 最终消息下方显示 Harness · model 徽标。

缺失的 Claude Code/Codex 不可直接选择,只会显示「安装」按钮;安装完成后即可选择。CLI 解析顺序是“全局 PATH 优先,DSH 托管目录兜底”。

架构

平面 职责
Host bundle Harness selection、CLI 检测/托管安装、LLM waterfall router、本地模型协议 bridge、Claude partial/Codex app-server adapters、DSH sandbox、provider registry
Agent preset 联盟提示、标准编码工具、subagent_claude_code / subagent_codex;不发布跨会话 Service
Client bundle Harness chip、菜单内安装、回合锁定与 additive Harness · model 徽标;不替换 composer/model selector

模型桥

每次前台外部运行都会创建短期、带随机凭据的 loopback route:

  • Claude Code 使用 Anthropic Messages;
  • Codex 使用 OpenAI Responses;
  • bridge 把请求转换成 DSH llm.stream,保留当前模型选择器给出的精确 provider + model 及 reasoning/sampling 参数;
  • 运行结束立即撤销 route,Host 停止时关闭 loopback server。

外部 Harness 不需要复制 DSH provider key,也不需要维护第二份模型列表。

实时过程与安全边界

  • Claude thinking_delta 和 Codex item/reasoning/summaryTextDelta 映射为标准 DSH reasoning。
  • 外部工具活动映射为 reasoning 中的只读状态行,不产生 tool-call-delta。
  • Agent signal 会终止整个外部进程树;Codex 会先尝试 turn/interrupt。
  • 非 danger-full-access 模式由 DSH 外层 sandbox.confine() 包裹。
  • prompt 通过 stdin/app-server RPC 传输,不出现在 argv。
  • bridge 仅监听 127.0.0.1,每个 route 使用随机 bearer token。
  • 错误诊断不会回传 CLI 原始 stderr、route token 或环境变量。
  • 当前前台外部 Harness 只接受文本上下文;包含图片时会明确提示切回 DeepSeek Harness,不会静默丢图。

目录结构

├── preset.yml / agent.cordis.yml  # preset 元数据与 agent-plane composition
├── ally-prompt.mjs                # 联盟会话提示 section
├── cordis.patch.yml               # Web Profile 的 Host bundle patch
├── lib/
│   ├── index.js                   # Host wiring、transport 与 teardown
│   ├── runtime.js                 # Agent-loop router、实时 reasoning/activity 与最终校准
│   ├── harness.js                 # Claude partial-message adapter
│   ├── codex-app-server.js        # Codex app-server、delta、ephemeral thread、interrupt
│   ├── bridge.js                  # Messages/Responses → DSH LLM loopback bridge
│   ├── cli-manager.js             # 全局优先/托管兜底的 CLI 生命周期
│   ├── state.js                   # Session 日志外的选择与 badge 状态
│   └── client.js                  # Harness selector、安装按钮与徽标
├── test/                          # Node 回归测试
├── setup/install.mjs              # 跨平台、幂等的 Web Profile link 安装器
└── docs/DEVELOPMENT.md            # 开发、安全边界与版本约定

开发

仓库通过 link: 接入 Web Profile,因此同事可以直接在 clone 内迭代:

npm test
node --check lib/runtime.js
node --check lib/harness.js
node --check lib/codex-app-server.js

Host/preset/client 的生产部署变更都需要重启现有 dsh web。只有同时在 DSH checkout 运行 pnpm run dev:web 时,client-plugin HMR 才会自动重建。

详细约定见 docs/DEVELOPMENT.md。

隐私

仓库不包含 API Key、OAuth token、CLI 登录态、DSH state、用户目录、项目路径或运行日志。模型凭据继续由本机 DSH/CLI 管理,不会写入本仓库。

如果贡献 issue/log,请先删除 Authorization header、环境变量、用户名路径、bridge token 和原始 CLI stderr。

许可

MIT © 2026 BaronCyrus

—/ 5

No ratings yet

Verified DSH bundle

Commit 3e276321caac

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout