dsh-ocg-billing
其他 活跃维护

dsh-ocg-billing

hiro-nikaitou/dsh-ocg-billing

该插件为OpenCode Go提供计费层能力,内置缓存官方定价、主动检查版本更新、自动计算账单及常驻作曲家账单行功能,无需额外配置即可快速接入使用。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
20 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:hiro-nikaitou/dsh-ocg-billing
git clone https://github.com/hiro-nikaitou/dsh-ocg-billing.git
git clone git@github.com:hiro-nikaitou/dsh-ocg-billing.git
README.md main

dsh-ocg-billing

中文 | English

OpenCode Go billing layer for DeepSeek Harness (dsh).

This plugin adds a billing layer on top of dsh's existing usage tracking (per-session TokenUsage recorded in session logs). It fetches the official OpenCode Go pricing docs once, caches the price table to disk, and re-checks it proactively — billing always runs against the cache, never against a live fetch. It also calls the default model to analyze the bill, and shows a resident bill line under the web composer.

This is a community plugin, not affiliated with DeepSeek AI or OpenCode. Prices are estimates computed from the official docs; actual charges come from your OpenCode Go subscription statement.

Features

  • Resident bill line (web UI) — under the composer card (conversation.composer.dock): global 7-day cost, monthly limit progress, current-session cost, top models, price-source freshness. Auto-refreshes every 60s; click to refresh instantly.
  • Cached official pricing — ocg_pricing_check re-fetches opencode.ai/docs/go, diffs against the cache, and updates the cache only when the table changed (force: true forces a refresh). A 24h background check runs automatically. Billing never re-queries the website.
  • Bill computation — ocg_bill: global (all sessions in the last N days) or per-session (scope=session + sessionId), broken down by model and by session. Uses the official per-1M-token rates including Cached Read / Cached Write, and tiered rates (GPT 5.6 Luna 272K, Qwen3.7/3.6 Plus 256K). Unknown models are listed at zero cost.
  • Default-model analysis — ocg_bill_analyze computes the bill and asks the default model (the agent-default-model selection, e.g. opencode-go/deepseek-v4-flash) for a summary, anomalies, top cost drivers, and saving recommendations.

Install

Prerelease note: DeepSeek Harness is in developer preview; peer ranges follow the installed 0.1.0-rc.6 mainline.

# from a profile
dsh plugin --profile web add <path-to-this-repo>   # or link:/absolute/path
# or overlay-style in ~/.dsh/config.yaml
# - insert:
#     - id: ocg-billing
#       name: '@hiro-nikaitou/dsh-ocg-billing'

Restart dsh web. The bill line appears under the composer once the plugin loads (browser half activates after approval).

Tools (model-visible)

Tool Purpose
ocg_pricing_status Cached price table, source, fetch time, cache health. Never fetches.
ocg_pricing_check Proactively re-fetch the official docs and diff against the cache; updates only on change (or force).
ocg_bill Bill computation: global or per-session, by model and by session.
ocg_bill_analyze Bill + default-model analysis (summary, anomalies, savings).

How it works

  • Price cache: D:\appdata\dsh\ocg-billing\pricing.json (first run seeds from the built-in snapshot of the official docs; seed flag in status). Model list: 20 docs models + extra seed entries for models configured but not listed in the docs (source tagged models.dev/unknown).
  • Usage source: relies on dsh's existing usage records — request/header + assistant/message events in each session log (the same data live-stats reads). Global scope aggregates sessions created within the window; session scope prices one sessionId.
  • Fetch channel: ctx.subprocess + curl.exe (the bash/shell seam is unavailable on Windows); falls back to ctx.shell elsewhere.
  • RPC: client polls GET /api/ocg-billing/panel?sessionId=... (registered via ctx.webServer); the host caches the global aggregation for 5 minutes.

Pricing rules

  • cacheRead billed at the official cache-read rate (fallback: input rate); cacheWrite at the official rate (fallback: output rate).
  • Tiered models pick the tier by per-request input tokens.
  • Unknown models are priced at 0 and reported in unknownModels.
  • Subscription fee ($10/month) is shown as reference, not added to usage cost.

License

MIT

Disclaimer

Prices are parsed from the official docs page and may lag or mis-parse after upstream layout changes — run ocg_pricing_check to refresh. This plugin is not affiliated with DeepSeek AI or OpenCode.