dsh-plugin-genui
github.com/pengyue-polaron/deepseek-harness-genui
v0.15.1
界面与主题
写入文件发起网络请求
Task-specific React apps for DeepSeek Harness with state carried into the next Agent turn
该插件尚未翻译,显示作者原文。
deepseek-harnessdsh-plugingenerative-uigenuimcpreact
检测报告
有一定能力。命中了若干能力模式,大多是插件正常工作时会用到的。
2需留意4一般18未命中
高关注需留意一般
能力清单
- 写入文件
writes-files需留意29 处命中lib/index.js:64await mkdir(dirname(path), { recursive: true });lib/index.js:66await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`, {lib/index.js:70await rename(temporary, path);lib/index.js:147await mkdir(this.root, {- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 发起网络请求
network需留意8 处命中lib/client.js:49const response = await fetch(input, {lib/index.js:1085const originalFetch = globalThis.fetch.bind(globalThis)lib/index.js:1341const response = await fetch(apiUrl(action), {lib/index.js:1359const response = await fetch(apiUrl(action), {- 看请求发往哪些域名。发往作者自己的后端是常见做法。
- 接触凭据或密钥
credentials一般62 处命中lib/client.js:100if (token === void 0 || token === "" || markerAt < 0 || preview.origin !== window.location.origin || preview.username !=…lib/client.js:137if (preview.origin !== window.location.origin || preview.pathname !== expectedPath || preview.username !== "" || preview…lib/index.js:126if (target.protocol !== "https:" || target.username !== "" || target.password !== "" || target.hash !== "") throw new Er…lib/index.js:698async function persistentSecret(path) {- 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
- 读取文件
reads-files一般18 处命中lib/index.js:61return JSON.parse(await readFile(path, "utf8"));lib/index.js:151const entries = await readdir(this.root, { withFileTypes: true });lib/index.js:608const parsed = JSON.parse(await readFile(this.settingsPath(), "utf8"));lib/index.js:634const entries = await readdir(this.root, { withFileTypes: true });- 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
- 动态加载模块
dynamic-import一般5 处命中…ypes/client/design-settings.d.ts:22export declare function DesignSettingsCard({ t }: DesignSettingsCardProps): import("react").JSX.Element;lib/types/client/icons.d.ts:4}): import("react").JSX.Element;lib/types/client/index.d.ts:5export declare function GenuiToolView({ block, callId, sessionId, t }: GenuiToolViewProps): import("react").JSX.Element;…/runtime/settings-namespace.d.ts:12export declare function registerDesignSettingsNamespace(ctx: Context): import("@deepseek-ai/cordis").Fiber & PromiseLike…- 动态导入本身无害,但会让依赖关系难以静态审阅。
- 文中出现远程脚本地址
remote-url-reference一般2 处命中README.md:7[](package.json)README.zh-CN.md:6[](package.json)- 只是文本里出现了远程脚本地址,没有看到加载它的调用。多半是文档或注释;若确实可疑,搜一下这个地址在包里的其他出现位置。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 写入文件 | writes-files | 需留意 | 29 |
| 发起网络请求 | network | 需留意 | 8 |
| 接触凭据或密钥 | credentials | 一般 | 62 |
| 读取文件 | reads-files | 一般 | 18 |
| 动态加载模块 | dynamic-import | 一般 | 5 |
| 文中出现远程脚本地址 | remote-url-reference | 一般 | 2 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 85 个文件,扫描于 2026-10-15。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
依赖安全公告
已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)