DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Team Canvas — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
T

dsh-team-canvas

Team Canvas

Agent Teams 可视化面板 — 泳道看板 + 依赖 DAG 连线 + 通讯流,参考 cc-haha 开源实现

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

npx -y @deepseek-ai/dsh plugin --profile web add github:lj100886/dsh-team-canvas#8a4aa9dc82b4596eaa7df19a45eb8bff8a519a35
README兼容性版本

兼容性与来源证明

Team Canvas 以 dsh-team-canvas 发布,当前版本为 2.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/18

版本

2.0.0stable
2026/10/18

相关插件

正在加载相关插件…

最新版
2.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/19
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中

README

dsh-team-canvas

dsh-team-canvas

Agent Teams 泳道看板 · 依赖 DAG 连线 · 通讯流
DeepSeek Harness 插件 · 布局移植自 cc-haha 开源实现


它是什么

在 DSH 会话输入框上方放一块 Agent Teams 可视化画布:队长居中、成员在下、任务按依赖深度分泳道排列,中间用 SVG 贝塞尔虚线画出「谁依赖谁」和「谁正在做哪个任务」。

CC-haha 桌面端的 Agent Teams 面板有一套很好用的视觉语言 —— 泳道底板、虚线总线、任务卡状态徽章。这个插件把那套布局搬到 DSH 的 Web UI 里,用的是原版几何常量与路径算法,不是照着重画的近似版本。

长什么样

┌──────────────────────────────────────────────────────────────┐
│ 🤖 Agent Teams  [tally-squad]  [实验特性]                     │
├──────────────────────────────────────────────────────────────┤
│  3/6        2         8          1                            │
│  并行执行    完成      进行中      待办                        │
├───────────────────────────────────┬──────────────────────────┤
│  1 · 团队 · 队长居中,成员在下       │  通讯            88 条    │
│                                   │  全部 | 报告 | 私信       │
│              🤖 team-lead         ├──────────────────────────┤
│          协调·等待汇报·收件箱 51    │  👩‍💻 frontend-dev  17:15  │
│    ┆        ┆        ┆        ┆   │  P1 已修,mobile.png...   │
│   👨‍💻       🧪       🔍       👩‍💻  │                          │
│ backend  qa-eng  reviewer  frontend│  🤖 team-lead      17:15  │
│                                   │  后端 8000 已停...        │
│  2 · 共享任务列表 · 按依赖排层 →    │                          │
│  ┌─无依赖·可立即做─┐┌─第2层─┐┌收尾┐│  👩‍💻 frontend-dev  17:14  │
│  │ #1 后端实现 ═══╪╪═▶#4  ││ #6 ││  你抓到的真实 bug...      │
│  │ #2 前端实现 ═══╪╪═▶#5  ││    ││                          │
│  │ #3 QA 阶段一 ✓  ││      ││    ││                          │
│  └────────────────┘└──────┘└────┘│                          │
├───────────────────────────────────┴──────────────────────────┤
│  ┄┄ 依赖未满足  ┄┄ 依赖已满足  ┄┄ 正在执行  ┄┄ 刚解锁  ┄┄ 飞行中 │
└──────────────────────────────────────────────────────────────┘

连线怎么画的

这是本插件的核心。四条连线各司其职:

连线形状虚线含义
任务依赖三次贝塞尔,前置任务右缘 → 后继任务左缘7 7满足时用负责人强调色并流动,未满足用边框色
队长总线折线:队长脚下 → 横向总线 → 各成员顶部6 6汇报关系
成员 peer 总线折线:成员脚下 → 横向总线 → 成员脚下4 7同级通讯
执行 tether三次贝塞尔,成员脚下 → 任务顶部8 6正在执行该任务的成员,流动动画

依赖边的路径函数:

function dependencyPath(from, to) {
  const fromX = from.x + TASK_WIDTH
  const fromY = from.y + TASK_HEIGHT / 2
  const toX   = to.x
  const toY   = to.y + TASK_HEIGHT / 2
  const middle = fromX + (toX - fromX) / 2
  return `M ${fromX},${fromY} C ${middle},${fromY} ${middle},${toY} ${toX - 5},${toY}`
}

泳道划分用「最长依赖路径」算深度,带环与缺失节点兜底:

function depthOf(id) {
  if (depths.has(id)) return depths.get(id)
  if (visiting.has(id)) return 0          // 环 → 回退 0
  const task = byId.get(id)
  if (!task) return 0                      // 缺失节点 → 0
  visiting.add(id)
  const deps = task.blockedBy.filter(d => byId.has(d))
  const depth = deps.length === 0 ? 0 : 1 + Math.max(...deps.map(depthOf))
  visiting.delete(id)
  depths.set(id, depth)
  return depth
}

卡片是普通 DOM 绝对定位,连线是叠在上面的一层 <svg>。两者共用同一组几何常量(TASK_WIDTH / TASK_HEIGHT / LANE_TOP / MEMBER_PITCH …),所以缩放和主题切换都不会错位。

安装

dsh plugin --profile desktop add dsh-team-canvas

重启 DSH,打开任意会话,输入框上方就会出现面板。

手动安装(本地开发):

git clone https://github.com/lj100886/dsh-team-canvas.git
dsh plugin --profile desktop add file:/path/to/dsh-team-canvas

主题

只用宿主主题 token,亮色/暗色自动跟随,不写死颜色:

--dsw-alias-bg-layer-1/2/3     背景层次
--dsw-alias-border-l2          边框与虚线
--dsw-alias-label-primary/2/3  文字层次
--dsw-alias-state-business-primary  强调色
--dsw-alias-state-success-primary   完成态

兼容性

项值
DSH>=0.2.0
平台Web / Desktop
Node>=20.18
注入槽位conversation.input.dock
客户端依赖@deepseek-ai/dsh-client-ui-conversation

当前状态

已实现:完整布局引擎、四类 SVG 连线、状态徽章、通讯面板、亮暗主题、i18n(zh/en)。

未实现:数据目前是内置演示数据。接真实 Agent Teams 投影(roster + 任务板 + 消息流)是下一步 —— 字段名已按投影结构命名,替换数据源即可。

致谢

布局常量、路径算法、泳道分层逻辑移植自 cc-haha 的 desktop/src/components/agentTeams/(MIT)。没有那套实现打底,这个插件不会长成这样。

License

MIT