编者按

WJNCT55555/dsh-achievements

DSH Web 成就系统:画廊支持按分类/难度双排序、解锁 toast、侧栏奖杯、输入坞进度读条、联动成就,并本地持久化进度。

这是一个 DeepSeek Harness(DSH)插件。本站汇总其 GitHub README、安装信息、维护状态与公开安全信号。

dsh-achievements · DeepSeek Harness 成就系统

DeepSeek Harness(DSH)编写的进程级(全局)成就系统插件。观察 agent / session 事件,把工具调用、文件操作、子代理、workflow、goal、preset 切换等行为折叠成成就进度,解锁时弹出 toast 并写入一次性队列,供浏览器画廊、侧栏奖杯与输入坞读条展示。

组成

本仓库发布为三个 npm 包(bundle + 两个子包):

目录说明
@wjnct55555/dsh-achievements-bundle仓库根可安装 bundle:声明 dsh.bundle patch,挂载下面两个包
@wjnct55555/dsh-achievementspackages/extensions/achievements/宿主侧引擎:事件监听、计数、解锁队列、只读 Remote(list / recent / dock / deepState / setDeepInsights / telemetryState / setTelemetry / rates / stats)与 list_achievements 工具
@wjnct55555/dsh-client-ui-achievementspackages/extensions/ui-achievements/浏览器侧界面:设置页画廊、toast 堆栈、侧栏奖杯、输入坞读条、画廊浮层

设计文档

架构、规则引擎、52 个成就目录、客户端数据流与未来演进方向(参考 AGPA 的可达性审计 / 规则扩展 / hint-tip 引导等候选)见 docs/DESIGN.md

功能

  • 52 个成就,分 启程 / 工具大师 / 文件工匠 / 编排 / 目标 / 技能 / 模型 / 行为 / 联动 / 隐藏 十类,稀有度覆盖 普通 → 稀有 → 史诗 → 传说
  • 本地持久化:计数与解锁写入 ~/.agent-achievements/state.json,重启后完整保留。
  • 画廊双排序:按分类(默认)或按难度(稀有度)查看。
  • 数据仪表盘:分类进度中空环形图与当月活动日历热力图并排一行(高度对齐,均可折叠);稀有度分布以按稀有度着色的分段滑条呈现。
  • 成就管理:红色「清除成就记录」按钮带二次确认弹窗,一键清空全部进度(匿名统计开关与匿名标识保留)。
  • 多 UI 表面:解锁 toast(史诗/传说带彩纸)、侧栏奖杯(未读角标)、输入坞进度读条、设置页画廊与奖杯弹出的全屏画廊。
  • 联动成就「吾栖之肤」:检测到 dsh-deep-whale 鲸鱼娘皮肤插件(github.com/Small-tailqwq/dsh-deep-whale)已安装时自动解锁。
  • 隐藏成就:达成前名称/描述以 ??? 显示。

截图

奖杯按钮弹出的成就画廊(复古终端风格):

成就画廊

隐私

分层设计,默认零上传。

  • 基础层(默认):监听器只读取叶子标量(工具名、成功标志、agent id、事件类型、文件路径、token 计数),从不读取消息正文、文件内容、错误详情或搜索结果。
  • 深度洞察层(opt-in,默认关闭):首次运行通过设置页询问,启用后允许对消息正文正则匹配与历史会话扫描,仅用于成就解锁;正文只在运行时匹配、绝不落盘
  • 匿名统计(opt-in,默认关闭):为显示「约 x% 用户获得」,用户可在画廊设置中显式开启。开启后仅上报成就 id、稀有度与随机匿名安装标识(POST {endpoint}/unlock),绝不包含会话、工具、文件或内容数据;获得率通过 GET {endpoint}/stats 拉取并本地缓存。未配置 telemetryEndpoint 或未开启时不发生任何网络请求。免费后端参考实现见 docs/telemetry-worker.js(Cloudflare Workers 免费层,零成本)。
  • 持久化:只保存成就进度与匿名统计开关到本地 JSON(~/.agent-achievements/state.json),不含任何消息/文件内容。

启用匿名统计

# cordis.yml 中给插件配置统计端点(部署免费 Worker 后替换为你的地址)
- plugin: @wjnct55555/dsh-achievements
  config:
    telemetryEndpoint: https://your-name.workers.dev

然后在成就画廊设置里打开「匿名统计」开关。开关状态会持久化,重启后保留。

构建与安装

安装(推荐:npm)

dsh plugin --profile web add @wjnct55555/dsh-achievements-bundle

安装(git 方式)

git clone https://github.com/WJNCT55555/dsh-achievements
dsh plugin --profile web add ../dsh-achievements

从源码构建

三个包由 DSH 工作区构建(lib/ 产物已随仓库提供;需重新构建时在 DSH checkout 中放入 packages/extensions/):

pnpm install --offline
pnpm exec tsc -b packages/extensions/achievements packages/extensions/ui-achievements
pnpm exec tsdown --env.DSH_BUILD_FACE host   # 生成宿主侧 Typert 工件
pnpm --filter @wjnct55555/dsh-client-ui-achievements bundle  # 构建浏览器侧

宿主侧依赖 @deepseek-ai/cordis-plugin-loader 读取 Loader 条目以检测联动皮肤。浏览器侧挂载于 settings.sectionshell.overlaysidebar.footer.actionconversation.composer.dock 四个槽位。

测试

pnpm exec vitest run packages/extensions/achievements/tests/achievements.spec.ts

覆盖:会话播种、工具计数、连击重置、并发子代理、phoenix 恢复解锁、marathon 回合隔离、联动皮肤检测、token 按会话去重、匿名统计开关与上报等 27 个用例。

许可

MIT。见各包 package.json 与本仓库根目录 LICENSE

REPOSITORY SIGNALS

安全与安装证据

该分数只基于公开仓库元数据与本站登记的安装证据,不等同于代码安全审计。

来源可追溯

来自公开插件目录,并链接到公开 GitHub 仓库。

许可证

仓库声明 MIT 许可证。

维护活跃度

最近 180 天内有代码更新。

安装证据

尚未登记可复验的精确安装元数据,请按仓库说明手动检查。

安装生命周期脚本

已检查的包元数据未声明安装生命周期脚本。