dsh-achievements

DSH PLUGIN娱乐与实验

仓库 Blaczz/dsh-achievements · npm dsh-achievements

娱乐与实验 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 添加成就与游戏化系统:跨会话徽章、解锁通知、成就面板及 ctx.achievements 服务,零核心改动。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 1 · 未关闭 issue 0
最近更新 2026-09-09 创建于 2026-08-14
README 13.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Blaczz/dsh-achievements
兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求>=22.19.0来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@>=4.0.1-rc.1 <5.0.0、@deepseek-ai/dsh-client-runtime@>=0.1.0-rc.3 <0.2.0 等 12 个需要同时安装的同级依赖
npm 包名dsh-achievements可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-achievements:为 DeepSeek Harness 会话注入成就与游戏化体验

  • 68个成就徽章
  • 实时解锁通知
  • 成就面板展示
  • 提供公开SDK

适用场景

记忆通知

上游标签

cordisdeepseek-harnessdshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

娱乐与实验
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Blaczz仓库 dsh-achievements · 默认分支 main
分类娱乐与实验game
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 1 / 0收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-09-09最后推送 2026-09-09
本站收录2026-08-14首次进入本站目录的时间

README 全文

13.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-achievements 🏆

> DeepSeek Harness(DSH) 的游戏化插件:68 个成就横跨七条五档成长线、会话行为徽章与轨迹链——实时解锁 toast、设置页徽章墙、可分享成就卡、Agent Wrapped,以及面向第三方 Pack 的公开 SDK。零核心改动。

English | 简体中文

📸 运行效果

成就面板:档案卡、稀有度统计、终身计数与分组徽章墙 展开的成就卡片:图标、稀有度、描述、进度、XP 与解锁时间

✨ 亮点

  • 68 个成就、三条产品线 —— 七条五档终身成长线(稀有度严格 普通 → 罕见 → 稀有 → 史诗 → 传说)、10 个单会话行为徽章、以及四条额外链上的 20 个会话轨迹成就(其中一条完全隐藏)。每次解锁都赚取 XP、提升等级与 persona,并在徽章墙上留下时间戳。
  • 实时解锁,无需额外服务 —— 新成就经 SSE 实时推送到浏览器,另有 30s 轮询兜底(窗口聚焦/可见时立即刷新)。首次快照只做基线,重装与升级永远不会触发 toast 风暴。
  • 零核心改动 —— Host 半只监听官方 session/event 事件缝:turn/end、step/start、assistant/message、step/end、tool/call、tool/result,以及 Code Mode 的 tool/code-dispatch。全部只读事件,不打核心补丁、不改运行时。
  • 纯函数、可独立单测的核心 —— 严格三层流水线:事件分类器 → 状态 reducer → 解锁 evaluate。每一层都是纯函数且有独立测试:19 个测试文件、251 个用例,全部通过。
  • 跨会话持久化、平滑升级 —— v2 状态(profile + 会话桶)以 JSON 存在 DSH 主目录;v1 状态无损迁移。终身计数落在 profile 上,不依赖 64 会话保留窗口;升级时缺失计数保守回填为可证明下界,已满足的里程碑在启动时静默补解锁(不走 reducer、不写 session、不广播)。
  • O(1) 轨迹统计 —— P7 会话事实只在低频边界维护(step/start、assistant/message、step/end、settled 工具调用);逐 token 的 chunk 从不被消费或持久化。
  • 隐私安全内建 —— 分享文本、分享卡、Agent Wrapped 与成就链只读聚合计数、成就元数据、persona 与等级;文件路径与命令字符串永不离开引擎。
  • 开放 SDK —— 第三方 Host 插件通过 ctx.achievements.register / registerPack 注册成就,与内置成就走完全相同的求值路径;重复 id 立即抛错。其它客户端插件经 ctx.achievementsState 读取状态。

🏅 成就体系(68 个)

成就分两条产品线。七条长期成长线各含五档,稀有度严格 普通 → 罕见 → 稀有 → 史诗 → 传说(新增里程碑 XP 为 10 / 30 / 75 / 175 / 400):

| 成长线 | 普通 | 罕见 | 稀有 | 史诗 | 传说 |
|---|---|---:|---:|---:|---:|---:|
| 🎬 回合 | 1 | 25 | 50 | 100 | 500 |
| 🔧 工具调用 | 1 | 25 | 100 | 500 | 2000 |
| 💬 会话 | 1 | 10 | 50 | 200 | 500 |
| 🌅 活跃天数 | 1 | 7 | 30 | 100 | 365 |
| 📖 文件读取 | 10 | 100 | 500 | 2500 | 10000 |
| ✏️ 文件修改 | 1 | 10 | 50 | 250 | 1000 |
| 🧪 测试运行 | 1 | 10 | 50 | 250 | 1000 |

特殊成就 —— 连续天数(streak-3 / streak-7)、早期额外节点 ten-turns,以及 10 个单会话行为徽章:

成就 条件
🔁 似曾相识 同一文件修改 5 次
🕳 兔子洞 第一次修改前读取 20 个文件
💣 先斩后奏 第一次测试前修改 8 个文件
🔥 终于通了 测试失败 5 次后成功
🎰 这次一定 同一测试命令连续失败 5 次
🎯 一发入魂 只改一次,首次测试即通过
📚 图书管理员 单会话读取 30 个不同文件
🌱 出门走走 单会话工具调用 100 次
🦴 依赖考古学家 读取依赖目录(node_modules / site-packages / vendor)下的文件
🗿 巨佬模式 ≤5 次工具调用内完成 读→改→测 且通过

P7 轨迹链(20 个成就,稀有度严格 普通 → 罕见 → 稀有 → 史诗 → 传说,XP 10 / 20 / 40 / 70 / 120)。只读低频边界,不逐 token 持久化:

链 指标 五档阈值
💬 会话马拉松 单会话完成回合数(按有 closed step 的 distinct turn 计) 5 / 20 / 50 / 100 / 200
🪜 单轮深潜 单回合内关闭的步骤数(按 step/end 计) 5 / 20 / 50 / 100 / 500
🔧 工具齐射 单步骤内 settled 工具调用数(含 Code Mode 子调用) 5 / 10 / 25 / 50 / 100
⏳ 时间异象 单次模型请求思考耗时(step/start → assistant/message,隐藏彩蛋) 30s / 100s / 300s / 500s / 1000s

⚙️ 架构

DSH session/event(turn/end、step/start、assistant/message、step/end、tool/call、tool/result、tool/code-dispatch)
→ src/events.ts        分类器    — 原始 payload → 标准化 AchievementEvent + ToolSummary
→ src/reducer.ts       reducer   — 纯 reduceState:profile 计数 + 会话行为 + P7 轨迹事实
→ src/achievements.ts  evaluate  — applyEvent:buildContext + 对每个未解锁 def 求值
→ src/index.ts         Host      — 持久化 JSON → SSE 推送(unlock)+ 只读 HTTP API;启动静默 reconcile
→ src/client/          Browser   — EventSource + 30s 轮询 → 徽章墙 + 解锁 toast

三层完全解耦、可独立单测;规则层永远不直接读 Harness 的 tool payload。浏览器 bundle 只能运行时 import 浏览器安全的模块(tsdown.config.ts 的纯度门禁会拦截任何 node:* 越界导入)。

📦 安装

前置:DSH(dsh web 可运行)、Node ≥ 22.19。

# GitHub 安装(预构建 lib/ 已提交,无需 allowBuilds)
dsh plugin --profile web add &quot;github:Blaczz/dsh-achievements#main&quot;

# 本地目录安装(Windows 上 npm pack 最稳,别用 `link:`)
cd dsh-achievements &amp;&amp; npm install --legacy-peer-deps &amp;&amp; npm run build
npm pack --ignore-scripts
dsh plugin --profile web add &quot;&lt;绝对路径&gt;\dsh-achievements-0.2.0.tgz&quot;

安装后重启 dsh web,然后正常使用——完成第一个回合即解锁第一个成就(所有统计走官方事件缝,正常对话即可)。

🎮 使用

  1. 正常对话、让 agent 干活——回合、工具调用、新会话、每日活跃都会静默累计;解锁新成就时右下角弹出 toast(带稀有度配色、XP 与风味文本)。
  2. 设置 → 🏆 成就 展示完整体验:
    - 档案卡 —— persona、等级与 XP 进度、已解锁/总数、常用工具与稀有度分布;
    - 终身计数 —— 回合 / 工具调用 / 会话 / 活跃天数 / 读取 / 修改 / 测试,外加当前与最长连续天数;
    - 徽章墙 —— 按七条成长路线与特殊/轨迹链折叠,组 header 直接显示进度条;支持"全部 / 未解锁 / 已解锁"筛选;已解锁带时间戳、未解锁置灰,隐藏成就未解锁时仅显示 ???;
    - 会话战报 —— 最近会话的回合、步骤、最深单轮、工具调用与读/改/测拆分;
    - 🎁 Agent Wrapped 与 📤 分享 —— 本地、私密的年度总结与可分享成就卡。

🔌 开发者:ctx.achievements SDK

从宿主插件注册自定义成就——内置与第三方 Pack 共享同一条求值路径与同一个 registry(重复 id 抛错):

export const inject = [&#x27;achievements&#x27;]

export function apply(ctx: Context): void {
ctx.achievements.register({
id: &#x27;python-first-run&#x27;,
icon: &#x27;🐍&#x27;,
title: { zh: &#x27;蟒蛇出洞&#x27;, en: &#x27;First Python Run&#x27; },
description: { zh: &#x27;首次运行 Python&#x27;, en: &#x27;Run Python for the first time&#x27; },
rarity: &#x27;uncommon&#x27;,
xp: 20,
scope: &#x27;session&#x27;,
evaluate: ctx =&gt; ({ unlocked: ctx.session.toolCalls &gt;= 1 }),
})
}

也可注册整个 Pack:ctx.achievements.registerPack({ id, version, name, achievements })。注册即 reconcile——已满足的 lifetime Pack 无需等待下一个实时事件即可解锁。完整指南见 docs/SDK.md,可运行示例见 examples/python-pack.ts。

浏览器侧,其它客户端插件通过 ctx.achievementsState.refresh() / ctx.achievementsState.unlockedIds() 读取状态。

🛠️ 本地开发

npm install --legacy-peer-deps
$env:DSH_NODE_MODULES = &quot;$env:USERPROFILE\.dsh\profiles\node_modules&quot;   # PowerShell;本地运行时 symlink
npm run setup:dsh-workspace
npm run verify     # ★ 一键门禁:clean + typecheck + test + build(含浏览器纯度门禁)
npm test           # vitest — 19 文件 / 251 用例(引擎规则、连击、幂等、SDK、manifest…)

> 注:若 npm run build 报 Failed to import module &quot;unrun&quot;,先执行一次 npm install --no-save unrun(tsdown optional peer,建议 Node ≥ 22.19)。

📁 目录结构

dsh-achievements/
├── package.json            # dsh.bundle.patch + dsh.client 双契约
├── cordis.patch.yml        # bundle 补丁层
├── tsdown.config.ts        # client bundle + 浏览器纯度门禁
├── scripts/                # build / clean / setup-dsh-workspace / verify
├── docs/SDK.md             # 第三方作者指南
├── examples/python-pack.ts # 可运行的示例 Pack
├── src/
│   ├── index.ts            # Host 半:事件接线、registry、持久化、HTTP + SSE、SDK
│   ├── events.ts           # ★ 事件分类器(标准化 AchievementEvent + ToolSummary)
│   ├── reducer.ts          # ★ 纯 reducer(reduceState / buildContext)
│   ├── achievements.ts     # ★ 纯引擎(applyEvent)+ 领域模型 + 68 个内置成就
│   ├── state.ts            # State v2(profile + sessions)、迁移、JSON 持久化
│   ├── sdk.ts              # createAchievementRegistry + AchievementPack
│   ├── gamification.ts     # levelOf / xpForLevel / RARITY_META(浏览器安全)
│   ├── profile.ts          # Profile ViewModel + persona + 稀有度汇总(浏览器安全)
│   ├── share.ts            # 分享卡 / Agent Wrapped / 成就链(浏览器安全、隐私安全)
│   ├── api.ts              # API 路径常量 + SSE 帧格式(浏览器安全)
│   └── client/             # 浏览器半
│       ├── index.ts        # apply:ctx.achievementsState + 轮询 + SSE + 槽位注入
│       ├── achievements-client.ts  # 状态 HTTP client
│       ├── badge-panel.tsx # 徽章墙(settings.section),分组源自链模型而非硬编码
│       ├── toast.ts        # 解锁 toast(零依赖 DOM)
│       └── unlock-tracker.ts  # toast 基线去重(纯函数)
└── tests/                  # 19 个 spec:classifier / reducer / evaluate / state / SDK / 链…

🧩 生态定位

  • 填补空白 —— DSH 生态此前无统一成就/徽章系统(社区调研明确点名"暂无真正游戏化任务/成就/等级系统")。
  • 与 dsh-soundscape 同一套双面包范式 —— Host 走官方事件缝驱动纯引擎;浏览器半是 client 插件(settings.section + 状态轮询)。
  • 零核心改动 —— 只读事件 + 自有状态文件 + ctx.effect 注册。本仓库是 Blaczz/dsh-achievements 的 fork,在其基础上扩展了行为 + 轨迹成就、SDK 与分享层。

🛡️ DSH STORE 上架契约

  • 清单身份 —— repository 指向 canonical Blaczz/dsh-achievements;bundle 入口 id(cordis.patch.yml)为插件自有 dsh-achievements,与已批准目录占用的 achievements / ui-achievements(旧 @wjnct55555/dsh-achievements-bundle)保持区分,只做增量注册、不冒用他人入口。
  • 兼容声明 —— dsh.compatibility 声明 DSH 范围、Node 范围与 dshReleases 逐版本精确记录;只有在该精确版本上真实跑过一次一次性 Profile 才标 compatible,其余保持 unknown。
  • 一次性 Profile 证据 —— scripts/store-evidence.mjs 会引导隔离 Profile(全新临时 $DSH_HOME、固定官方 @deepseek-ai/dsh@ + @deepseek-ai/dsh-web-app@)、安装打包产物、校验组合配置、无头启动 web 至监听、再卸载并清理 Profile。已捕获运行:
  • docs/store-evidence-0.1.5-alpha.1.md —— 在 @deepseek-ai/[email protected] 上 install / start / uninstall 通过。

⚖️ License

MIT © 2026 Blaczz(上游)。独立社区插件,与 DeepSeek Harness 无关。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-achievements 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:Blaczz/dsh-achievements` 即可。对应的 npm 包名是 `dsh-achievements`。

dsh-achievements 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-achievements 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-achievements 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.2-alpha.1。

dsh-achievements 需要什么运行环境?

Node.js >=22.19.0;需要同时安装 @deepseek-ai/cordis@>=4.0.1-rc.1 <5.0.0、@deepseek-ai/dsh-client-runtime@>=0.1.0-rc.3 <0.2.0、@deepseek-ai/dsh-client-ui-primitives@>=0.1.0-rc.3 <0.2.0、@deepseek-ai/dsh-client-ui-settings@>=0.1.0-rc.3 <0.2.0、@deepseek-ai/dsh-client-ui-slots@>=0.1.0-rc.3 <0.2.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-achievements 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-achievements 有哪些功能?

68个成就徽章、实时解锁通知、成就面板展示、提供公开SDK。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

4 条
不同作者的仓库分开列,请确认你要装的是哪一个
娱乐与实验
按星标排序,可作替代方案

petdex

petdex

L4 · 沙盒安装通过 4,211 星

zhuzhiliao

zhuzhiliao

竹知了 —— 一转就哇哇叫的传统玩具,Web 模拟版。零依赖单文件,真实录音采样,移动端优先。

L4 · 沙盒安装通过 2,880 星

dsh-tavern

dsh-tavern

基于DSH的Agent酒馆。类酒馆文字游戏Agent。兼容SillyTavern生态,人物卡直接导入就能玩。更快、更稳、更鲜活。所有模型都能

L4 · 沙盒安装通过 822 星

oh-story-dsh

oh-story-dsh

DeepSeek 写网文/小说的工作流插件:DeepSeek Harness 社区插件,内置小说、短剧、游戏、视频解说四个工作台

L4 · 沙盒安装通过 477 星

ai-art-engine

ai-art-engine

AI 艺术创作引擎,专业的短视频,游戏3D资产,2D资产,广告创作工具

L4 · 沙盒安装通过 218 星

gal-view

gal-view

gal-view 为 DeepSeek Harness 的 Web 会话页带来 Galgame 风格对话视图与场景元素可视化编辑器,让聊天变

L5 · 运行验证通过 202 星

Blaczz 的其它插件

3 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。