dsh-as-aistudio 0.1.1 → 0.2.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/README.md +49 -98
- package/cordis.patch.yml +17 -24
- package/docs/INTEROP.md +33 -0
- package/package.json +19 -9
- package/src/client.js +4886 -107
- package/src/components.js +1 -1
- package/src/index.js +140 -82
- package/src/studio.js +469 -0
- package/src/vendor/dsh-delete-turn.js +936 -0
- package/src/vendor/dsh-edit-turn.js +1975 -0
- package/src/vendor/dsh-markdown-bubble.js +872 -0
- package/src/vendor/dsh-rerun-turn.js +1006 -0
- package/tools/build.mjs +77 -0
- package/tools/head.txt +13 -0
- package/tools/tail.txt +5 -0
- package/tools/tail2.txt +4 -0
- package/tools/vendor.mjs +125 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-as-aistudio
|
|
2
2
|
|
|
3
|
-
**把 DeepSeek Harness 用成 Google AI Studio —— 一轮对话就是一个可以反复打磨的 prompt playground
|
|
3
|
+
**把 DeepSeek Harness 用成 Google AI Studio —— 一轮对话就是一个可以反复打磨的 prompt playground,而且插件列表里只占一行。** 改一句提示词并重跑、原位重跑某条回复、把不该留下的那一轮从模型上下文里删掉、让发出的提示词按 Markdown 渲染。
|
|
4
4
|
|
|
5
5
|
[中文](#中文) · [English](#english)
|
|
6
6
|
|
|
@@ -10,78 +10,57 @@
|
|
|
10
10
|
|
|
11
11
|
### 为什么需要它
|
|
12
12
|
|
|
13
|
-
AI Studio
|
|
13
|
+
AI Studio 的好用之处不在模型,在于一轮对话中的每一步都能回头改。DSH 官方只提供整段压缩(/compact),没有轮次级的编辑、重跑与删除。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
四个组件补上了这一层,而这个包负责让它们装得下、合得来、看得见:
|
|
16
16
|
|
|
17
|
-
- **装得下** ——
|
|
18
|
-
- **合得来** ——
|
|
19
|
-
- **看得见** ——
|
|
17
|
+
- **装得下** —— 自包含安装,一次装完;
|
|
18
|
+
- **合得来** —— 四个组件各自独立、任意子集共存,互操作契约由本包固化并测试;
|
|
19
|
+
- **看得见** —— 设置 → 插件 → AI Studio 面板如实报告哪几个真的活着。
|
|
20
20
|
|
|
21
21
|
### 特性
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
- **web 与桌面端同构** ——
|
|
29
|
-
|
|
30
|
-
### 组件
|
|
31
|
-
|
|
32
|
-
| 组件 | 能力 | 仓库 |
|
|
33
|
-
| --- | --- | --- |
|
|
34
|
-
| `dsh-edit-turn` | 就地改提示词并重跑(回滚到那一条之前) | <https://github.com/DDDMUC/dsh-edit-turn> |
|
|
35
|
-
| `dsh-rerun-turn` | 原位重跑:同一句提示词重新生成,后续轮次原样存活 | <https://github.com/DDDMUC/dsh-rerun-turn> |
|
|
36
|
-
| `dsh-delete-turn` | 把一条消息 / 一个步骤 / 整条回复从模型上下文里拿掉 | <https://github.com/DDDMUC/dsh-delete-turn> |
|
|
37
|
-
| `dsh-markdown-bubble` | 已发送的提示词按 Markdown 渲染 | <https://github.com/DDDMUC/dsh-markdown-bubble> |
|
|
38
|
-
|
|
39
|
-
四个组件都是**可选依赖**(`optionalDependencies`):装不上、被移除、离线都只会让对应那一行缺席,本包照常启动。
|
|
23
|
+
- **一行搞定** —— 插件列表里只有 AI Studio 一行。四个组件是本包的 dependencies,由本包挂载,不再各自占一行(和 @linxin666/dsh-web-all 同一个模式)。
|
|
24
|
+
- **组件仍是独立包** —— 每个都有自己的仓库与 cordis.patch.yml,单独安装照样工作;本包不复制任何组件逻辑:宿主半侧(路由、回滚、重放)就是组件自己,浏览器 factory 由 tools/vendor.mjs 从组件源码逐字剥离生成。
|
|
25
|
+
- **副本不会漂移** —— npm run vendor 重新生成内联包,npm run build 重新生成大 bundle,verify:vendor / verify:build 是只读校验;测试里 vendor-sync / build-sync 会在副本过期时失败。
|
|
26
|
+
- **一个挂了不影响其余** —— 四个 vendored factory 各自带 guard 挂载,一个抛错不会带走另外三个。
|
|
27
|
+
- **互操作契约可验证** —— slot order 分配、行隐藏归属、兄弟探测协议写在 docs/INTEROP.md,并由组合矩阵测试断言。
|
|
28
|
+
- **web 与桌面端同构** —— 同一份 dsh.client.platform: web bundle;没有 location.origin / window.open / navigator.* / dialog / popover。
|
|
40
29
|
|
|
41
30
|
### 安装
|
|
42
31
|
|
|
43
32
|
```sh
|
|
44
|
-
# AI Studio 全家桶(studio + 四个组件一起启用)
|
|
45
33
|
dsh plugin --profile web add dsh-as-aistudio
|
|
46
|
-
|
|
47
|
-
# 只想要其中一个能力,就单独装那一个
|
|
48
|
-
dsh plugin --profile web add dsh-delete-turn
|
|
49
34
|
```
|
|
50
35
|
|
|
51
|
-
桌面端把
|
|
36
|
+
桌面端把 --profile web 换成 --profile desktop。四个组件会作为 dependencies 一起装上,不需要逐个装。
|
|
52
37
|
|
|
53
38
|
### 使用
|
|
54
39
|
|
|
55
|
-
|
|
40
|
+
装好后动作条就在消息行上:
|
|
56
41
|
|
|
57
|
-
1.
|
|
58
|
-
2.
|
|
59
|
-
3.
|
|
42
|
+
1. 悬停你发出的那条消息 → 铅笔(编辑并重跑);
|
|
43
|
+
2. 悬停模型的回复 → 重跑 / 删除;
|
|
44
|
+
3. 设置 → 插件 多出一个 AI Studio 标签页,列出每个组件的实时状态、版本、占用的槽位,以及互操作契约分配表。
|
|
60
45
|
|
|
61
46
|
### 工作原理
|
|
62
47
|
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
- 某个组件缺席时,它的那一行会在 import 阶段失败并被 loader 隔离,其余行照常启动。
|
|
68
|
-
|
|
69
|
-
### 已修复 / 版本
|
|
70
|
-
|
|
71
|
-
- 0.1.1 —— 契约补 §9「热重载纪律」(2026-10-01「点不动」事故:client bundle 单独热重载 + 宿主未重启 = 混合态);新增 AGENTS.md 与三处版本号一致性测试。
|
|
72
|
-
- 0.1.0 —— 首个版本:组合四个组件、固化互操作契约、报告组件状态。
|
|
48
|
+
- **宿主半侧**(src/index.js):await import 导入每个组件的宿主半侧并 ctx.plugin 挂进本 fiber —— 它们的 loopback 路由与回滚/重放服务因此就位。缺哪个报告哪个,绝不致命。
|
|
49
|
+
- **浏览器半侧**(src/client.js,由 tools/build.mjs 生成):单一大 bundle —— studio 自己的浏览器半侧 + 四个组件的 factory(各自 var module / var exports / const react,靠 var 提升共处一个 scope)。bundle 是按 Loader 行下发的,所以这是它们到达页面的唯一方式。
|
|
50
|
+
- **为什么宿主半侧不内联**:宿主代码对插件列表不可见,复制它只会凭空多出一份要维护的东西。
|
|
51
|
+
- **状态面板**:读 GET /api/dsh-as-aistudio/status,对每个组件报告 installed / hostMounted / version / ownRows(ownRows 大于 0 表示它还被独立安装着)。
|
|
73
52
|
|
|
74
53
|
### 已知限制
|
|
75
54
|
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
55
|
+
- 四个组件的 browser factory 是生成副本。改了组件必须 npm run vendor && npm run build 再发本包;verify:vendor / verify:build 会拦住过期副本。
|
|
56
|
+
- 组件缺席(有人手动删了依赖)时,它的 browser half 不会挂载,面板显示「已安装,宿主未挂载」或「未安装」。
|
|
57
|
+
- 宿主版本常量只在进程启动时读一次:改了本包要重启宿主 + 硬刷新。
|
|
79
58
|
|
|
80
59
|
### 兼容性
|
|
81
60
|
|
|
82
|
-
- DSH
|
|
83
|
-
- profile
|
|
84
|
-
-
|
|
61
|
+
- DSH >=0.1.6-alpha.2(0.2.0-rc.1 实测通过);
|
|
62
|
+
- profile:web、desktop;
|
|
63
|
+
- 四个组件都可单独安装,也可以任意子集和本包共存。
|
|
85
64
|
|
|
86
65
|
### License
|
|
87
66
|
|
|
@@ -93,79 +72,51 @@ MIT
|
|
|
93
72
|
|
|
94
73
|
### Why you need it
|
|
95
74
|
|
|
96
|
-
What makes AI Studio pleasant is not the model: it is that
|
|
97
|
-
|
|
98
|
-
Four components supply that layer. This package makes them **installable, compatible and visible**:
|
|
99
|
-
|
|
100
|
-
- **installable** — one install turns on the whole action strip;
|
|
101
|
-
- **compatible** — each component is independent and any subset coexists; the interop contract is pinned here and tested;
|
|
102
|
-
- **visible** — which component is installed, enabled or absent, on one panel.
|
|
75
|
+
What makes AI Studio pleasant is not the model: it is that every step of a turn can be revisited. DSH offers whole-transcript compaction only. Four components add turn-level edit, re-run and delete; this package makes them installable, compatible and visible.
|
|
103
76
|
|
|
104
77
|
### Features
|
|
105
78
|
|
|
106
|
-
- **One
|
|
107
|
-
- **
|
|
108
|
-
- **
|
|
109
|
-
- **
|
|
110
|
-
- **
|
|
111
|
-
- **Web and desktop are one implementation** — the
|
|
112
|
-
|
|
113
|
-
### Components
|
|
114
|
-
|
|
115
|
-
| Component | What it does | Repo |
|
|
116
|
-
| --- | --- | --- |
|
|
117
|
-
| `dsh-edit-turn` | Rewrite a prompt in place and re-run it (rolls back to just before that turn) | <https://github.com/DDDMUC/dsh-edit-turn> |
|
|
118
|
-
| `dsh-rerun-turn` | Infix re-run: regenerate one reply from the same prompt, later turns survive | <https://github.com/DDDMUC/dsh-rerun-turn> |
|
|
119
|
-
| `dsh-delete-turn` | Remove a message, a step or a whole reply from the derived model context | <https://github.com/DDDMUC/dsh-delete-turn> |
|
|
120
|
-
| `dsh-markdown-bubble` | Render sent prompts as Markdown | <https://github.com/DDDMUC/dsh-markdown-bubble> |
|
|
121
|
-
|
|
122
|
-
All four are **optional dependencies**: a component that cannot be installed, was removed, or is unavailable offline simply misses its row; the studio still boots.
|
|
79
|
+
- **One row** — the plugin list shows only AI Studio. The four components are dependencies mounted by this package and no longer occupy rows of their own (the @linxin666/dsh-web-all pattern).
|
|
80
|
+
- **Components stay independent packages** — each keeps its own repo and its own cordis.patch.yml and works alone. This package copies no component logic: the host halves ARE the components, and the browser factories are lifted verbatim from their sources by tools/vendor.mjs.
|
|
81
|
+
- **The vendored copy cannot drift** — npm run vendor regenerates it, npm run build regenerates the bundle, and verify:vendor / verify:build are read-only gates; the test suite fails on a stale copy.
|
|
82
|
+
- **One failure does not take the rest** — each vendored factory mounts behind its own guard.
|
|
83
|
+
- **A verifiable interop contract** — slot orders, row-hide ownership and the sibling probe protocol live in docs/INTEROP.md and are asserted by the combination matrix.
|
|
84
|
+
- **Web and desktop are one implementation** — the same dsh.client.platform: web bundle; no location.origin, window.open, navigator.*, dialog or popover.
|
|
123
85
|
|
|
124
86
|
### Install
|
|
125
87
|
|
|
126
88
|
```sh
|
|
127
|
-
# The whole AI Studio set (studio plus its four components)
|
|
128
89
|
dsh plugin --profile web add dsh-as-aistudio
|
|
129
|
-
|
|
130
|
-
# Or just one capability
|
|
131
|
-
dsh plugin --profile web add dsh-delete-turn
|
|
132
90
|
```
|
|
133
91
|
|
|
134
|
-
|
|
92
|
+
Use --profile desktop on the desktop app. The four components arrive as dependencies; there is nothing else to install.
|
|
135
93
|
|
|
136
94
|
### Usage
|
|
137
95
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
2. Hover **a model reply** → re-run / delete;
|
|
142
|
-
3. Settings → Plugins gains an **AI Studio** tab listing each component's live state, version, the slot it claims, and the interop allocation.
|
|
96
|
+
1. Hover a message you sent → the pencil (edit and re-run);
|
|
97
|
+
2. Hover a model reply → re-run / delete;
|
|
98
|
+
3. Settings → Plugins gains an AI Studio tab listing each component's live state, version, the slot it claims, and the interop allocation.
|
|
143
99
|
|
|
144
100
|
### How it works
|
|
145
101
|
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
- The
|
|
150
|
-
- A missing component fails at import and is isolated by the loader; every other row still starts.
|
|
151
|
-
|
|
152
|
-
### Fixes / versions
|
|
153
|
-
|
|
154
|
-
- 0.1.1 — contract gains §9 "hot reload discipline" (the 2026-10-01 dead-button incident: a client bundle hot-reloaded alone while the host kept running is a mixed state); adds AGENTS.md and a three-place version check.
|
|
155
|
-
- 0.1.0 — first release: composes the four components, pins the interop contract, reports component status.
|
|
102
|
+
- **Host half** (src/index.js): imports each component's host half and applies it into this fiber with ctx.plugin, which is what puts its loopback routes and its rollback / replay services in place. A missing one is reported, never fatal.
|
|
103
|
+
- **Browser half** (src/client.js, generated by tools/build.mjs): one bundle — the studio's own browser half plus the four component factories, each with its own var module / var exports / const react in one scope via hoisting. A bundle is served per Loader row, so this is the only way they can reach the page.
|
|
104
|
+
- **Why the host halves are not vendored**: host code is invisible to the plugin list, so copying it would only create a second thing to fix.
|
|
105
|
+
- **The panel** reads GET /api/dsh-as-aistudio/status and reports installed / hostMounted / version / ownRows per component (ownRows greater than 0 means it is also installed standalone).
|
|
156
106
|
|
|
157
107
|
### Known limitations
|
|
158
108
|
|
|
159
|
-
- The
|
|
160
|
-
-
|
|
161
|
-
-
|
|
109
|
+
- The four browser factories are a generated copy. After changing a component, run npm run vendor && npm run build before releasing this package; the verify gates block a stale copy.
|
|
110
|
+
- A component that is somehow absent is not mounted and the panel says so.
|
|
111
|
+
- The host version constant is read once at process start: after changing this package, restart the host and hard-refresh.
|
|
162
112
|
|
|
163
113
|
### Compatibility
|
|
164
114
|
|
|
165
|
-
- DSH
|
|
166
|
-
- Profiles:
|
|
167
|
-
- Every component installs alone, and any subset
|
|
115
|
+
- DSH >=0.1.6-alpha.2 (verified on 0.2.0-rc.1);
|
|
116
|
+
- Profiles: web, desktop;
|
|
117
|
+
- Every component installs alone, and any subset coexists with this package.
|
|
168
118
|
|
|
169
119
|
### License
|
|
170
120
|
|
|
171
121
|
MIT
|
|
122
|
+
|
package/cordis.patch.yml
CHANGED
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
# dsh-as-aistudio bundle patch: the AI Studio composition.
|
|
1
|
+
# dsh-as-aistudio bundle patch: the AI Studio composition, ONE row.
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
# through that row, and the platform's entry tree is keyed by id, so a row
|
|
7
|
-
# inserted twice (by this patch and by the component's own bundle) merges into a
|
|
8
|
-
# single entry rather than mounting the plugin twice.
|
|
3
|
+
# Self-contained: the plugin list shows exactly this row. The four components are
|
|
4
|
+
# ordinary npm dependencies of this package (see package.json), not profile
|
|
5
|
+
# bundles, so they have no rows of their own and never appear in that list.
|
|
9
6
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
7
|
+
# The node half mounts each component HOST half (its loopback routes and its
|
|
8
|
+
# rollback / replay services) by importing the installed package, so host logic
|
|
9
|
+
# stays in the components and there is only one copy of it. The browser bundles
|
|
10
|
+
# travel inside this package (src/client.js) because a browser bundle is served
|
|
11
|
+
# per Loader row and the components have none.
|
|
14
12
|
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
#
|
|
13
|
+
# A component that is not installed is reported by /api/dsh-as-aistudio/status and
|
|
14
|
+
# is never mounted - the studio boots either way. Each component still has its own
|
|
15
|
+
# cordis.patch.yml, so installing one standalone mounts it through its own row.
|
|
16
|
+
#
|
|
17
|
+
# The entry name is the BARE package name on purpose: the client-module scanner
|
|
18
|
+
# treats it as a package specifier and resolves <name>/package.json for the
|
|
19
|
+
# dsh.client declaration, so a subpath entry would be cached as "not a client
|
|
20
|
+
# package" and the browser half would silently never load.
|
|
20
21
|
- insert:
|
|
21
22
|
- id: dsh-as-aistudio
|
|
22
23
|
name: 'dsh-as-aistudio'
|
|
23
|
-
- id: dsh-edit-turn
|
|
24
|
-
name: 'dsh-edit-turn'
|
|
25
|
-
- id: dsh-rerun-turn
|
|
26
|
-
name: 'dsh-rerun-turn'
|
|
27
|
-
- id: dsh-delete-turn
|
|
28
|
-
name: 'dsh-delete-turn'
|
|
29
|
-
- id: dsh-markdown-bubble
|
|
30
|
-
name: 'dsh-markdown-bubble'
|
package/docs/INTEROP.md
CHANGED
|
@@ -180,3 +180,36 @@ function foreignHideOn(row, own) {
|
|
|
180
180
|
**给改这两个包的 agent**:动路由、`planRerun` 或错误码之前,先在 `dsh-rerun-turn` 跑
|
|
181
181
|
`node --test test/contract.test.js`;把探测状态的 400 改成 404 会让 2 例转红,给 `/apply` 加一个必填
|
|
182
182
|
`confirmToken` 会让 5 例转红 —— 破坏契约会在本地就暴露,而不是等用户发现按钮点不动。
|
|
183
|
+
|
|
184
|
+
## 11. 自包含架构(2026-10-02)
|
|
185
|
+
|
|
186
|
+
用户要求「插件列表里只有 AI Studio 一行」。平台的清单服务返回扁平数组,过滤条件是
|
|
187
|
+
!entry.options.group && !entry.disabled && entry.fiber.state === 2
|
|
188
|
+
(@deepseek-ai/dsh-plugin-package-inventory-deepseek/lib/index.js:100)—— 没有 hidden 开关,
|
|
189
|
+
group 也只能把 group 自己藏起来,子条目照样平铺。所以「在跑等价于在列表里」是硬约束。
|
|
190
|
+
|
|
191
|
+
唯一的出路是让四个组件不再是 Loader 行。本包因此改成自包含(@linxin666/dsh-web-all 同款):
|
|
192
|
+
|
|
193
|
+
| 部件 | 位置 | 说明 |
|
|
194
|
+
| --- | --- | --- |
|
|
195
|
+
| patch | cordis.patch.yml | 只插一行(本包自己) |
|
|
196
|
+
| 组件身份 | package.json dependencies | 普通依赖,不是 profile bundle |
|
|
197
|
+
| 宿主半侧 | src/index.js | await import 加 ctx.plugin 挂载组件的宿主半侧 |
|
|
198
|
+
| 浏览器半侧 | src/client.js | 单一大 bundle(生成物) |
|
|
199
|
+
| 内联来源 | src/vendor/*.js | tools/vendor.mjs 从组件源码逐字剥离 factory |
|
|
200
|
+
| 缝合器 | tools/build.mjs | studio 加四个 factory 合成一个 bundle |
|
|
201
|
+
|
|
202
|
+
两条设计红线:
|
|
203
|
+
|
|
204
|
+
1. 宿主半侧不内联。宿主代码对列表不可见,复制它只会多出一份要维护的东西;import 加
|
|
205
|
+
ctx.plugin 就够,且组件的路由、回滚、重放逻辑仍是唯一正本。
|
|
206
|
+
2. 浏览器半侧必须内联。bundle 是按 Loader 行下发的(/plugins/<行id>/client.js),
|
|
207
|
+
组件没有行就没有 bundle。
|
|
208
|
+
|
|
209
|
+
防漂移:副本由工具生成、带 sha256 戳,npm run verify:vendor / verify:build 只读校验,
|
|
210
|
+
测试在副本与组件源不一致时失败。手工编辑 src/vendor/* 或 src/client.js 是禁止的。
|
|
211
|
+
|
|
212
|
+
实测(隔离实例,只装本包 tarball):composed 184 行里组件行 0;/api/dsh-as-aistudio/status
|
|
213
|
+
hostMounted 4/4;GET /dsh-rerun-turn/state 返回 400(edit-turn 的挂载探测契约未破);
|
|
214
|
+
boot graph 66 条里组件条目 0;served bundle 200 且含四个 factory。
|
|
215
|
+
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-as-aistudio",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Google-AI-Studio-style turn controls for DeepSeek Harness, in one install: edit a prompt and re-run it, re-run a reply in place, delete a turn from the model context, and render sent prompts as Markdown.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Google-AI-Studio-style turn controls for DeepSeek Harness, in one install: edit a prompt and re-run it, re-run a reply in place, delete a turn from the model context, and render sent prompts as Markdown. Self-contained: the plugin list shows this one row; the four components are dependencies mounted by it. Each still installs alone and works alone.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
13
|
"src",
|
|
14
|
+
"tools",
|
|
14
15
|
"cordis.patch.yml",
|
|
15
16
|
"docs/INTEROP.md",
|
|
16
17
|
"README.md",
|
|
@@ -37,13 +38,18 @@
|
|
|
37
38
|
"node": ">=22"
|
|
38
39
|
},
|
|
39
40
|
"scripts": {
|
|
40
|
-
"
|
|
41
|
+
"vendor": "node tools/vendor.mjs",
|
|
42
|
+
"build": "node tools/vendor.mjs && node tools/build.mjs",
|
|
43
|
+
"test": "node --test test/*.test.js",
|
|
44
|
+
"check": "npm run build && npm test",
|
|
45
|
+
"verify:vendor": "node tools/vendor.mjs --check",
|
|
46
|
+
"verify:build": "node tools/build.mjs --check"
|
|
41
47
|
},
|
|
42
|
-
"
|
|
48
|
+
"dependencies": {
|
|
43
49
|
"dsh-delete-turn": "^0.1.7",
|
|
44
|
-
"dsh-edit-turn": "^0.2.
|
|
45
|
-
"dsh-markdown-bubble": "^0.1.
|
|
46
|
-
"dsh-rerun-turn": "^0.1.
|
|
50
|
+
"dsh-edit-turn": "^0.2.15",
|
|
51
|
+
"dsh-markdown-bubble": "^0.1.4",
|
|
52
|
+
"dsh-rerun-turn": "^0.1.24"
|
|
47
53
|
},
|
|
48
54
|
"dsh": {
|
|
49
55
|
"bundle": {
|
|
@@ -52,7 +58,11 @@
|
|
|
52
58
|
"client": {
|
|
53
59
|
"platform": "web",
|
|
54
60
|
"inject": [
|
|
55
|
-
"@deepseek-ai/dsh-client-locale"
|
|
61
|
+
"@deepseek-ai/dsh-client-locale",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-chat",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-primitives",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins"
|
|
56
66
|
]
|
|
57
67
|
},
|
|
58
68
|
"engines": {
|
|
@@ -65,4 +75,4 @@
|
|
|
65
75
|
}
|
|
66
76
|
}
|
|
67
77
|
}
|
|
68
|
-
}
|
|
78
|
+
}
|