← 返回列表
未验证
为 DeepSeek Harness Web 界面所做的个人扩展,
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/16 · 已提供中文文档
DeepSeek Harness Web GUI 的意大利语语言包(1,257 个字符串)和成本界面:会话成本(包括子代理)、高峰时段提示和账户余额,作为 DSH 配置文件包安装,可在 harness 更新后保留。
综合分
29.8
GitHub 分
29.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 0xDevDav/dsh-addons该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-addons 为 DeepSeek Harness Web 界面所做的个人扩展, 以配置文件捆绑包的形式打包,因此它们能在 DSH 更新后继续存在,并且只需两条命令即可安装到任何机器上。 有了它们,该界面自称 DavCode AGENT:意大利语,带有成本界面和自有品牌。 在 DSH 0.1.6-alpha.1、Windows、Node 24、pnpm 10 上构建并验证。 这里有什么 | 路径 | 说明 | |---|---| | packages/dsh-locale-it | 意大利语语言包:涵盖所有 44 个随附客户端语言区域命名空间的 1 331 条字符串,注册为 it 语言 | | packages/dsh-session-cost | 成本界面:位于编辑器统计信息旁的会话树成本胶囊、新建会话 上方的峰值/非峰值时段小组件,以及 Settings 行内的账户余额 | | packages/dsh-brand-davcode | 身份标识:侧边栏品牌行中的 DavCode AGENT 标识组合、折叠栏中的标记、空白会话屏幕上单独的图稿、窗口标题中的产品名称,以及一个标签页图标——每一项都有绘图的浅色和深色变体 | | tools/locale | 构建语言包的流水线:词典提取、批处理、验证、审校数据,以及增量更新工具 | | tools/cost | 成本包的验证套件,以及与提供商用量页面的对账 | | tools/brand | 品牌包的套件、其在运行中 UI 里的屏幕截图,以及 Windows 启动器图标的生成器 | | tools/verify | verify-install.mjs:npx 缓存的 DSH 安装的完整性检查(半解压的包、未解析的依赖、声明的文件与已发布 tarball 的交叉核对) | | install | 安装程序、两个平台的固定版本启动器,以及创建带有品牌图标的桌面快捷方式的脚本 | | docs | 品牌的来源(两个提案页面和参考截图)以及 Prompt-Installazione-DSH.md,即交给另一个代理以在全新机器上复现这一切的任务 | 每个包都有自己的 README,其中包含设计决策、它使用的确切钩子,以及它 刻意不做的事情。 在另一台机器上安装 要求:一个可用的 dsh 安装,以及 PATH 中的 pnpm。 git clone https://github.com/0xDevDav/dsh-addons.git cd dsh-addons pwsh -File install/install.ps1 # 或:sh install/install.sh 安装程序会为每个包运行 dsh plugin --profile web add ——这与手动安装插件所走的 文档化路径相同,它会将其安装到 $DSH_HOME/profiles/web 并追加到该配置文件的 dsh.profile.bundles——然后在该文档尚无 locale 部分时,在 $DSH_HOME/settings.yaml 中写入 locale.preference: it,最后留下 DavCode AGENT 启动器和一个 桌面快捷方式(使用 -NoShortcut 跳过最后一部分,或单独运行 pwsh -File install/shortcut.ps1)。 最后重启 Web 界面(从快捷方式停止并重新启动),然后重新加载页面。仅重新加载页面是不够的:浏览器打包文件在进程启动时被读取并计算哈希。 手动操作也是同样的三条命令: dsh plugin --profile web add /path/to/dsh-addons/packages/dsh-locale-it dsh plugin --profile web add /path/to/dsh-addons/packages/dsh-session-cost dsh plugin --profile web add /path/to/dsh-addons/packages/dsh-brand-davcode 桌面快捷方式,以及固定版本 install/launcher/Avvia DavCode AGENT.cmd(Windows)和 install/launcher/davcode-agent.sh(其他平台) 带有它们所启动的 DSH 版本,并且这是有意固定的:语言包覆盖某一个 发行版的字符串,品牌包挂钩某一个发行版的座位和类,因此静默跳转到另一个 发行版会让新字符串保持英文,并可能移动品牌绘制的座位。install/shortcut.ps1 将启动器和 davcode.ico 复制到 %LOCALAPPDATA%\dsh,在桌面上写入 .lnk,并 促使 shell 的图标缓存刷新,以便新标记立即显示;install/shortcut.sh 完成 freedesktop 的等效操作。重新运行其中任何一个即可刷新图标,而 -Version 就是移动固定的方式 ——之后值得再次运行下面的测试套件。 davcode.ico 是从标记生成的,而非手工绘制:node tools/brand/make-icon.mjs 写入它 (256/128/64/48/32/16,由 Chromium 从该包所附带的同一绘图渲染)。 重启后你会得到什么 - 整个界面为意大利语(设置 → 通用 → 语言可切换回来;该选择会持久保存)。 - 一个费用胶囊位于编辑器统计信息旁边(1 turni 107 passi … $0,79),其面板显示 总额以及构成它的三个计费桶。 - 一个高峰时段小组件位于新建会话上方,说明你当前所处的分钟是否按高峰 费率计费,并附有你自己时区的时间表。 - 你的 DeepSeek 余额显示在设置行上,从提供商读取。 - DavCode AGENT 品牌取代自带的鱼:侧边栏行中的组合标识(按该行实际 高度绘制——其名称以 18.3px 渲染,自带行自身的名称为 18px),折叠栏中的标记, 空白会话屏幕上单独的图稿为 231×56(无问候语、无预览 徽章,任何语言下皆如此),窗口标题中的 DavCode AGENT,以及一个标签页图标——随主题 在浅色或深色变体之间切换。这是品牌替换,而非分支:不编辑任何自带内容, 移除该包即可让鱼及其问候语恢复。 在 DSH 发行版之后更新语言包 新增语言键的发行版会让这些键保持英文(该包只注册它知道的内容, 而语言运行时按每个键回退到 en)。拾取它们是一项增量工作:批次 从新字典重新生成,因此现有翻译通过命名空间 以及 key,这才是它们真正关于的内容。 node tools/locale/extract2.mjs # 已发布的词典 -> dicts.json node tools/locale/coverage-diff.mjs dicts-.json dicts.json it-dictionaries.json 某个语言包会让哪些字符串仍保留为英文 node tools/locale/plan-update.mjs dicts-.json dicts.json \ updates/-plan.json # 该版本新增和改写了什么 把新键的意大利语译文,以及对改写过的键的审校,写入 updates/.json node tools/locale/split.mjs # dicts.json -> batches/batch-NN.json node tools/locale/apply-update.mjs updates/.json # carry + apply -> it/batch-NN.json node tools/locale/validate.mjs # 占位符、覆盖率、遗留项 node tools/locale/fix-and-group.mjs # 针对性修复 + 审校分组 node tools/locale/finalize.mjs # 校验,生成 it-dictionaries.json node tools/locale/build-pack.mjs # 写入 packages/dsh-locale-it node tools/locale/test-pack.mjs # 证明该捆绑包注册了所有内容 node tools/locale/verify-locale-update.mjs # 从已安装的语言包中读回这些字符串 当某个批次中的某个键既没有沿用译文,也没有在更新文件中对应条目时,apply-update.mjs 会让本次运行失败;当更新文件中的某个条目在任何地方都匹配不到任何键时,也会失败:第二种情况正是某个键在命名空间和键名之间被错误拆分的方式——是 settings + connection.restart,而不是 settings.connection + restart——否则它就会在无人察觉的情况下以英文发布。该版本删除的键则直接从批次中移除。 tools/locale/GLOSSARIO.md 是本次翻译所依据的术语约定,it-dictionaries.json 是已发布捆绑包背后最终完成的真相来源,而 updates/ 则按版本保存了该版本确切翻译了什么。 验证 cost 包 node tools/cost/test-balance.mjs # provider response mapping, credential resolution, caching node tools/cost/test-provenance.mjs # prices against the official page, in both languages node tools/cost/test-tree.mjs # the session-tree reader against an independent scan node tools/cost/test-projection.mjs # the fold against a real session log node tools/cost/test-client.mjs # the browser half, rendered by a minimal React runtime node tools/cost/reconcile.mjs # computed cost vs the provider's own usage figure 这些工具会自行发现 $DSH_HOME、两个语言包以及会话日志(tools/paths.mjs),而需要会话日志的测试会接收一个作为参数,否则就使用磁盘上最新的那个。 验证 brand 包 sh node tools/brand/test-brand.mjs # 图形、两套调色板、座位、效果 node tools/brand/inspect-brand.cjs both # 运行中的 UI 里的行、侧栏和主视觉,两种方案 node tools/brand/shoot-rail.cjs dark # 折叠后的侧边栏,完整 node tools/brand/shoot-hero.cjs light # 空白会话屏幕,完整 node tools/brand/make-icon.mjs [out.ico] # Windows 启动器图标,来自同一个标记 test-brand.mjs 针对 packages/dsh-brand-davcode 运行,并且当该包已安装时,还会检查 已安装的 bundle 是否就是同一个文件(通过哈希比对)——因此“仓库与机器一致” 是一个测试结果,而不是一个假设。这三个浏览器工具需要一个可解析的 playwright (以及一个正在运行的 dsh web: 是页面自身的 token URL),并将它们的截图写入 lab/。 验证安装 sh node tools/verify/verify-install.mjs # npx 缓存的 DSH 目录树,找到的最新一个 node tools/verify/verify-install.mjs --offline # 同上,但不做 tarball 交叉校验 node tools/verify/verify-install.selftest.mjs # 证明检查器在损坏的目录树上会失败 统计包数量并向 CLI 询问 --version 证明不了什么:--version 不会加载任何插件,而且一个 包可能文件被截断却依然存在——这正是被中断的 npm install 留下的结果。检查器改为报告三件事: 每个带有 package.json 的 node_modules 目录、每个声明的依赖都能从其声明位置解析,以及 包声明的每个运行时文件都存在——当某个文件不存在时,由已发布的 tarball 来判定那是 损坏还是上游打包问题。残留的 lock 文件被解读为“安装被中断”,这是重装的理由,而不是进一步排查的理由。 在另一台机器上复现这一切 docs/Prompt-Installazione-DSH.md 是为另一个 agent 写出的完整任务(它就是本仓库安装时所依据的 提示词):哪个版本、哪些包、快捷方式必须是 DavCode AGENT 并使用这个图标、桌面必须保持 干净,以及 API key 只询问而绝不写入任何地方。docs/brand/ 保存品牌的来源:标记从中选出的 两个提案页面,以及在运行中的 UI 里拍摄的参考截图(行、侧栏、空白会话、图标)。 在你依赖这些之前值得了解的事 - 品牌图形是数据,不是重绘。 所提供图形中的每个坐标、粗细、锚点和颜色都被转录到 packages/dsh-brand-davcode/lib/client.js 中,并且 tools/brand/test-brand.mjs 在两套调色板下 断言所有这些。该行打开随附 CSS 赋予品牌的 24px 盒子,并按该行实际具有的高度绘制画布 (44px,或在窄侧边栏中更小,但绝不低于 24)——这是缩放,绝不是裁剪或重新居中。该包的 README 详细说明了其中的算术。 - 价格是数据,不是代码。 packages/dsh-session-cost/prices.json 承载已发布的费率、 高峰时段(以 UTC 计)、模型别名,以及读取来源的 URL 和日期。编辑该 文件会在下次读取时为每个会话重新计价,无需重启,也无需重新折叠。一个更改 价格的发布版本只需更新该文件,别无其他。 - 费用数字涵盖一个会话及其子代理。 委派的工作在各自的会话中运行, 因此这棵树由子会话的日志组装而成;药丸的辅助功能名称也说明了这一点。 - 有两个位置不是组合席位。 高峰小组件位于品牌行和 New session 按钮之间,而余额位于 Settings 行内。这两个位置在已发布的组合中 都不作为插槽存在,因此二者都锚定到 CSS 模块类名的源本地那一半, 并在 React 丢弃它们时重新插入。如果某次更新重命名了这些类,二者都会回退到 受支持的侧边栏页脚席位,而不是消失——详情请参阅该包的 README。 - 任何凭据都不会到达浏览器。 余额通过 credentials 服务(与 Models 页面写入的是同一引用)在宿主侧读取,绝不通过第二个密钥存储,也绝不 跨越到页面。 许可证 MIT —— 见 LICENSE,与各包在其 package.json 中声明的许可证相同。 此处内容与 DeepSeek 无任何关联,也未获其认可;每个包都是本地新增项,不触及 任何已发布文件。
扫码进群