DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@playform/hook-dsh-ccr

Hook Dsh Ccr

CCR hook(compress-cache-retrieve):一个 DeepSeek Harness 插件,用于挂接 tools/post-execute 流程——每个已调度工具的规范化结果在成为模型内容之前都会经过此处——并将过大的工具输出替换为

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @playform/hook-dsh-ccr@0.2.1
README兼容性版本

兼容性与来源证明

Hook Dsh Ccr 以 @playform/hook-dsh-ccr 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.2.1stable
2026/10/28
0.2.0stable
2026/10/25
0.1.0stable
2026/10/25

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
58.8 kB
文件数
36
Surface
any
许可证
CC0-1.0
发布源
npm
GitHub
★ 2
周下载
266
安全扫描
✓ v0.2.1 扫描通过
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Better Sidebardsh-better-sidebarBetter Sidebar for DSH — 在一列中提供文件树、编辑器、变更、任务和侧边聊天,并为每个对话单独显示。同时提供服务,供其他插件注册侧边栏标签页和文件查看器。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Ssh@linxin666/dsh-sshdsh Web GUI 的远程 SSH 操作:主机配置存储(~/.dsh/dsh-ssh.json,可从 ~/.ssh/config 导入)、支持跳板主机的持久化 ssh2 连接池、exec / PTY Web 终端 / SFTP 传输 / 本地端口转发隧道 / 集群执行Update@linxin666/dsh-update用于 dsh Web GUI 的自更新插件:探测 npm 上是否有更新的系列版本,并在原地运行所属配置的 pnpm 更新;可通过设置图标旁侧边栏中的触发器启动,并显示发布说明面板

README

@playform/hook-dsh-ccr - the compress-cache-retrieve hook for oversized tool output

Version 0.2.1 - UNPUBLISHED (the npm bootstrap tier 2-planned / 3-candidates).

Plan: SCHEME.md - APHRODITE-TOOL-COMPRESSION-PLUGIN.md.

The role

This DeepSeek Harness plugin hooks the tools/post-execute waterfall - the interceptable wrapper around every normalized dispatch result, before it becomes model content - and it replaces oversized tool output with a one-line type-aware preview plus a retrieval marker:

[terminal:exit 0 | 142 lines | make: *** Error 1]
<<<CCR:9d3c1f0a7b2e4d5c6a8b9c0d|terminal|5231>>>

... while it keeps the original retrievable through the registered ccr_retrieve tool.

It is ported from Aphrodite's CCR pipeline - compress, cache, retrieve - at the injection point that a proxy cannot reach: the tool result itself.

tools/post-execute sees the normalized result of EVERY tool with the name, the parsed arguments, and the caller agent, and it is the only point that can legally replace model-visible output for all tools.

The gate compresses only results of tools in targets (default: bash, glob, grep, read, web_fetch, web_search, list, search) whose serialized content exceeds thresholdBytes (1024) × the classified type's multiplier - errors ×8 (high-signal, compress late), grep/paths/ web ×2, the rest ×1.

It never compresses the exempt tools: write, edit, raw-write, subagent, ask_user_question, and ccr_retrieve itself.

Failures pass through unless compressFailures is on.

With autoExpand on (the default), a result at or under autoExpandLimitBytes (102400) is stored but returned FULL - no marker reaches the model while the content is cheap enough to keep inline.

The store is an in-memory LRU keyed by a sha256-24 hash of the full serialized content bytes (node:crypto, no native deps), with a storeBudgetBytes budget (default 256 MiB, least-recently-accessed eviction), a ttlSeconds TTL (default 3600), and an optional JSONL disk journal (journalPath, default "" = memory-only): one {hash, type, size, ttlAt, payload} record per store, loaded and TTL-compacted on boot, payload base64.

The family deliberately adapted SQLite (Aphrodite's ccr.db) to JSONL - a native dep the family does not carry.

ccr_retrieve(hash, range?) matches the hash exactly - no prefix or fuzzy matching.

range { start, count } slices lines granularly.

Unknown/expired hashes return a self-describing error that tells the model to re-run the original tool.

Waterfall discipline: the hook always awaits next() first; a pass-through returns the downstream decision unchanged; only an accepted, non-value-carrying decision is replaced; the whole transform is fail-open (an internal error logs a warning and keeps the inline content, and never throws into the waterfall); the listener prepends so the gate sees the pristine result.

The ccr hook and the normalize flavors' tool-results arm share the tools/post-execute waterfall; the <<<CCR: marker guard makes any load order safe.

The surfaces

KindNameWhat
listenertools/post-execute (prepend)the compression gate: replace oversized results with a preview + <<<CCR:...>>> marker
listeneragent/pre-step (with contextEngine)the engine phase: archives oversized stored results between turns
toolccr_retrieverestores stored output by exact hash, optionally a { start, count } line range
configSCHEME.mdthe full Schemastery schema (see the table below)

The configuration

FieldTypeDefaultMeaning
logbooleantruevolatile - the shared factory log switch
logFilestring~/.dsh/playform/hook-dsh-ccr.logvolatile - the ledger file
targetsarraybash, glob, grep, read, web_fetch, web_search, list, searchthe tools whose results the gate compresses
exemptarraywrite, edit, raw-write, subagent, ask_user_question, ccr_retrievenever compressed
thresholdBytesnumber1024volatile - the base size threshold
inlineThresholdBytesnumber1024results under this stay inline untouched
autoExpandbooleantruestore but return FULL while the content is cheap enough
autoExpandLimitBytesnumber102400the auto-expand ceiling
compressFailuresbooleanfalseoff, error results pass through
multipliersobjectterminal 1, error 8, grep 2, paths 2, file 1, json 1, web 2, default 1volatile - the per-type threshold multipliers
previewMaxCharsnumber240volatile - the preview length cap
ttlSecondsnumber3600the store TTL
storeBudgetBytesnumber268435456the LRU budget (256 MiB)

The ledger

ccr: activated (bundle 0.2.1, targets <n>, budget <n>)
ccr: stored <tool> <type> <size> -> <hash>
ccr: compressed <tool> <type> <size> -> <hash>
ccr: evicted <hash> (<reason>)
ccr: retrieved <hash>
ccr: retrieval miss <hash> (expired)
ccr: retrieval miss <hash> (unknown)
ccr: engine archived <n> results

The build and the tests

  • Build: pnpm --config.verify-deps-before-run=false --dir Classic/packages/hook-dsh-ccr run prepublishOnly
  • Smokes: node Classic/packages/hook-dsh-ccr/Target/Test/<Folder>/Test.js
    • Config-And-Activation - 25 checks
    • Engine-Flag-Off - 14 checks
    • Engine-Flag-On - 37 checks
    • Journal-Compaction - 10 checks
    • Retrieve-And-Marker - 45 checks
    • Run-One-State - 15 checks
    • Volatile-Refresh - 1 check

The plan

SCHEME.md - APHRODITE-TOOL-COMPRESSION-PLUGIN.md.

journalPathstring""memory-only unless a JSONL journal path is set
contextEnginebooleanfalsethe engine phase stays inert
contextEngineThresholdPctnumber30the engine's budget-percentage trigger
protectFirstTurnsnumber2turns the engine never archives at the front
protectLastTurnsnumber4turns the engine never archives at the back