DeepSeek Harness Hub
← 返回列表

xuanyuanchumo/dsh-codegraph-visualizer

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

dsh的代码图谱可视化

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/5 · 已提供中文文档
综合分
29.4
GitHub 分
29.4
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add xuanyuanchumo/dsh-codegraph-visualizer
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH CodeGraph 可视化工具

DeepSeek Harness (DSH) 代码图谱可视化插件 — 将 dsh-codegraph 与 dsh-tool-lens 数据源聚合为交互式代码关系图谱

CI
Release
License: MIT
Node Version
pnpm

概述

DSH CodeGraph Visualizer 是一个 DeepSeek Harness 生态插件,填补了代码关系图谱可视化领域的空白。它将 dsh-codegraph(CodeGraph CLI 封装工具)和 dsh-tool-lens(AST 代码图谱与拓扑分析)两个数据源的输出聚合、转换,并通过 Cytoscape.js 渲染为交互式代码关系图谱面板,嵌入 DSH Web UI 侧边栏。

核心能力

- 多数据源融合 — 同时接入 dsh-codegraph 与 dsh-tool-lens,自动合并去重
- 渐进式层级聚合 — 目录级 → 文件级 → 函数级 三层聚类,逐层展开
- 4 种布局引擎 — Cose(力导向)、Dagre(层次)、Circle(环形)、Grid(网格)
- 交互式分析 — 符号搜索、调用链追踪、循环依赖检测、影响分析、继承层次
- 实时增量更新 — 文件监听 + 事件驱动,代码变更后图谱自动刷新
- 导出能力 — PNG / SVG / JSON 三格式导出
- 中英双语 i18n — 完整国际化支持
- 主题切换 — 深色/浅色主题,自动适配 DSH 环境变量

安装

前置条件

- Node.js >= 22.19 或 >= 24
- pnpm >= 9
- DSH Web 环境(dsh web)

通过 DSH 插件管理安装(推荐)

安装插件(两种方式均可)
dsh plugin --profile web add github:xuanyuanchumo/dsh-codegraph-visualizer
dsh plugin --profile web add xuanyuanchumo/dsh-codegraph-visualizer

卸载插件
dsh plugin --profile web remove dsh-codegraph-visualizer

安装完成后启动 DSH Web 即可在侧边栏看到 "Code Graph" 标签页:

dsh web
→ http://localhost:3080,点击侧边栏 "Code Graph" 标签页

从源码构建(开发者)

git clone https://github.com/xuanyuanchumo/dsh-codegraph-visualizer.git
cd dsh-codegraph-visualizer
pnpm install
pnpm run build

将构建产物安装到 DSH
dsh plugin --profile web add /path/to/dsh-codegraph-visualizer

快速开始

开发模式

启动自包含的 dev server(模拟 DSH Web Shell + 模拟数据)
pnpm run dev
→ http://localhost:3080

运行测试

pnpm run test           # 单元测试(320 tests)
pnpm run test:e2e       # E2E 测试(需先启动 dev server)
pnpm run typecheck      # 类型检查
pnpm run lint           # Lint

架构

┌─────────────────────────────────────────────────────────────┐
│                     DSH Web UI Shell                        │
│  ┌───────────────────────────────────────────────────────┐  │
│  │              CodeGraph Visualizer Plugin              │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌──────────────┐  ┌─────────────┐  │  │
│  │  │  Host Layer │  │  Data Layer  │  │ Client Layer│  │  │
│  │  │             │  │              │  │             │  │  │
│  │  │ • routes    │  │ • CodeGraph  │  │ • GraphPanel│  │  │
│  │  │ • watcher   │  │   Adapter    │  │ • Toolbar   │  │  │
│  │  │ • config    │  │ • LensAdapter│  │ • Cytoscape │  │  │
│  │  │ • security  │  │ • GraphData  │  │   Renderer  │  │  │
│  │  │ • prereqs   │  │   Merger     │  │ • Store     │  │  │
│  │  │             │  │              │  │ • i18n      │  │  │
│  │  └─────────────┘  └──────────────┘  └─────────────┘  │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

目录结构

src/
├── index.ts                  # Host 端插件入口(re-export 聚合)
├── tools.ts                  # 4 个工具定义(graph_status/data/symbol/impact)
├── types/                    # Branded 类型、GraphData、事件声明合并
├── adapters/                 # 数据源适配器
│   ├── CodeGraphAdapter.ts   #   dsh-codegraph 数据源
│   └── LensAdapter.ts        #   dsh-tool-lens 数据源
├── merger/
│   └── GraphDataMerger.ts    # 多数据源融合器(去重 + 合并)
├── host/                     # Host 端模块
│   ├── config.ts             #   配置定义与校验
│   ├── routes.ts             #   HTTP 路由注册
│   ├── watcher.ts            #   文件监听与事件监听
│   ├── security.ts           #   路径安全校验
│   └── prerequisites.ts      #   前置条件检测
├── client/                   # Client 端模块(浏览器渲染)
│   ├── index.ts              #   Client 端插件入口
│   ├── GraphPanel.tsx        #   主面板 UI 组件
│   ├── api/                  #   HTTP API helpers
│   ├── components/            #   UI 组件(Toolbar, SearchBar, ImportPanel, ...)
│   ├── renderer/             #   渲染引擎
│   │   ├── CytoscapeRenderer.ts  # Cytoscape.js 渲染器
│   │   ├── IRenderer.ts      #     渲染器接口
│   │   └── styles/           #     主题样式
│   ├── store/                #   状态管理
│   │   ├── graphStore.ts     #     Zustand 全局状态
│   │   └── cluster/          #     聚类策略模块
│   │       ├── types.ts      #       ClusterLevel/ClusterNode/ClusterEdge
│   │       ├── index.ts      #       策略注册表
│   │       ├── directoryCluster.ts  # 目录级聚类
│   │       ├── fileCluster.ts       # 文件级聚类
│   │       ├── functionCluster.ts  # 函数级(透传)
│   │       └── smartCluster.ts     # 智能聚类(标签传播)
│   ├── i18n/                 #   国际化(中/英)
│   ├── hooks/                #   React Hooks
│   └── utils/                #   工具函数
├── push/                     # 推送通知模块
└── shared/                   # Host/Client 共享模块

聚类策略

采用 策略模式(Strategy Pattern) 实现 4 级聚类:

| 级别 | 策略 | 行为 |
|------|------|------|
| directory | DirectoryClusterStrategy | 按顶级目录聚合,展开后显示文件级聚类节点 |
| file | FileClusterStrategy | 按文件聚合,展开后显示函数/类/变量节点 |
| function | FunctionClusterStrategy | 透传,不做聚类 |
| smart | SmartClusterStrategy | 标签传播社区检测算法 |

渐进式层级展开:在目录级模式下,展开一个目录聚类节点会显示该目录下的文件级聚类节点(而非所有原始节点)。用户可以继续展开文件级聚类节点来查看函数级原始节点。

DSH 插件规范合规

本项目遵循 DSH 插件开发规范九条红线:

- [x] 插件入口 src/index.ts 使用 definePlugin() 注册
- [x] dsh.bundle.patch 指定 Cordis 补丁文件
- [x] dsh.client.platform 为 "web"
- [x] dsh.client.inject 声明运行时注入依赖
- [x] peerDependencies 声明 Cordis/DSP-Tools/React
- [x] exports 字段正确导出 host/client 入口
- [x] files 字段仅包含 dist 和 cordis.patch.yml
- [x] engines 字段声明 Node/pnpm 版本要求
- [x] packageManager 字段指定 pnpm 版本

开发

技术栈

| 层 | 技术 |
|----|------|
| 语言 | TypeScript 5.7+ |
| 框架 | React 19 + Cordis 4 |
| 渲染 | Cytoscape.js 3.26 + cytoscape-dagre |
| 状态 | Zustand 5 |
| 构建 | tsdown (rolldown) |
| 测试 | Vitest 3 + Playwright 1.62 |
| Lint | oxlint |
| 包管理 | pnpm 9 |

常用命令

pnpm run build          # 完整构建(host + client)
pnpm run build:client   # 仅构建 client bundle
pnpm run dev            # 启动 dev server
pnpm run test           # 单元测试
pnpm run test:e2e       # E2E 测试
pnpm run typecheck      # 三面类型检查
pnpm run lint           # Lint
pnpm run lint:fix       # Lint 自动修复

CI/CD

项目使用两个独立的 GitHub Actions 工作流:

| 工作流 | 文件 | 触发条件 | 职责 |
|--------|------|----------|------|
| CI | ci.yml | push/PR to master | lint + typecheck + test + build |
| Release | release.yml | push tag v* | build + GitHub Release + npm publish |

测试覆盖

- 320 单元测试 — 覆盖 adapters, tools, plugin, graphStore, validators, i18n, logger, pathSecurity, services, deriveName
- 53 E2E 测试 — 覆盖 J1-J14 用户旅程(5 个 skip 为 dev mode 不支持的功能)

许可证

MIT

致谢

- DeepSeek Harness (DSH) — Agent 运行时框架
- Cytoscape.js — 图可视化引擎
- dsh-codegraph — CodeGraph CLI 数据源
- dsh-tool-lens — AST 代码图谱数据源

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群