deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:qiuyongjin/dsh-balance
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DSH 插件:查询并展示 DeepSeek 账户余额(`/user/balance` API)。工具可查、Web UI 会话输入区常驻显示,TypeScript 双面开发,零运行时依赖。
| 类型 | 名称 | 说明 |
|---|---|---|
| Tools | dsh_balance |
调用 DeepSeek GET /user/balance,返回账户可用状态与各币种余额明细(总余额 / 赠送余额 / 充值余额),headless / web 通用 |
| UI(web) | 输入区余额入口 | 填官方 conversation.input.right slot:按钮常驻显示当前总余额,点击展开明细卡片(可用状态 / 各币种明细 / 更新时间),手动刷新 |
dsh_balance 工具;同时经 webServer(可选后端,ctx.inject 等待就绪,headless 组合下不挂载)暴露 GET /plugins/dsh-balance/balance JSON 端点,供浏览器拉取。window.__ModuleLoader__.load 包装)填充官方 conversation.input.right slot,同源 fetch 余额端点——API key 只存在于节点侧,浏览器不接触凭据。DEEPSEEK_API_KEY,Web 的 Models 设置页可直接写入),凭据服务缺席时回退到启动环境变量;每次调用实时解析,改 key 无需重启。与官方 dsh-llm-deepseek 的取值方式一致。AbortSignal.any),符合 dsh-tools 的协作取消契约。dsh plugin --profile web add ./dsh-balance
bundle 层栈变更需重启生效:
dsh --profile web
重启后,会话输入区工具行右侧(发送按钮前)出现 🔋 余额入口,按钮上直接显示当前总余额;会话中向代理提问"查询 DeepSeek 余额"同样可用工具查询。启动日志出现 [dsh-balance] plugin loaded(API key 引用:DEEPSEEK_API_KEY,基地址:https://api.deepseek.com) 即挂载成功。
默认配置开箱即用;如需覆盖,在 profile 的 cordis.patch.yml 按行 id 覆盖(patch 整替换 config,需重述全部键):
- id: dsh-balance
config:
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
timeoutMs: 10000
| 键 | 默认值 | 说明 |
|---|---|---|
apiKeyEnv |
DEEPSEEK_API_KEY |
读取 API key 的凭据引用(POSIX 环境变量名) |
baseURL |
https://api.deepseek.com |
DeepSeek API 基地址 |
timeoutMs |
10000 |
请求超时(毫秒) |
pnpm install
pnpm run build # tsc 产出 lib/types(含 JS emit)+ tsdown 产出 lib/index.js / lib/client.js
pnpm run typecheck # 严格类型检查(单一 tsconfig 覆盖 node + client 两侧)
pnpm run watch # tsdown 增量重建(client half)
lib/ 为构建产物,勿手改——改源码后重新构建。单一 tsconfig 覆盖两侧(DOM lib 与 @types/node 全局共存),tsconfig.decl.json 产出 lib/types;node half 由 tsdown 从 tsc emit 打包(@deepseek-ai/* 依赖内联,运行期零依赖),client half 从源码打包为惰性 CJS bundle(react external 走平台种子表)。
pnpm run typecheckCLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。