npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-plugin-taskboard

v0.1.0

Published

Agent-first task kanban for DeepSeek Harness web GUI, modeled on codeg-plus's 任务看板: four codeg-plus columns (todo / inProgress / attention / done), human-only acceptance, workspace-bound claims, comments and a live SSE board view. 参考 codeg-plus 任务看板语义的 ds

Downloads

587

Readme

dsh-plugin-taskboard

给 DeepSeek Harness Web GUI(dsh web)用的“任务看板”插件,看板语义参考 codeg-plus 的任务看板:agent 在宿主 进程里用 taskboard_* 工具领活、干活、交接,人在浏览器看板上实时看到进度并做 验收/退回。纯 dsh 插件,不改上游源码,可发布到 dsh 插件市场。

一个插件 = 两个半边:

  • host 半边(exports ".",Node 宿主进程):六个 taskboard_* agent 工具、 单文件账本(<DSH 家目录>/dsh-plugin-taskboard.json)、写进 agent 系统提示的 工作协议段,以及 /dsh-plugin-taskboard 的 JSON + SSE 路由。
  • 浏览器半边(exports "./client",web GUI):零依赖、纯 DOM 的四列看板与 卡片详情,不做 React、不引任何 @deepseek-ai/* 浏览器包。

看板语义(与 codeg-plus 对齐)

四列、每列背后的状态,以及中文 UI 用的列名:

| 看板列 | 状态 | 说明 | | --- | --- | --- | | 待办 todo | todo、queued | 待办、排队 | | 进行中 inProgress | preparing、running | 认领后准备、执行中 | | 需关注 attention | awaiting_input、review、merging、failed | 等你决策、待验收、合并中、失败 | | 已完成 done | done、canceled | 已验收、已取消(canceled 默认隐藏) |

核心规则:

  • 验收与退回是人的动作:review → done(通过验收)和 review → todo(退回 重做)只在 GUI 上开放;agent 永远不能把任务移进 done / canceled。
  • 认领纪律:agent 把 todo / queued 移到 preparing 即认领,任务绑定到 该会话;已被其他会话持有的任务不能接管,跨项目(workspace)不能认领。
  • 版本守卫:所有“先读后写”的改动都要带 ifVersion,冲突即拒绝,避免并发 覆盖;评论是轻量无版本操作,走串行写队列。
  • 每列按最近更新排序(updatedAt 降序),与 codeg-plus 的看板一致。

与 codeg-plus 的边界:本插件不做任务的执行/调度,merging 是保留状态(人和 agent 都不可主动移入),任务从认领到交验由 agent 与人在现有会话里协作完成。

功能

  • 实时看板:页面挂载后即订阅 /dsh-plugin-taskboard/events(SSE),任何一次 宿主提交(工具或路由触发的写操作)都广播增量,看板自动刷新;浏览器 EventSource 断线自动重连,打开瞬间还会全量对账一次。
  • 详情弹层:点卡片看全量记录(描述、执行 prompt、状态版本、认领人、项目), 备注区读 agent 的结构化交接报告;Ctrl+Enter 发备注。
  • 验收 / 退回 / 编辑 / 移动 / 删除:review 卡片提供「通过验收」与「退回 待办」(退回可选附意见,单次提交不会留下孤儿评论);其他卡片可编辑字段、 移到任意状态(终态只能重开回 todo),非活动/非 review 的卡片可删除。
  • 项目筛选与计数:顶部按 workspace(项目)过滤,侧栏按钮带 todo / attention / review 滚动计数,多代 UI 选择器兜底挂载。
  • Agent 侧工作协议:host 启动时把一段”先查板、先读后动、认领/版本纪律、 交验纪律”注入 agent 系统提示,工具描述与协议文本同源约束。
  • 暗黑模式支持:自动跟随系统主题(prefers-color-scheme),在浅色与深色模式下 提供一致的阅读体验,无需手动切换。

目录

plugins/dsh-plugin-taskboard
├── package.json          # dsh 元数据;exports: "." host / "./client" 浏览器
├── cordis.patch.yml      # 打进 web profile 的插件行
├── src
│   ├── index.js          # host 加载入口:协议段 + 工具 + 路由
│   ├── host/             # store(账本)/ tools(六工具)/ routes(JSON+SSE)/ sdk / protocol-text
│   ├── shared/protocol.js # 纯领域核心:列映射、迁移表、守卫(host 与测试共用)
│   └── client/index.js   # 浏览器看板(vanilla DOM,构建时被包成 loader 模块)
├── scripts/              # wrap-client / build / check
└── test/                 # node:test 领域 + host 行测试

开发与验证

零运行时依赖,无需 npm install:

npm run check    # 语法检查 src/ → 重新构建 lib/ → 再查 lib/(含生成的 client 包)
npm run build    # 复制 host/shared 到 lib/ 并生成 lib/client.js
npm test         # npm run build && node --test(9 个领域 + host 测试)

构建产物 lib/client.js 是 src/client/index.js 的模块加载器包装:

window.__ModuleLoader__.load({
  id: 'dsh-plugin-taskboard',
  factory: (require) => {
    var module = { exports: {} }
    // …src/client/index.js 原文…
    return module.exports
  },
})

安装到 dsh

本仓库的桌面外壳(DSH Desktop Ultra)会把这个插件打成 tarball 带进安装包,首次启动时 在启动页问一次要不要装(默认勾选,取消就不装且不再问)。手工安装:

# 本仓库开发时(宿主进程跑 exports ".",web GUI 跑 exports "./client")
dsh plugin --profile <profile> add link:plugins/dsh-plugin-taskboard

# 发布到 npm 后直接按包名安装
dsh plugin --profile <profile> add dsh-plugin-taskboard

重启 dsh web 后,侧栏会出现任务看板入口(紧挨「新建会话」),点击后主会话区 切换为看板视图;agent 侧多出 taskboard_list / taskboard_get / taskboard_create / taskboard_update / taskboard_move / taskboard_comment 六个工具。

发布到 dsh 插件市场

包元数据已带 dsh-plugin keyword、dsh(bundle/client/compatibility)段和 cordis.patch.yml,直接走 npm 发布:

npm publish

让包出现在 dsh 内置「插件市场」(dshmarket 的策划目录)里,还需要在 awesome-dsh-plugin 仓库提交一条 registry 条目——市场和网站都会自动收编(通常一天内)。此后用户在 Settings → Plugin Market 里检索、一键安装即可。

注意版本差异:桌面外壳当前锁定的 dsh 0.1.1-rc.2 里,Settings 下的插件页面还都是只读的 (dsh-host-plugin-inventory 与 ui-settings-plugin-inventory 都明确写了不做增删启停), 没有市场也没有卸载按钮。在那个版本上,安装与移除都只能走 dsh plugin。