# dsh-rick [English](README.md) | 中文 DeepSeek Harness 的 C-137 皮肤:28 张目录海报、自定义场景、霓虹外观,以及叠加层宠物(Rick、Morty、传送枪)。 需要 DeepSeek Harness **0.2.x**(已在 0.2.0-rc.2 上验证)。0.1.x 及更早版本用的是 0.2.0 之前那套设置模型,本插件不再面向那些版本。 ![C-137 首页](docs/preview.png) 可通过 `dsh plugin add` 安装(声明 `dsh.bundle` + `dsh.client`)。仓库格式遵循 [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)。 ## 安装 ```sh dsh plugin --profile web add github:xxxrickymorty-dev/dsh-rick dsh web ``` 然后打开 设置 → 通用 → 皮肤。「默认」没有删除;每张海报和自定义卡都可以删。点一张海报即打开 C-137(固定深色,不改外观偏好)。点 Rick 出口头禅;**Portal gun** 掏枪,再点一次 Rick 开门。把 Rick 或 Morty 拖进传送门即可收纳。两人都在门里时,点一次放出 Rick,再点放出 Morty,再点传送门缩小并关闭。 不要把本插件装到已经把 C-137 内置进 `@deepseek-ai/dsh-client-ui-theme` 的 DeepSeek Harness 上。会出现两行皮肤,并且都会写 `data-dsh-skin`。 卸载: ```sh dsh plugin --profile web remove dsh-rick ``` ## 截图 皮肤行:目录海报和透明度。 ![皮肤行](docs/screenshots/settings.png) 首页上的叠加宠物。 ![首页叠加](docs/screenshots/home.png) 口头禅在所有语言下都是英文。 ![口头禅](docs/screenshots/catchphrases.png) 传送枪、放大和挥手。 ![传送门和挥手](docs/screenshots/portal-wave.png) Pickle Rick。 ![Pickle Rick](docs/screenshots/pickle.png) 传送门和 Pickle Rick。 ![Pickle 和传送门](docs/screenshots/pickle-portal.png) Rick 的挥手台词。 ![Rick 挥手](docs/screenshots/rick-wave.png) 一张目录海报,两只宠物都在台上。 ![扑克场景](docs/screenshots/poker.png) 会话 running 时的 think 帧。 ![思考](docs/screenshots/thinking.png) ## 它加了什么 - 外观之后的皮肤行:默认、自定义场景(最多 12 张)、目录 `01`–`28`、添加图片 - 持久化设置节 `c137`:Loader 行 id 就是设置命名空间(`cordis.patch.yml` 里的 `id: c137`),`skin`、`skinBackground`、`skinBgOpacity`、`customScenes`、`hiddenCatalog` 由一个 volatile `Config` schema 声明,所以切换皮肤只提交配置、不重挂载插件 - 皮肤为 `c137` 时在 `shell.overlay` 上的宠物(最多 4 只) - C-137 的配色通过 `ctx.theme.overrideTokens` 注册成 ui-theme 的 alias token 层,只在皮肤开启期间持有;各层表面在这里做成半透明,`body::before` 的海报层才能透过界面显出来 - Host 路由 `/dsh-c137/*`,提供海报、宠物帧和 `c137.css` 不改 `agent-loop`,也不写入会话日志。口头禅在所有语言下都是英文。 ### 皮肤是怎么画的 本插件不绘制任何应用外壳,所以它的视觉部分完全在 document 层:静态样式表所依赖的 `body[data-dsh-skin='c137']` 属性,加上那个 alias token 层。 token 层是唯一能生效的机制。ui-theme 的呈现器把活动 token 写成 body 上的**内联**样式, 所以样式表里重新定义 `--dsw-*` token 会被静默压掉;注册 token 层则是把值折进活动定义, 呈现器写出来的就是我们的值。呈现器同时拥有 `body[data-ds-dark-theme]` 和根元素的 `color-scheme`,两者都由「外观」偏好推导,所以固定深色的皮肤是用 `MutationObserver` 重新声明它们,而不是去改那个偏好。 结构是唯一无法重新命中的部分:0.2.0 的 frame 和 sidebar 用带哈希的 CSS module 类名渲染, 没有稳定属性可选,所以这套皮肤原来用的列级规则(`[data-app-frame]`、`[data-app-sidebar]`、 `[data-message-bubble]` 等)现在匹配不到任何东西,那些表面改由 token 提供。 `[data-composer-seat]` 和 `[data-composer-card]` 是样式表仍在使用的两个稳定钩子。 ## 目录 ``` index.js # Host:settings schema + 静态资源 cordis.patch.yml # dsh.bundle patch(`dsh plugin add` 必需) lib/client.js # 预构建浏览器工厂(`window.__ModuleLoader__`) assets/ # c137.css、scenes/bg-NN.png、pets/*.png src/client/ # 皮肤行、宠物、运行时(`npm run build` 重新打包) docs/ # README 预览和截图 ``` ## 重新构建客户端包 ```sh npm install npm run build ``` ## 声明 Rick and Morty 角色及形象归其权利方所有。本插件是粉丝皮肤,不是 DeepSeek 或 Adult Swim 的官方产品。