dsh-work-board
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 21, 2026
- Updated
- Aug 21, 2026
Introduction
dsh-work-board
面向 DeepSeek Harness(dsh)的跨会话工作板插件:持久看板 + 无人值守任务指派 + 自动结算。
快速开始
三步把工作板安装到 dsh 的 web profile。
1. 一行命令安装(需要 git、Node ^22.19 || >=24、pnpm 10+,dsh 在 PATH 上):
npx github:AFANman/dsh-work-board
该命令把仓库克隆到 $DSH_HOME/dsh-work-board、构建插件、把 profile bundle(宿主服务、模型工具、Web UI 三行为一层)装入 profile。使用 skill 内置于插件并随其运行时注册,无需单独安装。默认装入 web profile,DSH_WORK_BOARD_PROFILE 环境变量可指定其他 profile。
从源码安装的等价方式:git clone 后在仓库内执行 ./install.sh(或 ./install.sh --profile <name>)。
2. 重启 web UI:
dsh --profile web
卸载:dsh plugin --profile web remove @deepseek-ai/dsh-work-board-app(skill 随插件卸载一并消失)。
步骤 1 的手动等价:pnpm install && pnpm build && pnpm build:client,然后 dsh plugin --profile web add <repo>/packages/work-board-app。
打开服务地址,侧栏底部(设置项旁)出现 工作板 入口。命令行验证:
curl -s -X POST http://localhost:3080/api/board/list \
-H 'content-type: application/json' \
-d '{"type":"client-request","rpcId":"c1","method":"board/list","payload":{"args":{"request":{}}}}'
插件需要提供 storage domain 与 agent 服务的组合——标准 web profile 已具备。不要与已包含 board 行的组合同时启用(入口 id 重复会导致启动失败)。
功能
- 四列看板——待办 / 进行中 / 完成 / 异常——拖拽流转、工作区过滤、卡片折叠、详情弹窗
- 指派下发——在任务所属工作区创建全新会话,按默认 agent preset 组装(带全套标准工具);该会话的每次
approval/request自动以allowed-once放行,不做其他预授权 - 自动结算——回合结束即结算:
completed→ 完成(末段 assistant 文本作为结果)、error/max-tokens→ 失败、aborted/interrupted→ 中断;失败弹 web toast,并可(配置门控)发系统通知 - 模型工具——
board_list/board_status,按调用方工作区授权 - HTTP RPC——所有操作都是对运行中 web 服务的 POST(
/api/board/list|create|update|delete|assign),可用 curl 全脚本化,线格式见使用说明 skill
组合方式
插件只组合进已发布 ui-sidebar / ui-layout 就声明的席位,因此无需框架补丁即可在标准 dsh web 构建上运行:
- 看板入口注册进
sidebar.footer.action(设置项旁;宽侧栏为整行,折叠栏为图标块) - 看板页以
shell.overlay全屏层呈现(position: fixed,位于弹窗与 toast 之下),关闭时渲染为空 - 开板期间控制器每 5 s 轮询一次看板列表;api-remotes 白名单已转发
board/change的宿主构建额外获得推送更新,轮询兜住未转发的构建
包结构
| 包 | 平面 | 职责 |
|---|---|---|
@deepseek-ai/dsh-board | 宿主 | ctx.board 服务:持久工作项(storage-domain sidecar)、指派、结算、系统通知;即 board RPC 命名空间 |
@deepseek-ai/dsh-tool-board | 宿主 | 面向模型的 board_list / board_status 工具 |
@deepseek-ai/dsh-client-ui-board | Web | 侧栏入口、全屏看板层、创建/编辑/详情弹窗、失败 toast |
@deepseek-ai/dsh-work-board-app | Bundle | 可 dsh plugin add 的 profile 层,一次性挂载上述三行 |
开发
pnpm install
pnpm test # vitest(109 个测试)
pnpm typecheck # tsc -b
pnpm build # 宿主产物;再打 Web 客户端:
pnpm build:client
@deepseek-ai scope 走公网 npm(.npmrc),框架依赖为已发布的 @deepseek-ai/dsh-* 家族。
开发者说明
- 独立版客户端自挂载
boardremote(packages/client-ui-board/src/client/index.ts);deepseek-harness 组合里由 api-remotes 集中挂载——同一组合中二者不可同时启用 apply.client.specREAL-boot 用例仅在上游 monorepo 运行(其按值导入发布版dsh-client-runtime/client/dsh-client-locale/client浏览器 bundle,Node 下不可导入);vitest.config.ts内注明原因并排除。其余全部用例——109 个测试——在本仓库运行packages/board/lib/typert.*产物为 vendor 副本。修改packages/board/src/index.ts的 RPC 方法后,请在 deepseek-harness 工作区内重新生成;独立根目录下@deepseek-ai/dsh-typert-generator的 workspace 分析尚不能发现 Remote 方法
许可
MIT