dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
中文 | English
一个 DeepSeek Harness Web-GUI 插件,为接入 OpenCode Go 模型的用户提供完整用量观测:
settings.section 贡献),内含「额度」「DSH 会话明细」两个标签页opencodeUsage:usage / dshUsage / dshSessionMessages 三个方法assistant/message 事件自带 token 记账),不依赖本机是否安装 OpenCode 客户端,任何 DSH 部署都能用cacheReadTokens(命中)/ cacheWriteTokens(写入)按会话、按调用展示;命中率 = 缓存读取 ÷(非缓存输入 + 缓存读取)source.model 分组,chips 一键筛选,筛选后累计卡片与列表同步收窄;全部模型时展示「按模型汇总」表(会话数 / 输入 / 缓存读取 / 缓存写入 / 输出 / 推理 / 命中率)reasoningTokens,因此推理列显示为 —(未上报),而非误导性的 0;单独上报推理的适配器(如 dsh-llm-deepseek)会正常显示数值conversation.composer.dock 贡献):🟢 5h 22% · W 13% · M 13% · ↻ 2h13m(W=每周、M=每月、↻=重置倒计时,悬停显示完整文字),按 5 小时滚动窗口阈值变色(默认 <60% 绿 / 60–85% 橙 / ≥85% 红)apiKeyEnv,通过 llm provider 目录动态发现)→ DSH 凭证层的常规引用 OPENCODE_GO_API_KEY → OpenCode 的 auth.jsondsh plugin --profile web add github:yascitom/dsh-opencode-go-box
或从本地源码目录安装:
dsh plugin --profile web add file:/path/to/dsh-opencode-go-usage
本包声明了 dsh.bundle.patch,因此 dsh plugin add 会自动将其 reconcile 进
dsh.profile.bundles —— 无需手动修改 cordis.patch.yml。
安装后请重启 dsh web,让 Host 半部与托管的 Client bundle 生效。
该插件依赖标准 web bundle 组合(api-gateway Client Remote 与 settings.section slot)——默认的 dsh web profile 均包含。
Host 端可调项位于插件行(id: opencode-go-usage);在
$DSH_HOME/profiles/web/cordis.patch.yml 中覆盖:
- id: opencode-go-usage
config:
baseUrl: https://opencode.ai/zen/go/v1/usage # 默认值
timeoutMs: 15000 # 默认值
warnPercent: 60 # 默认值:≥60% 变橙
dangerPercent: 85 # 默认值:≥85% 变红
maxSessions: 30 # 默认值:DSH 明细最多扫描的会话数
| 键 | 默认值 | 含义 |
|---|---|---|
baseUrl |
https://opencode.ai/zen/go/v1/usage |
用量查询接口地址。 |
timeoutMs |
15000 |
请求超时时间(毫秒)。 |
warnPercent |
60 |
5 小时滚动窗口达到该百分比后挂件变橙。 |
dangerPercent |
85 |
5 小时滚动窗口达到该百分比后挂件变红。 |
maxSessions |
30 |
DSH 会话明细扫描的最近会话数上限。 |
GET https://opencode.ai/zen/go/v1/usage
Authorization: Bearer <API_KEY>
<API_KEY> 即接入模型时已存储的 OpenCode Go key(sk-opencode-…)。接口返回:
{
"usage": {
"rolling": { "status": "ok", "percent": 9, "resetsAt": "…" },
"weekly": { "status": "ok", "percent": 12, "resetsAt": "…" },
"monthly": { "status": "ok", "percent": 6, "resetsAt": "…" }
}
}
percent 取值 0–100;resetsAt 为 ISO-8601 时间。该接口尚未出现在 OpenCode 的公开文档中。
| 文件 | 作用 |
|---|---|
index.js |
Host 半部 —— OpencodeUsageGateway(TypertRemoteService,服务键 opencodeUsage) |
typert.host.js |
手写 Typert Host 清单,通过 exports["./typert"] 注册 |
client.js |
window.__ModuleLoader__.load 格式的浏览器 bundle —— 挂载 Remote、注册栏目与底栏挂件、渲染页面 |
cordis.patch.yml |
Bundle patch,插入插件行(id: opencode-go-usage) |
package.json |
双面声明:main + exports["./client"] + exports["./typert"] + dsh.client + dsh.bundle |
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。