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/plugin-dsh-batchstate

Plugin Dsh Batchstate

batch-state 插件:一个 DeepSeek Harness 插件,作为协作批次的实时状态面板。它负责开放批次状态(成员:id、role、CURRENT ACTIVITY 任务、状态 idle/active/completed/failed/interrupted、队列位置以及 th

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

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

兼容性与来源证明

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Liangshen@linxin666/dsh-liangshen适用于 dsh Web GUI 的 LiangShen (梁神) agent preset 及其 composer lever。主机部分在激活时将内置 preset 声明到 harness 的 agent-preset 注册表中(declare = enabled),因此无需写入任何内容,preset 即可供新会话选择Remote Bridge@linxin666/dsh-remote-bridgeDSH 远程桥接:主机端通过唯一且精确的 /ios/v1 WebSocket 路由提供协议 v1——会话列表、历史记录基线、提示、包含工具活动的实时回合增量、中断以及进程内代理审批——连接到通过一次性配对的设备Ds Botds-botDS Bot:DeepSeek Harness 的一组长期运行的 Bot,支持主 Bot、Bot 间消息和群聊

README

@playform/plugin-dsh-batchstate

v0.1.0 - UNPUBLISHED - plan: BATCH-STATE-PLUGIN

The batch-state plugin is a DeepSeek Harness plugin that serves as the cooperative batch's live state board (Documentation/Plans/BATCH-STATE-PLUGIN.md).

The role

  • The open-batch state: the members - id, role, the CURRENT ACTIVITY (the last-updated phase/target, NEVER the initial spec), the status (idle -> active -> completed/failed/interrupted), the queue position, the owned surfaces, and the started/finished timestamps.

  • The write API (setTask/setStatus/setScope/queue/setGate/clear): the parent's activations and the agents' phase reports flow THROUGH the plugin, so the state transitions are events the plugin owns.

  • The read API (the batchstate service): getState(), getContext(agentId), getScope(agentId), whoElse(agentId), getProposals(), getGates(), getQueue(), where both the service and the spliced block give the LIVE state.

  • The inbox splice (the re-spec's target, D5): the board registers on the harness agent-team inbox (the durable agent/inbox/spliced session event and the live agent/inbox/inserted emit) and projects every batch proposal/decision that arrives through it.

    A proposal from the pass-on reaches the board, and a decision from the hook moves its status.

    The two channels are one delivery, de-duplicated on the message id.

  • The Gates block: the compiled arbiter truth (the build/smokes state and the lane that owns the failure), reported by the parent through setGate and rendered to every lane.

  • The queue projection: the queue service's own compiled line, read read-only from ctx.dshQueue, which keeps one source of truth, no drift, and never modifies the queue package.

  • The presentation: the dynamic table-of-contents block, recompiled on every state change as Context = Compile(State).

    Every block is a COMPILED OUTPUT of a deterministic compiler (pure functions), and the LLM's only role is to READ it.

    It is READ-ONLY for the agents, never their own content.

  • The ledger: one global log per module (the module-owned, byte-stable lines in SCHEME.md section 7).

  • The persistence (the store split): every state change emits batch/state-change and persists the full state.

    The PRIMARY store is the harness's ctx.storage KV domain (config domain, default batch_state, version 1, per-record: the members, queue, proposals and gates tables), and the FALLBACK is the well-known JSON state file (config stateFile, default ~/.dsh/batch-state.json), written and read only when no storage facility is provided (or the domain's open fails).

    Both feed the same recovery, so the board survives a restart on either store.

The surfaces

  • The batchstate service (the read API listed above) is the only programmatic surface.
  • The agent-team inbox registration (agent/inbox/spliced / agent/inbox/inserted) is the splice.
  • The batch/state-change event emission fires on every state change.
  • There is no tool and no file write beyond the JSON fallback state file and the ledger.

The anatomy

  • Source/Library.ts - the loader contract (name, apply, Config, inject; apply returns nothing).
  • Source/Function/ - one definition per file: the entry (Apply), the service (Service), the write API (Task, Status, Surfaces, Queue, Gate, Clear), the emission (Emit), the stores (Storage - the KV primary open/recovery, Persist - the primary/fallback write split, Recover - the JSON fallback read, Restore - the shared recovery), the compiler (Compile), the member upsert (Ensure), the inbox splice (Inbox, Envelope, Propose, Decide), and the queue projection (Projection).
  • Source/Interface/ - the types (State, Config, Member, Change, Snapshot, Scope, Factory, Proposal, Decision, Gate, Entry, File, Handle).
  • Source/Variable/Config.ts - the Schemastery schema (every knob a volatile cell).
  • Configuration/ - the ESBuild configuration.
  • cordis.patch.yml - the bundle patch row (enabled: false).

The inbox contract (the cross-package wire)

[BATCH PROPOSAL - <id>]
<the canonical proposal JSON>
[BATCH DECISION - <id>]
<the canonical decision JSON>

The markers are a cross-package contract, and each package declares its own copy (the self-contained rule).

The board parses the FIRST block out of any inbox text, while ordinary messages are silence.

The posture

The plugin ships DISABLED (the IDLE-forever posture): it never appears in the profile's bundles and enables only by an explicit ACTIVATE, and a cold mount logs disabled (enabled=false), registers the service (it reads honestly from the empty state), and wires nothing.

The policy block (D6)

The config carries the shared per-action allowlist (policy: Policy(), composed from the factory's block), mapped to State.Allow:

actiondefaultactiondefault
readautowriteapprove
indexautocommitapprove
recordautospawnapprove
suggestautomessageauto

The board records and projects, so read, record, and suggest are automatic, while the write/commit/spawn verdicts are declared for uniformity and stay the shipped approve (the board never writes files, commits, or spawns).

The block is one volatile object (a policy flip is hot-editable), and a resolved pack's policy section overrides the defaults per action (the wiring is the next refinement).

The defaults are smoke-arbitrated in Source/Test/Policy-Defaults.

The build and the tests

sh Source/prepublishOnly.sh   # the full chain (Build + tsc + tsc-alias)
sh Source/Run.sh              # the dev twin (Build only)
FolderWhat it provesCount
State-And-Compilethe write API, the events, the ring cap, the compiled blocks14
Wiring-And-Recoverythe loader contract, the cold mount, the recovery, the fs purity13
Inbox-Splicethe inbox splice, the Gates block, the queue projection, the restart22
Storage-Domainthe KV domain (primary), the per-mutation round-trip, the reopen, the JSON fallback, the version failure15
Policy-Defaultsthe D6 block's defaults and the recorder posture4

The configuration

FieldDefaultMeaning
enabledfalsethe master switch (IDLE-forever posture)
logtruethe ledger switch (shared cell)
logFile~/.dsh/playform/plugin-dsh-batchstate.logthe ledger
batchdefaultthe active batch id
domainbatch_statethe primary KV domain
stateFile~/.dsh/batch-state.jsonthe JSON fallback state file
maxRecent8the recent-activity ring bound
maxProposals16the proposal list bound
policy.*D6 defaultsthe per-action allowlist (see above)

Every field is a volatile cell.

The ledger

The module-owned, byte-stable lines are listed in SCHEME.md section 7, and the lines go to logFile with the module prefix.

One global log exists per module.

The plan

  • BATCH-STATE-PLUGIN - the live state board.

License

CC0-1.0.