Bundle
weave-for-dsh
Weave node-graph editor as a fixed DeepSeek Harness plugin: embeds the single-file editor as a page view, registers the `weave` AI tool that directly controls the page JS, and ships an AI-teaching skill.
- Source
- Quan-Chan
- License
- Apache-2.0
- Updated
- Updated 6 days ago
Readme
<h1 align="center">Weave-for-DSH</h1>
<p align="center">纯网页的节点式图编辑器 —— 自由摆放节点,拖拽 socket 连线,构建思维导图、流程图与逻辑树。</p>
<p align="center">
<img src="gif/usage.gif" alt="Weave 使用演示" width="720">
</p>
<hr>
<h2>DeepSeek Harness 插件版</h2>
本仓库在原版 Weave 之上做了插件化封装,编辑器本体原样打包、未做任何修改:
- **页面内嵌** — 编辑器作为会话的第三个页面视图(chat / trajectory / **Weave**)嵌入 DeepSeek Harness,用户可直接拖拽节点、连线、编辑
- **离屏常驻** — 编辑器 iframe 始终存活,AI 在任意页面视图下操作的都是同一份画布
- **`weave` AI 工具** — AI 可直接操控画布,见下文
- **AI 教学 skill 与文档** — 内置 [skills/weave/SKILL.md](skills/weave/SKILL.md) 与 [docs/weave-api.md](docs/weave-api.md);skill 由插件自动注册进 agent 技能目录,装好即可用,无需手动复制
安装(声明了 `dsh.bundle` 的组合包,一条命令装进 Web profile):
```sh
dsh plugin --profile web add github:Quan-Chan/Weave-for-DSH
```
本包是纯 JS + 静态资源,没有构建步骤,git 直装即可,也不需要 pnpm 的构建授权。也支持其他安装形式:`dsh plugin --profile web add weave-for-dsh`(发布到 npm 后)、`dsh plugin --profile web add ./weave-for-dsh-0.1.0.tgz`(`pnpm pack` 产物)、`dsh plugin --profile web add ./weave-for-dsh`(本地 checkout)。安装后重启 `dsh web` 并刷新会话页面,会话页面上方出现 **Weave** 页面选项,agent 工具集中出现 `weave` 工具。
<hr>
<h2>功能</h2>
- **节点** — 添加、删除、选中(单击 / 框选 / 多选)、拖拽移动、内联编辑、复制粘贴
- **连线** — socket 拖拽创建、删除、标签编辑、贝塞尔曲线自定义调整
- **画布** — 平移(拖拽 / 中键)、滚轮缩放、适应视图、坐标 HUD 编辑
- **颜色** — 5 种预设色 + 自定义色轮选择器,Ctrl+滚轮快速切换
- **导入/导出** — JSON 导入导出(含视口信息)、PNG 导出、拖拽 JSON 文件导入
- **其他** — 撤销/重做(最多 50 步)、只读模式、专注模式(Ctrl+H)、键位设置(首次启动自动弹出,快捷键可自定义)、语言切换(设置内:中文 / English)、自动保存到 localStorage
<hr>
<h2>AI 工具</h2>
插件注册 `weave` 工具,把一段 JavaScript 表达式送进编辑器执行并返回 JSON,AI 据此直接增删改节点/连线、整体读写画布、导出 PNG:
- `code`(必填)— JavaScript 表达式,支持 `await`
- `timeoutMs`(可选)— 超时,默认 60000
表达式内可用的全局:`App`(编辑器应用对象)、`Weave`(工具库:`Util` / `Color` / `Geom`)、`weave`(桥接对象:`addNode` / `getData` / `setData` / `exportPng` / `count`)。
```js
weave.addNode({ label: "需求分析", color: "blue", x: 0, y: 0 }) // 加节点
weave.getData() // 读整张图
weave.setData({ nodes: [...], connections: [...] }) // 整体替换
await weave.exportPng() // 导出 PNG,返回 {dataUrl, name}
weave.count() // 数量
```
完整接口与示例见 [docs/weave-api.md](docs/weave-api.md),AI 教学版见 [skills/weave/SKILL.md](skills/weave/SKILL.md)。
<hr>
<h2>技术栈展示</h2>
Weave 用纯前端技术构建,零框架、零依赖、零构建步骤,一个 HTML 文件就是完整产品:
- **纯 JavaScript** — 全部逻辑内联在单文件中,无框架、无构建,源码即产品
- **HTML5 + CSS3** — 语义化结构 + CSS 变量主题,界面风格统一易维护
- **Canvas 2D** — 绘制网格背景与连线,缩放平移时流畅重绘
- **SVG** — 叠加层承载贝塞尔曲线控制手柄与连线标签,可精确交互
- **localStorage** — 画布数据自动持久化,刷新或重开不丢失
<hr>
<h2>许可证</h2>
本项目采用 <a href="LICENSE">Apache License 2.0</a> 开源。
<pre>Copyright © 2026 Quan-Chan</pre>
Install
dsh plugin --profile web add github:Quan-Chan/Weave-for-DSH#66265512d5b9024841326382fde2f33fca1faf59
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install weave-for-dsh from the hub