dsh-my-cost 插件架构

两条数据通道:HTTP 状态(价格/余额) vs 会话投影(费用)

dsh-my-cost 插件架构 两条数据通道:HTTP 状态(价格/余额) vs 会话投影(费用) Host(Node) Browser(Web) 凭证边界:API key 仅存 host 侧 DeepSeek 定价页 · api-docs.deepseek.com · Architecture component DeepSeek 定价页 api-docs.deepseek.com DeepSeek 余额 API · api.deepseek.com/user/balance · Architecture component DeepSeek 余额 API api.deepseek.com/user/balance 定价核心 · src/pricing-core.js(纯函数) · Host(Node) 定价核心 src/pricing-core.js(纯函数) myCost Host 插件 · src/index.js · Host(Node) › 凭证边界:API key 仅存 host 侧 · 投影 · 路由 · 轮询 myCost Host 插件 src/index.js 投影 · 路由 · 轮询 DSH 框架运行时 · webServer · credentials · timer · 投影重放 · Host(Node) › 凭证边界:API key 仅存 host 侧 DSH 框架运行时 webServer · credentials · timer · 投影重放 $DSH_HOME/prices · official/local JSON · Host(Node) $DSH_HOME/prices official/local JSON DSH 会话存储 · 事件日志 + 投影值 · Host(Node) DSH 会话存储 事件日志 + 投影值 dsh Web Shell · seed 词表 · __ModuleLoader__ · Browser(Web) dsh Web Shell seed 词表 · __ModuleLoader__ myCost Client 插件 · client/ · 3 插槽 + toast · Browser(Web) · React 19 myCost Client 插件 client/ · 3 插槽 + toast React 19 每小时抓取 GET /user/balance 解析 / 计价 写 JSON 注册投影 回放用量事件 持久化 通道 A · GET /my-cost/status 通道 B · useProjection 注册 bundle Legend Frontend Backend Database Cloud External

通道 A · HTTP 状态

  • • GET /my-cost/status 返回价格表、峰谷状态、账户余额
  • • DEEPSEEK_API_KEY 只在 host 侧解析(ctx.credentials),绝不下发浏览器

通道 B · 会话投影

  • • 框架回放每次请求的 token 用量事件(输入/输出/缓存命中/缓存写入)
  • • 插件纯函数累计计价,按事件发生时刻计费(兼容未来峰谷)
  • • 结果随会话持久化,界面 useProjection / projectionValues 读取

构建与样式

  • • src/ + client/ 经 Vite 构建为 lib/(产物已入库,git 安装免构建)
  • • 样式全内联样式对象:单文件 client 通道无 .css,内联优先级最高抗宿主覆盖