← 返回列表
未验证
一个 DeepSeek Harness 插件,它将 graft —— 一个预构建的图,包含每个符号、其…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/17 · 已提供中文文档
一个 DeepSeek Harness 插件,将 graft——一张预构建的图,包含每个符号、其 file:line 跨度以及谁调用了谁——同时呈现在你和模型面前。
综合分
30.7
GitHub 分
30.7
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add adithyanraj03/dsh-graft-plugin该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-graft-plugin language style license node dsh runtime tests 一个 DeepSeek Harness 插件,它将 graft —— 一个预构建的图,包含每个符号、其 file:line 范围以及谁调用了谁 —— 呈现在你和模型面前。 它做四件事: - 编辑器中的一个标签(chip),标明当前会话实际使用的 graft 索引、它是否仍与代码匹配,以及 graft 在该仓库中节省了多少 token。 - 为模型提供的五个工具 —— graft_ask、graft_grep、graft_callers、graft_skeleton、graft_map —— 按会话解析,因此一个 dsh 可以同时服务多个工作区。 - /graft 用于构建或重建索引,以及在模型编辑文件后自动重建。 - 一个 graft viz 按钮,在 dsh-better-sidebar 中将图作为标签页打开。 安装 dsh plugin --profile web add dsh-graft-plugin dsh --profile web 安装还会将 graft CLI(@nanonets/graft)放入你的 PATH —— 这里的每个工具都会调用它,因此没有它的插件什么也做不了。如果你的全局 npm 前缀需要提权,postinstall 会提示,并打印出需要手动运行的命令: npm install -g @nanonets/graft 然后对仓库索引一次: cd graft build 侧边栏标签页 graft viz 按钮需要 dsh-better-sidebar 已挂载。它作为本插件的依赖项一起发布,因此已经下载好了 —— 但 dsh 只会挂载 profile 中列出的内容: dsh plugin --profile web add dsh-better-sidebar 如果你不想要这个标签页,可以跳过。标签(chip)、工具、/graft 和自动重建在没有它的情况下都能正常工作;按钮只会报告侧边栏不可用。 本插件不会自行插入 dsh-better-sidebar 行,这是有意为之。那个包自己的 bundle 行带有一个守卫,当另一个已启用的行已经挂载了同一个包时,它会禁用自身。一个具有不同 id 的第二行会使该守卫变成循环,而失败的结果是你现有的侧边栏静默地禁用自己。一条显式命令比那种风险更值得。 你会得到什么 标签(chip) 位于编辑器中模型名称旁边: ● graft · my-repo in sync ◐ graft · my-repo syncing ▲ graft · my-repo stale 悬停(或点击)会打开一张卡片,显示解析后的根目录、节点和边的数量、新鲜度、正在运行的节省 token 统计,以及 graft viz 按钮。 输入框中的芯片,及其悬停卡片 根目录是从会话自身的工作区解析的,而不是从 dsh 启动的位置。这正是它存在而不是使用 graft mcp 服务器的全部原因:graft mcp 在启动时从自己的工作目录解析一次仓库,之后没有任何东西能重新指向它。从主目录启动时,它对你打开的每个工作区都回答“未找到图”。 可视化器 graft viz 按钮会在 dsh-better-sidebar 中作为标签页打开图。上下文视图展示整个图: 侧边栏中的图——上下文视图 代码视图深入单个文件——它包含什么、它依赖什么、什么依赖它: 侧边栏中的图——代码视图 工具 | 工具 | 它回答什么 | |---|---| | graft_ask | “X 如何工作” / “Y 在哪里”——排序后的命中结果,代码内联在精确的 file:line 处 | | graft_grep | 每一次出现,按外层符号分组(graft_ask 是前 N 个,会漏掉一些) | | graft_callers | 谁调用某个符号、它调用什么,或重命名前的完整影响范围 | | graft_skeleton | 一个文件的整个 API,约 200 个 token | | graft_map | 在陌生目录树中的定位 | 它们都不接受布尔参数。它们改用字符串枚举——detail: "full" 而不是 full: true——这对模型来说更易读,并避开某些 OpenAI 兼容服务器上的一个真实故障模式:在那里,设置布尔的工具调用会被输出为字面 文本,永远不会运行。 /graft - /graft——构建索引,如果已存在则重建 - /graft status——芯片知道的内容,以文本形式 - /graft deep——完整重建 自动重建 在模型写入或编辑文件后,索引会在后台重建,并做防抖处理,这样长回合不会在每次按键时都重建。这复用了 graft 自己的同步运行器,而不是重新实现它,因此它不会与 graft build 的行为产生偏差。 配置 全部可选,全部位于你配置文件的 cordis.patch.yml 中该插件的行上: - id: graft-status name: 'dsh-graft-plugin' config: cwd: 'C:/path/to/repo' # 固定到一个仓库,而不是按会话解析 tools: false # 去掉 graft_* 工具,保留芯片 command: false # 去掉 /graft promptSection: false # 不再告诉模型优先使用 graft autoBuild: false # 编辑后不再重建 要求 - dsh 0.1.2-rc.1 或更新版本,web 配置文件 - Node 22+ - PATH 上有 graft CLI(已为你安装;见上文) 开发 npm install npm test # 可移植:在临时目录中构建一个合成的 graft 索引 npm run test:live # 针对真实仓库驱动真实的 graft CLI npm test 不需要机器上任何位置存在 graft 索引,也不需要安装 graft。唯一一个确实会构建真实索引的测试套件,在 graft 缺失时会大声地跳过自身——CLI 缺失是一种环境配置状态,而不是缺陷。 许可证 MIT
扫码进群