模型与账号 · v1.2.21
dsh-copilot-auth
为 DSH(DeepSeek Harness)内置的 GitHub Copilot 通道补上网页设备码登录 / 注销入口,预置开箱即用的 Copilot 提供方路由,并提供模型列表管理。
作者原文(英文)
为内置 Copilot 提供方补设备码登录设置页,预置开箱路由;凭据入内置凭据库,模型目录兜底不覆盖定制。v1.2.19:管理模型列表 v3 目标状态编辑(分组全表/挽留/对齐/清空语义告知)+单次确认+移除请求撤回+退出残影修复。v1.2.18:授权失败附网络失败码+人性化提示。适配 DSH 0.1.7+(≤0.1.5 请用 1.1.x)。v1.2.21:移除前实时证据自动续期(ephemeral 不落库+负缓存 5min)+缓存证据原因分型文案+busy 卡死 retire 出口与水合判序修正(032
简介取自插件自己的 README 原文。
安装命令
dsh plugin --profile web add @inventec/dsh-copilot-auth@1.2.21
未检测
这个包的 tarball 里确实有 dsh.bundle.patch,补丁文件存在且可解析。但「有补丁」是静态检查的结果,不是装过——它能不能在这台机器上装成,还没有验证。
检测报告
能力清单
- 含混淆或编码代码
obfuscated-code需留意56 处命中lib/client.js:728intro: "\u4F7F\u7528\u5177\u6709 Copilot \u6743\u9650\u7684 github.com \u4E2A\u4EBA\u6216\u7EC4\u7EC7\u8D26\u53F7\u6388\…lib/client.js:736authUnsafe: "\u5C1A\u4E0D\u80FD\u786E\u8BA4\u6388\u6743\u6D41\u7A0B\u5DF2\u5B89\u5168\u7ED3\u675F\uFF0C\u6682\u4E0D\u80F…lib/client.js:737attemptTimeout: "\u7B49\u5F85\u6388\u6743\u8D85\u65F6\uFF0C\u7ED3\u679C\u4ECD\u5F85\u6838\u5B9E\u3002\u5F53\u524D\u4E0D\…lib/client.js:738attemptShared: "\u6B64\u5B9E\u4F8B\u5DF2\u6709\u6388\u6743\u6B63\u5728\u8FDB\u884C\u3002",- 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
- 写入文件
writes-files需留意8 处命中src/atomic-json.mjs:53rename: (from, to) => renameSync(from, to),src/atomic-json.mjs:55remove: (path) => unlinkSync(path),src/atomic-json.mjs:71a.rename(tempPath, path);src/catalog.mjs:256try { unlinkSync(probe); } catch { /* 探针可能未创建成功 */ }- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 发起网络请求
network需留意3 处命中package.json:29"src/catalog-fetch.mjs",README.md:146| `src/catalog.mjs` · `src/catalog-fetch.mjs` · `src/catalog-registry.mjs` | 目录解析 / npm 拉取 · 只读安装树的进程内注入通道(ADR 0003) |src/host.mjs:15import { fetchLatestCatalog } from "./catalog-fetch.mjs";- 看请求发往哪些域名。发往作者自己的后端是常见做法。
- 读取文件
reads-files一般12 处命中src/atomic-json.mjs:14raw = readFileSync(path, "utf8");src/atomic-json.mjs:70JSON.parse(readFileSync(tempPath, "utf8")); // 提交前重读校验,坏内容不过 renamesrc/catalog.mjs:214if (existsSync(catalogFile) && existsSync(packageJsonFile)) {src/catalog.mjs:215const pkg = JSON.parse(readFileSync(packageJsonFile, "utf8"));- 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
- 接触凭据或密钥
credentials一般6 处命中src/auth-host.mjs:65const info = await ctx.credentials.describeRecord(CREDENTIAL_KEY);src/auth-host.mjs:147const deleted = await ctx.credentials.deleteRecord(CREDENTIAL_KEY);src/auth-host.mjs:154const info = await ctx.credentials.describeRecord(CREDENTIAL_KEY);src/host.mjs:78const record = await ctx.credentials.readRecord(CREDENTIAL_KEY);- 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
- 动态加载模块
dynamic-import一般2 处命中src/catalog-registry.mjs:70const models = await import(attempt.models);src/catalog-registry.mjs:71const all = await import(attempt.all);- 动态导入本身无害,但会让依赖关系难以静态审阅。
- 读取环境变量
reads-env一般1 处命中src/catalog-fetch.mjs:66const reg = (registry ?? process.env.npm_config_registry ?? "https://registry.npmjs.org").replace(/\/+$/, "");- 环境变量里常混有密钥。看它是否把整个 env 都读走。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 含混淆或编码代码 | obfuscated-code | 需留意 | 56 |
| 写入文件 | writes-files | 需留意 | 8 |
| 发起网络请求 | network | 需留意 | 3 |
| 读取文件 | reads-files | 一般 | 12 |
| 接触凭据或密钥 | credentials | 一般 | 6 |
| 动态加载模块 | dynamic-import | 一般 | 2 |
| 读取环境变量 | reads-env | 一般 | 1 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 22 个文件,扫描于 2026-10-21。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
可信度
- 0没有可扣分的项
认证等级 L1
- L0静态结构与契约✓sha512-SyJWR0uS46WalgGs… 与本地 tarball 复算一致,补丁与入口齐备
- L1配置组合与依赖图✓跨包无 entry id 冲突,插入模块可解析,目录内 peer 满足
- L2隔离沙箱冒烟—尚未试装
- L3运行时健康监控—未抽样(本层是抽样检测:没有会话不等于干净)
评分口径与作者信息
从 100 分开始按规则扣减:fail −20 / major −10 / warn −5 / minor −2;star 数、下载量、LLM 输出都不参与评分
- 维护者
- iasiv5
- 仓库
- https://github.com/iasiv5/dsh-copilot-auth
- 许可
- MIT
- 最后发布
- 2026-10-16
- 周下载
- 286
- star
- 1
扫描状态:已扫描。能力是事实,不是缺陷; 周下载与 star 只作参考,不参与评分。
认证等级只回答四件事:包本身是否完整可解析(L0)、能不能与别的插件组合(L1)、隔离环境里装不装得上并起得来(L2)、抽样运行时有没有异常(L3)。依赖漏洞、仓库存活、下载量都不参与评级,只作为独立信号标注。可信 ≠ 无漏洞,上架 ≠ 推荐。
| DSH peer 依赖 | 1 个cordis均为 @deepseek-ai/ 下的包 |
|---|---|
| Node 要求 | >=20 |
| 第三方依赖 | 0 个(纯自包含) |
| bundle patch | ./cordis.patch.yml |
| 依赖安全公告 | 已查询全部依赖,没有匹配到已公开的安全公告(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。) |
元数据
| 主页 | https://github.com/iasiv5/dsh-copilot-auth#readme |
|---|---|
| 仓库最近提交 | 2026-10-19 |
| 仓库创建 | 2026-09-04 |
DSH