dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness(DSH)host 层全局插件 monorepo,包含官方级能力的 host 插件与 Web client 扩展。
插件包 · 核心功能 · 当前版本 · 适配 DSH @chaoset/dsh-any-connect · 多渠道桌面端与免密模型接入:WorkBuddy(国内/国际版)、ZCode(Coding/Start Plan 双通道)、OpenCode Free 官方免密免费模型通道;支持思考强度自测与补全、积分倍率显示、图片多模态、自定义模型隐藏与 CLI 诊断 · 0.4.23 · 0.2.1-rc.3 @chaoset/provider-usage · 对话底栏模型额度指示器:在输入框状态栏(composer dock)实时显示当前会话 provider 剩余额度与重置时间,点击展开可视化进度条与详细计费包;内置 8+ 种 Provider 查询器并提供开放注册 Seam · 0.1.12 · 0.2.1-rc.3 @chaoset/sandbox-extra-roots · 沙盒额外允许写入目录:为 workspace-write 沙盒安全追加工具缓存目录(npm/pip/cargo/go 等);跨平台 Seatbelt/bwrap/Landlock 原生沙盒引擎注入;严格防范危险根与 TOCTOU 符号链接逃逸 · 0.4.26 · 0.2.1-rc.3 @chaoset/session-archive · 归档会话完整生命周期管理:Web 侧边栏专属归档面板与实时徽标;抽屉式只读浏览历史会话事件流;批量安全恢复到会话树;两段式彻底物理删除与落盘防竞态保护;纯前端毫秒级检索与排序 · 0.3.30 · 0.2.1-rc.3
接入各类桌面 AI Agent 与免密官方通道的模型到 DSH,无需手动配置复杂的 API Key,开箱即用。
accessToken/refreshToken 的 $wbEncrypted 加密信封(自动定位 macOS Bundle 或 Windows 注册表/安装目录的 Electron 二进制充当解密助手,亦支持 WORKBUDDY_ELECTRON_BIN 覆盖);支持图片多模态输入;模型选择器与 /model 弹窗直接标明积分倍率(如 · x0.79)与限免标签。setting.json 当前激活计划精准取用 API Key;以客户端本地内置白名单(zcode-builtin.json)动态约束模型,随客户端升级自动更新;支持 23:00–09:00 夜间免费时段自动识别与费率联动。zcode.z.ai/api/v1/zcode-plan/anthropic)与独立额度池;采用账号 JWT + 设备标识认证,扣减当日一次性 Token 包(过期不结转);每日领取活动自动探测并在设置卡片中醒目提醒(提供一键复制 Plan ID);动态跟随用户今日实际权益展示模型,未领取或过期如实隐藏。read 只读工具守卫注入,解除 "free tier can only be used from within OpenCode" 网关限制;多协议实时流式转码(OpenAI Responses、Anthropic Messages、OpenAI-compatible Chat Completions 统一转为标准 OpenAI SSE 流,完整支持 reasoning_content 思考过程输出);自动读取本地官方 specs 缓存(~/.cache/opencode/models.json)决议精确上下文与多模态能力。onlyReasoning),选择器「默认」档位智能补选最高档,OpenAI 通道补 reasoning_effort,Anthropic 通道补 thinking 预算对象并相应调整 max_tokens。dsh-any-connect doctor(体检凭据、加密格式、解密助手、心跳与模型数)、status、logout 命令,支持 --provider 针对指定渠道排查。在对话区底部的状态栏(composer dock)直观显示当前会话 provider 的剩余额度、余额与重置周期。
workbuddy · 23 credits left、DeepSeek · ¥45.20、OpenRouter · $5.00 left;ctx.modelDirectories),切换模型即刻自动联动切换额度 pill。▓▓▓▓▓░░░░░ 23 / 100);deepseek-account(OAuth 账户余额与赠送代金券钱包)和 deepseek-official(API Key GET /user/balance 现金与代金券),亦兼容自定义 deepseek 路由;/api/v1/key + /api/v1/credits,API Key 自身限额优先,回落到账户额度;GET /v1/users/me/balance 可用余额、现金、代金券分列;GET /v1/user/info 总额、可用、充值分列;GET /api/monitor/usage/quota/limit Coding Plan 滚动窗口与订阅套餐;GET /v1/token_plan/remains 5 小时滚动窗口与周额度窗口;GET /dashboard/billing/subscription 余额与限额用量;GET /usage 滚动、周、月窗口用量百分比。ctx.providerUsage,任何第三方 provider 插件均可通过 register() 挂载自有查询器(覆盖重写语义,支持热重载);@chaoset/dsh-any-connect 自动通过此机制注入 WorkBuddy 与 ZCode 的额度查询。sk- 密钥与 URL 参数凭据);undefined 导致整页丢失 pill。为 DSH 的 workspace-write 沙盒模式安全追加用户指定的写入白名单,解决工具缓存无权写入的痛点。
workspace-write 沙盒模式默认严格限制命令仅能写入 workspace 根目录与系统 /tmp,使 npm、pip、cargo、go、uv 等工具的全局缓存因无权写入而报错。--bind 与 Landlock --rw;checkedTarget 文件系统围栏,对额外目录安全放行。/、盘根、用户主目录本身及其父目录(如 /Users、/home)设为可写;/etc、/usr、/bin、/sbin、/private);cordis.patch.yml,修改即时热生效,无需重启。补全 DSH 仅有「归档动作」而缺失后续查看、恢复、检索与清理的断环,提供完整的会话归档管理。
needsRestart。ctx.remote.sessionArchive(支持 list()、count()、detail(id)、delete(ids)、unarchive(ids))。推荐使用 DSH 自带的 dsh plugin 命令安装:它会自动调用 pnpm 安装依赖,将包加入 dsh.profile.bundles,并由 DSH 应用包内自带的 cordis.patch.yml 完成插件注册。
本仓库通过 GitHub Releases 分发。Release 资产为标准 npm tarball(命名规则:chaoset--.tgz,tag 名 -v),公开仓库直接安装对应 URL 即可:
# 查看 Releases 列表获取最新版本:https://github.com/ShanWuYinShe/dsh-plugins/releases
# 1. 安装 @chaoset/dsh-any-connect(模型接入)
dsh plugin --profile web add https://github.com/ShanWuYinShe/dsh-plugins/releases/download/dsh-any-connect-v0.4.19/chaoset-dsh-any-connect-0.4.19.tgz
# 2. 安装 @chaoset/provider-usage(底栏额度显示)
dsh plugin --profile web add https://github.com/ShanWuYinShe/dsh-plugins/releases/download/provider-usage-v0.1.10/chaoset-provider-usage-0.1.10.tgz
# 3. 安装 @chaoset/sandbox-extra-roots(沙盒额外目录)
dsh plugin --profile web add https://github.com/ShanWuYinShe/dsh-plugins/releases/download/sandbox-extra-roots-v0.4.24/chaoset-sandbox-extra-roots-0.4.24.tgz
# 4. 安装 @chaoset/session-archive(归档会话管理)
dsh plugin --profile web add https://github.com/ShanWuYinShe/dsh-plugins/releases/download/session-archive-v0.3.28/chaoset-session-archive-0.3.28.tgz
# 从本地源码安装(开发调试时使用绝对路径)
dsh plugin --profile web add /absolute/path/to/dsh-plugins/packages/dsh-any-connect
# 卸载插件
dsh plugin --profile web remove @chaoset/dsh-any-connect
dsh plugin --profile web remove @chaoset/provider-usage
dsh plugin --profile web remove @chaoset/sandbox-extra-roots
dsh plugin --profile web remove @chaoset/session-archive安装后重启 DSH harness(例如 dsh web)生效。
dsh plugin add 若报错 pnpm failed:$DSH_HOME/profiles//pnpm-workspace.yaml);allowBuilds 占位的 set this to true or false 改为 true;@chaoset/*@ 加入 minimumReleaseAgeExclude 列表;⚠️ 不要直接用pnpm add或手动写 profile 的package.json:这样跳过了 bundle 对账,web 启动时会报pending (waiting for service: remote.xxx)。
node_modules 都是上一版 pnpm 安装的——只要该 profile 执行过 dsh plugin add 就会报 ERR_PNPM_UNEXPECTED_STORE(use the new store location …):node_modules 里的 .modules.yaml 记录着旧 store 位置,与新 pnpm 解析出的不一致。逐 profile 修复,对每个受影响的 profile 各做一遍:修复就是删掉重装(node_modules 是纯安装产物,删掉连旧 store 记录一起归零;插件配置在 cordis.patch.yml,不受影响):
rm -rf $DSH_HOME/profiles/<name>/node_modules
dsh plugin --profile <name> add <同一个 tarball URL>一次 plugin add 会按 package.json 把该 profile 已装的全部插件一并装回,store 位置直接写对。(2026-10-24 实测:宿主 0.2.1-rc.3 内置 pnpm v11.28.5,web 与 desktop 两个 profile 各用一条命令重装四包;修复后核对 node_modules/.modules.yaml 的 storeDir 应指向 $DSH_HOME 内。)
若由 AI Agent 代为在环境中安装,请直接执行 dsh plugin ... 命令,严禁手动编辑 `cordis.patch.yml`:
dsh 与 pnpm 处于 PATH 中;web);dsh plugin --profile web add ;dsh plugin --profile web list 或 dsh --profile web --dump-config | grep chaoset;本项目采用 Bun 作为包管理器(由根目录 packageManager 锁定),所有包源码均采用 TypeScript 开发。
bun install # 安装依赖(切分支后记得重新 install)
bun run build # 全仓构建:tsc 编译 host (src/ -> lib/),esbuild 打包 client
bun run typecheck # 类型检查:host + client 两套 tsconfig --noEmit
bun run test # 运行 vitest 单元与集成测试
bun run test:ci # build + typecheck + test 门禁验证(提交/发版前必跑)
bun run dsh-status # 核对本地依赖基线 vs DSH 上游稳定/预发布线
bun run gate # 发布门禁干跑(检查 tag 与待发布包)
bun run audit # 依赖漏洞审计(基于 OSV.dev)alpha 分支,所有功能与修复直接在 `main` 分支推进,版本号为纯 semver 正式版(如 0.4.19),发布正式 Release。-alpha 线):从 main 拉出 `alpha` 分支,版本号为 -alpha.N(进 rc 后换 -rc.N),发布预发布 Release。alpha 适配去后缀转正,压缩合入 main,发正式 Release 并彻底删除 alpha 分支。