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

资源守卫台 Lyrrrecoral/dsh-resource-platform

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

守护主机资源,按会话分配长任务并监控进程

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 6 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 85 处,展示前 79 条)
  • 读取本地文件
    packages/hardware-guard/lib/adaptation.js:104
    text = readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:107
    rootInfo = lstatSync(root);
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:133
    info = lstatSync(entryPath);
  • 删除本地文件递归
    packages/hardware-guard/lib/cleanup-actions.js:145
    rmSync(entryPath, { recursive: true, force: false, maxRetries: 2 });
  • 写入本地文件
    packages/hardware-guard/lib/cleanup-actions.js:245
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    packages/hardware-guard/lib/cleanup-actions.js:248
    await rename(path, target);
  • 写入本地文件
    packages/hardware-guard/lib/cleanup-actions.js:251
    await copyFile(path, target);
  • 删除本地文件
    packages/hardware-guard/lib/cleanup-actions.js:252
    await unlink(path);
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:286
    const rootReal = await realpath(candidate.root);
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:287
    const pathReal = await realpath(dirname(resolved));
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:292
    const info = await lstat(resolved);
  • 删除本地文件
    packages/hardware-guard/lib/cleanup-actions.js:304
    await unlink(resolved);
  • 读取本地文件
    packages/hardware-guard/lib/cleanup-actions.js:364
    info = lstatSync(child);
  • 删除本地文件递归
    packages/hardware-guard/lib/cleanup-actions.js:469
    rmSync(child, { recursive: true, force: false, maxRetries: 2 });
  • 读取本地文件
    packages/hardware-guard/lib/control.js:60
    text = readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/disk.js:70
    return readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/host-profile.js:30
    return readFileSync(path, "utf8");
  • 写入本地文件
    packages/hardware-guard/lib/host-profile.js:496
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    packages/hardware-guard/lib/host-profile.js:506
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    packages/hardware-guard/lib/host-profile.js:510
    writeFileSync(fd, text, { encoding: "utf8" });
  • 写入本地文件
    packages/hardware-guard/lib/host-profile.js:517
    renameSync(tmp, path);
  • 读取本地文件
    packages/hardware-guard/lib/host-profile.js:770
    return existsSync(path);
  • 读取本地文件
    packages/hardware-guard/lib/incidents.js:81
    size = statSync(path).size;
  • 读取本地文件
    packages/hardware-guard/lib/incidents.js:89
    if (existsSync(archive)) rmSync(archive, { force: true });
  • 删除本地文件
    packages/hardware-guard/lib/incidents.js:89
    if (existsSync(archive)) rmSync(archive, { force: true });
  • 写入本地文件
    packages/hardware-guard/lib/incidents.js:90
    renameSync(path, archive);
  • 写入本地文件
    packages/hardware-guard/lib/incidents.js:100
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    packages/hardware-guard/lib/incidents.js:103
    writeFileSync(fd, text, { encoding: "utf8" });
  • 读取本地文件
    packages/hardware-guard/lib/incidents.js:154
    return readFileSync(candidate, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/lifecycle.js:37
    text = readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/pressure.js:38
    return readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/probe.js:95
    const rootStat = await stat(root);
  • 读取本地文件
    packages/hardware-guard/lib/probe.js:110
    entries = await readdir(dir, { withFileTypes: true });
  • 读取本地文件
    packages/hardware-guard/lib/probe.js:134
    info = await stat(full);
  • 读取本地文件
    packages/hardware-guard/lib/proc-tree.js:16
    return readFileSync(path, "utf8");
  • 读取本地文件
    packages/hardware-guard/lib/proc-tree.js:66
    entries = readdirSync("/proc");
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:61
    return lstatSync(path);
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:75
    directory = statSync(path).isDirectory();
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:84
    const info = lstatSync(source);
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:86
    copyFileSync(source, target);
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:88
    chmodSync(target, info.mode & 0o777);
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:101
    utimesSync(target, info.atime, info.mtime);
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:109
    const info = lstatSync(source);
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:116
    mkdirSync(target, { recursive: true });
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:117
    for (const entry of readdirSync(source, { withFileTypes: true })) {
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:129
    utimesSync(target, info.atime, info.mtime);
  • 读取本地文件
    packages/hardware-guard/lib/storage.js:193
    result.legacyPresent = existsSync(legacyDir);
  • 写入本地文件
    packages/hardware-guard/lib/storage.js:201
    mkdirSync(canonicalDir, { recursive: true });
  • 删除本地文件递归
    packages/hardware-guard/lib/storage.js:226
    rmSync(staging, { recursive: true, force: true });
  • 删除本地文件递归
    packages/hardware-guard/lib/storage.js:241
    rmSync(staging, { recursive: true, force: true });
  • 发起网络请求
    packages/hardware-guard/lib/tool.js:195
    outcome = await approval.request({
  • 执行外部命令来自配置/变量
    packages/hardware-guard/lib/watchdog.js:51
    const stdout = execFileSync(argv[0], argv.slice(1), {
  • 读取本地文件
    packages/resource-allocation/lib/adopt.js:166
    export function readFleetSnapshot(path, { read = (p) => { try { return readFileSync(p, "utf8"); } catch { return null; } } } = {}) {
  • 读取本地文件
    packages/resource-allocation/lib/discover.js:56
    readdir: (dir) => readdirSync(dir, { withFileTypes: true }),
  • 读取本地文件
    packages/resource-allocation/lib/discover.js:57
    readFile: (path) => readFileSync(path, "utf8"),
  • 读取本地文件
    packages/resource-allocation/lib/discover.js:61
    return statSync(path).isDirectory();
  • 读取本地文件
    packages/resource-allocation/lib/index.js:73
    const hasFacts = (dir) => existsSync(join(dir, "host-profile.json")) || existsSync(join(dir, "incidents.jsonl"));
  • 读取本地文件
    packages/resource-allocation/lib/proc.js:20
    return readFileSync(path, "utf8");
  • 读取本地文件
    packages/resource-allocation/lib/queue.js:40
    export function readQueueDoc(path, { read = (p) => readFileSync(p, "utf8") } = {}) {
  • 读取本地文件
    packages/resource-allocation/lib/registry.js:46
    return readFileSync(path, "utf8");
  • 写入本地文件
    packages/resource-allocation/lib/registry.js:60
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    packages/resource-allocation/lib/registry.js:64
    writeFileSync(fd, text, { encoding: "utf8" });
  • 写入本地文件
    packages/resource-allocation/lib/registry.js:79
    renameSync(tmp, path);
  • 读取本地文件
    packages/resource-allocation/lib/runs.js:55
    return readFileSync(path, "utf8");
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:48
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:52
    writeFileSync(fd, data);
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:67
    renameSync(tmp, path);
  • 读取本地文件
    packages/resource-allocation/lib/storage.js:68
    const verified = readFileSync(path);
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:81
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:85
    writeFileSync(fd, data);
  • 删除本地文件
    packages/resource-allocation/lib/storage.js:103
    try { unlinkSync(tmp); } catch { }
  • 读取本地文件
    packages/resource-allocation/lib/storage.js:107
    const verified = readFileSync(path);
  • 删除本地文件
    packages/resource-allocation/lib/storage.js:109
    try { unlinkSync(path); } catch { }
  • 删除本地文件
    packages/resource-allocation/lib/storage.js:113
    try { unlinkSync(tmp); } catch { }
  • 读取本地文件
    packages/resource-allocation/lib/storage.js:119
    return statSync(path).isFile();
  • 读取本地文件
    packages/resource-allocation/lib/storage.js:141
    read = (path) => readFileSync(path)
  • 写入本地文件
    packages/resource-allocation/lib/storage.js:147
    mkdirSync(targetDir, { recursive: true });
  • 发起网络请求
    packages/resource-allocation-ui/lib/client.js:548
    return fetch(url).then(async (response) => {
  • 发起网络请求
    packages/resource-allocation-ui/lib/client.js:573
    return fetch(url, {
扫描于 2026/11/4(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

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

主机资源守护、长任务分配管理,以及以会话为中心的 DeepSeek Harness 资源界面。

README

由 DeepSeek 最新模型翻译生成
DSH Resource Platform / DSH 资源平台 为 DeepSeek Harness 提供宿主机资源保护、长任务分配与会话级资源监控。 包含三个组合包 | 包 | 版本 | 作用 | | hardware-guard | 1.0.1 | 主机硬件探测、压力守卫、watchdog、沙箱包装、磁盘清理 | | resource-allocation | 1.0.4 | 会话归属的受管长任务、可选标签、孤儿进程观察、只读队列/策略 | | resource-allocation-ui | 1.0.5 | 资源页:本会话/其他会话台账、进程查询、磁盘清理 | 独特性 GitHub 上没有发现完全相同的插件。现有 dsh-monitor-pro、dsh-resource-monitor、dsh-sysmon 等主要是只读监控面板,不管理长任务生命周期;dsh-disk-doctor、dsh-disk-guard 与磁盘清理有重叠,但不提供主机压力守卫和受管运行。xychendave/dsh-hardware-guard 是物理硬件/机器人安全工具,不是主机资源守卫。 本项目的 UI 是资源台账,不是项目注册表。项目/任务 ID 只是可选标签,不再是运行前置条件。
展开完整文档(README 剩余 1 节)
DSH Resource Platform / DSH 资源平台

为 DeepSeek Harness 提供宿主机资源保护、长任务分配与会话级资源监控。

包含三个组合包

| 包 | 版本 | 作用 |
| hardware-guard | 1.0.1 | 主机硬件探测、压力守卫、watchdog、沙箱包装、磁盘清理 |
| resource-allocation | 1.0.4 | 会话归属的受管长任务、可选标签、孤儿进程观察、只读队列/策略 |
| resource-allocation-ui | 1.0.5 | 资源页:本会话/其他会话台账、进程查询、磁盘清理 |

独特性

GitHub 上没有发现完全相同的插件。现有 dsh-monitor-pro、dsh-resource-monitor、dsh-sysmon 等主要是只读监控面板,不管理长任务生命周期;dsh-disk-doctor、dsh-disk-guard 与磁盘清理有重叠,但不提供主机压力守卫和受管运行。xychendave/dsh-hardware-guard 是物理硬件/机器人安全工具,不是主机资源守卫。

本项目的 UI 是资源台账,不是项目注册表。项目/任务 ID 只是可选标签,不再是运行前置条件。

安装

dsh plugin --profile web add /absolute/path/hardware-guard-1.0.1.tgz
dsh plugin --profile web add /absolute/path/resource-allocation-1.0.4.tgz
dsh plugin --profile web add /absolute/path/resource-allocation-ui-1.0.5.tgz

安装后重启 DSH。

也可以从源码目录安装:

dsh plugin --profile web add ./packages/hardware-guard
dsh plugin --profile web add ./packages/resource-allocation
dsh plugin --profile web add ./packages/resource-allocation-ui

UI 包已自带 dsh.bundle patch,不需要再手动插入资源页 row。

安全边界

- hardware-guard 首次启动为 dry-run,操作者确认 profile 后才进入 enforcement;
- resource_run 只创建自己的 systemd transient unit;
- resource_stop 只能停止本会话拥有的受管 run;
- adopted units 永远只观察,不启动/停止/重启;
- 队列决策只写 queue/policy,不杀进程;
- 磁盘清理只列候选,必须显式选择“移到回收站”或“永久删除”。

兼容与测试

- Node.js 20+;
- DSH >=0.2.0-rc.2 <0.3.0(开发验证于 0.2.1-rc.1);
- 托管 run 需要 Linux + systemd。

node packages/resource-allocation-ui/smoke/bundle-smoke.mjs
node scripts/check-release.mjs

内部主机测试在开发 checkout 中针对对应 @deepseek-ai/* peer packages 运行;测试样例不随公开包发布。

许可证

MIT。
预览分享卡片长什么样 ↓Lyrrrecoral/dsh-resource-platform
分享 · DeepSeek Harness Hub
Lyrrrecoral/dsh-resource-platform

守护主机资源,按会话分配长任务并监控进程

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