🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件来源标注 TowardsDawn/dsh-plugin-source-link

DeepSeek Harness
TowardsDawn35 天前有提交已提供中文文档扫描:含敏感能力

在插件详情页显示并手动补全仓库地址

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TowardsDawn/dsh-plugin-source-link
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/05·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 35 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 12 处,展示前 11 条)
  • 读取本地文件
    index.js:149
    return existsSync(webProfile) ? webProfile : undefined;
  • 读取本地文件
    index.js:156
    const text = await readFile(join(profileDir, STORE_FILE), "utf8");
  • 写入本地文件
    index.js:182
    await writeFile(join(profileDir, STORE_FILE), `${JSON.stringify(data, null, 2)}\n`, "utf8");
  • 发起网络请求
    client.js:165
    return fetch(path, init).then(function (response) {
  • 写入剪贴板
    client.js:237
    navigator.clipboard.writeText(text)["catch"](function () {});
  • 读取本地文件
    lib/repo-source.js:129
    const manifest = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
  • 读取本地文件
    lib/repo-source.js:164
    const stats = statSync(gitDir);
  • 读取本地文件
    lib/repo-source.js:166
    const pointer = /^gitdir: *(.+)$/im.exec(readFileSync(gitDir, "utf8"));
  • 读取本地文件
    lib/repo-source.js:171
    const config = readFileSync(join(gitDir, "config"), "utf8");
  • 读取本地文件
    lib/repo-source.js:188
    return statSync(dir).isDirectory() ? realpathSync(dir) : undefined;
  • 读取本地文件
    lib/repo-source.js:202
    const manifest = JSON.parse(readFileSync(join(profileDir, "package.json"), "utf8"));
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 显示插件来源
  • 手动补全仓库地址

显示插件来源

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-source-link 给 DSH Web 的插件面板(侧栏「插件」,即管理第三方插件的面板)加一块「插件来源」:在每个插件详情页底部显示该插件的 GitHub 仓库 URL(可点击超链接)或本地仓库路径;数据目录里提取不到时,提供一个输入框让你自己填,并持久保存。 目录结构 dsh-plugin-source-link/ ├─ package.json 清单:main=host 半,exports["./client"]=浏览器半,dsh.client 声明 ├─ cordis.patch.yml bundle patch:insert 一行 id=plugin-source-link ├─ index.js host 半:只读推断 + 手动值持久化(注册 /api/plugin-source-link/) ├─ lib/repo-source.js 纯函数层:spec / 清单 / git 远端 → URL 或本地路径 ├─ client.js 浏览器半:注册 plugins.detail.section 席位并渲染区块 ├─ tests/verify.mjs 离线自检:纯函数 + 用假 ctx/req/res 驱动 4 条路由 └─ README.md 功能 - 自动提取(按优先级):
展开完整文档(README 剩余 1 节)
dsh-plugin-source-link

给 DSH Web 的插件面板(侧栏「插件」,即管理第三方插件的面板)加一块「插件来源」:在每个插件详情页底部显示该插件的 GitHub 仓库 URL(可点击超链接)或本地仓库路径;数据目录里提取不到时,提供一个输入框让你自己填,并持久保存。

目录结构

dsh-plugin-source-link/
├─ package.json 清单:main=host 半,exports["./client"]=浏览器半,dsh.client 声明 ├─ cordis.patch.yml bundle patch:insert 一行 id=plugin-source-link ├─ index.js host 半:只读推断 + 手动值持久化(注册 /api/plugin-source-link/) ├─ lib/repo-source.js 纯函数层:spec / 清单 / git 远端 → URL 或本地路径 ├─ client.js 浏览器半:注册 plugins.detail.section 席位并渲染区块 ├─ tests/verify.mjs 离线自检:纯函数 + 用假 ctx/req/res 驱动 4 条路由 └─ README.md

功能

- 自动提取(按优先级):
1. profile package.json 里的依赖 spec —— github:owner/repo、git+https://…、git+ssh://…、git@host:owner/repo.git 归一化成 https://…;file: / link: 解析成本地绝对路径;
2. node_modules/<包>/package.json 的 repository / homepage / bugs.url;
3. 本地源码目录 .git/config 的 origin(覆盖 link: 依赖、本地开发中的插件;.git 为 worktree 文件时同样处理)。
- 渲染:URL 是 超链接(附「复制」按钮);本地路径是等宽文本(附「复制」按钮),完整路径放在 title 里。
- 手动填写:区块内「没有?我自己填」展开两个输入框(仓库 URL / 本地路径),保存后覆盖自动结果并显示「手动填写」徽标;「清除手动值」回到自动推断。
- 持久化:手动值写在 <profile 目录>/plugin-source-links.json,换浏览器也保留。
- 安全:/api/plugin-source-link/ 只接受 loopback 来源(socket 远端 + Host 头双重校验);URL 只接受 http/https/git 形态,javascript: / data: / file: 一律拒绝;包名严格校验后才拼进 node_modules 路径。

安装(由你自己执行)

dsh plugin --profile web add "github:TowardsDawn/dsh-plugin-source-link"

安装后重启 DSH Web(或让它热重组),侧栏「插件」→ 点开任一插件详情页,底部即出现「插件来源」。

接口

| 方法 | 路径 | 说明 |
| GET | /api/plugin-source-link/one?name=<包名> | 解析单个包 |
| GET | /api/plugin-source-link/list | profile 全部依赖的解析结果(预取用) |
| POST | /api/plugin-source-link/set | { name, url?, path? } 保存手动值(空串 = 清除该项) |
| POST | /api/plugin-source-link/clear | { name } 清除该包全部手动值 |

返回形如 { ok: true, entry: { name, version, spec, url, path, resolvedFrom, manual, auto, installed, profileDir } }。

已知限制

- 只能在本机浏览器里用:从 LAN 打开 Web GUI 时 host 端返回 403,区块显示「仅在本机浏览器中可用」(与官方插件面板的安装/启停同样的限制)。
- 官方随附的 bundle(@deepseek-ai/dsh-*)通常没有 repository 字段也没有依赖 spec,会显示「数据目录里没有找到仓库地址」——这时用手动填写。
- 只读推断:插件不改动任何被管理插件的文件,唯一写入是 <profile>/plugin-source-links.json。

卸载

dsh plugin --profile web remove dsh-plugin-source-link

手动值文件 <profile>/plugin-source-links.json 不会被自动删除,需要的话自行移除。
预览分享卡片长什么样 ↓TowardsDawn/dsh-plugin-source-link
分享 · DeepSeek Harness Hub
TowardsDawn/dsh-plugin-source-link

在插件详情页显示并手动补全仓库地址

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部