DSH XD Pool
XDTrees/dsh-xdpool把本机 WorkBuddy 桌面 App 登录过的所有账号自动并入 DSH 模型池:多账号轮换自动容错、实时积分,模型目录按模型标注积分倍率与限时免费 / 夜间折扣。
DeepSeek Harness 插件:在聊天界面里实时展示 OpenCode Zen 的最新免费模型,并支持「一键置入」到 DSH 模型选择器,无需任何用户密钥即可使用。
免费模型统一使用字面量密钥 "public"(由宿主在加载时注入到环境变量 OPENCODE_ZEN_API_KEY),因此用户不必填写自己的 API Key。
localStorage。settings.yaml 即可。将本包放入 DSH 的 web 配置目录(通过 cordis patch 注册,见 cordis.patch.yml)。宿主侧 lib/index.js 会:
normalizeConfig 规整配置;OPENCODE_ZEN_API_KEY=public(若环境变量未设置);opencode-free-models 配置区块(依赖 @deepseek-ai/schemastery 与 @deepseek-ai/dsh-settings,缺失时自动跳过)。浏览器侧 lib/client.cjs 自包含,无需构建步骤。
面板通过以下接口拉取数据(域名根由用户在面板内填写,存于 localStorage):
GET /api/free-models?page=<n>&page_size=<m>返回:
{
"ok": true,
"total": 42,
"total_pages": 3,
"page": 1,
"page_size": 20,
"items": [
{
"id": 1,
"title": "模型名",
"api_base_url": "https://opencode.ai/zen/v1",
"model_name": ["model-id-1", "model-id-2"],
"status": "enabled",
"disabled_reason": "",
"inserted": false
}
]
}
status 为 "disabled" 时展示「已下架」徽标,并提供 disabled_reason。GET /api/version返回 { "version": "0.1.0" },供面板「升级」按钮比对。
每个免费模型会被转换成一个 llm-pi-ai 提供方条目:
llm-pi-ai:
providers:
opencode-<slug>-<id>:
apiKeyEnv: OPENCODE_ZEN_API_KEY
api: openai-completions
baseURL: "<api_base_url>"
compat:
supportsDeveloperRole: false
maxTokensField: max_tokens
models:
- id: "<model-id>"
置入时,面板优先调用宿主钩子 window.__OZF_HOST__.writeProvider(pid, entry);若宿主未提供该钩子,则弹出上述 YAML 供复制。
cordis.patch.yml / 设置区块)。status 与 disabled_reason 驱动展示,前端只读。node --test # 运行测试,并校验 lib/client.cjs 内联 helper 与 lib/core.js 一致
lib/core.js 是共享 helper 的唯一真相来源;lib/client.cjs 内联了一份 完全相同、标注 DO NOT EDIT 的副本,test/plugin.test.js 会断言两者输出一致,防止漂移。