D

dsh-brewreel

github.com/Finderchangchang/brewreel

v0.6.0 技能包 可执行外部程序写入文件发起网络请求

BrewReel (精酿) for DeepSeek Harness: write a storyboard JSON, get a vertical promo video.

该插件尚未翻译,显示作者原文。

dsh-pluginbrewreeldeepseek-harnessremotionvideoskill
分类
skill
发布
2026-10-07
版本
v0.6.0

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注3需留意4一般16未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注13 处命中
    • lib/run.js:4import {spawn, spawnSync} from 'node:child_process';
    • lib/skill-root.js:4import {spawnSync} from 'node:child_process';
    • skill/scripts/lib/blank-check.mjs:7import {spawnSync} from 'node:child_process';
    • skill/scripts/extract-frames.mjs:15import {spawnSync} from 'node:child_process';
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 写入文件writes-files需留意168 处命中
    • lib/paths.js:170fs.mkdirSync(outDir, {recursive: true});
    • lib/paths.js:171fs.writeFileSync(path.join(outDir, OUT_MARKER), `${JSON.stringify({by: 'dsh-brewreel', storyboard, at: new Date().toISOS…
    • lib/skill-root.js:188fs.mkdirSync(path.dirname(to), {recursive: true});
    • lib/skill-root.js:189fs.copyFileSync(path.join(src, rel), to);
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 发起网络请求network需留意34 处命中
    • skill/scripts/broll/generate.mjs:199return {taskId: `local-${clip.id}-${clip.requestHash.slice(0, 8)}`, provider: doc.provider, file: got.abs};
    • skill/scripts/broll/judge.mjs:600if (!got.present || !got.text) return {kind: 'vague', name: ''};
    • skill/scripts/broll/judge.mjs:601const name = got.text;
    • skill/scripts/broll/asr/models.mjs:100if (got !== spec.sha256) return {ok: false, why: `sha256 不对(${got.slice(0, 12)}…,应为 ${spec.sha256.slice(0, 12)}…)`};
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 可终止进程kills-processes需留意4 处命中
    • lib/run.js:77process.kill(-child.pid, 'SIGTERM');
    • lib/run.js:81if (child.exitCode === null && child.pid) process.kill(-child.pid, 'SIGKILL');
    • skill/scripts/lib/render-lock.mjs:21process.kill(pid, 0);
    • …/scripts/broll/style-factory.mjs:169process.kill(pid, 0);
    • 看它终止的是自己启动的进程,还是按名字匹配到的任意进程。
  • 读取文件reads-files一般374 处命中
    • lib/catalog.js:9const readJson = (p) => JSON.parse(fs.readFileSync(p, 'utf8').replace(/^/, ''));
    • lib/catalog.js:13return fs.readdirSync(p).sort();
    • lib/catalog.js:25text = fs.readFileSync(file, 'utf8').replace(/^/, '');
    • lib/catalog.js:55if (id.startsWith('_') || !fs.existsSync(file)) continue;
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 接触凭据或密钥credentials一般229 处命中
    • lib/config.js:5export const SECRET_ENV_RE = /KEY|TOKEN|SECRET|PASSWORD|PASSWD|AUTH|COOKIE|CREDENTIAL/i;
    • lib/config.js:46if (SECRET_ENV_RE.test(name)) {
    • lib/config.js:47throw new Error(`brewreel: envPassthrough refuses "${name}" — variables that look like credentials (KEY/TOKEN/SECRET/PAS…
    • lib/config.js:72const envList = Schema.array(Schema.string()).default([]).description('Extra environment variable names passed to render…
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 读取环境变量reads-env一般60 处命中
    • lib/run.js:36export function cleanEnv({extra = {}, passthrough = [], proxy = false, voice = false, source = process.env} = {}) {
    • lib/run.js:66const sysroot = process.env.SystemRoot || process.env.SYSTEMROOT || 'C:\\Windows';
    • lib/skill-root.js:203const home = process.env.DSH_HOME ? path.resolve(process.env.DSH_HOME) : path.join(os.homedir(), '.dsh');
    • skill/scripts/lib/tts/aliyun.mjs:30export const hasKey = (env = process.env) => !!String(env?.DASHSCOPE_API_KEY ?? '').trim();
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
  • 动态加载模块dynamic-import一般4 处命中
    • …l/scripts/broll/motion-check.mjs:89layoutMod = await import('../../template/src/talk/layout.ts');
    • skill/scripts/broll/motion.mjs:1298const {probeMedia} = await import('./media.mjs');
    • skill/scripts/lib/styles.mjs:34CHECKS[id] = await import(pathToFileURL(f).href);
    • skill/template/src/schema.ts:23export type ThemeName = keyof typeof import('./core/themes.json');
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注13
写入文件writes-files需留意168
发起网络请求network需留意34
可终止进程kills-processes需留意4
读取文件reads-files一般374
接触凭据或密钥credentials一般229
读取环境变量reads-env一般60
动态加载模块dynamic-import一般4

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 369 个文件,扫描于 2026-10-15。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)

← 返回全部插件