dlaoshi-outfit 0.0.0-stage → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,38 @@
1
+ # Changelog
2
+
3
+ ## 2.1.0 — 2026-10-22
4
+
5
+ 发布到 npm,安装只需一行。
6
+
7
+ - 包名从 `@local/dsh-fatfish-outfit` 改为 **`dlaoshi-outfit`**(可在 npm 与 DSH 插件市场搜索安装)
8
+ - `cordis.patch.yml` 的插件名同步为 `dlaoshi-outfit`
9
+ - `package.json` 增加 `files` 白名单与 `publishConfig`,npm 包只带运行必需文件
10
+ - README 安装章节改为「一条命令 / GitHub / 手动」三种方式
11
+ - 市场描述关键词调整为:鲸鱼正太、女仆装、二次元
12
+
13
+ > 从 `@local/...` 升级的用户:先卸载旧条目(`dsh plugin remove @local/dsh-fatfish-outfit`),再装 `dlaoshi-outfit`。
14
+
15
+ ## 2.0.1 — 2026-10-22
16
+
17
+ 文档与协作设施补全(无功能变更)。
18
+
19
+ - 新增 `CONTRIBUTING.md`、`SECURITY.md`
20
+ - 新增 Issue 模板(Bug 报告 / 功能请求)与 PR 模板
21
+ - README 增加 CI / License / 插件 / Release 徽章与发布包入口
22
+ - 首个 GitHub Release 与发布包 `dlaoshi-outfit-opensource.zip`
23
+
24
+ ## 2.0.0 — 2026-10-22
25
+
26
+ 第一个公开版本。
27
+
28
+ - **桌宠**:4 种表情、自由拖拽、位置记忆、点击切换、状态联动
29
+ - **右下角立牌**:每轮结束弹出 token 消耗与思考时间气泡;点击 q 弹 + 气泡膜音效 + 独立余额气泡
30
+ - **聊天皮肤**:背景壁纸、液态玻璃输入框;消息区改为纯文字(无玻璃、无黑色气泡)
31
+ - **设置开关**:设置 › 通用 里一键启用/禁用整套外观,状态持久化
32
+ - **宿主统计**:`session/event` + `llm/stream` 采集,`/fatfish/*` 回环路由
33
+ - **测试**:四套无浏览器行为测试 + GitHub Actions CI
34
+ - **工具**:抠图、壁纸生成、素材内联脚本
35
+
36
+ ## 1.0.0
37
+
38
+ 内部初版:桌宠形象替换、四表情、侧栏头像与开屏立绘。
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 use3346631993
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE ADDED
@@ -0,0 +1,22 @@
1
+ NOTICE — artwork and character
2
+
3
+ The MIT license in LICENSE covers the source code of this plugin only.
4
+
5
+ Character artwork
6
+ -----------------
7
+ The character illustrations under `assets/` (and the copies inlined into
8
+ `client.js`) were supplied by the plugin author. They are distributed here for
9
+ use together with this plugin; they are NOT covered by the MIT license.
10
+
11
+ If you want to redistribute the artwork itself — in another project, a fork
12
+ with a different character, or a commercial product — please confirm the
13
+ original artwork's license with its author first.
14
+
15
+ If the artwork was generated by you (for example with an image model you have
16
+ rights to use), you may replace this notice with whatever license you prefer,
17
+ such as CC BY 4.0.
18
+
19
+ Third-party assets
20
+ ------------------
21
+ This package embeds no third-party fonts, icons or images. Everything visual is
22
+ either the author's artwork or plain CSS.
package/README.en.md ADDED
@@ -0,0 +1,79 @@
1
+ # Dlaoshi Outfit — a desktop pet & glass theme for DeepSeek Harness
2
+
3
+ A draggable anime desktop pet (a maid-outfit character), a bottom-right standee that
4
+ reports each turn's token usage and thinking time, a chat wallpaper, a liquid-glass
5
+ composer, and a deep-sea blue theme — all in one zero-dependency DSH plugin.
6
+
7
+ ![preview](docs/preview.png)
8
+
9
+ ## Features
10
+
11
+ - **Floating pet** with four expressions, free dragging, remembered position
12
+ - **State machine**: thinking while streaming, happy on success, sad on failure
13
+ - **Click to cycle** expressions, with speech bubbles and idle expiry
14
+ - **Corner standee**: a thought bubble after every turn with token usage and think latency
15
+ - **Poke the standee**: springy squish, bubble-wrap "pop", wallet balance in its own bubble
16
+ - **Chat wallpaper** with a theme-aware veil so text stays readable
17
+ - **Liquid glass** composer; messages stay plain text over the wallpaper
18
+ - **One switch** in Settings › General to enable or disable the whole look
19
+
20
+ ## Install
21
+
22
+ ### A. One command (recommended)
23
+
24
+ ```powershell
25
+ dsh plugin add dlaoshi-outfit
26
+ ```
27
+
28
+ Or in DSH: **Settings → Plugins → Add plugin** and enter `dlaoshi-outfit`, then restart DSH.
29
+
30
+ ### B. From GitHub
31
+
32
+ ```
33
+ https://github.com/use3346631993/dlaoshi-outfit.git
34
+ ```
35
+
36
+ ### C. Manual (offline)
37
+
38
+ 1. Copy the repository into your DSH profile's `node_modules`:
39
+
40
+ ```powershell
41
+ git clone https://github.com/<you>/dlaoshi-outfit.git C:\Users\you\Documents\dlaoshi-outfit
42
+ New-Item -ItemType Directory -Force "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dlaoshi-outfit"
43
+ Copy-Item "C:\Users\you\Documents\dlaoshi-outfit\*" "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dlaoshi-outfit" -Recurse -Force
44
+ ```
45
+
46
+ 2. Add the plugin to `%USERPROFILE%\.dsh\profiles\desktop\package.json`:
47
+
48
+ ```json
49
+ {
50
+ "dsh": { "profile": { "bundles": ["dlaoshi-outfit"] } },
51
+ "dependencies": { "dlaoshi-outfit": "file:C:/Users/you/Documents/dlaoshi-outfit" }
52
+ }
53
+ ```
54
+
55
+ (Keep your existing bundles and dependencies — see `examples/profile.package.json`.)
56
+
57
+ 3. Fully quit and restart DeepSeek Harness.
58
+
59
+ ## Usage
60
+
61
+ - Drag the pet anywhere; the position persists.
62
+ - Click the pet to cycle expressions; it returns to its calm face on its own.
63
+ - Click the corner standee: squish, pop, balance bubble.
64
+ - Toggle the whole outfit in **Settings › General › “D老师” Theme**.
65
+
66
+ ## Development
67
+
68
+ ```powershell
69
+ npm run check
70
+ npm test
71
+ ```
72
+
73
+ The tests run without a browser: fake DOM, fake React, a virtual clock and a fake
74
+ Cordis context drive the real handlers and host logic.
75
+
76
+ ## License
77
+
78
+ - Code: MIT — see `LICENSE`
79
+ - Character artwork: provided by the author, **not** covered by MIT — see `NOTICE`
package/README.md CHANGED
@@ -1,3 +1,169 @@
1
- # Temporary Holding Version
1
+ # 「D老师」桌宠 · DeepSeek Harness 主题插件
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 一只可以**拖到任意位置**的桌宠:**二次元的鲸鱼正太**,穿着**女仆装**,外加右下角**立牌**、
4
+ 聊天区**背景壁纸**、**液态玻璃**输入框与一组深海蓝配色。全部功能打包成一个零依赖的 DSH 插件。
5
+
6
+ > 一个插件、一个开关:不想要的时候滑一下,DSH 立刻回到原样。
7
+
8
+ [![test](https://github.com/use3346631993/dlaoshi-outfit/actions/workflows/ci.yml/badge.svg)](https://github.com/use3346631993/dlaoshi-outfit/actions/workflows/ci.yml)
9
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
10
+ [![npm](https://img.shields.io/npm/v/dlaoshi-outfit.svg)](https://www.npmjs.com/package/dlaoshi-outfit)
11
+ [![DeepSeek Harness plugin](https://img.shields.io/badge/DeepSeek%20Harness-plugin-1E4D8F.svg)](https://github.com/use3346631993/dlaoshi-outfit)
12
+ [![release](https://img.shields.io/badge/release-v2.1.0-2F55E0.svg)](https://github.com/use3346631993/dlaoshi-outfit/releases/latest)
13
+
14
+ > **不想看源码?** 一条命令搞定:`dsh plugin add dlaoshi-outfit`
15
+
16
+ ![预览](docs/preview.jpg)
17
+
18
+ ![预览](docs/preview.jpg)
19
+
20
+ ## 功能
21
+
22
+ | 功能 | 说明 |
23
+ | --- | --- |
24
+ | 🐟 浮动桌宠 | 4 种表情(默认 / 开心 / 思考 / 失望),可自由拖拽,位置会记住 |
25
+ | 🎯 状态联动 | 自动跟随对话:流式输出时进入思考态,成功转开心,报错转失望 |
26
+ | 🖱️ 点击互动 | 单击切换表情(会自己回到默认),带语音气泡与"别戳啦"等台词 |
27
+ | 🪧 右下角立牌 | 常驻右下角,每轮结束弹出气泡:**本次 token 消耗**、**思考时间** |
28
+ | 🫧 点击立牌 | q 弹回弹 + 气泡膜"啵"声 + 单独一个余额气泡(读取官方 `deepseekAccount`) |
29
+ | 🖼️ 聊天背景 | 用你自己的插画做会话区壁纸,主题自适应蒙版保证可读性 |
30
+ | 🧊 液态玻璃 | 输入框磨砂玻璃 + 高光描边(不再有黑气泡,消息为纯文字) |
31
+ | ⚙️ 主题开关 | 设置 › 通用 里的滑动开关:一键启用 / 禁用整套外观 |
32
+
33
+ ## 安装
34
+
35
+ 前置:已安装 **DeepSeek Harness(桌面版)**,并至少启动过一次(生成了 profile)。
36
+
37
+ ### 方式 A:一条命令(推荐)
38
+
39
+ ```powershell
40
+ dsh plugin add dlaoshi-outfit
41
+ ```
42
+
43
+ 或者在 DSH 里打开 **设置 → 插件 → 添加插件**,填:
44
+
45
+ ```
46
+ dlaoshi-outfit
47
+ ```
48
+
49
+ 装完**完全退出并重启** DSH。
50
+
51
+ ### 方式 B:从 GitHub 装
52
+
53
+ ```
54
+ https://github.com/use3346631993/dlaoshi-outfit.git
55
+ ```
56
+
57
+ ### 方式 C:手动(离线 / 网络不好时)
58
+
59
+ 1. 把本仓库复制到 profile 的 `node_modules\dlaoshi-outfit`:
60
+
61
+ ```powershell
62
+ git clone https://github.com/use3346631993/dlaoshi-outfit.git C:\Users\你\Documents\dlaoshi-outfit
63
+ mkdir "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dlaoshi-outfit" -Force
64
+ Copy-Item "C:\Users\你\Documents\dlaoshi-outfit\*" `
65
+ "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dlaoshi-outfit" -Recurse -Force
66
+ ```
67
+
68
+ 2. 编辑 `%USERPROFILE%\.dsh\profiles\desktop\package.json`:
69
+
70
+ ```json
71
+ {
72
+ "dsh": {
73
+ "profile": {
74
+ "bundles": [
75
+ "@deepseek-ai/dsh-base",
76
+ "@deepseek-ai/dsh-web-app",
77
+ "dlaoshi-outfit"
78
+ ]
79
+ }
80
+ },
81
+ "dependencies": {
82
+ "dlaoshi-outfit": "file:C:/Users/你/Documents/dlaoshi-outfit"
83
+ }
84
+ }
85
+ ```
86
+
87
+ > 完整示例见 [`examples/profile.package.json`](examples/profile.package.json)。
88
+
89
+ 3. 重启 DSH。右下角出现桌宠即安装成功。
90
+
91
+ ## 使用
92
+
93
+ - **拖动**:按住桌宠拖到任意位置,松手即停留,下次启动还在原地
94
+ - **点击桌宠**:依次切换 开心 → 思考 → 失望 → 默认,几秒无操作自动回默认
95
+ - **点击右下角立牌**:q 弹一下、响一声气泡膜"啵"、弹出余额气泡
96
+ - **主题开关**:设置 › 通用 › 「D老师」主题
97
+
98
+ ![设置里的主题开关](docs/settings.png)
99
+
100
+ - **开**:壁纸 + 液态玻璃 + 桌宠 + 立牌 + 侧栏头像
101
+ - **关**:以上全部隐藏,恢复 DSH 原始界面(开关状态会记住)
102
+
103
+ ## 兼容性
104
+
105
+ - 只依赖 DSH 自带的 Client 运行时与官方 `deepseekAccount` 能力,**无第三方依赖**
106
+ - 客户端 bundle 单文件自包含:所有图片内联为 data URI,不需要联网加载素材
107
+ - 宿主路由仅监听 **回环地址**(`127.0.0.1`),不对外暴露
108
+ - 余额只在点击立牌时读取,结果缓存 60 秒
109
+ - 若 DSH 版本较旧、没有 `settings.general.item` 槽位:开关不显示,其余功能照常
110
+
111
+ ## 目录结构
112
+
113
+ ```
114
+ .
115
+ ├── client.js # 浏览器端:桌宠 + 立牌 + 主题皮肤 + 设置开关
116
+ ├── index.js # 宿主端:turn 统计 + /fatfish/* 路由
117
+ ├── package.json # 插件清单
118
+ ├── cordis.patch.yml # bundle patch,让 DSH 自动挂载
119
+ ├── assets/ # 原始立绘(运行时不需要,改素材用)
120
+ ├── tools/ # 抠图 / 生成壁纸 / 内联素材脚本
121
+ ├── test/ # 无浏览器行为的 Node 测试
122
+ ├── docs/ # 截图与技术说明
123
+ └── examples/ # profile 配置示例
124
+ ```
125
+
126
+ ## 开发
127
+
128
+ ```powershell
129
+ npm run check # 语法检查
130
+ npm test # 四套行为测试(表情循环 / 状态机 / 立牌气泡 / 宿主统计)
131
+ ```
132
+
133
+ 测试不依赖浏览器:它们用假的 DOM、假的 `React`、虚拟时钟和假的 Cordis 上下文,
134
+ 直接驱动真实的 handler 与宿主逻辑。
135
+
136
+ ### 更换素材
137
+
138
+ ```powershell
139
+ # 1) 从插画里抠出立牌(透明背景)
140
+ python tools/cut_portrait.py path/to/your-art.png
141
+ # 2) 生成 1600px 宽的聊天壁纸
142
+ python tools/make_wallpaper.py path/to/your-art.png
143
+ # 3) 重新内联进 client.js(会改写 client.js 里的 __SPRITE_*__ 占位)
144
+ python tools/inline_sprites.py
145
+ ```
146
+
147
+ 依赖:Python 3 + Pillow + numpy。
148
+
149
+ ## 技术要点
150
+
151
+ 详见 [`docs/architecture.md`](docs/architecture.md)。
152
+
153
+ - **单文件客户端**:DSH 的模块表只解析包根 specifier,所以图片必须内联
154
+ - **不抢事件**:立牌是桌宠拖拽层的子节点,指针事件显式拦截,点击不会被拖拽吞掉
155
+ - **动画可重播**:q 弹用两套同名不同名的 keyframes 交替,保证每次点击都从头播
156
+ - **玻璃不闪屏**:`backdrop-filter` 放在 `::before` 图层,光标闪烁不再触发背景重采样
157
+ - **开关可回退**:所有皮肤规则挂在 `html.dlao-skin-on` 下,关掉即恢复原生界面
158
+
159
+ ## 许可
160
+
161
+ - **代码**:MIT,见 [`LICENSE`](LICENSE)
162
+ - **角色立绘**:由作者提供,**不包含在 MIT 授权内**,见 [`NOTICE`](NOTICE)
163
+
164
+ 如果你要再分发角色形象,请先确认原画授权。
165
+
166
+ ## 致谢
167
+
168
+ - [DeepSeek Harness](https://github.com/deepseek-ai) 的插件体系与官方 `deepseekAccount` 能力
169
+ - 灵感来自各类「桌面宠物 + 状态气泡」实现