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

商汤接入套件 eghrhegpe/dsh-connect-sensenova-token-plan

DeepSeek Harnessv0.8.4
eghrhegpe6 天前有提交已提供中文文档扫描:含敏感能力

DSH Plugins 商汤接入 DSH 的全家桶:查看积分额度、接入API与商汤小浣熊桌面端,429重试

36.5/100
综合分
6
GitHub 星标
1,097
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-connect-sensenova-token-plan
npm 源 · dsh-connect-sensenova-token-plan 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · security
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-connect-sensenova-token-plan @ 0.8.4
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 04:16:11

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 21 处,展示前 19 条)
  • 发起网络请求
    lib/index.js:388
    const response = await fetch(jwksEndpoint, {
  • 发起网络请求
    lib/index.js:907
    return fetch(url, {
  • 发起网络请求
    lib/index.js:1119
    const response = await fetch(cfg.tokenEndpoint, {
  • 发起网络请求
    lib/index.js:1238
    const iamResponse = await fetch(iamUrl, {
  • 发起网络请求
    lib/index.js:1326
    const tokenResponse = await fetch(cfg.tokenEndpoint, {
  • 写入本地文件
    lib/index.js:1603
    await mkdir(dir, {
  • 写入本地文件
    lib/index.js:1644
    await writeFile(temporary, `${payload}\n`, {
  • 写入本地文件
    lib/index.js:1648
    await rename(temporary, file);
  • 删除本地文件
    lib/index.js:1650
    await unlink(temporary).catch(() => {});
  • 读取本地文件
    lib/index.js:1753
    return JSON.parse(await readFile(file, "utf8"));
  • 读取本地文件
    lib/index.js:1973
    await readFile(file, "utf8");
  • 写入本地文件
    lib/index.js:1976
    await rename(legacyThrottleFile(), file);
  • 删除本地文件
    lib/index.js:2019
    await rm(file, { force: true });
  • 删除本地文件
    lib/index.js:2025
    await rm(legacyThrottleFile(), { force: true });
  • 删除本地文件
    lib/index.js:3398
    await rm(file, { force: true });
  • 发起网络请求
    lib/index.js:5742
    const send = async (held) => fetch(url, {
  • 发起网络请求
    client.js:584
    const response = await fetch(path, {
  • 发起网络请求
    client.js:2521
    const response = await fetch(route.path, {
  • 发起网络请求
    client.js:3768
    const response = await fetch(RACCOON_PATH, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-credentials@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
v0.8.42026-10-27
· 🎛️ v0.8.4 — 出图工具的开关改成当场生效,边角情形也都有交代 在面板上切「注册出图工具」、改首选出图模型,从此不用再重启 Host:保存之后当场重新应用注册,同一会话下一轮就能用上(或不再看到)sensenova_draw_image。 这项能力此前只差最后一步——值写进了状态文件,注册却只在 Host 启动时发生一次。补上这一步之后,三类原本会被静默吞掉的边角情形也一并有了交代:连点两下、旧 Host 不给注销句柄、刚打开开关到工具真正挂上之间的那段空窗。 --- · 一、开关与模型偏好即时生效 过去面板显示「已开启」,对话里却可能调不到工具;关掉之后工具也还在 agent 手里。原因不是注册失败,而是注册只在 Host 启动时发生一次,之后改值只写盘、不重新应用。 现在每次保存之后都会重新走一遍挂载:先释放上一次的注册,再按最新生效值重新挂上。切开关、改首选出图模型都在同一会话内即刻生效。 · 二、连点两下不会留下「关了还挂着」 两次翻转挨得太近时,后一次可能读到前一次取走一半的状态而直接跳过——结果是开关显示已关、工具却还留在 registry 里。 现在每次应用都排在上一次之后,并且每一趟都重新读一遍落盘值。最后一趟看到的就是最后存下的那个,中间那些趟只是过场。 · 三、旧 Host 上摘不掉工具时,面板会说出来 有些 Host 版本收下注册却不返回注销句柄。过去这种情形完全静默:用户关掉开关,工具照样能用,而面板没有任何提示。 现在卡片会写明「工具已注册,但本机 Host 不返回注销句柄」,开关照常可切,只是关掉不会卸载。这不是配置问题,是旧 Host 的能力边界,说清楚比装作没事好。 · 四、「开着但还没挂上」不再是一片空白 开关打开到工具真正挂上之间有一个很短的窗口,刚启动时最明显。此前这段时间卡片上既没有「已开启」的模型清单、也没有任何缺席原因,读起来像功能没生效。 现在会明说「工具正在挂载」;一旦挂上这句自动消失,若最终没挂上则换成具体原因。两种提示不会同时出现——原因已经解释了为什么没挂上,再补一句「还在挂载」是自相矛盾。 --- · 已知边界 · 两个 Host 进程同时跑、共享同一个状态目录时,后写者胜。热重载在单进程内是收敛的。 · 若本机 Host 的 tools 注册不返回注销句柄,工具一旦挂上就摘不掉,此时退化为「已挂载但不可切换」,面板会照实说明。 · 出图工具仍然默认关闭。
v0.8.32026-10-23
· 🦝 v0.8.3 — 网关上了新模型,胶囊会告诉你;小浣熊的模型也不再默认被当成纯文本 这一版做两件事,都只关于小浣熊(SenseNova 网关)这条线:把「网关目录变了」这件用户 看不见的事搬到输入框胶囊上,以及把「模型能不能收图」从默认拒绝翻成默认放行、只在实测 否决时说不。 两件事的共同点:过去的失效形态都是静默——目录多了个模型没人知道,图片入口整条消失 也不报错。 --- · 一、网关加了新模型,胶囊读数字后面挂 · N 新模型 小浣熊的模型目录由网关说了算。新模型什么时候上架、旧模型什么时候下架,插件此前只是 照单接收,用户不会为了「看看有没有新品」专门去翻面板。 现在输入框右侧的额度胶囊会在读数后面挂一段 · 1 新模型: · 指到胶囊上,tooltip 直接写出模型名;点开额度卡,同一份名单也有一行 · 多于三个只列前三个,余下用省略号——两处同一截断口径 · 标记只看本机第一次见到它的时刻,7 天后自行消失,不需要点掉 · 模型下架后再上架,会重新报一次 · 首次安装不报:把整张名单都标成「新」是最没用的提示,所以第一次只把全量名单按 「早就见过」记下来 · 为什么措辞是「本机首次见到」而不是「网关新增」 网关的目录里没有「上架时间」字段。插件真正知道的只有「本机第一次读到这个 id 的 时刻」。把它写成「网关新增」,就是替插件陈述一个它无从得知的上游事实——和下一节要修 的是同一种毛病:把猜测说成事实。 · 名单上限为什么是「不写、不报」而不是「只留最新 N 条」 淘汰队列会让仍在名单里的 id 丢掉旧戳,下一轮补回来时被当成新的。实测 250 条名单 对 200 条上限,逐轮会报出 50 → 100 个「新模型」。一个会凭空造出新模型的账本,比没有 账本更糟。所以超过上限时按形状漂移处理:不写、不报。 · 二、小浣熊的模型默认都能收图,万一不能会明说 网关加新模型时 tags 里往往没有 vision,而旧逻辑把「没声明」当成「不支持」——贴图时 选择器便不给图片入口,并且没有任何提示,用户只能自己发现再反馈。 现在反过来:只否决实测确认看不见的模型,其余一律放出图片入口。面板对「网关没说、 插件也没测过」的模型标「可看图·未实测」,对已实测或网关自己声明过的照旧标「可看图」, 对实测看不见的(如 sn-glm-5-3)不打徽章。 实测(2026-10-22,同一张四条竖条探针图、同一条问题):sn-deepseek-v4-1-flash-1017 四种颜色全读对,其 descriptor 是 input: ["text", "image"]。日期后缀是构建 id,网关下次 改名要重新探,不做前缀推断。 默认放行把失效方向翻到「错报」,但这一侧的错报是可观测的:HTTP 200 且模型自述看不见, 面板也已经把那行标成「未实测」。否决集因此成为唯一的维护面。 --- · 装上之后 胶囊上的新模型标记在升级后的第一轮只播种,所以刚更新完不会立刻亮;之后网关每上一 个新模型,它自己就出来了。
v0.8.22026-10-21
· 🪪 v0.8.2 — 出图超时封顶 30 分钟,写盘没落地会说出来 本版主线是出图超时的硬上限:drawTimeoutMs 过去只有下限(5 秒),没有上限——出图请求是同步的,这个期限是 agent 唯一的护栏,配成天文数字就能把一个 turn 挂住不放。现在超出的部分按 30 分钟封顶,配置说明里同步写明了这条上限。 第二主线是凭据读取与脱敏收紧,以及「该说出口的事现在会说出来」:目录签名此前在写盘失败后照样推进,磁盘停在旧目录直到重启;节流拒绝更是只拒不报。 --- · 一、出图:超时有了硬上限 · 30 分钟封顶:drawTimeoutMs 过去只有下限(5 秒),没有上限。出图请求是同步的,这个期限是 agent 唯一的护栏,配成天文数字就能把一个 turn 挂住不放。现在超出的部分按 30 分钟封顶,配置说明里同步写明了这条上限。 · 二、没写进盘里的事,现在会说出来 · 目录签名不再假装修好了:目录签名此前在写盘失败后照样推进,下一轮便以为已经修好而跳过写入,磁盘停在旧目录直到重启。现在回报「是否真的写到盘上」,没写成功就留下痕迹。 · 节流拒绝要报:节流拒绝此前只拒不报。现在同样会说出来。 · 三、令牌与凭据:读取原样,脱敏按形状 · 裸着的 JWT 也会被脱敏:脱敏规则此前按键名匹配,没有键名的令牌没人管——而上游 4xx 把请求原样引回来时,令牌是光秃秃一串 eyJ 开头的东西,于是它直接进了面板和日志。现在按令牌的样子也认。 · 令牌读取不再被悄悄改写:令牌读取走的是会做 trim 的那条路,带空白的令牌被改写后,表现为无迹可查的 401。现在一律原样读取。 · 余额详情补上脱敏:余额查询失败时回来的原始内容此前原样上屏,可能回显凭据,现在先脱敏再显示。 · 四、工程:依赖范围放宽 插件声明的 AI 运行时依赖范围从 ^0.85.1 放宽到 >=0.85.0 <2.0.0,与当前宿主随附的版本对齐,装上时不再被标成「超出上界」。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-connect-sensenova-token-plan 把商汤(SenseNova)接进 DSH 的 Plugins 页插件卡,并在会话输入框实时显示积分额度与用量胶囊。 安装 · 工作原理 · 更新日志 · 问题反馈 把商汤接进 DSH 的 Plugins 页插件卡,另在会话输入框右侧常驻一颗用量胶囊。三个 tab 按使用顺序排列: - 积分额度——登录一次,实时查看积分余额、额度窗口与每模型消耗,令牌自动续期,之后无需再管; - 接入 API——把商汤模型注册为 DSH provider,参与对话与出图; - 小浣熊——微信扫码接入 xiaohuanxiong.com,上游限流较宽松的另一条商汤产品线,独立账号、独立积分。 后台另有 429 自愈:限频被误判为"额度耗尽"时在 Host 侧纠正回退避重试,模型不会无端"消失"。 AI 协作会话请先读 AGENTS.md——验证入口、红线与文档地图都在那里;过程文档与提交历史本身就是本仓库工作面的一部分。
展开完整文档(README 剩余 1 节)
dsh-connect-sensenova-token-plan

把商汤(SenseNova)接进 DSH 的 Plugins 页插件卡,并在会话输入框实时显示积分额度与用量胶囊。

安装 · 工作原理 · 更新日志 · 问题反馈

把商汤接进 DSH 的 Plugins 页插件卡,另在会话输入框右侧常驻一颗用量胶囊。三个 tab 按使用顺序排列:

- 积分额度——登录一次,实时查看积分余额、额度窗口与每模型消耗,令牌自动续期,之后无需再管;
- 接入 API——把商汤模型注册为 DSH provider,参与对话与出图;
- 小浣熊——微信扫码接入 xiaohuanxiong.com,上游限流较宽松的另一条商汤产品线,独立账号、独立积分。

后台另有 429 自愈:限频被误判为"额度耗尽"时在 Host 侧纠正回退避重试,模型不会无端"消失"。

AI 协作会话请先读 AGENTS.md——验证入口、红线与文档地图都在那里;过程文档与提交历史本身就是本仓库工作面的一部分。
三个常被外部审读问起的疑问,预答在这里:
- lib/ 与根 client.js 是入库的构建产物:github: 安装源不跑 prepack,不入库则直装即坏(docs/ADR.md ADR-005)
- docs/sensenova-api-reference/ 是商汤官方文档的本地容器,逐文件出处与许可见 THIRD_PARTY_NOTICES.md
- 本仓库由 AI 协作开发,其提交历史里的过程痕迹是工作方式的一部分,不是疏漏

分发面:npm 包只含 package.json#files 那 10 项(lib/、client.js、icon.svg、locale/、 cordis.patch.yml、README.md、CHANGELOG.md、THIRD_PARTY_NOTICES.md、LICENSE、 screenshots.json)。docs/、AGENTS.md、src/、test/、assets/ 不在包里——registry 页面上点 docs/… 会 404、写相对路径的截图会裂,所以本文的截图一律是 raw.githubusercontent.com 绝对地址,细则链接请到 GitHub 仓库看。

① 积分额度

把商汤 Token Plan 搬进 DSH,写代码时不用切网页就能盯住:

- 积分池:额度窗口(已用 / 剩余 / 百分比 / 重置时间)、返赠余额与到期时间
- 模型清单:套餐覆盖 vs 当前 Key 实际能调,一眼看出哪些模型需要开通
- 每模型消耗:近 N 小时各模型积分排名,"烧分大户"一目了然「积分额度」tab

首次使用时,在「连接商汤控制台」填一次账号和密码,之后令牌自动续期。
- 登录失败时,表单直接显示商汤返回的原因(含「3 次错误锁 15 分钟」这类平台硬规则);
- 想清除账号,用面板底部的按钮。

② 接入 API(可选,默认关)

把商汤模型注册为 DSH provider,参与对话与出图。
- 在「API Key」卡粘贴 sk- Key 并保存,Host 随即以 sensenova-token-plan 之名注册 OpenAI 兼容 provider
- 语言模型:模型列表随 /v1/models 自动刷新,可看图模型自动带图片输入;
- 出图工具:Host 给 agent 注册工具 sensenova_draw_image;模型由 catalog 的 output_modalities 结构化判定。
- 开关、勾选与出图模型偏好都在面板热生效,无需重启——出图工具本身也在同一会话内随即挂载/卸载。细节见 docs/SETUP.md §4 与 docs/PROVIDER-HOT-RELOAD.md。

「接入 API」tab

③ 小浣熊(可选,默认关)

微信扫码登录 xiaohuanxiong.com 网关,独立账号、独立积分余额。

- 上游限流较宽松,适合当作 Token Plan 硬配额池之外的日常通道
- 登录后显示积分余额与模型清单
- 每个模型带上下文窗口 / 最大输出与积分倍率(free / ×0.75 这类,由网关目录声明;目录没给就不显示,不猜)
- 联网搜索(默认关):开启后 DSH 的 web_search 工具后端换成小浣熊托管的 MCP,复用小浣熊凭据,无需再单独配搜索端点 key

「小浣熊」tab

输入框用量胶囊

会话输入框右侧常驻一颗用量胶囊,直接显示当前模型正在烧谁的配额;点一下展开额度卡,看得到原始用量、精确重置时刻与池归属。

- 不是第四个 tab:面板关着它也在,切模型即换读数,永远不会显示上一个模型的额度
- 两档读数各自归口:商汤档读 5 小时 / 每周两个滚动窗口,小浣熊档读积分余额(网关未声明上限,不换算百分比)
- 套餐名前缀(商汤 · / 浣熊 · )说明下面的数字属于哪套额度
- 网关多了新模型时,小浣熊档的读数后面会挂一段 · N 新模型(名字在 tooltip 里,最多三个,7 天后自行消失)。这里的「新」是本机第一次见到它,不是上游的上架时间——网关目录没有这个字段;首次安装时整张名单按「早就见过」记,不会全报成新的

输入框用量胶囊与展开的额度卡

边界

- 面板不代你操作账务:不改套餐、不代扣积分、不碰 Key 明文
- 数据来自商汤控制台自己的 API,与网页控制台口径一致
- 真正会「动」的四部分——注册 provider、挂出图工具、接第二个上游、切换联网搜索——全部 opt-in 且默认关闭,不打开时插件退化为纯信息展示

安装

1. 在 DSH「插件」页搜索 dsh-connect-sensenova-token-plan 点击安装,或运行:

dsh plugin --profile web add dsh-connect-sensenova-token-plan # Web 端
dsh plugin --profile desktop add dsh-connect-sensenova-token-plan # 桌面端

2. 完全退出 DSH(含托盘)再启动。

3. 打开 DSH 的 Plugins 页,找到本插件的插件卡(面板是页内的内联卡片,不在侧边栏)。

它是怎么工作的

登录原理:

- Host 在后台用商汤标准登录拿令牌,并自动续期(refresh_token 到期前自动换新,所以不用你再输密码)
- 面板打开时才轮询一个只读本地路由,关掉即停
- 协议细节(OIDC/PKCE、密码 JWE 封包、防锁号节流)见 docs/AUTH.md,接口契约见 docs/SENSENOVA-API.md

文档

- docs/ARCHITECTURE.md — 架构与数据流
- docs/SETUP.md — 配置字段、改动后重启、常见信号
- docs/AUTH.md — 登录 / 续期 / 节流设计
- docs/API.md — 路由与控制台端点
- docs/TESTING.md — 测试体系
- docs/SENSENOVA-API.md — 商汤接口全集(实测)
- docs/PITFALLS.md — 真实踩坑(现象→根因→修法;条数见该文件头,别在这里写死)
- CHANGELOG.md — 版本变化
- docs/README.md — docs/ 全量索引(含 ADR / ROADMAP / PROVIDER-HOT-RELOAD / TROUBLESHOOTING 等上表未列的)装到 npm 的那一份不含 docs/(package.json 的 files 白名单只带 cordis.patch.yml / README / CHANGELOG / THIRD_PARTY_NOTICES 等),上列 docs/* 链接在已安装副本上不可用,请到 GitHub 仓库看。

运维诊断:这台机器现在挂没挂 provider?

- 遇到问题先看 docs/TROUBLESHOOTING.md——它按你看到的现象组织(额度栏空的、反复要求登录、模型不出现、改了代码没生效…),而不是按主题;每条带稳定症状码,doctor --json 的 symptoms 字段直接给症状码,人和智能体走同一条路。
- provider / 出图开关的生效值存在插件私有状态文件里,不在任何配置或路由上。按配置档分段(见 docs/PITFALLS.md §23):$DSH_HOME/state/<profile>/<name>/,取不到配置档名时退回共享目录 $DSH_HOME/state/<name>/——查「到底开没开」用 doctor,它只读状态文件、不碰凭据,Host 没起也能跑:

npm run doctor # 人读:每个 profile 的 provider / draw 开关与模型清单
npm run doctor:json # 机器读:JSON(可进你的巡检 / 工单脚本)

诚实声明

- 面板显示的是控制台自己的口径,与网页控制台一致;GET /v1/models 只区分权限,不计费也不占推理额度;
- 续期在令牌过期前触发;若 refresh_token 被吊销且环境里已无密码,面板会明确提示重新登录,而不是静默显示旧数据;
- 凭据(账号、access/refresh token)只经 DSH 凭据服务保存,密码不落盘;本插件不写任何明文凭据文件或调试日志。

许可证

MIT License(Copyright (c) 2026 eghrhegpe),全文见 LICENSE;第三方依赖与合规说明见 THIRD_PARTY_NOTICES.md。
预览分享卡片长什么样 ↓eghrhegpe/dsh-connect-sensenova-token-plan
分享 · DeepSeek Harness Hub
eghrhegpe/dsh-connect-sensenova-token-plan

DSH Plugins 商汤接入 DSH 的全家桶:查看积分额度、接入API与商汤小浣熊桌面端,429重试

回到顶部