@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 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
+ ![banner](assets/banner.png)
4
+
5
+ [![npm](https://img.shields.io/badge/npm-%40chestnut23%2Fdsh--conversation--outline-cb3837)](https://www.npmjs.com/package/@chestnut23/dsh-conversation-outline)
6
+ [![license](https://img.shields.io/badge/license-MIT-2fbf8f)](LICENSE)
7
+ [![node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-5FA04E?logo=nodedotjs)](https://nodejs.org/)
8
+ [![stars](https://img.shields.io/github/stars/lzbaclz/dsh-conversation-outline.svg)](https://github.com/lzbaclz/dsh-conversation-outline)
9
+ [![dsh plugin](https://img.shields.io/badge/dsh-plugin-4d6bfe)](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
+ ![Conversation outline](assets/ui.png)
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
+ ![banner](assets/banner.png)
4
+
5
+ [![npm](https://img.shields.io/badge/npm-%40chestnut23%2Fdsh--conversation--outline-cb3837)](https://www.npmjs.com/package/@chestnut23/dsh-conversation-outline)
6
+ [![license](https://img.shields.io/badge/license-MIT-2fbf8f)](LICENSE)
7
+ [![node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-5FA04E?logo=nodedotjs)](https://nodejs.org/)
8
+ [![stars](https://img.shields.io/github/stars/lzbaclz/dsh-conversation-outline.svg)](https://github.com/lzbaclz/dsh-conversation-outline)
9
+ [![dsh plugin](https://img.shields.io/badge/dsh-plugin-4d6bfe)](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
+ ![会话大纲](assets/ui.png)
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>
@@ -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: {}