npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-connect-modelscope-token-plan

v0.2.0

Published

ModelScope (modelscope.cn) connect bundle for the Harness Web UI: a local-usage quota panel for the free API-Inference tier (daily call budget, per-model caps, 429 events, local trend) plus optional provider registration that brings ModelScope models into

Readme

dsh-connect-modelscope-token-plan

把魔搭社区(modelscope.cn)API-Inference 免费额度的本地用量面板接入 DeepSeek Harness 的 Plugins 页(插件卡内联,三个 tab:额度 / 模型 / 接入),并可选把魔搭注册成 DSH 的 LLM provider(id modelscope-token-plan,直连 apiBase,OpenAI 兼容)——注册后魔搭模型进入 DSH 模型选择器,可直接对话调用。见 docs/PROVIDER-M4.md。

姊妹插件:dsh-connect-sensenova-token-plan、dsh-connect-agnes-token-plan(同族结构,受控复制)。

状态:M4 已落地(provider 注册 + 面板「接入为 DSH 模型」),离线测试与 typecheck/build 全绿。

面板长什么样

三个 tab:额度 / 模型 / 接入。

「额度」tab——头条是官方魔粒余额(真实值),下面接本地调用分布:

「额度」tab:魔粒余额与本地调用

「模型」tab——一行一个魔搭模型,可勾选启用;开关打开即把魔搭注册为 DSH provider:

「模型」tab:接入为DSH 模型与模型清单

三条事实(写代码前先认清)

  1. 官方有「魔粒」余额端点:GET {siteBase}/openapi/v1/magicubes/balance(Bearer 访问令牌,匿名 401),返回 {success, data:{total_balance, available_balance, frozen_amount}}(2026-10-04 实测,见 docs/SPIKE.md)。推理响应本身仍不带任何额度头。

  2. 本地计数是辅助口径:面板头条是官方魔粒余额;本地计数只回答官方余额答不了的问题——按模型分布、本地趋势、429 事件流(只统计经本插件的调用,直连魔搭的其它客户端不计入)。次数口径的「推算剩余/参考上限」已从面板移除(官方改魔粒计费后两个单位并排是误导),相应的 dailyQuotaTotal / dailyQuotaPerModel 两个社区快照常数也从配置里一并删除了——面板不消费它们,留着只会让人以为能算「还剩几次」。

  3. 凭据只有一把静态钥匙:魔搭访问令牌(个人中心生成,形如 ms-…),无 OIDC、无密码、无 refresh。默认读 DSH 凭据服务已有的 MODELSCOPE_API_KEY 引用;MODELSCOPE_API_KEY 环境变量只在启动时读一次,且优先级高于存储值(坑见下段);令牌永不入日志、永不进插件目录。

    凭据分层有个坑(2026-10-05 实测):DSH 凭据服务的优先级里,启动时的环境快照压过存储文件,而那个快照在启动时冻结(不是活的 process.env)。两个后果:①在 DSH 启动之后改环境变量——包括 Windows 用户级变量——不会被看见,改完必须完全重启 DSH(退出全部 DeepSeek Harness 进程,不只是关窗口)才进快照;②重启让环境变量生效后,它会反过来压过面板里保存的值,而面板仍显示「已保存」。最省事的做法是直接在面板里保存令牌(立即生效,且不依赖重启)。

免费额度怎么算(2026-10 快照,以官方为准)

  • 每日免费调用次数按账户计(当前约 2000 次/天,需绑定阿里云 + 实名;规则多次调整过);
  • 单模型另有每日上限(社区数据约 500 次/天)与每分钟限频;
  • 额度按天重置;耗尽返回 429。
  • /v1/models 免认证可读,不消耗额度。

上面这些数字来自社区公开信息,非官方数据,官方调整后需手动更新本节;它们只用于解释 「额度怎么算」,不参与任何计算——面板不消费次数上限,「还剩几次」算不出来(见下节)。

文档地图

| 何时 | 查 | |---|---| | 「上游到底有没有额度信号」 | docs/SPIKE.md(实测记录 + 结论) | | provider 怎么接入(写代码前) | docs/PROVIDER-M4.md(实现契约) | | 这版是怎么做出来的、踩过什么坑 | docs/IMPLEMENTATION.md(实施过程档案) | | 上游端点全景 / 第三方方案对比 | docs/REFERENCES.md、docs/REFERENCE-modelsdev.md | | v1 要做什么、做到哪了 | docs/ROADMAP.md | | Host/Client 两半怎么分 | docs/PROVIDER-M4.md(§14 红线)+ docs/IMPLEMENTATION.md;本仓库暂无独立的 ARCHITECTURE.md | | 开发者校验工具(变异测试 / 覆盖率) | tools/dev/README.md;发布流程见 RELEASING.md |

诚实声明

  • 面板头条是官方魔粒余额(真实值);本地计数只统计经本插件的调用——它回答的是分布/趋势/429 事件流,不是余额,直连魔搭的其它客户端不计入。注册 provider 之后,DSH 的全部魔搭调用都经本插件,所以本地计数覆盖全部 DSH 魔搭调用。次数口径的「推算剩余」已从面板移除(官方改魔粒计费后两单位并排是误导),相应地quota.daily 只剩 usedLocal 一个数——没有 limit,也没有推算出的「剩余」。
  • 本地计数的口径与 harness 全局账本不同,且刻意不合并。DSH 自己有 @linxin666/dsh-usage,按 days→provider→model 记成功调用的 token;它只订阅 session 的 assistant/message,失败调用一次都不记。所以本插件只做两件全局账本答不了的事:①「经本插件的调用分布与趋势」;②429/错误事件流——这是本插件的独家数据(官方只给总额度余额,不给「哪个模型刚才在限频」)。成功的 token 总量不在此重复记账(详见 src/host/usage-observer.ts 文件头)。
  • 429/错误事件的分类读的是 llm-error-fix 重分类之后的 code:被误判成 QUOTA 的 rpm 限频在事件流里记作 rate_limit,与退避策略说同一件事。观察层套在重分类层之外,顺序不可反。
  • 计数口径:每次流结束记一次 call,含失败、含用户中断(魔搭按次数计费,限频掉的请求同样是一次调用);token 数上游没给时是 null 而非 0。偏差方向是按流计次:重试不在流内部发生,而是在流消费完后由 agent/request-error 瀑布决定重发,因而每次重试各记一次——按「魔搭按次数计费」的口径这反而是对的(每次重发都真打了一次上游)。
  • provider 默认关(opt-in,与姊妹插件一致):面板「模型」tab 的「接入为 DSH 模型」开关翻转即生效,面板保存值优先于 cordis.patch.yml 的 registerProvider 默认。
  • 已知限制:reasoning 恒为 false。魔搭 API-Inference 是多模型代理,是否吃 reasoning_effort 取决于背后那个模型,本插件保守默认不发该参数(模型用自己的默认),也不提供思考强度选择器。原理由「发错档位会整条请求 400」已在 2026-10-05 真机探测中证伪:reasoning_effort 传 "bogus" 同样返回 200,值不被校验。真实障碍是无法区分「生效」与「静默忽略」(都是 200),且该端点会在真响应与空壳 200 之间摇摆——档位表做不出来,不是没做。见 docs/PROVIDER-M4.md §4。
  • 429 响应形状未实测(不值得烧额度去触发),解析按 OpenAI 惯例兼容,漂移时面板会给 shapeWarnings。
  • 面板「模型」tab 的每个模型都外链到其魔搭详情页(https://www.modelscope.cn/models/{owner}/{model}):魔粒单价只在网页展示、不在官方 API,所以这只是一个人工核对用的跳转,不是数据源(「为什么没有按模型消耗 API」见 docs/REFERENCES.md)。