dsh-weknora
Tencent/WeKnora把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
为 DeepSeek Harness 提供 computer use:js 与 js_reset 工具通过本机安装的 ChatGPT 应用读取窗口、点击、输入与截屏(macOS)。仅 Apple Silicon macOS,需已装 ChatGPT 桌面版。
Self-contained DeepSeek Harness plugin that gives the agent computer use: read windows, click, type, and screenshot any desktop app — through the computer-use runtime of the locally installed ChatGPT desktop app. macOS (Apple Silicon) only.
It vendors only the macOS launch path of the original computer-use integration: it drops the multi-platform host, the setup/update machinery, and any separate CLI, and reuses the CUA runtime of the installed ChatGPT app in place (never copied or re-signed).
/Applications/ChatGPT.app (supplies theoriginal CUA runtime). The plugin reads it in place; it never downloads or modifies it.
>=0.2.1-rc.2 <0.3.DSH Host process (plugin)
└─ spawns <app>/Contents/Resources/cua_node/bin/node runtime/launcher.mjs
├─ resolveInstalledMacApp() validate ChatGPT.app (signature/team/arch/manifest)
├─ environment() build the CUA REPL's env (NODE_REPL_*/SKY_*)
├─ configureMacosLifecycle() wrap Sky with runtime/macos_sky_service.mjs (turn-ended hook)
├─ startOriginalHost() lifetime socket + control bridge (runtime/macos_host.mjs)
└─ spawn the original cua-repl.mjs (the stdio MCP server) with inherited stdioThe plugin then talks MCP to the CUA REPL and registers its js / js_reset tools on DSH's tool registry, injects the runtime's instructions as a system-prompt section, forwards native-app approvals through DSH's question card, and ends each turn upstream (Stop/Interrupt) on DSH's turn/end.
The bundle patch inserts one row with a single option:
appPath: /Applications/ChatGPT.app # path to the installed ChatGPT app@modelcontextprotocol/sdk@1.30.0 is vendored under node_modules/ because DSH links local bundles (link:) and does not install their npm dependencies. DSH ships the newer @modelcontextprotocol/client (v2); adapters/client.mjs is written against the v1 SDK, so the v1 SDK is pinned and committed here. If you move to a file: install or publish to npm, dependencies in package.json already declares the correct version.