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-workspace-observe

Ets Hook Dsh Workspace Observe

workspace-observe hook:一个 DeepSeek Harness 插件,记录工作区不可见流程的第一步——在每个 fs/observed 事件上(在 ROOT 上下文、factory 的 Wire 注册中监听),它会写入一条观察标记(路径、ob

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

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

兼容性与来源证明

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Ds Harness Remoteds-harness-remote通过桌面端、网页端和 Android 端,端到端加密远程访问 DeepSeek Harness 和实验性 Codex 工作区,并支持 dsh-TUI Host。

README

@playform/hook-dsh-workspace-observe

v0.1.0 - UNPUBLISHED - plan: Workspace-Family/OBSERVE

The role

The workspace-observe hook for the DeepSeek Harness plugin family (the Classic release, Wave 1).

It is the first step of the invisible flow: on every fs/observed event the hook records one observation stamp in its own KV storage domain, and the conversation never sees the stamps.

A later wave's events surface them.

What it records

One stamp per distinct version (and per manual call; the repeat guard below coalesces the rest):

{ path, version, origin: "fs/observed" | "manual", sequence }
  • path is the displayPath of the event (the model-facing form), verbatim.

  • version is the observed version token, verbatim, and absent for an absent observation (never a fabricated token).

  • origin says how the stamp was recorded.

  • sequence is the own monotonic counter of the plugin, incremented once per stamp and persisted with the domain (recovered on mount as the maximum loaded sequence).

    It is never a wall clock, per the no-real-timers rule of the family.

The disciplines

  • The listener registers on the ROOT context (the Wire of the factory, the exact ctx.root.on("fs/observed", ...) registration), so it hears every fs/observed emission.

  • Each recorded stamp is emitted on the trace bus of the family as observe/stamp (the first source of the indexer, D5), with the payload { path, version, origin }.

    The bus (ctx.trace, provided by @playform/ets-plugin-dsh-factory) is optional, so a context without it records stamps exactly as before and emits nothing.

  • The listener is a synchronous recorder: no awaits, no throws, no I/O. It reads the event only, and it never reads file content and never writes a file.

  • The guard chain, in order. An event whose actor is the own actor object of the hook is ignored (ignored <path> (own actor)); a path matching exclude is ignored (ignored <path> (excluded)); a non-matching path under a non-empty include is ignored (ignored <path> (not included)); and a repeat event (the same path carrying the same version within the coalescing window) is dropped silently, with no line and no stamp.

  • The repeat-event guard (Function/Duplicate, the clock pattern of the monitor, no timer). A repeat event for the same path within a short window (2 s on the clock of the module, overridable in tests via the State.Now seam) announces a file state that is already recorded, because the version token identifies the state; a different version, or the same version after the window, is stamped normally, so the last distinct version always wins.

    The manual path is never guarded.

  • A malformed event is caught and ledgered (failed <path> (<reason>)), and the listener never throws.

  • The latest stamp per path is the record (keyed by the path), and a bounded ring of the last maxStamps stamps lives under the meta record __ring; the oldest drop is ledgered (capped <path> (maxStamps <n>)), never silently discarded.

  • The domain is the own domain of the hook (workspace_observe, version 1, per-record layout, backup-and-skip, tables stamps + ring), not extension records in the shared governance domain.

    An absent storage facility is a silent skip (the stamps live in memory only), and a present facility whose open fails is loud (one ledger line, never rethrown).

The configuration

See SCHEME.md.

Every knob is a volatile cell (hot edits commit without remounting): enabled, domain, maxStamps, include, exclude (plus the universal log/logFile).

The policy block (D6)

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

actiondefaultactiondefault
readautowriteapprove
indexautocommitapprove
recordautospawnapprove
suggestautomessageauto

The action class of this hook is RECORD (it records one observation stamp per fs/observed event), and that class is automatic.

The hook has NO gated action (it never writes a file, commits a batch, or spawns an agent), so the block documents the posture and refuses nothing.

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

The IDLE-forever posture

The plugin ships DISABLED: the bundle entry declares enabled: false only, the plugin 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 wires nothing.

The ledger

One log per module: ~/.dsh/playform/ets-hook-dsh-workspace-observe.log (config logFile).

The strings are the contract (byte-exact, observe: prefix, and the durable file lines are the [ISO] message forms):

observe: disabled (enabled=false)
observe: activated (domain=<domain>)
observe: stamped <path> version <version> (fs/observed)
observe: ignored <path> (own actor)
observe: ignored <path> (excluded)
observe: ignored <path> (not included)
observe: capped <path> (maxStamps <n>)
observe: failed <path> (<reason>)
observe: manual <path> version <version>
observe: storage open failed: <reason>

The plan

  • Workspace-Family/OBSERVE - the observe step (Wave 1).

License

CC0-1.0.