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/ets-hook-dsh-live-containers

Ets Hook Dsh Live Containers

live-containers hook:一个 EffectTS DeepSeek Harness 插件(Effect v4 背后的 Classic 版本),用于在系统提示词中保留动态、可修改的对话块。每个启用的块都是一个带标签的段落,会在每次请求时重新计算——规范 e

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

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

兼容性与来源证明

Ets Hook Dsh Live Containers 以 @playform/ets-hook-dsh-live-containers 发布,当前版本为 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
未声明可安全裁剪
解包体积
239 kB
文件数
62
Surface
any
许可证
CC0-1.0
发布源
npm
GitHub
★ 2
周下载
297
安全扫描
✓ v0.2.1 扫描通过
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Mnemondsh-mnemon面向 DeepSeek Harness 的可组合、基于视图的上下文。开箱即用的可插拔来源与策略、分层记忆和自我演进技能。Archive Manager@michengai/dsh-archive-manager归档、恢复、收藏和永久删除会话,并诊断损坏的会话日志。

README

@playform/ets-hook-dsh-live-containers - dynamic, modifiable conversation blocks, live jobs, planted boards, failsafes and the suggester

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

Plan: SCHEME.md - LIVE-CONTAINERS-RESEARCH.md - IMPLEMENTATION-DESIGN.md.

The role

A DeepSeek Harness plugin that keeps dynamic, modifiable conversation blocks in the system prompt.

Each enabled block is a labeled stanza recomputed at every request, and the canonical example is a time block that always holds the current time at ask-time while the rest of the conversation stays static.

The blocks ride the system-prompt/assemble waterfall as ONE appended section named live-containers (interpolate: false, so only the substitution engine of the plugin touches its {{token}} groups and the harness's unresolved-variable failure is never inherited).

Each block sits inside a fixed frame, so the model cannot mistake it for harness state:

--- LIVE CONTAINER <id> (recomputed each request; not harness state) ---
<rendered body>
--- END LIVE CONTAINER <id> ---

This is the Effect-TS variant: the Classic twin behind the ets-plugin-dsh-factory shell (Effect v4), with the same blocks, knobs and ledger strings.

The shared Effect-TS plumbing (the Activate composer that builds the durable activation line of the ledger) comes from the ets-base-dsh package.

The substitution engine is token replace ONLY - no eval, no expressions.

An unknown token renders LITERALLY and logs render unknown <id> <token>, never a failure.

Per-block vars override the built-ins.

The wave-2 catalog kinds (the default block table ships 14 entries) are ACCEPTED in config from day one and render as skipped blocks, with the reason unknown kind, until the wave-2 render engine lands.

Counters (messages, turns, since last tool) come from the own agent/pre-step and tools/post-execute observers of the plugin.

Exact token counts are NOT available to plugins, so the gauge variables are honest approximations.

The wave-2 half extends the same plugin with the live tool-call transform (CAN-1).

With detach.mode set, a command-runner call detaches into a ctx.jobs background job, and the model immediately receives a SUCCESSFUL tool result [live] <job-id> running: <cmd-head> - output pending; proceed reasoning..

The completion report arrives as a live-containers-completion dynamic-context user-role snapshot batched per turn.

The same half adds planted boards (CAN-2: live_plant + [live-report] pickup + the parent-turn lease with the [stale] self-declaration).

It adds the CAN-4 failsafe engine (silent, ledger-first, the per-turn meta-budget) and the CAN-5 suggester, where a detached one-shot subagent suggests a CONFIGURED block that is accepted or dismissed with one-word live_container_set verbs.

Privacy is redact by default: suggesterPrivacy: "verbatim" forwards the request text of the user, and the config flag IS the consent surface.

The wave-3 monitors put files (halted processes) into operational mode.

For watchlist matches the plugin runs the check set of the file between turns and renders one band per file in the live section: honest to the byte, additive information, never a gate.

The plugin ships DISABLED with the IDLE-forever posture: the bundle entry declares enabled: false only, it never appears in the bundles of the profile, and it enables only by an explicit ACTIVATE (you edit the profile and restart).

A cold mount logs disabled (enabled=false), and every listener no-ops to a passthrough.

The surfaces

KindNameWhat
sectionsystem-prompt/assemble - live-containersthe ONE appended section, fixed frame per block, built-in kinds time, counter, manifest, gauge, note, template
listenertools/post-execute (CAN-1 transform)detaches matching command calls into ctx.jobs background jobs, marker reply + [stale]-style live frames
listeneragent/pre-step + tools/post-executethe counter observers (messages, turns, since last tool)
listenerdynamic context live-containers-completionthe batched completion report snapshot
toollive_plantopens a planted board (plantType: "monitors" aggregates member monitors)
toollive_container_setthe verbs: accept/dismiss a suggestion, prune a stalled member
toollive_monitor / live_monitor_checkenroll/inspect a monitor; on-demand check
configSCHEME.mdthe full Schemastery schema (see the table below)

Ship posture: DISABLED by default (enabled: false), the wave-2 knobs are volatile cells, and the wave-3 SEVEREXT/COMPREHENSIVE knobs are accepted and inert.

The configuration

FieldTypeDefaultMeaning
logbooleantruevolatile - the shared factory log switch
logFilestring~/.dsh/playform/hook-dsh-live-containers.logvolatile - the ledger file
enabledbooleanfalsevolatile - the IDLE-forever switch
sectionNamestringlive-containersvolatile - the appended section's name
refreshunionrequestvolatile - request | ttl; ttl is the KV-cache-friendly cadence
ttlCallsnumber8volatile - assemblies the section text is held for
separatorstring---volatile - the frame separator
sectionBudgetBytesnumber4096volatile - over budget the OLDEST frames collapse to one-line summaries
blocksarrayDEFAULT_BLOCKSvolatile - { id, kind, template, enabled, vars, trigger, ttlCalls, scope }
detachobjectmode offvolatile - CAN-1: mode, markers, latency/dedup/liveTimeout knobs
plantobjectstallMs 45000, leaseTurns 3, ...volatile - CAN-2: board budgets, the lease, stallAction
failsafesunionoffvolatile - off disables the CAN-4 engine entirely; the transform keeps working
hangBudgetMsnumber120000volatile - the hang guard budget
hangActionunionwarn-onlyvolatile - kill only at

The ledger

One log per module: ~/.dsh/playform/hook-dsh-live-containers.log (config logFile).

The durable file lines are the [ISO] message forms with the hook-dsh-live-containers: prefix.

disabled (enabled=false)
activated (bundle 0.2.1, blocks=<n>, refresh=<policy>)
monitors enabled (<n> watchlist entries)
block rendered <id> (<len> bytes)
block skipped <id> (<reason>)
section rebuilt (ttl <n>)
section rebuilt (tools/change)
render failed <id> -> skipped
render unknown <id> <token>
failsafe section-collapse <n>
transform failed <tool> -> inline
capacity full <owner> -> inline
start failed <tool> -> inline
escalation -> inline <tool>
await marker -> inline <tool>
await marker ignored (tool not detachable) <tool>
dedup <tool> -> <job-id>
marker failed <job-id> -> inline
detached <tool> -> <job-id>
owner gone <job-id>
completion rendered <len> bytes
completion skipped <job-id> (<reason>)
completion truncated <job-id> (<kept> bytes)
withdrawn <job-id> (completed)
set <key>
set unknown <verb> <input>
plant opened <id> (expect <n>)
member enrolled <id> <agentId>
report <id> <agentId> (<n> bytes)
member stalled <id> <agentId>
member dropped <id> <agentId> (<reason>)
board closed <id> (<n>/<expect> in <n>s)
lease expired <id> <agentId> (after <n> turns)
failsafe hang <job-id> (<n>s no output)
failsafe retry-loop <cmd>
failsafe meta-budget (<turn>)
failsafe drift (<reason>)
monitors overflow <n>
suggested <sid> <templateId> (fit <fit>)
suggestion skipped (<reason>)
suggestion parse failed
suggestion dismissed <sid>
suggestion accepted <sid> (<templateId>)
suggestion clamped <sid> <field>
suggestion expired <sid>
accept failed <sid> (expired)
monitor retired <path>
monitor off <glob>
monitor check unknown <setId>
monitor recovered <path> (<n> checks)

Durable activation proof: disabled (enabled=false) on a cold mount, else the activated line with the bundle version, the block count and the refresh policy.

Skip lines log only when the reason changes, so the ledger stays quiet on steady state.

The build and the tests

  • Build: pnpm --config.verify-deps-before-run=false --dir EffectTS/packages/ets-hook-dsh-live-containers run prepublishOnly
  • Smokes: node EffectTS/packages/ets-hook-dsh-live-containers/Target/Test/<Folder>/Test.js
    • Wiring-And-Defaults - 42 checks
    • Recompute-And-Ttl - 17 checks
    • Render-And-Frames - 23 checks
    • Volatile-And-Failsafes - 23 checks
    • Jobs-And-Detach - 27 checks
    • Boards-And-Plants - 17 checks
    • Failsafes-Engine - 10 checks
    • Suggester-And-Set - 21 checks
    • Monitors-Engine - 22 checks
    • Monitors-Tools - 11 checks
    • Monitors-Band - 22 checks
    • Monitors-Jobs - 25 checks
    • Monitors-Persist - 13 checks
    • Monitors-Boards - 7 checks

The plan

SCHEME.md - LIVE-CONTAINERS-RESEARCH.md (sections 3-5) - IMPLEMENTATION-DESIGN.md (phase 1).

"kill"
failsafesPerTurnnumber5volatile - the per-turn meta-budget
suggesterunionoffvolatile - section | plant, the CAN-5 suggester
suggesterPrivacyunionredactvolatile - verbatim forwards the request text
suggestGateMinCharsnumber40volatile - the qualifying-message gate
maxSuggestionsPerHournumber6volatile - the rate cap
maxPromptBytesnumber4000volatile - the forwarded-request cap
suggestTimeoutMsnumber8000volatile - the suggester deadline
autoPlantbooleanfalsevolatile - instantiate accepted suggestions as dormant blocks
suggesterRouteobjectprovider/model/reasoningEffortvolatile - the suggester's LLM route
completionCapBytesnumber4096volatile - the completion snapshot cap
monitorsunionoffvolatile - the wave-3 monitor engine
watchlistarray[]volatile - { glob, checks } enrollment rules (default: no scan, no watch-all)
checksetsdictDEFAULT_CHECK_SETSvolatile - the named check sets
monitorobjectdebounceMs 1500, bandCapBytes 2048, ...volatile - the monitor budgets