@chestnut23/dsh-conversation-outline 0.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/LICENSE +21 -0
- package/README.md +113 -0
- package/README.zh.md +105 -0
- package/assets/banner.png +0 -0
- package/assets/banner.svg +106 -0
- package/cordis.patch.yml +12 -0
- package/docs/implementation-spec.md +455 -0
- package/docs/publishing-guide.md +384 -0
- package/docs/security.md +47 -0
- package/docs/troubleshooting.md +65 -0
- package/docs/usage.md +62 -0
- package/lib/client/OutlinePanel.js +246 -0
- package/lib/client/index.js +27 -0
- package/lib/client/locales.js +32 -0
- package/lib/client/outline.js +83 -0
- package/lib/client/styles.js +304 -0
- package/lib/client.js +750 -0
- package/lib/client.js.map +1 -0
- package/lib/index.js +15 -0
- package/lib/types/client/OutlinePanel.d.ts +23 -0
- package/lib/types/client/index.d.ts +7 -0
- package/lib/types/client/locales.d.ts +36 -0
- package/lib/types/client/outline.d.ts +82 -0
- package/lib/types/client/styles.d.ts +14 -0
- package/lib/types/index.d.ts +14 -0
- package/package.json +82 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 lzbaclz
|
|
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
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# dsh-conversation-outline
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@chestnut23/dsh-conversation-outline)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://github.com/lzbaclz/dsh-conversation-outline)
|
|
9
|
+
[](https://github.com/deepseek-ai/DeepSeek-Harness)
|
|
10
|
+
|
|
11
|
+
[简体中文](README.zh.md) · [Usage](docs/usage.md) · [Troubleshooting](docs/troubleshooting.md) · [Security](docs/security.md) · [Publishing Guide](docs/publishing-guide.md) · [Design Spec](docs/implementation-spec.md)
|
|
12
|
+
|
|
13
|
+
**Find any question. Jump to any answer.**
|
|
14
|
+
|
|
15
|
+
Long agent conversations scroll forever. `dsh-conversation-outline` is a
|
|
16
|
+
Codex-style **conversation outline** for [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) Web:
|
|
17
|
+
a slim, always-visible **right-edge rail** — one bar per question, like a minimap of the
|
|
18
|
+
conversation — that **expands on hover** into a preview panel of every question's opening
|
|
19
|
+
words. Click a bar or a row and you are teleported to that message in the Chat view, with
|
|
20
|
+
a flash highlight so you cannot miss it. Bilingual zh-CN / en.
|
|
21
|
+
|
|
22
|
+
## Highlights
|
|
23
|
+
|
|
24
|
+
- **Right-edge rail (minimap)** — thin, pinned to the right edge, one bar per question in
|
|
25
|
+
chronological order. Out of the way while you read; >60 questions fold into a `+N` marker.
|
|
26
|
+
- **Hover to preview** — hover the rail and the panel slides out with each question's
|
|
27
|
+
opening words (single-line truncated), `#turn` badge and `HH:MM` time. Collapses 240 ms
|
|
28
|
+
after you move away; tap-to-pin on touch, `Esc` closes. Pure overlay — your content
|
|
29
|
+
never shifts.
|
|
30
|
+
- **Click-to-jump** — switches to the Chat view (even from Trajectory), scrolls to the
|
|
31
|
+
message and flashes it for 1.8 s. Respects `prefers-reduced-motion`.
|
|
32
|
+
- **Search & load older** — case-insensitive filtering, plus paging into older history.
|
|
33
|
+
- **Live** — new questions appear while the session runs; follows the current session and
|
|
34
|
+
collapses on switch.
|
|
35
|
+
- **Zero dependencies at runtime** — the browser bundle imports only React (the platform
|
|
36
|
+
modules); everything else is inlined and purity-checked at build time.
|
|
37
|
+
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
**Prerequisites**: [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness)
|
|
41
|
+
(`dsh` available); Node.js `^22.19` or `>=24`; pnpm 10+.
|
|
42
|
+
If you run DSH via `npx`, prefix the commands with `npx -p @deepseek-ai/dsh `.
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
# 1) GitHub (works right now — recommended)
|
|
46
|
+
dsh plugin --profile web add github:lzbaclz/dsh-conversation-outline
|
|
47
|
+
|
|
48
|
+
# 2) npm (published under our own scope; the unscoped name belongs to an
|
|
49
|
+
# unrelated project — always install the @chestnut23 scope)
|
|
50
|
+
dsh plugin --profile web add @chestnut23/dsh-conversation-outline
|
|
51
|
+
|
|
52
|
+
# 3) from source (local development)
|
|
53
|
+
git clone https://github.com/lzbaclz/dsh-conversation-outline.git
|
|
54
|
+
cd dsh-conversation-outline
|
|
55
|
+
pnpm install && pnpm dev:types && pnpm build
|
|
56
|
+
dsh plugin --profile web add "link:$(pwd)"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
> **Zero build scripts on the GitHub path**: the built `lib/` is committed to this repo
|
|
60
|
+
> (`.gitignore` deliberately does not ignore it), so a `github:` install fetches
|
|
61
|
+
> ready-to-load artifacts — no `prepare` script, no profile `allowBuilds` configuration.
|
|
62
|
+
> **Name warning**: an unrelated project owns the *unscoped* npm name
|
|
63
|
+
> `dsh-conversation-outline`. This plugin is only published as
|
|
64
|
+
> `@chestnut23/dsh-conversation-outline` — always install the scoped name (or the
|
|
65
|
+
> GitHub path above).
|
|
66
|
+
|
|
67
|
+
**After installing**: restart the DSH Web service and refresh the page (`link:` installs
|
|
68
|
+
just need a page refresh after `pnpm build`). Confirm with:
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
dsh plugin --profile web list
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Upgrade with the same `add` command (optionally pin a version:
|
|
75
|
+
`@chestnut23/dsh-conversation-outline@0.1.0`).
|
|
76
|
+
|
|
77
|
+
## Usage
|
|
78
|
+
|
|
79
|
+
Install, restart, open any session that already has messages — a thin strip appears on
|
|
80
|
+
the right edge. Hover it to preview questions, click a bar or a row to jump, search to
|
|
81
|
+
filter, `Load older` to page through history. Full walkthrough:
|
|
82
|
+
[docs/usage.md](docs/usage.md). Something's not showing up? [Troubleshooting](docs/troubleshooting.md).
|
|
83
|
+
|
|
84
|
+
## Preview
|
|
85
|
+
|
|
86
|
+
> Real-screenshot placeholder: after installing, drop a screenshot of the rail + panel
|
|
87
|
+
> at `assets/ui.png` and it will appear here.
|
|
88
|
+
|
|
89
|
+

|
|
90
|
+
|
|
91
|
+
## Development
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
pnpm dev:types # symlink @deepseek-ai type packages (one-time)
|
|
95
|
+
pnpm typecheck # host + client dual tsc programs
|
|
96
|
+
pnpm build # tsc(host) → tsc(client) → tsdown bundles lib/client.js
|
|
97
|
+
pnpm verify # offline smoke: manifest/exports/patch/bundle shape + pure-logic asserts
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Client-only changes hot-reload: `pnpm exec tsdown --watch` rewrites `lib/client.js`, and
|
|
101
|
+
the DSH client HMR chain (or a plain page refresh) picks it up. Host/manifest changes
|
|
102
|
+
need a service restart. Scratch-profile testing recipe:
|
|
103
|
+
[docs/implementation-spec.md §4.2](docs/implementation-spec.md).
|
|
104
|
+
|
|
105
|
+
## Talk to us
|
|
106
|
+
|
|
107
|
+
Issues are welcome any time: [open one](https://github.com/lzbaclz/dsh-conversation-outline/issues).
|
|
108
|
+
Questions, feature ideas, screenshots of what you built with it — all good.
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
MIT — see [LICENSE](LICENSE). Client-only plugin: no telemetry, no extra network calls
|
|
113
|
+
([security notes](docs/security.md)).
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# dsh-conversation-outline
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@chestnut23/dsh-conversation-outline)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://github.com/lzbaclz/dsh-conversation-outline)
|
|
9
|
+
[](https://github.com/deepseek-ai/DeepSeek-Harness)
|
|
10
|
+
|
|
11
|
+
[English](README.md) · [使用文档](docs/usage.md) · [常见问题](docs/troubleshooting.md) · [安全说明](docs/security.md) · [发布指南](docs/publishing-guide.md) · [设计规格](docs/implementation-spec.md)
|
|
12
|
+
|
|
13
|
+
**找到任何一次提问,一键跳回任何一处回答。**
|
|
14
|
+
|
|
15
|
+
智能体的长对话滚起来没完。`dsh-conversation-outline` 是
|
|
16
|
+
[DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) Web 的 **Codex 风格「会话大纲」插件**:
|
|
17
|
+
界面右侧一条**常驻细竖条**——每个问题一根小横条,像一张会话的 minimap——**鼠标悬停**即展开
|
|
18
|
+
预览面板,列出每个问题开头的几个字。点一下横条或某一行,直接瞬移到 Chat 视图里的那条消息,
|
|
19
|
+
并高亮闪烁让你不会看漏。界面中英双语(zh-CN / en)。
|
|
20
|
+
|
|
21
|
+
## 亮点
|
|
22
|
+
|
|
23
|
+
- **右侧细条(minimap)**——紧贴右边缘的窄竖条,按时间顺序每个问题一根小横条。
|
|
24
|
+
平时不占地方、不影响阅读;超过 60 个问题折叠为顶部 `+N` 标记。
|
|
25
|
+
- **悬停预览**——鼠标移到细条上,面板滑出:每个问题开头几个字(单行截断)、`#轮次`
|
|
26
|
+
徽标与 `HH:MM` 时间。移开 240ms 后自动收起;触屏点击可固定面板,`Esc` 关闭。
|
|
27
|
+
纯覆盖层,**正文布局纹丝不动**。
|
|
28
|
+
- **点击跳转**——即使停在「轨迹」视图也会自动切回聊天视图,滚动定位并闪烁 1.8s,
|
|
29
|
+
尊重 `prefers-reduced-motion`。
|
|
30
|
+
- **搜索 & 加载更早**——大小写不敏感过滤 + 翻历史分页。
|
|
31
|
+
- **实时**——会话进行中新问题自动出现;跟随当前会话,切换即收起。
|
|
32
|
+
- **运行时零依赖**——浏览器包只引用 React 等平台公共模块,其余全部内联并在构建期
|
|
33
|
+
过「纯度门」检查。
|
|
34
|
+
|
|
35
|
+
## 安装
|
|
36
|
+
|
|
37
|
+
**前置要求**:已安装 [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness)
|
|
38
|
+
(`dsh` 命令可用);Node.js `^22.19` 或 `>=24`;pnpm 10+。
|
|
39
|
+
通过 `npx` 运行 DSH 的话,给下面命令加上 `npx -p @deepseek-ai/dsh ` 前缀。
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
# 1) GitHub(现在就能装,推荐)
|
|
43
|
+
dsh plugin --profile web add github:lzbaclz/dsh-conversation-outline
|
|
44
|
+
|
|
45
|
+
# 2) npm(发布在你自己的 scope 下;无 scope 的同名包属于另一个无关项目,
|
|
46
|
+
# 务必安装 @chestnut23 scope)
|
|
47
|
+
dsh plugin --profile web add @chestnut23/dsh-conversation-outline
|
|
48
|
+
|
|
49
|
+
# 3) 从源码(本地开发)
|
|
50
|
+
git clone https://github.com/lzbaclz/dsh-conversation-outline.git
|
|
51
|
+
cd dsh-conversation-outline
|
|
52
|
+
pnpm install && pnpm dev:types && pnpm build
|
|
53
|
+
dsh plugin --profile web add "link:$(pwd)"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
> **GitHub 路径零构建脚本**:本仓库把构建产物 `lib/` 一并提交(`.gitignore` 故意不忽略),
|
|
57
|
+
> `github:` 安装拿到的就是可直接加载的产物——不需要 `prepare` 脚本,也不需要 profile
|
|
58
|
+
> 里的 `allowBuilds` 配置。
|
|
59
|
+
> **名称提醒**:npm 上**无 scope 的** `dsh-conversation-outline` 属于另一个无关项目;
|
|
60
|
+
> 本插件只以 `@chestnut23/dsh-conversation-outline` 发布,请务必安装带 scope 的名字
|
|
61
|
+
> (或走上面的 GitHub 路径)。
|
|
62
|
+
|
|
63
|
+
**安装之后**:重启 DSH Web 服务并刷新页面(`link:` 安装只需在 `pnpm build` 后刷新)。
|
|
64
|
+
确认插件在 profile 里:
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
dsh plugin --profile web list
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
升级用同一条 `add` 命令(可钉版本:`@chestnut23/dsh-conversation-outline@0.1.0`)。
|
|
71
|
+
|
|
72
|
+
## 使用
|
|
73
|
+
|
|
74
|
+
装好重启后,打开任何一个已有消息的会话,右侧边缘会出现细竖条:悬停预览问题、点击跳转、
|
|
75
|
+
搜索过滤、`加载更早` 翻历史。完整走查:[docs/usage.md](docs/usage.md)。
|
|
76
|
+
没看到?先看 [常见问题](docs/troubleshooting.md)。
|
|
77
|
+
|
|
78
|
+
## 界面预览
|
|
79
|
+
|
|
80
|
+
> 真实截图占位:装好后把细条 + 面板的截图放到 `assets/ui.png`,就会显示在这里。
|
|
81
|
+
|
|
82
|
+

|
|
83
|
+
|
|
84
|
+
## 开发
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
pnpm dev:types # 符号链接 @deepseek-ai 类型(一次性)
|
|
88
|
+
pnpm typecheck # host + client 双 tsc program
|
|
89
|
+
pnpm build # tsc(host) → tsc(client) → tsdown 打包 lib/client.js
|
|
90
|
+
pnpm verify # 离线冒烟:manifest/exports/patch/产物形状 + 纯逻辑断言
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
纯客户端改动可热更新:`pnpm exec tsdown --watch` 持续重写 `lib/client.js`,DSH 的客户端
|
|
94
|
+
HMR 链(或简单刷新页面)即可生效。host / manifest 改动需要重启服务。scratch profile
|
|
95
|
+
测试配方:[docs/implementation-spec.md §4.2](docs/implementation-spec.md)。
|
|
96
|
+
|
|
97
|
+
## 一起聊聊
|
|
98
|
+
|
|
99
|
+
随时欢迎提 issue:[点这里](https://github.com/lzbaclz/dsh-conversation-outline/issues)。
|
|
100
|
+
问题、点子、你用这个插件做了什么、截图——都欢迎。
|
|
101
|
+
|
|
102
|
+
## License
|
|
103
|
+
|
|
104
|
+
MIT——见 [LICENSE](LICENSE)。纯客户端插件:无遥测、无额外网络请求
|
|
105
|
+
([安全说明](docs/security.md))。
|
|
Binary file
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="360" viewBox="0 0 1280 360" role="img" aria-label="dsh-conversation-outline banner">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
|
|
4
|
+
<stop offset="0" stop-color="#0b1020"/>
|
|
5
|
+
<stop offset="0.55" stop-color="#0e1630"/>
|
|
6
|
+
<stop offset="1" stop-color="#12204a"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="title" x1="0" y1="0" x2="1" y2="0">
|
|
9
|
+
<stop offset="0" stop-color="#8fa8ff"/>
|
|
10
|
+
<stop offset="1" stop-color="#4d6bfe"/>
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<radialGradient id="glow" cx="0.75" cy="0.35" r="0.6">
|
|
13
|
+
<stop offset="0" stop-color="#4d6bfe" stop-opacity="0.22"/>
|
|
14
|
+
<stop offset="1" stop-color="#4d6bfe" stop-opacity="0"/>
|
|
15
|
+
</radialGradient>
|
|
16
|
+
</defs>
|
|
17
|
+
|
|
18
|
+
<rect width="1280" height="360" fill="url(#bg)"/>
|
|
19
|
+
<rect width="1280" height="360" fill="url(#glow)"/>
|
|
20
|
+
|
|
21
|
+
<!-- subtle dot grid -->
|
|
22
|
+
<g fill="#ffffff" opacity="0.04">
|
|
23
|
+
<circle cx="60" cy="60" r="1.6"/><circle cx="160" cy="60" r="1.6"/><circle cx="260" cy="60" r="1.6"/>
|
|
24
|
+
<circle cx="360" cy="60" r="1.6"/><circle cx="460" cy="60" r="1.6"/><circle cx="560" cy="60" r="1.6"/>
|
|
25
|
+
<circle cx="60" cy="150" r="1.6"/><circle cx="160" cy="150" r="1.6"/><circle cx="260" cy="150" r="1.6"/>
|
|
26
|
+
<circle cx="360" cy="150" r="1.6"/><circle cx="460" cy="150" r="1.6"/><circle cx="560" cy="150" r="1.6"/>
|
|
27
|
+
<circle cx="60" cy="240" r="1.6"/><circle cx="160" cy="240" r="1.6"/><circle cx="260" cy="240" r="1.6"/>
|
|
28
|
+
<circle cx="360" cy="240" r="1.6"/><circle cx="460" cy="240" r="1.6"/><circle cx="560" cy="240" r="1.6"/>
|
|
29
|
+
<circle cx="60" cy="330" r="1.6"/><circle cx="160" cy="330" r="1.6"/><circle cx="260" cy="330" r="1.6"/>
|
|
30
|
+
<circle cx="360" cy="330" r="1.6"/><circle cx="460" cy="330" r="1.6"/><circle cx="560" cy="330" r="1.6"/>
|
|
31
|
+
</g>
|
|
32
|
+
|
|
33
|
+
<!-- left: chips (generous pill widths so no font metric can overflow) -->
|
|
34
|
+
<g font-family="'Helvetica Neue', Helvetica, Arial, sans-serif">
|
|
35
|
+
<rect x="56" y="60" rx="12" height="24" width="152" fill="#4d6bfe" opacity="0.16"/>
|
|
36
|
+
<circle cx="74" cy="72" r="3.4" fill="#6f8dff"/>
|
|
37
|
+
<text x="86" y="77" font-size="12.5" fill="#9db4ff" font-weight="600">DSH · Web Plugin</text>
|
|
38
|
+
|
|
39
|
+
<rect x="224" y="60" rx="12" height="24" width="112" fill="#ffffff" opacity="0.08"/>
|
|
40
|
+
<text x="240" y="77" font-size="12.5" fill="#b8c4e8">zh-CN / EN</text>
|
|
41
|
+
|
|
42
|
+
<rect x="352" y="60" rx="12" height="24" width="64" fill="#2fbf8f" opacity="0.16"/>
|
|
43
|
+
<text x="368" y="77" font-size="12.5" fill="#5fd6ab" font-weight="600">MIT</text>
|
|
44
|
+
|
|
45
|
+
<!-- title -->
|
|
46
|
+
<text x="52" y="158" font-size="38" font-weight="800" fill="url(#title)" letter-spacing="0">dsh-conversation-outline</text>
|
|
47
|
+
<text x="54" y="198" font-size="19" font-weight="600" fill="#dfe6ff">会话大纲 · Conversation Outline</text>
|
|
48
|
+
<text x="54" y="234" font-size="14.5" fill="#93a2cc">Find any question. Jump to any answer.</text>
|
|
49
|
+
<text x="54" y="258" font-size="14.5" fill="#6d7ba3">A Codex-style right-edge rail for DeepSeek Harness Web.</text>
|
|
50
|
+
</g>
|
|
51
|
+
|
|
52
|
+
<!-- right: app window illustration -->
|
|
53
|
+
<g transform="translate(716 34)">
|
|
54
|
+
<!-- window frame -->
|
|
55
|
+
<rect x="0" y="0" width="516" height="292" rx="16" fill="#0d1428" stroke="#22315c" stroke-width="1.5"/>
|
|
56
|
+
<rect x="0" y="0" width="516" height="34" rx="16" fill="#101a34"/>
|
|
57
|
+
<rect x="0" y="18" width="516" height="16" fill="#101a34"/>
|
|
58
|
+
<circle cx="22" cy="17" r="5" fill="#ff5f57"/>
|
|
59
|
+
<circle cx="42" cy="17" r="5" fill="#febc2e"/>
|
|
60
|
+
<circle cx="62" cy="17" r="5" fill="#28c840"/>
|
|
61
|
+
<rect x="140" y="10" width="236" height="14" rx="7" fill="#1b2a52"/>
|
|
62
|
+
|
|
63
|
+
<!-- chat bubbles -->
|
|
64
|
+
<rect x="30" y="56" width="196" height="30" rx="10" fill="#16224a"/>
|
|
65
|
+
<rect x="30" y="94" width="146" height="30" rx="10" fill="#16224a"/>
|
|
66
|
+
<rect x="30" y="132" width="216" height="30" rx="10" fill="#16224a"/>
|
|
67
|
+
<!-- assistant block -->
|
|
68
|
+
<rect x="30" y="182" width="322" height="16" rx="8" fill="#1d2b58"/>
|
|
69
|
+
<rect x="30" y="204" width="282" height="16" rx="8" fill="#1d2b58"/>
|
|
70
|
+
<rect x="30" y="226" width="302" height="16" rx="8" fill="#1d2b58"/>
|
|
71
|
+
<!-- highlighted (jump target) bubble with flash glow -->
|
|
72
|
+
<rect x="30" y="132" width="216" height="30" rx="10" fill="none" stroke="#6f8dff" stroke-width="2.4"/>
|
|
73
|
+
<rect x="26" y="128" width="224" height="38" rx="14" fill="none" stroke="#4d6bfe" stroke-opacity="0.35" stroke-width="6"/>
|
|
74
|
+
|
|
75
|
+
<!-- hover panel -->
|
|
76
|
+
<rect x="272" y="52" width="212" height="200" rx="12" fill="#111a38" stroke="#26386e" stroke-width="1.4"/>
|
|
77
|
+
<rect x="284" y="64" width="188" height="14" rx="7" fill="#8fa8ff"/>
|
|
78
|
+
<rect x="284" y="88" width="188" height="22" rx="8" fill="#182650" stroke="#233368" stroke-width="1"/>
|
|
79
|
+
<circle cx="296" cy="99" r="4" fill="#4d6bfe"/>
|
|
80
|
+
<rect x="306" y="94" width="110" height="10" rx="5" fill="#2c3f7c"/>
|
|
81
|
+
<!-- panel rows -->
|
|
82
|
+
<rect x="284" y="120" width="188" height="26" rx="8" fill="#0e1836"/>
|
|
83
|
+
<rect x="294" y="128" width="24" height="10" rx="5" fill="#4d6bfe"/>
|
|
84
|
+
<rect x="326" y="128" width="120" height="10" rx="5" fill="#31447f"/>
|
|
85
|
+
<rect x="284" y="152" width="188" height="26" rx="8" fill="#0e1836"/>
|
|
86
|
+
<rect x="294" y="160" width="24" height="10" rx="5" fill="#4d6bfe"/>
|
|
87
|
+
<rect x="326" y="160" width="96" height="10" rx="5" fill="#31447f"/>
|
|
88
|
+
<rect x="284" y="184" width="188" height="26" rx="8" fill="#0e1836"/>
|
|
89
|
+
<rect x="294" y="192" width="24" height="10" rx="5" fill="#4d6bfe"/>
|
|
90
|
+
<rect x="326" y="192" width="140" height="10" rx="5" fill="#31447f"/>
|
|
91
|
+
<rect x="284" y="220" width="188" height="20" rx="8" fill="#0e1836"/>
|
|
92
|
+
<rect x="294" y="226" width="140" height="8" rx="4" fill="#22315c"/>
|
|
93
|
+
|
|
94
|
+
<!-- right-edge rail -->
|
|
95
|
+
<rect x="492" y="70" width="12" height="160" rx="6" fill="#0a0f20" stroke="#22315c" stroke-width="1"/>
|
|
96
|
+
<rect x="494" y="76" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
97
|
+
<rect x="494" y="86" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
98
|
+
<rect x="494" y="96" width="8" height="6" rx="3" fill="#6f8dff"/>
|
|
99
|
+
<rect x="494" y="106" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
100
|
+
<rect x="494" y="116" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
101
|
+
<rect x="494" y="126" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
102
|
+
<rect x="494" y="136" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
103
|
+
<rect x="494" y="146" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
104
|
+
<rect x="494" y="156" width="8" height="6" rx="3" fill="#2c3f7c"/>
|
|
105
|
+
</g>
|
|
106
|
+
</svg>
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# dsh-conversation-outline bundle patch: mounts the plugin row into the host
|
|
2
|
+
# composition of a dsh profile. The plugin is client-only (all UI lives in the
|
|
3
|
+
# browser bundle); this host row exists so the roster scan finds the package
|
|
4
|
+
# and the composition has a resolvable plugin body.
|
|
5
|
+
#
|
|
6
|
+
# `name` must stay in sync with package.json `name` (the npm package is scoped
|
|
7
|
+
# because the unscoped name was taken by an unrelated package). Quoted because
|
|
8
|
+
# `@` is a reserved YAML indicator and cannot open a plain scalar.
|
|
9
|
+
- insert:
|
|
10
|
+
- id: dsh-conversation-outline
|
|
11
|
+
name: '@chestnut23/dsh-conversation-outline'
|
|
12
|
+
config: {}
|