Skip to main content
Glama
useorgx

OrgX for DeepSeek Harness Plugin

by useorgx

OrgX for DeepSeek Harness

@useorgx/deepseek-harness-plugin 将 OrgX MCP 工具添加到 DeepSeek Harness 配置文件中,并可通过 Harness 无头模式运行绑定工作区的 OrgX 网关对等端。

此包为开发者预览版。安装包仅证明捆绑包存在;它并不证明 OrgX 认证、网关准入、成功的调度、部署或生产可用性。

使用 OrgX 向导安装

受支持的用户流程是 OrgX 向导。它会检测兼容的 DeepSeek Harness 安装,将此包安装到 headless 配置文件中,并在浏览器中配对 OrgX:

npx @useorgx/wizard@latest setup

然后通过向导启动任务,以便在 DSH 启动前刷新 OAuth 令牌:

npx @useorgx/wizard@latest deepseek "List the OrgX tools available in this workspace."

当 DSH 捆绑包的 MCP 连接或初始工具同步失败时,其启动会失败。不要将包的存在视为 OrgX 工具面已通过认证的证明。

Related MCP server: dsh-harness-mcp-server

直接安装捆绑包

DeepSeek Harness 固定到 0.1.0-rc.6。高级用户可以使用 Node ^22.19.0 或 >=24.0.0 直接安装该包:

npm install --global @deepseek-ai/dsh@0.1.0-rc.6
export ORGX_MCP_ACCESS_TOKEN='your_orgx_oauth_access_token'
export DEEPSEEK_API_KEY='your_deepseek_key'
dsh plugin --profile headless add @useorgx/deepseek-harness-plugin@0.1.0
dsh --profile headless --dump-config
dsh --profile headless "List the OrgX tools available in this workspace."

对于源码开发,运行 npm pack --ignore-scripts,然后使用 file: URL 安装生成的 tarball。裸本地链接不能提供同样的干净安装保证。

该包内嵌了来自 @useorgx/orgx-gateway-sdk@0.1.0-alpha.9 提交 49f3cad612954c448878dc62d0f9c6bc87fa0f79 的确切 MIT 许可 OrgX 网关对等端客户端。DSH 在安装插件时会阻止 Git 和其他外部子依赖,因此捆绑该已审计的客户端是保持新配置文件可安装的原因。参见 THIRD_PARTY_NOTICES.md。

该捆绑包挂载一个名为 orgx 的 @deepseek-ai/dsh-mcp-client 实例。它通过 Streamable HTTP 连接到 https://mcp.useorgx.com/mcp,并发送 Authorization: Bearer $ORGX_MCP_ACCESS_TOKEN。该值必须是客户端托管的 OrgX OAuth 2.1 访问令牌;oxk_ 网关密钥对托管 MCP 无效。设置 ORGX_MCP_URL 以使用其他 OrgX MCP 端点。当缺少 OAuth 令牌或初始 MCP 连接和工具同步失败时,启动会失败。此预览版不运行浏览器 PKCE 流程或刷新令牌;令牌过期时请替换客户端托管的访问令牌。

DeepSeek Harness 0.1.0-rc.6 仅桥接 MCP 工具。MCP 资源和提示词不可通过此客户端使用。非文本 MCP 块在模型侧也会有有损投影,即使执行本地结果保留了其 JSON 块。

运行 OrgX 对等端

对等端在 ORGX_WORKSPACE_ROOT 内设置执行 cwd;如果请求的仓库解析到该目录之外,将在 Harness 启动前失败。这是路径和变更边界,不是主机隔离。Harness workspace-write 不会限制同用户文件读取、进程可见性或网络访问,因此模型或工具可以观察其他主机数据或通过网络发送数据。仅在接受该风险后设置 ORGX_DEEPSEEK_HOST_ACCESS_ACK=1;没有此确认,启动和凭据就绪将失败。

使用范围为 gateway:drive 和 plugin:heartbeat 的 API 密钥。OrgX 网关密钥响应返回一个 installation_id;请将该稳定值与密钥一起保留,并在每次启动时原样传递两者。

export ORGX_API_KEY='oxk_your_workspace_key'
export ORGX_MCP_ACCESS_TOKEN='your_orgx_oauth_access_token'
export DEEPSEEK_API_KEY='your_deepseek_key'
export ORGX_WORKSPACE_ID='your-workspace-uuid'
export ORGX_INSTALLATION_ID='install.your-stable-installation-id'
export ORGX_WORKSPACE_ROOT='/absolute/path/to/the/workspace'
export ORGX_DEEPSEEK_HOST_ACCESS_ACK='1'
dsh plugin --profile headless exec orgx-deepseek-harness-peer

此预览版是未管理的网关协议 v1 对等端。它不实现候选/规范激活和提升生命周期。提供 ORGX_RUNNER_INSTANCE_ID、ORGX_ACTIVATION_ATTEMPT_ID 或 ORGX_RUNNER_ROLE 会导致启动明确失败;这些字段绝不会在其心跳或 socket URL 中发送。

在打开其 WebSocket 之前,对等端会写入一个传输和调度就绪均为 false 的网关心跳。仅在所有以下检查成功后,它才宣告调度就绪:

  • dsh --version 证明固定的运行时进程处于活动状态;

  • 固定的官方 https://api.deepseek.com/user/balance 端点接受 DEEPSEEK_API_KEY 并报告 is_available: true,且不发起推理请求;以及

  • 一次 MCP Streamable HTTP initialize 加 tools/list 交换接受 ORGX_MCP_ACCESS_TOKEN。

秘密的存在和无凭据的版本命令绝不被视为认证。探测失败、被拒绝或过期的凭据以及缺少证据仍然保持故障关闭。成功证据缓存 45 秒;对等端每 15 秒刷新网关存在性,并在 socket 关闭时尽力写入离线心跳。

DSH 子进程接收提供者密钥和单独范围的 MCP 访问令牌,但不接收网关密钥。除 DSH_HOME 外,环境中的 DSH_* 控制不会被转发;子进程被强制为 workspace-write 权限,并且遥测被禁用,因此环境中的完全访问或 OTLP 导出设置无法覆盖这两项策略。这些设置仍然不能隔离主机读取、进程或网络访问。

可选运行时设置:

  • ORGX_BASE_URL 更改 OrgX 网关基本 URL。

  • ORGX_RECEIPT_OUTBOX_PATH 设置绝对持久收据目录。默认位于当前用户的 OrgX 状态目录下。

  • ORGX_DEEPSEEK_HARNESS_BIN 将可执行路径从 dsh 改为其他值。

  • ORGX_DEEPSEEK_HARNESS_PROFILE 将配置文件从 headless 改为其他值。

  • ORGX_DEEPSEEK_HARNESS_MODEL 激活 deepseek-official 提供者的打包模型补丁。它更改组合默认值;已保存在 DSH 设置中的模型仍可能优先。

Harness 无头模式的 stdout 包含最终助手文本和退出代码,但没有令牌或成本核算。因此,驱动程序线路消息必须携带数字 tokens_used: 0 和 cost_estimate_cents: 0;两者都表示此来源处未知,而不是免费。OrgX 将持久化的 DeepSeek 成本规范化为其保守的调度估算,记录计量质量,并将该估算累计到预算上限中。进程退出码为零时报告 outcome_kind: awaiting_review:进程已完成,但工作尚未被接受、合并、部署或经生产验证。

SDK 的 WebSocket 发送没有服务器确认,因此应用程序负责持久性。在产出 task.started 之前,对等端原子地写入一个启动前预留标记。如果写入失败,它会在 Harness 生成之前关闭内部迭代器,并尽力 POST 一个阻塞收据。在产出每个启动后的 task.completed 帧之前,它使用 mode-0600 文件原子地将确切的 v1 HTTP 收据写入 mode-0700 outbox,然后将其 POST 到幂等的运行收据端点。任何文件都不会写入密钥或令牌。

只有 2xx 响应才会移除终态收据。如果 Harness 完成后最终持久化失败,对等端会立即直接尝试绑定 HTTP 收据,并且仍然产出原始完成。2xx 会清除预留;如果 HTTP 也失败,完成会保留在内存重试队列中,其预留标记仍然存在。待处理的收据会在启动、重新连接和每 15 秒的心跳节拍时重试。如果重启时存在未解决的预留,则故障关闭并显示修复消息,而不是冒重新执行的风险。

固定的 SDK 无法持久恢复仅 socket 的 task.failed。因此,在运行开始后,此对等端将失败原因记录为步骤并发出 outcome_kind: blocked;取消则发出 outcome_kind: abandoned。两者都使用应用程序 outbox。在 task.started 之前被拒绝的重复项保持 task.failed,并且无法终止已经拥有该 run id 的调度。

验证

对于包开发,请安装不带生命周期脚本的锁定依赖项,然后运行确定性检查:

npm install --ignore-scripts --no-package-lock
npm run validate

包的测试脚本显式地在 test/*.node-test.mjs 上运行 node:test。仅包含 Node 的后缀使这些套件不会进入仓库根目录的 Vitest 发现范围,同时保留在 npm run validate 中。

验证检查捆绑包和清单、基于证据的就绪性、工作区和子环境边界、取消和重复竞争、未管理的协议 v1 心跳,以及固定 SDK 在断开连接时的 HTTP 失败恢复。它不联系 OrgX 或 DeepSeek。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers