dsh-happy 0.0.0-stage → 0.5.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 dsh-happy contributors
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/README.md CHANGED
@@ -1,3 +1,152 @@
1
- # Temporary Holding Version
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.
1
+ # dsh-happy
2
+
3
+ 给 DSH 对话区加一层**整屏动效背景**:把整块画布当背景,用 Canvas 画星空、代码雨、电路、华山论剑、小猫、小女生、飞机大战、赛车、飘雪、肥皂泡;正文列用一层按列宽计算的纱罩住,保证可读。
4
+
5
+ - 包名:`dsh-happy`(曾用名 `dsh-conversation-aurora`)
6
+ - 插件目录:`dsh-happy/`(曾用名 `conversation-aurora/`)
7
+ - patch 行 id:`happy`(内部行标识,不跟包名走)
8
+ - Client 工厂 id:`dsh-happy`(必须与包名一致)
9
+ - 预留名:`dsh-haowan`(仅占位,见 `reserved/dsh-haowan/`)
10
+ - 宿主半区:`index.js`,空的(只需要一行可加载)
11
+ - 仓库:<https://github.com/18383337799/dsh-happy>
12
+ - 官网:<https://happy.yimeng.life/>
13
+
14
+ ---
15
+
16
+ ## 安装
17
+
18
+ **从 npm 安装(推荐)**
19
+
20
+ 插件页 → **添加插件** → 输入包名 `dsh-happy` → 安装源选 **npm 官方** → 安装 → **立即启用**。
21
+
22
+ > 国内镜像(`registry.npmmirror.com`)同步有延迟;刚发布时请先用官方源。
23
+
24
+ **从本地目录安装(开发用)**
25
+
26
+ 插件页 → 添加插件 → 填本目录的绝对路径 → 安装 → 立即启用。
27
+
28
+ **卸载**:插件页 → 卸载。效果随插件 context 一起回收,页面恢复原样。
29
+
30
+ ---
31
+
32
+ ## 用它
33
+
34
+ | 快捷键 | 作用 |
35
+ | --- | --- |
36
+ | `Alt+T` | 换到下一个背景,并**固定**住(10 个循环,选择会记住) |
37
+ | `Alt+R` | 回到**随机**,并立刻换一个(清掉固定值) |
38
+ | `Alt+D` | 浅色 / 深色主题互换(走宿主 `theme.setTheme`,与「设置 → 外观」同步) |
39
+
40
+ **它只在"你干活"的时候出现**:任何工具在跑、或回合进行中,背景才播放;空闲、切会话、窗口隐藏时立刻停掉 `requestAnimationFrame` 并淡出,两侧恢复普通白纸。
41
+
42
+ **每个回合随机一个主题**:你发一条消息、我把这一轮做完 = 一个回合;回合内背景不变(中间停顿多久都不换),下一个回合重新随机,且不会和上一个重复。`Alt+T` 固定某个主题,`Alt+R` 回到随机并换一个。固定值存在 `localStorage` 的 `dsh.happy.theme`(0.4.0 之前是 `dsh.conversation-aurora.theme`,首次启动会自动搬过去)。
43
+
44
+ ---
45
+
46
+ ## 10 个背景
47
+
48
+ | 主题 | 内容 |
49
+ | --- | --- |
50
+ | 星空跃迁 | 星点从中心向外飞出,长条纹 |
51
+ | 代码雨 | 竖列字符下落,带拖尾 |
52
+ | 电路脉冲 | 直角走线 + 沿线跑的光点 |
53
+ | 华山论剑 | 三层远山视差 + 冷月 + 云岚 + 偶尔一道剑气 + 落叶(没有人物、没有招式名,只有山水与光) |
54
+ | 小猫散步 | 矢量剪影小猫走路、尾巴摆动、留下爪印 |
55
+ | 小女生 | 连衣裙剪影 + 马尾 + 牵着气球,一路小跑掉小心心 |
56
+ | 飞机大战 | 我方战机从画面下方飞入、左右巡航连续开火,敌机从上方成批压下来,击中炸成火星 |
57
+ | 赛车 | 横向速度线 + 小车剪影 |
58
+ | 飘雪 | 雪花慢落 + 摇摆 |
59
+ | 肥皂泡 | 径向渐变薄膜 + 高光,缓缓升起 |
60
+
61
+ **加一种新背景**:在 `client.js` 里写一个 `themeXxx(g)`,返回 `{ resize(), step(dt) }`,再往 `STAGE_THEMES` 数组加一行 `{ id, name, create }`。`g` 提供 `{ ctx, w, h, pal }`。
62
+
63
+ ---
64
+
65
+ ## 可读性怎么保证
66
+
67
+ - `.dsh-stage__veil` 是一条**按 `--dsh-chat-content-width` 计算**的横向纱:正文列内 84% 遮盖,列外 110px 内快速放开,两侧完全透明。
68
+ - 浅色主题用 **`multiply`(正片叠底)+ 墨色**(靛蓝 / 紫 / 青),像印在白纸上;深色主题用 **`lighter`(加色)+ 亮色**,才有发光感。见 `stagePalette()`。
69
+ - 背景层是 `z-index:-1`,永远在正文之下,`pointer-events:none`,不挡任何交互。
70
+
71
+ ---
72
+
73
+ ## 调参
74
+
75
+ 视觉参数集中在 `client.js` 顶部:
76
+
77
+ | 位置 | 含义 |
78
+ | --- | --- |
79
+ | `TUNE.holdIdleMs` | 工具停下后多久淡出(默认 420ms,防抖) |
80
+ | `TUNE.switchQuietMs` | 切会话后的静默期(默认 600ms) |
81
+ | `stagePalette()` | 浅色/深色两套墨色 + 混合模式 |
82
+ | `THEMES` 里各主题的常量 | 数量、速度、尺寸 |
83
+ | `.dsh-stage__veil` 的 `.84` | 文字列遮盖强度,调高更护眼、调低更炫 |
84
+
85
+ 改完 `client.js` 后**刷新页面**即可(`Ctrl+R`)。
86
+
87
+ ---
88
+
89
+ ## 已知限制
90
+
91
+ 1. **依赖宿主的 DOM 语义属性**:`[data-conversation-content]` / `[data-tool][data-state]` / `[data-chat-running]` / `[data-streaming]`。DSH 大版本升级后如果这些改名,插件会安静地什么都不做(不会报错、不会挡交互)。
92
+ 2. **没有"背景层"插槽**:DSH 目前没有这个扩展点,所以背景层是挂在对话画布元素内部的(`z-index:-1`)。这是刻意偏离「只能注册进 slot」的地方,随插件停用一起消失。
93
+ 3. **切会话会静默 600ms**:避免把上一轮残留的工具行当成"正在工作",看到几秒特效。
94
+ 4. **减少动态效果**:系统开启后只画一帧静止画面,不跑 `requestAnimationFrame`。
95
+ 5. **性能**:只有一张 canvas;每帧只做绘制,无 `filter`/`backdrop-filter`;空闲时 rAF 归零。
96
+ 6. **不做设置项**:没有「设置」里的面板,调参靠改常量。
97
+
98
+ ---
99
+
100
+ ## 官网
101
+
102
+ 在线:<https://happy.yimeng.life/>
103
+
104
+ 部署在 `aliyun99` 的 `/opt/myself/www/`(容器 `myself-web`,nginx 只读挂载 `./www`),这个子域名整站就是官网,根路径即首页;上传命令与校验见 [`site/README.md`](site/README.md) 的「部署」一节。
105
+
106
+ 官网只有一套,在 `site/index.html`:深空星野 + 紫/蜜桃柔光。左边一句「让 AI 对话,充满乐趣」,右边一块更大的玻璃对话面板;顶部 `DSH 插件` 胶囊,十个氛围名字排在面板下,点击切换;1440/1024 桌面完整一屏,不滚动。
107
+
108
+ 直接双击打开即可,不需要构建。也可以:
109
+
110
+ ```powershell
111
+ python -m http.server 8806 --bind 127.0.0.1 --directory site
112
+ ```
113
+
114
+ 详见 [`site/README.md`](site/README.md)。
115
+
116
+ ---
117
+
118
+ ## 开发
119
+
120
+ ```powershell
121
+ node --check client.js # 语法
122
+ node tools/rename.mjs <新包名> # 包名 + Client id 一起改(发布前用)
123
+ npm pack --dry-run # 看会发出去哪些文件
124
+ ```
125
+
126
+ 发布:`npm version patch` → `npm publish`(需要 2FA 验证码)。新包名是 `dsh-happy`;旧包 `dsh-conversation-aurora` 用 `npm deprecate` 指向新名,不要 unpublish。
127
+
128
+ 占位包单独发布一次即可(`reserved/dsh-haowan/`,不随插件发布):
129
+
130
+ ```powershell
131
+ cd reserved/dsh-haowan
132
+ npm publish # 只要占名,0.0.1
133
+ ```
134
+
135
+ ## 文件
136
+
137
+ ```text
138
+ dsh-happy/
139
+ ├─ package.json dsh.bundle.patch + dsh.client
140
+ ├─ cordis.patch.yml 插入一行
141
+ ├─ index.js Host 半区(空)
142
+ ├─ client.js Client 半区:状态机 + 10 个背景主题
143
+ ├─ locale/zh.json 插件页标题与描述
144
+ ├─ locale/en.json
145
+ ├─ icon.svg
146
+ ├─ preview.html 离线预览(直接加载 client.js)
147
+ ├─ site/ 官网站(另有 README)
148
+ ├─ reserved/dsh-haowan/ 占位包:只占名,发布到 npm 不含代码
149
+ ├─ tools/rename.mjs 发布前改名脚本
150
+ ├─ LICENSE
151
+ └─ README.md
152
+ ```