deepseek-harness

by jermaine123123

UI 增强github收录于 08-21

跨 Agent 对话管理插件的 DeepSeek Harness 适配器,支持搜索、类型筛选、单条与批量选择、隐藏、恢复和撤销,可独立管理 reasoning 与 answer 单元;使用 sidecar 保存状态并保留原始 Session。

Cross-agent conversation management plugin adapted for DeepSeek Harness, with search, type filters, individual and batch selection, reversible hide, restore, and undo, plus independent reasoning and answer units whose sidecar state preserves the original Session.

安装

dsh plugin --profile web add github:jermaine123123/agent-context-editor#path:/adapters/deepseek-harness

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

Agent Context Editor adds a searchable, hideable, and reversible management view for long DeepSeek Harness conversations while preserving the original Session. Long-running Coding Agent sessions accumulate reasoning, older answers, and tool output; this adapter keeps those records available while providing search, type filters, batch selection, hide, restore, and undo in a separate view.

This adapter targets the official DeepSeek Harness Developer Preview commit 47f943859bef60e4160492346772ded9b24f765a0 and installs as one bundle. The package adds a Context Editor tab beside the normal Chat view for the same Session; it never creates a second conversation.

Version 0.1.4 adds centered search navigation below the sticky control area; the hierarchical AI filters from 0.1.3 remain supported while continuing to support independent reasoning and answer units: each can be searched, selected, hidden, restored and persisted separately. The original Harness Session log and model input are not rewritten. View state is kept in the context_editor storage-domain sidecar, and hiding currently does not reduce token usage.

The browser view resolves navigator.languages when it opens: zh-* locales use Chinese labels and all other locales use English. Only editor controls and status messages are translated; Session content remains unchanged.

Search defaults to User messages and AI final answers. Use the scope button beside the search box to temporarily include reasoning, Tool Call and Tool Output atoms. The scope is window-local and is not written to localStorage or the context_editor sidecar; User/AI/Tool type filters remain the upper bound.

Install the tarball

From this directory, create the package and install the resulting file into a Harness profile:

node ./scripts/build-core.mjs
node ./scripts/build-client.mjs
npm pack --ignore-scripts
dsh plugin --profile <profile> add ./context-editor-deepseek-harness-0.1.4.tgz

On Windows, dsh may not be on PATH even when Harness is installed. Use the profile's bundled launcher explicitly from PowerShell:

$env:DSH_HOME = '<harness-root>\.dsh'
& '<harness-root>\node_modules\.bin\dsh.cmd' plugin --profile web add '<package-path>\context-editor-deepseek-harness-0.1.4.tgz'

On Windows, if either the repository path or Harness path contains spaces and the CLI reports ENOENT for a truncated editor\adapters\... path, first copy the tarball to a path without spaces (for example D:\context-editor-deepseek-harness-0.1.4.tgz) and pass that path to the same command. The package itself remains installed in the selected Harness profile.

If the launcher reports that pnpm is missing, add the Harness-provided pnpm directory to PATH for that PowerShell process, or install pnpm before running the official dsh plugin command. For a same-version replacement, remove the existing package from the profile before adding the new tarball so pnpm does not retain an old hard-linked copy.

The supported acceptance command is the official dsh plugin --profile <profile> add <package> flow. During local iteration, a profile may instead use the package's cordis.patch.yml through the Harness --patch option.

Host boundary

The Host reads complete persisted Session history and projects:

  • user/message → user;
  • reasoning and answer blocks from one turn → one ai record with separate #reasoning and #answer editable units;
  • tool/call + tool/result by callId → one tool record.

Stream chunks, system/request headers, summaries and compaction events do not become editable records in this phase. Reasoning and answer units can be selected and hidden independently; old record-level view events remain compatible. Hide/restore/reset/undo events are stored in the context_editor storage-domain sidecar, fenced by Session createdAt/cwd. Session event logs and model input are never rewritten.

Current scope

Search (dialogue scope by default, with temporary full-scope toggle), literal match counts, navigation, filters, placeholders, selection, Shift-selection, persistence and CAS/revision handling are included. While a Session is running the Host remains readable/searchable, while mutations are rejected until the settled log can be projected again. Context exclusion, Tool Output replacement, summaries, token budgets and request rewriting are deliberately deferred to the next phase.

The generated core-runtime.js is bundled from the canonical Core sources in packages/context-editor-core. Rebuild it after changing Core and run the root verification command before publishing.

原始 README: https://github.com/jermaine123123/agent-context-editor/blob/main/adapters/deepseek-harness/README.md ↗