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

@javenlu233/dsh-session-cost

v0.1.5

Published

Configurable whole-log session cost projection (sessionCost): provider usage folded per route and per peak/off-peak period, priced by a per-model table

Downloads

1,426

Readme

@javenlu233/dsh-session-cost

English | 中文

函数插件,注册 sessionCost 投影单元:从 provider 用量报告折叠出全日志 token 费用,并按可配置的「按模型 × 峰谷」价格表计价,经 session-projection 接缝(registry 快照、变更流,以及各投影载体)对外提供。客户端渲染的是分页与压缩都无法改变的整会话费用;参考消费方是 Web 的「费用」Tab。

计价模型

每条用量样本归属到最新记录的模型路由(request/context),并按样本事件时间落入峰/谷时段,再按该路由的每百万 token 单价计价:

cost = uncachedInput × miss + cacheRead × hit + cacheWrite × miss + output × out

cacheWrite 按未命中单价计(缓存写是全额 prompt token)。价格只放在 view 中、从不进 state,因此改配置后对已折叠日志重新计价无需重新折叠。

折叠语义

  • 与 token-meter 的 tokenUsage 折叠一致:usage chunk 提供早到样本(请求失败后仍保留),组装出的 assistant/message 会替换同 turn/step 的样本,chunk 与 message 不会重复计数。
  • 辅助 DeepSeek web_search 用量从 Messages 响应捕获,写入不透明的 tool/result.meta.sessionCost,再累加进触发搜索的那一轮(不会替换会话主模型用量),并按搜索模型自身单价计价(通常是 deepseek-v4-flash)。
  • request/context 是会话主模型样本的 last-wins 路由记录;样本归属到最新路由,无记录或路由无配置价时回退到 defaultRoute
  • 峰谷窗口为固定时区下周一至周五的 [start, end) 小时区间(默认北京时间 9:00–12:00、14:00–18:00,偏移 +480 分钟;周末与其余时段为谷时)。
  • 各桶在首个贡献事件前为 0;total 为四桶费用之和,cacheHitPercentcacheRead / billedInput 四舍五入取整,billedInput 为三个 prompt 侧桶之和。

组合

- id: session-cost
  name: '@javenlu233/dsh-session-cost'

所有配置字段默认取 DeepSeek 峰谷价格表;可在后续 patch 层覆盖任一字段。价格为人民币 / 百万 token,按 provider 侧模型 id 为键:

- id: session-cost
  name: '@javenlu233/dsh-session-cost'
  config:
    currency: CNY
    defaultRoute: deepseek-v4-flash
    peakWindows: [[9, 12], [14, 18]]
    timezoneOffsetMinutes: 480
    prices:
      deepseek-v4-flash:
        peak: { cacheRead: 0.10, uncachedInput: 3.0, cacheWrite: 3.0, output: 9.0 }
        offPeak: { cacheRead: 0.05, uncachedInput: 1.5, cacheWrite: 1.5, output: 4.5 }
      deepseek-v4-flash-vision-exp:
        peak: { cacheRead: 0.10, uncachedInput: 3.0, cacheWrite: 3.0, output: 9.0 }
        offPeak: { cacheRead: 0.05, uncachedInput: 1.5, cacheWrite: 1.5, output: 4.5 }
      deepseek-v4-pro:
        peak: { cacheRead: 0.30, uncachedInput: 9.0, cacheWrite: 9.0, output: 27.0 }
        offPeak: { cacheRead: 0.15, uncachedInput: 4.5, cacheWrite: 4.5, output: 13.5 }

默认表为 DeepSeek 公布的峰谷价格(2026-08-17 生效);为其他 provider 或自定义费率计价时整体覆盖 prices

注入 sessionProjections —— 这是插件的全部目的;在没有 registry 的组合中 fiber 保持 pending,不注册任何东西。

Model Experience

会话主模型:无;那些是已经记入日志的用量事件。

辅助 web_search:插件读取 harness 已经发出的 DeepSeek Messages 响应,把其中的 usage 记到 tool/result meta。不新增工具、不改搜索提示词、不改模型可见的工具结果文本。

KV Cache effect

不影响会话请求。搜索调用若上报了缓存流量,会计入搜索分桶。

Known Limitations and Deferred Work

  • 是估算,不是账单 —— 价格来自配置表,峰谷时段取各用量样本的事件时间(组装 message 的时间,而非请求开始时间),会话中途切换模型也只按 request/context 的分辨率计价,结果可能与 provider 账单有出入。
  • 仅累计总量 —— 折叠只发布整会话分桶,不提供按轮次/步骤的明细;按 (route, period) 的键结构为后续细分保留了扩展位。
  • cache-write 由 provider 可选上报 —— DeepSeek 不上报 cache-write,因此其会话的缓存写桶恒为 0;该桶为上报此指标的 provider 保留。
  • 搜索 token 需要现场捕获 —— 本插件装上之前记下的会话,或未经过 web_search 工具、直接调用 ctx.web.search 的搜索,没有 tool/result.meta.sessionCost,无法补回 flash 搜索用量。