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

dsh-whale-post-roster

Whale Post Roster

名单接口(名单中有哪些人)+读取 JSON 的示例实现

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-whale-post-roster@0.6.1
README兼容性版本

兼容性与来源证明

Whale Post Roster 以 dsh-whale-post-roster 发布,当前版本为 0.6.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.6.1stable
2026/10/10
0.6.0stable
2026/10/10
0.5.4stable
2026/10/10
查看其余 8 个版本收起版本
0.5.3stable
2026/10/10
0.5.2stable
2026/10/10
0.5.1stable
2026/10/10
0.5.0stable
2026/10/10
0.4.0stable
2026/10/10
0.3.0stable
2026/10/9
0.2.0stable
2026/10/9
0.1.0stable
2026/10/4

相关插件

正在加载相关插件…

最新版
0.6.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
15.2 kB
文件数
6
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
38
最近提交
2026/10/17
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Remote Bridge@linxin666/dsh-remote-bridgeDSH 远程桥接:主机端通过唯一且精确的 /ios/v1 WebSocket 路由提供协议 v1——会话列表、历史记录基线、提示、包含工具活动的实时回合增量、中断以及进程内代理审批——连接到通过一次性配对的设备Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rIm@xmanrui/dsh-im将微信、飞书、企微、钉钉、QQ、Telegram、WhatsApp、Slack、Discord 和 Matrix 接入 DSH。Ds Botds-botDS Bot:DeepSeek Harness 的一组长期运行的 Bot,支持主 Bot、Bot 间消息和群聊

README

dsh-whale-post-roster

English: roster README in English

名单接口:谁在名单里(含成员属性与群发清单)+ 读 JSON 的样例实现

  • 提供接口:whale.roster
  • 依赖接口:(无)
  • 自测:node selftest.mjs(只看退出码:0 过/非 0 不过)

接口带 apiVersion;核心不许知道任何名字 —— 名单只在这里,核心一行名字都没有。 属性名也一样:flag(id, name) 的 name 由配置或调用方给 ⇒ 本件里不出现任何具体属性名。

接口

方法一句话
list()全部成员(保留成员自带的其余字段 —— 自定义属性不会被吃掉)
has(id)名单里有这个人吗
label(id)他叫什么(缺省退回 id)
member(id)整条成员记录(含自定义属性);不认识 ⇒ undefined
flag(id, name)成员属性:两种来源都认;假值(false/0/空串)一律算"不带"
without(ids, name)从一份名单里剔掉带该属性的人(认不出的原样留着,不越权改名单)
broadcast()群发该发给谁 = 完整名单剔掉 groupWithout
groups()有哪些组名
group(name, opts)某组成员;opts.without 可临时剔;opts.without: null ⇒ 这一次不剔

名单文件(格式公开、内容自填)

{ "apiVersion": 1,
  "members": [ { "id": "alice", "label": "Alice" },
               { "id": "carol", "label": "Carol", "<属性名>": true } ],
  "groups": { "all": ["alice", "carol"], "club": ["alice"] },
  "<属性名>": ["carol"] }
  • id 就是信箱目录名(<root>/inbox/<id>/)。
  • 成员属性两种写法都认(任选):① 写在成员对象上 ② 顶层同名数组。
  • 成员写成纯字符串也认("alice");没有 id 的一律丢掉。
  • 坏输入不抛未捕获异常 —— 坏 JSON/不是对象/apiVersion 不认识 ⇒ 一律退化成空名单。

配置

字段默认含义
file<root>/roster.json名单文件
groupWithout不配群发默认剔掉带此属性的成员;点名不受影响("群发默认不到它,点名才进")
samplefalsetrue ⇒ 文件不存在时用内置样例(只为试跑)

边界

  • provider 撒谎,核心拦不住 —— 核心不认识任何名字,所以它没法自己判定"谁才算合法成员"; 要防这一层就在本件加校验与自测。
  • 组员必须出现在名单里才投(否则"幽灵组员"会收到信 ⇒ 会往名单外的信箱写文件)。
  • 发给一个组、组里剔完没人 ⇒ 拒发(宁可不发,也不发一封没有收件人的信)。