deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:realguan/dsh-mermaid-preview
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
在 DeepSeek Harness(dsh)Web
界面中,把 Markdown 的 mermaid 围栏代码块渲染为图表的 Cordis 客户端插件。
对话、轨迹、计划评审、摘要 —— 所有走 MarkdownText 渲染的视图,一处接入,
处处生效。
English README: README.en.md
dsh plugin --profile web add github:realguan/dsh-mermaid-preview
一条命令完成:从 GitHub 克隆 + pnpm 安装 + 自动注册为 web profile 的 bundle 层
dsh web 即生效。如果你的 dsh 版本不支持
dsh plugin,请先升级 dsh CLI:npm i -g @deepseek-ai/dsh
git clone https://github.com/realguan/dsh-mermaid-preview.git
cd dsh-mermaid-preview && npm run build
dsh plugin --profile web add .
如果不想修改 profile,可以在 dsh 会话中让模型执行 cordis_define,
将 dist/dsh-mermaid-preview.client.js 的内容粘贴为 code.client,
再执行 cordis_run 并允许。详见 docs/install.md。
🧩 关于两种安装产物(build 后自动生成)
npm run build会同时产出两份客户端代码,机制和格式完全不同:
产物 用途 格式 加载链 dist/dsh-mermaid-preview.client.js动态插件( cordis_define)函数体 return {...}会话内动态 runner dist/dsh-mermaid-preview.bundle.js原生 bundle( dsh plugin add)__ModuleLoader__.load({id, factory})web profile 的 client-modules
dsh plugin add依赖 bundle 产物:它要求 package.json 的exports暴露./package.json、并把./client指向 bundle。改了src/client.js后务必npm run build再重装,否则原生安装拿不到新渲染逻辑。
编辑 ~/.dsh/profiles/web/package.json,删除 dependencies 里的
"dsh-mermaid-preview" 一行,然后:
cd ~/.dsh/profiles/web && pnpm install
重启 dsh web 后生效。插件注入的样式和 DOM 观察器随 profile 层移除而清理;
已渲染的 SVG 保留(属于内容),重新加载页面即恢复原样。
重新执行安装命令即可(pnpm 会自动拉取最新版本):
dsh plugin --profile web add dsh-mermaid-preview
dsh plugin add 自动完成注册与依赖管理demo/ 是零依赖的纯 HTML 演示页,不需要 dsh 也能体验npm run demo # → http://localhost:8090
左侧编辑 Mermaid 源码(内置 11+ 种图型预设),右侧实时渲染,主题可切换。
见 examples/showcase.md —— 11 种图型的可直接粘贴
源码;demo/demo.js 里有同样的预设。
dsh 的 Markdown 渲染器对未知语言(含 mermaid)输出稳定的
.md-code-block 结构,横幅标明语言、正文是 <pre><code> 纯文本。
插件用 MutationObserver 监听 document.body,发现 mermaid 围栏后
通过 <script> 按需加载 Mermaid 11(jsDelivr CDN),把 <pre> 替换为
渲染好的 SVG——语言横幅与复制按钮原样保留。
flowchart LR
A[Markdown 渲染器<br/>输出 .md-code-block] -->|MutationObserver 发现 mermaid 围栏| B[加载 Mermaid 11<br/>jsDelivr CDN]
B --> C[读取 pre 源码]
C --> D[mermaid.render<br/>securityLevel strict]
D --> E[SVG 替换 pre]
E --> F[保留横幅 + 复制按钮<br/>可切换 图表/源码]
完整原理、设计取舍与已知边界见 docs/architecture.md。
cordis.yml dsh bundle composition(dsh plugin add 读取)
src/client.js 插件唯一源码(ES module,apply 即全部逻辑)
scripts/build-dynamic.mjs 生成 dist 动态粘贴载荷
scripts/build-client-bundle.mjs 生成 dist 原生 bundle 客户端半体
dist/dsh-mermaid-preview.client.js 动态插件载荷(cordis_define 粘贴用)
dist/dsh-mermaid-preview.bundle.js 原生 bundle(dsh plugin add 加载用)
demo/ 零依赖独立演示页
examples/showcase.md 图型示例合集
docs/install.md 安装 / 卸载 / 更新 / FAQ
docs/architecture.md 实现原理与安全说明
| 项 | 值 |
|---|---|
| 平台 | dsh Web(客户端) |
| 插件形态 | dsh bundle 客户端插件(dsh plugin add) |
| Mermaid | 11.16.1(UMD,jsDelivr CDN,可按需改镜像) |
| 依赖 | 无运行时依赖;工具脚本仅用 Node 内置模块 |
| 安全 | securityLevel: 'strict';不采集任何数据 |
| 许可证 | MIT |
window.__DSH_BOOT__。若没有、/plugins/dsh-mermaid-preview/client.js 返回
404,通常是你装的是旧版本(≤ 0.2.0,缺 bundle 产物)或改了源码没重装。
升级到新版本后重装并重启:dsh plugin --profile web add github:realguan/dsh-mermaid-preview
(详见 docs/install.md 的 FAQ)。src/client.js 的 CDN 常量后 npm run build 再更新插件。theme/change。更多见 docs/install.md 的 FAQ 一节。
见 CONTRIBUTING.md。修改 src/client.js 后请
npm run build 并同步提交 dist/ 产物。
MIT © 2026 realguan
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。