dsh-antigravity-auth
github.com/suntianc/dsh-antigravity-auth
v0.1.3
模型与账号
写入文件发起网络请求
认证 L1已扫描 ✓健康 A/90周下载 419
设置分区跟随 DSH 界面语言切换中英文,覆盖功能描述、状态标签、功能开关名称和配额刷新提示。
作者原文(英文)
Private, single-account, unofficial Antigravity OAuth capability bundle for DeepSeek Harness
中文简介由 DeepSeek 模型翻译,仅供参考。
检测报告
有一定能力。命中了若干能力模式,大多是插件正常工作时会用到的。
2需留意4一般18未命中
高关注需留意一般
能力清单
- 写入文件
writes-files需留意14 处命中…capability-lifecycle-BjW2Jho1.js:60await unlink(path);…capability-lifecycle-BjW2Jho1.js:69await unlink(path);…capability-lifecycle-BjW2Jho1.js:93await handle.writeFile(`${process.pid}\n`, "utf8");…capability-lifecycle-BjW2Jho1.js:98await unlink(lockPath).catch(() => {});- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 发起网络请求
network需留意1 处命中lib/private-transport-urF138qW.js:79const proxySocket = net.connect({- 看请求发往哪些域名。发往作者自己的后端是常见做法。
- 接触凭据或密钥
credentials一般61 处命中lib/client.cjs:459return parsed.protocol === "https:" && parsed.hostname === "accounts.google.com" && parsed.port === "" && parsed.usernam……capability-lifecycle-BjW2Jho1.js:195if (!isRecord$3(draft) || !isBoundedSafeText(draft.refreshToken, 4096) || !isBoundedSafeText(draft.projectId, 4096) || d……capability-lifecycle-BjW2Jho1.js:198refreshToken: draft.refreshToken,…capability-lifecycle-BjW2Jho1.js:226const refreshToken = value.refreshToken;- 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
- 读取环境变量
reads-env一般9 处命中…capability-lifecycle-BjW2Jho1.js:23function defaultAuthStorePath(env = process.env, home = env.HOME, platform = process.platform) {lib/live-gates.js:13async function runLiveGateCli(argv, env = process.env, dependencies = {}) {lib/private-transport-urF138qW.js:342const noProxy = process.env.NO_PROXY ?? process.env.no_proxy ?? "";lib/private-transport-urF138qW.js:344const raw = process.env.HTTPS_PROXY ?? process.env.https_proxy ?? process.env.ALL_PROXY ?? process.env.all_proxy;- 环境变量里常混有密钥。看它是否把整个 env 都读走。
- 动态加载模块
dynamic-import一般8 处命中lib/live-gates.js:30return (await import("./live-gate-runner.js")).createProductionLiveGateRunner({ output });scripts/live-gates.mjs:3const { runLiveGateCli } = await import('../lib/live-gates.js')lib/types/auth-service.d.ts:51usage(signal?: AbortSignal, force?: boolean): Promise<import('./quota.ts').QuotaStatusView>;lib/types/auth-service.d.ts:52logout(): Promise<import('./credential-coordinator.ts').LogoutResult>;- 动态导入本身无害,但会让依赖关系难以静态审阅。
- 读取文件
reads-files一般4 处命中…capability-lifecycle-BjW2Jho1.js:155text = await readFile(path, "utf8");…capability-lifecycle-BjW2Jho1.js:1432text = await readFile(path, "utf8");lib/live-gate-runner.js:232const data = await readFile(path);lib/live-gate-runner.js:488const data = await readFile(String(value.targetKey));- 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 写入文件 | writes-files | 需留意 | 14 |
| 发起网络请求 | network | 需留意 | 1 |
| 接触凭据或密钥 | credentials | 一般 | 61 |
| 读取环境变量 | reads-env | 一般 | 9 |
| 动态加载模块 | dynamic-import | 一般 | 8 |
| 读取文件 | reads-files | 一般 | 4 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 70 个文件,扫描于 2026-10-15。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
依赖安全公告
已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)