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

学术文献检索 Cjrrrrrrrr/dsh-plugins

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

跨库检索论文并解析开放获取全文

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · browser
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 22 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 65 处,展示前 53 条)
  • 读取本地文件
    packages/dsh-corpus/lib/index.js:82
    if (!existsSync(cfg.corpusRoot)) return `corpus_index:语料库不存在 ${cfg.corpusRoot}`
  • 读取本地文件
    packages/dsh-corpus/lib/search.js:73
    try { raw = readFileSync(doc.path, 'utf8') } catch { continue }
  • 读取本地文件
    packages/dsh-corpus/lib/search.js:123
    const raw = readFileSync(doc.path, 'utf8')
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:68
    try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return }
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:77
    try { text = readFileSync(full, 'utf8') } catch { continue }
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:87
    docs.push({ id, path: full, rel, name: e.name, chars: text.length, kind: kindOf(rel, e.name), size: statSync(full).size })
  • 写入本地文件
    packages/dsh-corpus/lib/store.js:109
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    packages/dsh-corpus/lib/store.js:112
    writeFileSync(file, JSON.stringify(obj), 'utf8')
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:113
    return { file, bytes: statSync(file).size }
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:118
    if (!existsSync(file)) return undefined
  • 读取本地文件
    packages/dsh-corpus/lib/store.js:120
    const j = JSON.parse(readFileSync(file, 'utf8'))
  • 读取本地文件
    packages/dsh-karing/lib/core.js:62
    if (!existsSync(src)) return { ok: false, error: `找不到源内核:${src}` }
  • 写入本地文件
    packages/dsh-karing/lib/core.js:63
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    packages/dsh-karing/lib/core.js:65
    copyFileSync(src, dst)
  • 读取本地文件
    packages/dsh-karing/lib/core.js:66
    return { ok: true, from: src, to: dst, bytes: statSync(dst).size, at: new Date().toISOString() }
  • 读取本地文件
    packages/dsh-karing/lib/core.js:82
    const useEmbedded = existsSync(embedded)
  • 读取本地文件
    packages/dsh-karing/lib/core.js:106
    const raw = JSON.parse(readFileSync(paths.guiServiceJson, 'utf8'))
  • 读取本地文件
    packages/dsh-karing/lib/core.js:125
    return JSON.parse(readFileSync(paths.guiCoreJson, 'utf8'))
  • 写入本地文件
    packages/dsh-karing/lib/core.js:211
    mkdirSync(dataDir, { recursive: true })
  • 读取本地文件
    packages/dsh-karing/lib/core.js:220
    if (!forceBootstrap && existsSync(corePath)) {
  • 写入本地文件
    packages/dsh-karing/lib/core.js:240
    writeFileSync(corePath, JSON.stringify(core, null, 1), 'utf8')
  • 写入本地文件
    packages/dsh-karing/lib/core.js:247
    mkdirSync(workDir, { recursive: true })
  • 写入本地文件
    packages/dsh-karing/lib/core.js:259
    writeFileSync(servicePath, JSON.stringify(service, null, 1), 'utf8')
  • 执行外部命令来自配置/变量
    packages/dsh-karing/lib/core.js:297
    const child = spawn(exePath, ['run', '-s', servicePath, '-D', workDir, '--connected-port', String(connectedPort)], {
  • 执行外部命令固定命令
    packages/dsh-karing/lib/core.js:319
    execFile('taskkill', ['/PID', String(pid), '/T', '/F'], { windowsHide: true }, (error, stdout, stderr) => {
  • 执行外部命令固定命令
    packages/dsh-karing/lib/core.js:328
    execFile('powershell', ['-NoProfile', '-Command',
  • 执行外部命令固定命令
    packages/dsh-karing/lib/core.js:345
    execFile('powershell', ['-NoProfile', '-Command',
  • 删除本地文件
    packages/dsh-karing/lib/core.js:364
    try { rmSync(statePath, { force: true }) } catch { }
  • 发起网络请求
    packages/dsh-karing/lib/core.js:375
    const res = await fetch(url, { method, headers, body: body === undefined ? undefined : JSON.stringify(body), signal: controller.signal })
  • 读取本地文件
    packages/dsh-karing/lib/focus.js:68
    .map((d) => ({ ...d, realPath: expandPath(d.path, username), exists: existsSync(expandPath(d.path, username)) }))
  • 读取本地文件
    packages/dsh-karing/lib/focus.js:112
    try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return }
  • 读取本地文件
    packages/dsh-karing/lib/focus.js:122
    try { st = statSync(full) } catch { continue }
  • 读取本地文件
    packages/dsh-karing/lib/index.js:88
    if (existsSync(ownServicePath)) {
  • 读取本地文件
    packages/dsh-karing/lib/index.js:90
    const own = JSON.parse(readFileSync(ownServicePath, 'utf8'))
  • 读取本地文件
    packages/dsh-karing/lib/index.js:95
    if (existsSync(ownCorePath)) {
  • 读取本地文件
    packages/dsh-karing/lib/index.js:96
    try { core = JSON.parse(readFileSync(ownCorePath, 'utf8')) } catch { }
  • 读取本地文件
    packages/dsh-karing/lib/index.js:120
    if (!existsSync(paths.exePath)) return { ok: false, error: `找不到 ${paths.exePath}` }
  • 写入本地文件
    packages/dsh-karing/lib/index.js:133
    mkdirSync(cfg.dataDir, { recursive: true })
  • 读取本地文件
    packages/dsh-karing/lib/index.js:212
    `内核:${paths.kernelSource === 'embedded' ? '✅ 插件自带(已内化)' : '⚠️ 外部安装(未内化)'} ${paths.exePath} ${existsSync(paths.exePath) ? '' : '❌ 不存在'}`,
  • 执行外部命令固定命令
    packages/dsh-karing/lib/net.js:47
    execFile('reg', args, { windowsHide: true, timeout: timeoutMs }, (error, stdout, stderr) => {
  • 执行外部命令固定命令
    packages/dsh-karing/lib/net.js:55
    execFile('powershell', ['-NoProfile', '-NonInteractive', '-Command', script], { windowsHide: true, timeout: timeoutMs }, (error, stdout, stderr) => {
  • 执行外部命令固定命令
    packages/dsh-karing/lib/net.js:151
    execFile('ping', ['-n', '2', '-w', '1500', host], { windowsHide: true, timeout: timeoutMs, encoding: 'buffer' }, (error, stdout) => {
  • 发起网络请求
    packages/dsh-karing/lib/proxy.js:80
    const req = mod.request({
  • 发起网络请求
    packages/dsh-karing/lib/proxy.js:123
    const connectReq = http.request({
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:22
    if (existsSync(join(dataDir, SUB_STATE))) {
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:24
    const own = JSON.parse(readFileSync(join(dataDir, SUB_STATE), 'utf8'))
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:29
    if (!existsSync(paths.subscribeJson)) return undefined
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:31
    const j = JSON.parse(readFileSync(paths.subscribeJson, 'utf8'))
  • 写入本地文件
    packages/dsh-karing/lib/subscription.js:42
    writeFileSync(join(dataDir, SUB_STATE), JSON.stringify({ url, adoptedFrom: from, adoptedAt: new Date().toISOString() }, null, 1), 'utf8')
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:110
    if (!existsSync(corePath)) return { ok: false, error: `没有插件自有配置:${corePath}(先跑 node tools/embed-kernel.mjs)` }
  • 读取本地文件
    packages/dsh-karing/lib/subscription.js:119
    const core = JSON.parse(readFileSync(corePath, 'utf8'))
  • 写入本地文件
    packages/dsh-karing/lib/subscription.js:153
    writeFileSync(corePath, JSON.stringify(core, null, 1), 'utf8')
  • 发起网络请求
    packages/dsh-scholar/lib/sources.js:29
    const req = mod.request(url, { method: 'GET', family: 4, headers }, (res) => {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 跨库检索论文
  • 解析开放获取全文

README

由 DeepSeek 最新模型翻译生成
dsh-plugins 给 DeepSeek Harness(dsh)写的两个插件。 | 插件 | 分类 | 作用 | | dsh-scholar | tools | 四个面向模型的文献工具 —— paper_search、paper_get、paper_citations、book_search —— 数据来自 OpenAlex、arXiv、Crossref、Semantic Scholar 和 PubMed,并通过 Unpaywall 解析开放获取 PDF | | dsh-sidebar-tidy | ui | 底部插件变高时,限制插件操作区高度并加上滚动,让 Web 侧边栏的工作区和会话列表保持可点击 | 两个都是 Cordis 插件,都声明了 dsh.bundle 清单,所以用 dsh plugin add 就能安装。 安装 dsh plugin add github:Cjrrrrrrrr/dsh-plugins#path:/packages/dsh-scholar dsh plugin add github:Cjrrrrrrrr/dsh-plugins#path:/packages/dsh-sidebar-tidy 每个包也能单独使用 —— 配置方式和限制见各自的 README。 环境要求 DSH 0.1.0-rc.1 或更新版本。
展开完整文档(README 剩余 1 节)
dsh-plugins

给 DeepSeek Harness(dsh)写的两个插件。

| 插件 | 分类 | 作用 |
| dsh-scholar | tools | 四个面向模型的文献工具 —— paper_search、paper_get、paper_citations、book_search —— 数据来自 OpenAlex、arXiv、Crossref、Semantic Scholar 和 PubMed,并通过 Unpaywall 解析开放获取 PDF |
| dsh-sidebar-tidy | ui | 底部插件变高时,限制插件操作区高度并加上滚动,让 Web 侧边栏的工作区和会话列表保持可点击 |

两个都是 Cordis 插件,都声明了 dsh.bundle 清单,所以用 dsh plugin add 就能安装。

安装

dsh plugin add github:Cjrrrrrrrr/dsh-plugins#path:/packages/dsh-scholar
dsh plugin add github:Cjrrrrrrrr/dsh-plugins#path:/packages/dsh-sidebar-tidy

每个包也能单独使用 —— 配置方式和限制见各自的 README。

环境要求

DSH 0.1.0-rc.1 或更新版本。dsh-scholar 需要 Node 20+;它会动态导入 @deepseek-ai/dsh-tools 和 @deepseek-ai/schemastery,这两个包不存在时也能优雅降级,所以两者都声明为可选 peer —— 安装这些插件不会把官方包拉进你的配置档。

仓库结构

packages/dsh-scholar/
lib/sources.js data layer — one pure function per source, no host dependency lib/index.js host half — registers the four tools cordis.patch.yml the bundle row packages/dsh-sidebar-tidy/ lib/client.js browser half — the injected CSS lib/index.js host half — an empty placeholder cordis.patch.yml the bundle row

协议

MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓Cjrrrrrrrr/dsh-plugins
分享 · DeepSeek Harness Hub
Cjrrrrrrrr/dsh-plugins

跨库检索论文并解析开放获取全文

这是你的仓库?认领条目

回到顶部