DeepSeek Harness 插件

wulun811/LiuHe#bundle

Star 数 ★ 1 分类 工具与能力 收录于 2026-08-16 npm @jieai/dsh-malong-bridge

将 LiuHe MCP 代码工具集(44 个工具)桥接进 dsh web:repo_map、符号搜索、带容错匹配的 edit_batch、带撤销日志的事务性编辑,以及确定性质量门禁——由崩溃隔离的 Rust tree-sitter 解析守护进程和 SQLite 索引支撑。

安装

# npm 包(预构建)

dsh plugin --profile web add @jieai/dsh-malong-bridge

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:wulun811/LiuHe#path:/malong/dsh/bundle

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

该插件的 README 只有英文版本。

Official DSH (DeepSeek Harness) plugin for LiuHe / malong. One command puts all 44 malong__* MCP tools into dsh web, and malong's workspace automatically follows the current conversation's workspace — no need to pass a path manually.

dsh plugin --profile web add @jieai/dsh-malong-bridge
pkill -f "dsh web"
dsh web --port 3456 --host 0.0.0.0

Works out of the box: the bridge locates the bundled server/mcp-server.js (complete toolset backend; the only native dependency, better-sqlite3, ships cross-platform precompiled binaries), so no extra deployment is needed.

pnpm 10 warns Ignored build scripts: better-sqlite3: that is pnpm's default security policy (blocks dependency postinstall scripts). Run pnpm approve-builds and check better-sqlite3 in the list (or edit ~/.dsh/profiles/web/pnpm-workspace.yaml and add better-sqlite3 under onlyBuiltDependencies, then pnpm rebuild better-sqlite3). Without this, better-sqlite3 has no native binary and tool calls will fail.

Native build fallback: better-sqlite3 ships prebuilt binaries for common platforms (Node 20+); if your platform lacks a prebuilt and you have no build toolchain (Windows: Visual Studio Build Tools for node-gyp), the server automatically falls back to the vendored sql.js WASM backend (malong/vendor/, zero native deps) — the startup log shows which backend is active. Both backends use SQLite with compatible data files.

Uninstall

dsh plugin --profile web remove @jieai/dsh-malong-bridge
pkill -f "dsh web"
dsh web --port 3456 --host 0.0.0.0

Configuration (optional, zero-config by default)

Env var Default Description
MALONG_SERVER_PATH bundled server/mcp-server.js Override the mcp-server entry (e.g. point at your own LiuHe dev copy)
MALONG_STATE_DIR ~/.local/state/malong-dsh Index/state storage dir (all workspaces isolated under it by hash)
MALONG_TOOL_TIMEOUT_MS 300000 Per tool call timeout

You can also write a config: override on the malong-dsh-bridge entry in the profile's cordis.patch.yml (user layer, applied later).

How It Works

DSH Agent → malong__read_symbol(...) (no workspace_dir)
         → dsh-bridge injects workspace_dir = current session workspace
         → malong mcp-server (spawned subprocess) → per-path-hash isolated indexes
  • Dynamic workspace follow: every tool invocation carries the session workspace (exec.agent.session.header.cwd); the bridge injects it automatically; explicit paths from the model are respected (cross-workspace management).
  • State isolation: indexes are hash-isolated by workspace path under MALONG_STATE_DIR, unrelated to any project directory.
  • Zero intrusion: does not touch dsh's node_modules; dsh upgrades are safe.

Platform support (automatic): malong-parse (the Rust parsing service) ships as esbuild-style platform subpackages — the main package declares @jieai/malong-parse-linux-x64 / -darwin-x64 / -darwin-arm64 / -win32-x64 in optionalDependencies, and npm/pnpm pulls only the binary for the current os/cpu at install time. Other platforms / custom binaries can be provided via the MALONG_PARSE_BIN env var.

Differences vs. the official dsh-mcp-client

The official dsh-mcp-client bridges a single MCP server; this plugin's bridge adds dynamic workspace injection (fills workspace_dir per invocation from the session workspace, so the model never needs to know the path) — a capability unique to LiuHe.

Troubleshooting

Symptom Fix
Log shows mcp tools/list timeout Verify the install is complete (dsh plugin reports no node_modules errors); restart dsh
No malong__* tools in the conversation Confirm the bundle layer is attached (dsh web --dump-config | grep malong); hard-refresh the browser
Call fails with missing_parameter: workspace_dir The conversation has no workspace (no cwd) to inject; pass a path in the prompt
Plugin stops working after a dsh upgrade The plugin lives at the profile layer, upgrades do not affect it; if the cordis interface changes, reinstall the plugin

Index Rules (Transparency)

  • Default ignored: node_modules, .git, dist, build, target, coverage, __pycache__, .venv, .malong, .ai-transactions, vendor, etc.
  • md/json not indexed: only code files are indexed; use a read tool for documents
  • .malongignore customization: a .malongignore file at the project root excludes directories allowlist-style (one per line; * wildcards supported; max 100 entries)

License

MIT

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →