dsh-ui-tweaks 0.19.0 → 0.19.1
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 +21 -21
- package/README.en.md +9 -9
- package/README.md +8 -8
- package/cordis.patch.yml +12 -12
- package/package.json +46 -48
- package/lib/types/client/appicons.d.ts +0 -17
- package/lib/types/client/appicons.d.ts.map +0 -1
- package/lib/types/client/whale.d.ts +0 -55
- package/lib/types/client/whale.d.ts.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 dsh-ui-tweaks 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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-ui-tweaks 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.en.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-ui-tweaks
|
|
2
2
|
|
|
3
|
-
> **Dependency**: currently targets **DSH v0.2.0-rc.
|
|
3
|
+
> **Dependency**: currently targets **DSH v0.2.0-rc.2**.
|
|
4
4
|
|
|
5
5
|
A [DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/) (DSH) web plugin that live-tunes the conversation UI from the Settings panel.
|
|
6
6
|
|
|
@@ -61,10 +61,10 @@ Settings entry: **Settings → UI Tweaks**.
|
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
63
|
# from npm (recommended, prebuilt)
|
|
64
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
64
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add dsh-ui-tweaks
|
|
65
65
|
|
|
66
66
|
# from GitHub (source; built on install by `prepare`)
|
|
67
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
67
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add github:wlj521/dsh-ui-tweaks
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
> **The GitHub path builds locally**: `lib/` is a build artifact and is not tracked; it is produced by `prepare` at install time. Since pnpm 10.26, `prepare` of git-hosted dependencies is **blocked by default** (supply-chain hardening), so allow it in the profile's `pnpm-workspace.yaml` first — otherwise the install ships no `lib/` and the plugin fails to load:
|
|
@@ -80,12 +80,12 @@ The package spec after `add` is forwarded to pnpm verbatim, so versions can be
|
|
|
80
80
|
pinned — `@version` for the npm package, `#tag` for the GitHub source:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
84
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
83
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add dsh-ui-tweaks@0.19.1 # pin the npm version
|
|
84
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add github:wlj521/dsh-ui-tweaks#v0.19.1 # pin a git tag
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
Restart DSH
|
|
88
|
-
are scanned at process start).
|
|
87
|
+
Restart the DSH desktop app once after installing (bundle
|
|
88
|
+
plugins are scanned at process start).
|
|
89
89
|
|
|
90
90
|
> If pnpm reports symlink/hoist errors, set `nodeLinker: hoisted` in the
|
|
91
91
|
> profile's `pnpm-workspace.yaml`.
|
|
@@ -101,8 +101,8 @@ pnpm typecheck
|
|
|
101
101
|
Load against a running DSH with an overlay, or install as a bundle:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
npx -y @deepseek-ai/dsh
|
|
105
|
-
|
|
104
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add . # bundle install from this checkout
|
|
105
|
+
# dev overlay: edit the desktop profile's cordis.patch.yml ($DSH_HOME/profiles/desktop/cordis.patch.yml) directly — DSH hot-reloads it
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
## How it works
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-ui-tweaks
|
|
2
2
|
|
|
3
|
-
> **依赖版本**:当前依赖 **DSH v0.2.0-rc.
|
|
3
|
+
> **依赖版本**:当前依赖 **DSH v0.2.0-rc.2**。
|
|
4
4
|
|
|
5
5
|
[DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/)(DSH)Web UI 插件:在设置面板中实时调整对话界面——代码字号、**主题皮肤**(简约 / 荧光海报)、**时间线切换**(原生回合导航轨 / 经典网页时间线)、**GitBar**(会话头部的分支胶囊 + 右侧边栏里的代码差异标签页),可开关的**归档管理**(设置中的「归档」页面:查看、恢复或彻底删除已归档会话),可开关的**任务提醒**(会话完成或需要交互时,通过标签页标题闪烁 / 系统通知 / 提示音把你唤回来),以及**缓存命中率两位小数**(把输入框下方统计条的缓存命中百分比改写为精确值)。
|
|
6
6
|
|
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
# 方式一:从 npm 安装(推荐,预构建产物,一条命令装好)
|
|
67
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
67
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add dsh-ui-tweaks
|
|
68
68
|
|
|
69
69
|
# 方式二:从 GitHub 仓库安装(源码,安装时由 prepare 自动构建)
|
|
70
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
70
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add github:wlj521/dsh-ui-tweaks
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
> **方式二需要放行构建脚本**:`lib/` 不在仓库里(构建产物),靠 `prepare` 在安装时生成;而 pnpm ≥ 10.26 出于供应链安全**默认不允许 git 依赖执行 `prepare`**。先在 profile 的 `pnpm-workspace.yaml` 里放行,否则装完没有 `lib/`,插件加载即失败:
|
|
@@ -82,11 +82,11 @@ npx -y @deepseek-ai/dsh plugin --profile web add github:wlj521/dsh-ui-tweaks
|
|
|
82
82
|
`add` 后面的包说明会**原样转发给 pnpm**,因此可以指定版本——npm 包用 `@版本号`,GitHub 源码用 `#tag`:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
86
|
-
npx -y @deepseek-ai/dsh plugin --profile
|
|
85
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add dsh-ui-tweaks@0.19.1 # 锁定 npm 版本
|
|
86
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add github:wlj521/dsh-ui-tweaks#v0.19.1 # 锁定 git tag
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
安装完成后**重启一次
|
|
89
|
+
安装完成后**重启一次 DSH 桌面端**(bundle 插件在进程启动时扫描)。
|
|
90
90
|
|
|
91
91
|
> 若 pnpm 报符号链接/hoist 相关错误,可在 profile 的 `pnpm-workspace.yaml` 中设置 `nodeLinker: hoisted`。
|
|
92
92
|
|
|
@@ -101,8 +101,8 @@ pnpm typecheck
|
|
|
101
101
|
本地加载(覆盖层)或作为 bundle 安装:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
npx -y @deepseek-ai/dsh
|
|
105
|
-
|
|
104
|
+
npx -y @deepseek-ai/dsh plugin --profile desktop add . # 从本目录作为 bundle 安装
|
|
105
|
+
# 开发覆盖层:直接编辑桌面端 profile 的 cordis.patch.yml($DSH_HOME/profiles/desktop/cordis.patch.yml),DSH 会热重载
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
## 工作原理
|
package/cordis.patch.yml
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# dsh-ui-tweaks bundle patch
|
|
2
|
-
#
|
|
3
|
-
# Declared by `dsh.bundle.patch` in package.json: when the plugin is installed
|
|
4
|
-
# through the official CLI —
|
|
5
|
-
#
|
|
6
|
-
# dsh plugin --profile <name> add dsh-ui-tweaks
|
|
7
|
-
#
|
|
8
|
-
# — the command appends `dsh-ui-tweaks` to the profile's bundle stack and this
|
|
9
|
-
# patch mounts the server-side plugin row.
|
|
10
|
-
- insert:
|
|
11
|
-
- id: ui-tweaks
|
|
12
|
-
name: 'dsh-ui-tweaks'
|
|
1
|
+
# dsh-ui-tweaks bundle patch
|
|
2
|
+
#
|
|
3
|
+
# Declared by `dsh.bundle.patch` in package.json: when the plugin is installed
|
|
4
|
+
# through the official CLI —
|
|
5
|
+
#
|
|
6
|
+
# dsh plugin --profile <name> add dsh-ui-tweaks
|
|
7
|
+
#
|
|
8
|
+
# — the command appends `dsh-ui-tweaks` to the profile's bundle stack and this
|
|
9
|
+
# patch mounts the server-side plugin row.
|
|
10
|
+
- insert:
|
|
11
|
+
- id: ui-tweaks
|
|
12
|
+
name: 'dsh-ui-tweaks'
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-ui-tweaks",
|
|
3
|
-
"version": "0.19.
|
|
4
|
-
"description": "DSH web plugin: live-tune the conversation UI — code font size (px input), a timeline switch (DSH's native turn rail, or the classic v0.11 web rail: hover to preview, click to jump; native by default), a theme switch with two skins (a minimal one that only tints markdown inline code with the Anthropic red, and a neon poster skin with light/dark schemes), a GitBar (branch chip in the session header with branch management, plus a code-diff tab in the native right sidebar with per-file diff and commit & push), task alerts that call you back via tab-title flash / system notification / chime when any session finishes its turn or starts waiting for your approval, plan review or answer, an /init slash command that submits an AGENTS.md bootstrap prompt (Chinese or English) into the current session, and a precise cache-hit readout that keeps two decimal places on the stats line's cache-hit figure under the input box — from the Settings panel. Requires DSH v0.2.0-rc.
|
|
3
|
+
"version": "0.19.1",
|
|
4
|
+
"description": "DSH web plugin: live-tune the conversation UI — code font size (px input), a timeline switch (DSH's native turn rail, or the classic v0.11 web rail: hover to preview, click to jump; native by default), a theme switch with two skins (a minimal one that only tints markdown inline code with the Anthropic red, and a neon poster skin with light/dark schemes), a GitBar (branch chip in the session header with branch management, plus a code-diff tab in the native right sidebar with per-file diff and commit & push), task alerts that call you back via tab-title flash / system notification / chime when any session finishes its turn or starts waiting for your approval, plan review or answer, an /init slash command that submits an AGENTS.md bootstrap prompt (Chinese or English) into the current session, and a precise cache-hit readout that keeps two decimal places on the stats line's cache-hit figure under the input box — from the Settings panel. Requires DSH v0.2.0-rc.2 (the conversation timeline and dialog width are now native to DSH; the task notifier follows the alpha.2 session-status API).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh",
|
|
7
7
|
"deepseek-harness",
|
|
@@ -45,12 +45,6 @@
|
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=20"
|
|
47
47
|
},
|
|
48
|
-
"scripts": {
|
|
49
|
-
"build": "tsc -p tsconfig.json && tsc -p tsconfig.client.json && node scripts/build-client.mjs",
|
|
50
|
-
"prepare": "pnpm build",
|
|
51
|
-
"prepublishOnly": "pnpm build",
|
|
52
|
-
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.public.json"
|
|
53
|
-
},
|
|
54
48
|
"license": "MIT",
|
|
55
49
|
"dsh": {
|
|
56
50
|
"bundle": {
|
|
@@ -75,25 +69,25 @@
|
|
|
75
69
|
},
|
|
76
70
|
"peerDependencies": {
|
|
77
71
|
"@deepseek-ai/cordis": "^4.0.4",
|
|
78
|
-
"@deepseek-ai/dsh-api-session-controller": "^0.2.0-rc.
|
|
79
|
-
"@deepseek-ai/dsh-api-workspace-controller": "^0.2.0-rc.
|
|
80
|
-
"@deepseek-ai/dsh-client-locale": "^0.2.0-rc.
|
|
81
|
-
"@deepseek-ai/dsh-client-store": "^0.2.0-rc.
|
|
82
|
-
"@deepseek-ai/dsh-client-ui-commands": "^0.2.0-rc.
|
|
83
|
-
"@deepseek-ai/dsh-client-ui-conversation": "^0.2.0-rc.
|
|
84
|
-
"@deepseek-ai/dsh-client-ui-renderer": "^0.2.0-rc.
|
|
85
|
-
"@deepseek-ai/dsh-client-ui-session": "^0.2.0-rc.
|
|
86
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.2.0-rc.
|
|
87
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "^0.2.0-rc.
|
|
88
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.2.0-rc.
|
|
89
|
-
"@deepseek-ai/dsh-client-ui-workspace": "^0.2.0-rc.
|
|
90
|
-
"@deepseek-ai/dsh-host-webserver": "^0.2.0-rc.
|
|
91
|
-
"@deepseek-ai/dsh-session": "^0.2.0-rc.
|
|
92
|
-
"@deepseek-ai/dsh-session-projection": "^0.2.0-rc.
|
|
93
|
-
"@deepseek-ai/dsh-settings": "^0.2.0-rc.
|
|
94
|
-
"@deepseek-ai/dsh-storage-domain": "^0.2.0-rc.
|
|
95
|
-
"@deepseek-ai/dsh-token-meter": "^0.2.0-rc.
|
|
96
|
-
"@deepseek-ai/dsh-workspace": "^0.2.0-rc.
|
|
72
|
+
"@deepseek-ai/dsh-api-session-controller": "^0.2.0-rc.2",
|
|
73
|
+
"@deepseek-ai/dsh-api-workspace-controller": "^0.2.0-rc.2",
|
|
74
|
+
"@deepseek-ai/dsh-client-locale": "^0.2.0-rc.2",
|
|
75
|
+
"@deepseek-ai/dsh-client-store": "^0.2.0-rc.2",
|
|
76
|
+
"@deepseek-ai/dsh-client-ui-commands": "^0.2.0-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.2.0-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.2.0-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-client-ui-session": "^0.2.0-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.2.0-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "^0.2.0-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.2.0-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-workspace": "^0.2.0-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-host-webserver": "^0.2.0-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-session": "^0.2.0-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-session-projection": "^0.2.0-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-settings": "^0.2.0-rc.2",
|
|
88
|
+
"@deepseek-ai/dsh-storage-domain": "^0.2.0-rc.2",
|
|
89
|
+
"@deepseek-ai/dsh-token-meter": "^0.2.0-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-workspace": "^0.2.0-rc.2",
|
|
97
91
|
"@deepseek-ai/schemastery": "^3.18.4",
|
|
98
92
|
"react": "^18.2.0",
|
|
99
93
|
"react-dom": "^18.2.0"
|
|
@@ -105,26 +99,26 @@
|
|
|
105
99
|
},
|
|
106
100
|
"devDependencies": {
|
|
107
101
|
"@deepseek-ai/cordis": "^4.0.4",
|
|
108
|
-
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.
|
|
109
|
-
"@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.
|
|
110
|
-
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.
|
|
111
|
-
"@deepseek-ai/dsh-client-store": "0.2.0-rc.
|
|
112
|
-
"@deepseek-ai/dsh-client-ui-commands": "0.2.0-rc.
|
|
113
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.
|
|
114
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.
|
|
115
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.
|
|
116
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.
|
|
117
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.0-rc.
|
|
118
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.
|
|
119
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.
|
|
120
|
-
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.
|
|
121
|
-
"@deepseek-ai/dsh-session": "0.2.0-rc.
|
|
122
|
-
"@deepseek-ai/dsh-session-persistence": "0.2.0-rc.
|
|
123
|
-
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.
|
|
124
|
-
"@deepseek-ai/dsh-settings": "0.2.0-rc.
|
|
125
|
-
"@deepseek-ai/dsh-storage-domain": "0.2.0-rc.
|
|
126
|
-
"@deepseek-ai/dsh-token-meter": "0.2.0-rc.
|
|
127
|
-
"@deepseek-ai/dsh-workspace": "0.2.0-rc.
|
|
102
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-commands": "0.2.0-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.0-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-session-persistence": "0.2.0-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-settings": "0.2.0-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-storage-domain": "0.2.0-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-token-meter": "0.2.0-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-workspace": "0.2.0-rc.2",
|
|
128
122
|
"@deepseek-ai/schemastery": "^3.18.4",
|
|
129
123
|
"@types/node": "^24.0.0",
|
|
130
124
|
"@types/react": "~18.3.1",
|
|
@@ -138,5 +132,9 @@
|
|
|
138
132
|
"dependencies": {
|
|
139
133
|
"semver": "^7.8.5",
|
|
140
134
|
"yaml": "2.9.0"
|
|
135
|
+
},
|
|
136
|
+
"scripts": {
|
|
137
|
+
"build": "tsc -p tsconfig.json && tsc -p tsconfig.client.json && node scripts/build-client.mjs",
|
|
138
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.public.json"
|
|
141
139
|
}
|
|
142
|
-
}
|
|
140
|
+
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Official app icons for the 打开项目 menu — JetBrains product marks are
|
|
3
|
-
* the full-color SVGs from resources.jetbrains.com (gradient ids namespaced
|
|
4
|
-
* per icon so several can coexist on one page), VS Code from simple-icons,
|
|
5
|
-
* Explorer a filled Windows-yellow folder. Sizing lives in CSS.
|
|
6
|
-
* @module dsh-ui-tweaks/client/appicons
|
|
7
|
-
*/
|
|
8
|
-
/** target key -> inline SVG markup (trusted build-time constants). */
|
|
9
|
-
export declare const APP_ICONS: {
|
|
10
|
-
explorer: string;
|
|
11
|
-
vscode: string;
|
|
12
|
-
idea: string;
|
|
13
|
-
goland: string;
|
|
14
|
-
webstorm: string;
|
|
15
|
-
pycharm: string;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=appicons.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appicons.d.ts","sourceRoot":"","sources":["../../../src/client/appicons.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAQhB,CAAA"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dsh-ui-tweaks — whale working indicator (browser half).
|
|
3
|
-
*
|
|
4
|
-
* A little brand whale (the sidebar's FishLogo mark) perched on the composer
|
|
5
|
-
* card's top-right corner over drifting blue waves — Claude Desktop's little
|
|
6
|
-
* crab, but a whale — resident the whole time the feature is on. Idle: the
|
|
7
|
-
* whale keeps its original colour and floats still on the waves; hovering or
|
|
8
|
-
* clicking it swims it too (easter egg). Working: it swims and breathes
|
|
9
|
-
* between its original colour and the waves' blue until the model finishes.
|
|
10
|
-
*
|
|
11
|
-
* - Mounted in `conversation.input.dock` (the full-width row stacked by the
|
|
12
|
-
* composer column right above the card), registered only while the
|
|
13
|
-
* `whaleIndicatorEnabled` toggle is on — off costs nothing. The dock row is
|
|
14
|
-
* WIDER than the card (the card is capped at
|
|
15
|
-
* `--dsh-composer-card-max-width` and centered with
|
|
16
|
-
* `--dsh-composer-side-clearance` side padding by the InputBar root), so
|
|
17
|
-
* the row replicates that exact geometry — same max-width, centered, same
|
|
18
|
-
* side padding — before right-aligning; a 6px `translateY` then straddles
|
|
19
|
-
* the card's top edge. The extra 14px right inset centers the whale over
|
|
20
|
-
* the send button (34px round button, 8px tool-row padding → its center
|
|
21
|
-
* sits 25px from the card's right edge; the 22px whale's right edge at
|
|
22
|
-
* 14px puts its center at 25px).
|
|
23
|
-
* - "Working" = the current session's `running` flag on the sessions list
|
|
24
|
-
* feed, OR the input machine's claimed/submitting phases (the window
|
|
25
|
-
* between pressing Enter and the agent actually starting to run).
|
|
26
|
-
* - The whale geometry is the stock FishLogo path embedded as a constant, so
|
|
27
|
-
* the indicator never depends on DOM timing; at mount we still try to lift
|
|
28
|
-
* a fresher path from the live sidebar brand mark (`[class*="brandMark"]`)
|
|
29
|
-
* so a DSH logo update is followed without a plugin release.
|
|
30
|
-
* @module dsh-ui-tweaks/client/whale
|
|
31
|
-
*/
|
|
32
|
-
import type { ISessions } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
33
|
-
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
34
|
-
export declare const WHALE_CSS = "\n.duwi-row{box-sizing:border-box;width:100%;max-width:calc(var(--dsh-composer-card-max-width) + 2 * var(--dsh-composer-side-clearance, 0px));margin:0 auto;padding:0 calc(var(--dsh-composer-side-clearance, 0px) + 14px) 0 var(--dsh-composer-side-clearance, 0px);display:flex;align-items:flex-end;justify-content:flex-end;height:27px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\n.duwi-stack{display:flex;flex-direction:column;align-items:center;transform:translateY(6px)}\n.duwi-whale{display:block;color:var(--dsw-alias-label-primary);transform-origin:50% 60%;pointer-events:auto;cursor:pointer}\n.duwi-row.duwi-swim .duwi-whale{animation:duwi-swim 1.9s ease-in-out infinite,duwi-breathe 1.9s ease-in-out infinite}\n.duwi-whale:hover{animation:duwi-swim 1.9s ease-in-out infinite}\n.duwi-waves{display:block;width:26px;height:9px;margin-top:-3px;overflow:hidden}\n.duwi-wave-back{stroke:#3d8bfd;opacity:.35}\n.duwi-wave-front{stroke:#3d8bfd;opacity:.8}\n.duwi-wave-front,.duwi-wave-back{animation:duwi-drift-front 1.9s linear infinite}\n.duwi-wave-back{animation-duration:3.4s;animation-direction:reverse}\n@keyframes duwi-swim{\n0%,100%{transform:translateY(0) rotate(-4deg)}\n50%{transform:translateY(-3.5px) rotate(4deg)}\n}\n@keyframes duwi-breathe{\n0%,100%{color:var(--dsw-alias-label-primary)}\n50%{color:#3d8bfd}\n}\n@keyframes duwi-drift-front{\nfrom{transform:translateX(0)}\nto{transform:translateX(-8px)}\n}\n@media (prefers-reduced-motion:reduce){\n.duwi-row.duwi-swim .duwi-whale,.duwi-whale:hover{animation:none}\n.duwi-wave-front,.duwi-wave-back{animation:none}\n}\n";
|
|
35
|
-
/** Idempotent installer for the indicator styles (same pattern as the other features). */
|
|
36
|
-
export declare function installWhaleStyles(): () => void;
|
|
37
|
-
/**
|
|
38
|
-
* Structural slice of the framework `InputState` (not re-exported by the
|
|
39
|
-
* package's client entry) — exactly the fields the indicator reads off the
|
|
40
|
-
* dock's owner share.
|
|
41
|
-
*/
|
|
42
|
-
interface InputPhaseSnapshot {
|
|
43
|
-
phase: 'plain' | 'adjudicating' | 'claimed' | 'submitting';
|
|
44
|
-
}
|
|
45
|
-
export interface WhaleIndicatorProps {
|
|
46
|
-
/** Framework seat (PropsRuntime): current session id. */
|
|
47
|
-
sessionId: SessionId | undefined;
|
|
48
|
-
/** Owner share (InputZone): live input-machine snapshot — covers the send → run window. */
|
|
49
|
-
input: InputPhaseSnapshot;
|
|
50
|
-
/** Injected: the client sessions service (list feed carrying `running`). */
|
|
51
|
-
sessionsService: ISessions;
|
|
52
|
-
}
|
|
53
|
-
export declare function WhaleIndicator({ sessionId, input, sessionsService }: WhaleIndicatorProps): import("react").JSX.Element;
|
|
54
|
-
export {};
|
|
55
|
-
//# sourceMappingURL=whale.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"whale.d.ts","sourceRoot":"","sources":["../../../src/client/whale.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAkB/D,eAAO,MAAM,SAAS,gnDA2BrB,CAAA;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,IAAI,MAAM,IAAI,CAU/C;AAuBD;;;;GAIG;AACH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,GAAG,YAAY,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;IAChC,2FAA2F;IAC3F,KAAK,EAAE,kBAAkB,CAAA;IACzB,4EAA4E;IAC5E,eAAe,EAAE,SAAS,CAAA;CAC3B;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,mBAAmB,+BAuDxF"}
|