@michengai/dsh-btw 0.1.3 → 0.1.5

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/CHANGELOG.md CHANGED
@@ -1,18 +1,32 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
3
+ ## [0.1.5] - 2026-09-10
4
+
5
+ - Record manual end-to-end acceptance with Edge and a live DeepSeek model on `0.1.5-rc.1`: side questions, attachment rejection, copying, collapse/expand, cancellation, and continued parent-session operation. This is separate from `npm run test:compat`; the older three versions have not undergone browser end-to-end acceptance.
6
+ - Normalize lockfile download URLs to the official npm registry without changing package versions or integrity hashes.
7
+ - Support DSH `0.1.5-rc.1` unified attachments, rejecting images and files while retaining the legacy image-count protocol.
8
+ - Declare exact host peers `0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1` and update development dependencies and the lockfile to `0.1.5-rc.1`.
9
+ - Remove the standalone ui-chat injection requirement unavailable on older hosts while retaining conversation slot integration.
10
+ - Add `npm run test:compat`: artifacts built with the latest dependencies pass 43 tests on each of four isolated hosts, including real subagent forks, context isolation, disabled tools, cancellation, and continued parent-session operation, using a test model adapter.
11
+ - Run host tests against project dependencies by default instead of skipping when a local DSH installation is absent; cover attachment rejection and verify tool guards, RPC, and unload cleanup across the supported hosts.
12
+ - Use immutable absolute URLs for README images without adding image files to the npm package.
13
+ - Stop GitHub Release operations when the release list cannot be queried, and test creation, updates, and failure handling.
14
+ - Add React component tests for safe Markdown rendering, copying and retrying, collapse/expand, and closing.
15
+
16
+ ## [0.1.4] - 2026-09-07
17
+
18
+ - Exclude repository-only screenshots and branding images from the published npm tarball, reducing the package size while keeping README images available on GitHub.
19
+ - Remove the standalone mock preview and its mock-only browser test so the repository no longer presents it as a real DSH plugin page.
4
20
 
5
21
  ## [0.1.3] - 2026-09-06
6
22
 
7
23
  - Fix the package path in GitHub Actions so npm treats the tarball as a local file, and validate it with an npm publish dry run before publishing.
8
24
  - Include the OIDC authorization check and its failure and credential-handling tests prepared for 0.1.2, whose publication failed before uploading a package.
9
- - Remove the references and credits section from both READMEs. Plugin behavior is unchanged.
10
25
 
11
26
  ## [0.1.2] - 2026-09-06
12
27
 
13
28
  - Add a GitHub Actions dry-run check that verifies the configured npm trusted publisher by exchanging an OIDC identity for a short-lived publishing credential without uploading a package.
14
29
  - Add authorization failure and credential-handling tests for the release workflow. Plugin behavior is unchanged.
15
- - Remove the references and credits section from both READMEs.
16
30
 
17
31
  ## [0.1.1] - 2026-09-06
18
32
 
@@ -1,18 +1,32 @@
1
1
  # 更新日志
2
2
 
3
- ## [未发布]
3
+ ## [0.1.5] - 2026-09-10
4
+
5
+ - 记录 `0.1.5-rc.1` 上真实 Edge 与 DeepSeek 模型的手工端到端验收:旁问、附件拒绝、复制、折叠/展开、取消及父会话继续均通过;此验收独立于 `npm run test:compat`,旧三版尚未执行浏览器端到端。
6
+ - 将锁文件下载地址统一至 npm 官方源,保持依赖版本及 integrity 校验值不变。
7
+ - 适配 DSH `0.1.5-rc.1` 的统一附件接口,拒绝图片和普通文件,保留旧版图片计数协议。
8
+ - 宿主 peer 依赖精确声明为 `0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1`,开发依赖及锁文件统一升级至 `0.1.5-rc.1`。
9
+ - 移除旧宿主不存在的独立 ui-chat 注入要求,保留会话插槽接入。
10
+ - 新增 `npm run test:compat`:最新版编译产物在四版隔离宿主各通过 43 项测试,包含真实子代理 fork、上下文隔离、工具禁用、取消与父会话继续运行;模型使用测试适配器。
11
+ - 宿主测试默认使用项目依赖,不再因本机缺少 DSH 而跳过;补充附件拒绝回归并验证新旧宿主工具保护、RPC 和卸载清理。
12
+ - README 图片改用固定提交的绝对地址,不增加 npm 包内图片文件。
13
+ - GitHub Release 列表查询失败时停止发布操作,补充创建、更新与异常分支测试。
14
+ - 补充真实 React 组件测试,覆盖 Markdown 安全渲染、复制及重试、折叠展开和关闭。
15
+
16
+ ## [0.1.4] - 2026-09-07
17
+
18
+ - 从 npm 发布包中排除仅供仓库展示的截图和品牌图片,在保留 GitHub README 图片的同时缩小安装包体积。
19
+ - 删除独立 mock 预览及仅验证该 mock 的浏览器测试,避免再将其当作真实 DSH 插件页面。
4
20
 
5
21
  ## [0.1.3] - 2026-09-06
6
22
 
7
23
  - 修复 GitHub Actions 安装包路径,确保 npm 将 tar 包识别为本地文件,并在正式发布前通过 npm publish dry run 验证。
8
24
  - 包含原定 0.1.2 的 OIDC 授权检查及授权失败、凭据处理测试;0.1.2 发布在上传安装包前失败。
9
- - 移除中英文 README 中的参考与致谢章节。插件功能保持不变。
10
25
 
11
26
  ## [0.1.2] - 2026-09-06
12
27
 
13
28
  - 为 GitHub Actions 的不发布验证增加 npm 可信发布检查,通过 OIDC 身份交换短期发布凭据,验证授权但不上传安装包。
14
29
  - 补充发布流程的授权失败和凭据处理测试。插件功能保持不变。
15
- - 移除中英文 README 中的参考与致谢章节。
16
30
 
17
31
  ## [0.1.1] - 2026-09-06
18
32
 
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/branding/dsh-btw-banner.png" alt="DSH BTW" width="100%">
2
+ <img src="https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/branding/dsh-btw-banner.png" alt="DSH BTW" width="100%">
3
3
  </p>
4
4
 
5
5
  <div align="center">
@@ -33,30 +33,54 @@
33
33
 
34
34
  The main conversation stays in place, with the side answer above the composer.
35
35
 
36
- ![A BTW answer bubble in the stock DSH conversation](assets/screenshots/btw-conversation.png)
36
+ ![A BTW answer bubble in the stock DSH conversation](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-conversation.png)
37
37
 
38
38
  ### Command menu
39
39
 
40
40
  Type `/` and select `btw` under the side-question category, or enter `/btw your question` directly.
41
41
 
42
- ![The side-question category and btw command](assets/screenshots/btw-command-menu.png)
42
+ ![The side-question category and btw command](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-command-menu.png)
43
43
 
44
44
  ### Independent answer bubbles
45
45
 
46
46
  Each answer has its own copy, collapse or expand, and close controls in the upper right.
47
47
 
48
- ![Multiple answer bubbles with copy, collapse, and close controls](assets/screenshots/btw-bubbles.png)
48
+ ![Multiple answer bubbles with copy, collapse, and close controls](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-bubbles.png)
49
+
50
+ ## DSH product ecosystem
51
+
52
+ For a ready-to-use workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). If you already use [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), install any of these eight plugins individually. The desktop app includes all eight.
53
+
54
+ | Plugin | What you can do |
55
+ | --- | --- |
56
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
57
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through your usual messenger |
58
+ | [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
59
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Find, enable, create, and import local skills |
60
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
61
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
62
+ | [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
63
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | Use /simplify to improve code within your Git changes |
49
64
 
50
65
  ## Prerequisites
51
66
 
52
- - An installed copy of DeepSeek Harness. The supported baseline is `0.1.2-rc.1`.
67
+ - An installed copy of DeepSeek Harness.
68
+ - Host peers accept exactly `0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1`.
53
69
  - Node.js 22+ and `dsh` available in your terminal.
54
70
 
55
71
  ## Installation
56
72
 
57
73
  Examples use the `web` profile; replace it with your target profile. Disable other plugins that provide `/btw` before installing.
58
74
 
59
- ### From npm (Recommended)
75
+ ### Ask an agent to install it (recommended)
76
+
77
+ Send the prompt below to any agent that can run terminal commands on your computer. Replace `web` with your actual profile. Once installed, use the plugin in DSH.
78
+
79
+ ```text
80
+ Install the DSH plugin @michengai/dsh-btw into my local web profile by running: dsh plugin --profile web add @michengai/dsh-btw@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm the configuration includes michengai-btw, and explain how to reload DSH and start using the plugin.
81
+ ```
82
+
83
+ ### Install manually from npm
60
84
 
61
85
  ```powershell
62
86
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
@@ -100,6 +124,8 @@ In a conversation with existing context, enter:
100
124
 
101
125
  Use the regular conversation to run commands, edit code, or continue the main task. BTW can only answer using existing context.
102
126
 
127
+ BTW accepts text only. Side questions with images or files are rejected without clearing the draft or attachments; remove the attachments before retrying.
128
+
103
129
  ### Usage Notes
104
130
 
105
131
  - Each question is independent and uses completed content from the main conversation at the time you ask. It does not include an answer still being generated or previous side questions.
@@ -126,7 +152,11 @@ npm ci --ignore-scripts
126
152
  npm run check
127
153
  ```
128
154
 
129
- `npm run check` runs type checking, tests, and a build. After building, use `npm run test:browser` for browser tests; Microsoft Edge is required locally. `npm run dev` provides a UI preview with mock answers.
155
+ `npm run check` runs type checking, tests, and a build.
156
+
157
+ Development and builds target `0.1.5-rc.1`. `npm run test:compat` builds with that baseline and runs 43 tests on each of the four isolated host versions, using a test model adapter.
158
+
159
+ Separate manual end-to-end acceptance with Edge and a live DeepSeek model passed on `0.1.5-rc.1`: side questions, attachment rejection, copying, collapse/expand, cancellation, and continued parent-session operation. This is not part of `npm run test:compat`; browser end-to-end acceptance has not been performed on the older three versions.
130
160
 
131
161
  To install from source, run `dsh plugin --profile web add . --ignore-scripts` from the project directory, then reload DSH.
132
162
 
package/README.zh-CN.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/branding/dsh-btw-banner.png" alt="DSH BTW" width="100%">
2
+ <img src="https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/branding/dsh-btw-banner.png" alt="DSH BTW" width="100%">
3
3
  </p>
4
4
 
5
5
  <div align="center">
@@ -33,30 +33,54 @@
33
33
 
34
34
  主会话保留在原来的位置,旁问答案位于输入框上方。
35
35
 
36
- ![原生 DSH 会话中的 BTW 独立答案气泡](assets/screenshots/btw-conversation.png)
36
+ ![原生 DSH 会话中的 BTW 独立答案气泡](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-conversation.png)
37
37
 
38
38
  ### 命令入口
39
39
 
40
40
  输入 `/` 后,可在「旁问」分类中选择 `btw`,也可以直接输入 `/btw 问题`。
41
41
 
42
- ![命令菜单中的旁问分类和 btw 入口](assets/screenshots/btw-command-menu.png)
42
+ ![命令菜单中的旁问分类和 btw 入口](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-command-menu.png)
43
43
 
44
44
  ### 独立答案气泡
45
45
 
46
46
  每条旁问单独展示,右上角提供复制、折叠或展开、关闭操作。
47
47
 
48
- ![多条旁问气泡及复制、折叠和关闭操作](assets/screenshots/btw-bubbles.png)
48
+ ![多条旁问气泡及复制、折叠和关闭操作](https://raw.githubusercontent.com/MichengAI/dsh-btw/2d8dd7752cec1b29dd705969eaa932635ba0bf4f/assets/screenshots/btw-bubbles.png)
49
+
50
+ ## DSH 产品生态
51
+
52
+ 想直接使用完整工作台,可下载 [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases);已有 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 环境,可按需独立安装以下 8 个自研插件。桌面端已随附这些插件。
53
+
54
+ | 插件 | 你可以用它做什么 |
55
+ | --- | --- |
56
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | 整理项目与会话、搜索任务、跳转对话轮次 |
57
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | 从微信、飞书、钉钉等消息平台下任务、收回复 |
58
+ | [Automation](https://github.com/MichengAI/dsh-automation) | 按计划执行任务,查看每次运行的结果 |
59
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | 统一查找、启停、创建和导入本机技能 |
60
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | 搜索、恢复或清理已归档会话 |
61
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | 按任务选择并召唤专业角色 |
62
+ | [BTW](https://github.com/MichengAI/dsh-btw) | 在当前上下文中临时旁问,不打断主任务 |
63
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | 用 /simplify 整理 Git 改动范围内的代码 |
49
64
 
50
65
  ## 前置条件
51
66
 
52
- - 已安装 DeepSeek Harness,适配版本为 `0.1.2-rc.1`。
67
+ - 已安装 DeepSeek Harness。
68
+ - 宿主 peer 依赖精确声明为 `0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1`。
53
69
  - Node.js 22+,可在终端执行 `dsh`。
54
70
 
55
71
  ## 安装
56
72
 
57
73
  以下命令使用 `web` profile,请按实际环境替换。安装前停用其他提供 `/btw` 命令的插件。
58
74
 
59
- ### 从 npm 安装(推荐)
75
+ ### 让 Agent 帮你安装(推荐)
76
+
77
+ 把下面这段话发给任意能够执行本机终端命令的 Agent。将 `web` 替换为实际使用的 profile;安装完成后,在 DSH 中使用本插件。
78
+
79
+ ```text
80
+ 请将 DSH 插件 @michengai/dsh-btw 安装到本机 web profile,执行:dsh plugin --profile web add @michengai/dsh-btw@latest --registry=https://registry.npmjs.org/。安装后执行 dsh --profile web --dump-config,确认配置包含 michengai-btw,并告诉我如何重新加载 DSH 和开始使用。
81
+ ```
82
+
83
+ ### 手动从 npm 安装
60
84
 
61
85
  ```powershell
62
86
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
@@ -99,6 +123,8 @@ dsh plugin --profile web add .\michengai-dsh-btw-0.1.0.tgz --ignore-scripts
99
123
 
100
124
  若需要执行命令、修改代码或继续主任务,请通过普通会话提交。BTW 只能依据已有上下文作答。
101
125
 
126
+ BTW 只接受文字。输入框中附带图片或普通文件时会拒绝旁问,并保留输入和附件,请移除附件后重试。
127
+
102
128
  ### 使用说明
103
129
 
104
130
  - 每次旁问相互独立,参考的是提问时主会话已完成的内容,不包含正在生成的回答或之前的旁问。
@@ -124,7 +150,11 @@ npm ci --ignore-scripts
124
150
  npm run check
125
151
  ```
126
152
 
127
- `npm run check` 执行类型检查、测试和构建。构建后可运行 `npm run test:browser` 做浏览器测试,本地需要 Microsoft Edge。`npm run dev` 提供使用模拟回答的界面预览。
153
+ `npm run check` 执行类型检查、测试和构建。
154
+
155
+ 开发与构建基线为 `0.1.5-rc.1`。`npm run test:compat` 用该基线编译,再在四个隔离宿主版本中分别运行 43 项测试,模型使用测试适配器。
156
+
157
+ 另在 `0.1.5-rc.1` 上完成真实 Edge 与 DeepSeek 模型的手工端到端验收,旁问、附件拒绝、复制、折叠/展开、取消和父会话继续均通过。这不属于 `npm run test:compat`;旧三版尚未执行浏览器端到端验收。
128
158
 
129
159
  从源码安装时,在项目目录执行 `dsh plugin --profile web add . --ignore-scripts`,然后重新加载 DSH。
130
160
 
package/lib/client.js CHANGED
@@ -387,8 +387,8 @@ var zh = {
387
387
  "menu.group": "\u65C1\u95EE",
388
388
  "command.description": "\u6839\u636E\u5F53\u524D\u4E0A\u4E0B\u6587\u56DE\u7B54\u65C1\u95EE",
389
389
  "error.copy": "\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u9009\u62E9\u56DE\u7B54\u6587\u5B57\u590D\u5236\u3002",
390
- "error.images": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u56FE\u7247\u4ECD\u4FDD\u7559\u5728\u8F93\u5165\u6846\u4E2D\u3002",
391
- "error.removeImages": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u8BF7\u5148\u79FB\u9664\u56FE\u7247\u3002",
390
+ "error.attachments": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u56FE\u7247\u548C\u6587\u4EF6\u4ECD\u4FDD\u7559\u5728\u8F93\u5165\u6846\u4E2D\u3002",
391
+ "error.removeAttachments": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u8BF7\u5148\u79FB\u9664\u56FE\u7247\u548C\u6587\u4EF6\u3002",
392
392
  "error.backend": "BTW \u540E\u7AEF\u5C1A\u672A\u542F\u7528\uFF0C\u8BF7\u68C0\u67E5\u63D2\u4EF6\u914D\u7F6E\u3002",
393
393
  "error.empty": "\u8BF7\u8F93\u5165\u65C1\u95EE\u5185\u5BB9\u3002",
394
394
  "error.length": "\u65C1\u95EE\u6700\u591A\u652F\u6301 8000 \u4E2A\u5B57\u7B26\u3002",
@@ -424,8 +424,8 @@ var en = {
424
424
  "menu.group": "Side Questions",
425
425
  "command.description": "Ask a side question using the current context",
426
426
  "error.copy": "Copy failed. Select the answer text to copy it.",
427
- "error.images": "Side questions accept text only. Your images remain in the input.",
428
- "error.removeImages": "Side questions accept text only. Remove the images first.",
427
+ "error.attachments": "Side questions accept text only. Your images and files remain in the input.",
428
+ "error.removeAttachments": "Side questions accept text only. Remove the images and files first.",
429
429
  "error.backend": "The BTW backend is unavailable. Check the plugin configuration.",
430
430
  "error.empty": "Enter a side question.",
431
431
  "error.length": "Side questions are limited to 8,000 characters.",
@@ -13418,8 +13418,8 @@ function apply(ctx) {
13418
13418
  get hint() {
13419
13419
  return t("command.hint");
13420
13420
  },
13421
- submit: async (args, _actx, images) => {
13422
- if (images.length) return { kind: "error", text: t("error.images") };
13421
+ submit: async (args, _actx, attachments) => {
13422
+ if (attachments.length) return { kind: "error", text: t("error.attachments") };
13423
13423
  try {
13424
13424
  await store.ask(sessionId, args.trim());
13425
13425
  return { kind: "success" };
@@ -13437,7 +13437,8 @@ function apply(ctx) {
13437
13437
  matchSpace: (session, token) => token === "/btw" ? claim(session.sessionId) : void 0,
13438
13438
  matchEnter: async (session, line, signal, envelope) => {
13439
13439
  if (signal.aborted || !/^\/btw(?:\s|$)/.test(line)) return void 0;
13440
- if (envelope.images) throw new Error(t("error.removeImages"));
13440
+ const input = envelope;
13441
+ if (input.attachments || input.images) throw new Error(t("error.removeAttachments"));
13441
13442
  return claim(session.sessionId);
13442
13443
  }
13443
13444
  };
package/lib/index.js CHANGED
@@ -15,8 +15,8 @@ var zh = {
15
15
  "menu.group": "\u65C1\u95EE",
16
16
  "command.description": "\u6839\u636E\u5F53\u524D\u4E0A\u4E0B\u6587\u56DE\u7B54\u65C1\u95EE",
17
17
  "error.copy": "\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u9009\u62E9\u56DE\u7B54\u6587\u5B57\u590D\u5236\u3002",
18
- "error.images": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u56FE\u7247\u4ECD\u4FDD\u7559\u5728\u8F93\u5165\u6846\u4E2D\u3002",
19
- "error.removeImages": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u8BF7\u5148\u79FB\u9664\u56FE\u7247\u3002",
18
+ "error.attachments": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u56FE\u7247\u548C\u6587\u4EF6\u4ECD\u4FDD\u7559\u5728\u8F93\u5165\u6846\u4E2D\u3002",
19
+ "error.removeAttachments": "\u65C1\u95EE\u53EA\u63A5\u53D7\u6587\u5B57\uFF0C\u8BF7\u5148\u79FB\u9664\u56FE\u7247\u548C\u6587\u4EF6\u3002",
20
20
  "error.backend": "BTW \u540E\u7AEF\u5C1A\u672A\u542F\u7528\uFF0C\u8BF7\u68C0\u67E5\u63D2\u4EF6\u914D\u7F6E\u3002",
21
21
  "error.empty": "\u8BF7\u8F93\u5165\u65C1\u95EE\u5185\u5BB9\u3002",
22
22
  "error.length": "\u65C1\u95EE\u6700\u591A\u652F\u6301 8000 \u4E2A\u5B57\u7B26\u3002",
@@ -52,8 +52,8 @@ var en = {
52
52
  "menu.group": "Side Questions",
53
53
  "command.description": "Ask a side question using the current context",
54
54
  "error.copy": "Copy failed. Select the answer text to copy it.",
55
- "error.images": "Side questions accept text only. Your images remain in the input.",
56
- "error.removeImages": "Side questions accept text only. Remove the images first.",
55
+ "error.attachments": "Side questions accept text only. Your images and files remain in the input.",
56
+ "error.removeAttachments": "Side questions accept text only. Remove the images and files first.",
57
57
  "error.backend": "The BTW backend is unavailable. Check the plugin configuration.",
58
58
  "error.empty": "Enter a side question.",
59
59
  "error.length": "Side questions are limited to 8,000 characters.",
@@ -16,8 +16,8 @@ export declare const zh: {
16
16
  'menu.group': string;
17
17
  'command.description': string;
18
18
  'error.copy': string;
19
- 'error.images': string;
20
- 'error.removeImages': string;
19
+ 'error.attachments': string;
20
+ 'error.removeAttachments': string;
21
21
  'error.backend': string;
22
22
  'error.empty': string;
23
23
  'error.length': string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-btw",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "DSH 一次性只读旁问气泡",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,7 +27,6 @@
27
27
  },
28
28
  "files": [
29
29
  "lib",
30
- "assets",
31
30
  "cordis.patch.yml",
32
31
  "README.md",
33
32
  "README.zh-CN.md",
@@ -44,7 +43,6 @@
44
43
  "inject": [
45
44
  "@deepseek-ai/dsh-client-ui-conversation",
46
45
  "@deepseek-ai/dsh-client-ui-input-trigger",
47
- "@deepseek-ai/dsh-client-ui-chat",
48
46
  "@deepseek-ai/dsh-api-remotes",
49
47
  "@deepseek-ai/dsh-client-locale"
50
48
  ]
@@ -54,12 +52,10 @@
54
52
  "build": "node scripts/build.mjs",
55
53
  "typecheck": "tsc --noEmit",
56
54
  "test": "vitest run",
57
- "test:release": "node --test tests/release.test.mjs tests/npm-oidc.test.mjs",
55
+ "test:release": "node --test tests/release.test.mjs tests/npm-oidc.test.mjs tests/github-release.test.mjs",
58
56
  "check": "npm run typecheck && npm test && npm run test:release && npm run build",
59
- "preview": "vite preview --host 127.0.0.1",
60
- "dev": "vite --host 127.0.0.1",
61
- "test:browser": "playwright test",
62
- "prepack": "npm run build"
57
+ "prepack": "npm run build",
58
+ "test:compat": "node scripts/test-compatibility.mjs"
63
59
  },
64
60
  "engines": {
65
61
  "node": ">=22"
@@ -67,43 +63,50 @@
67
63
  "license": "Apache-2.0",
68
64
  "peerDependencies": {
69
65
  "@deepseek-ai/cordis": "^4.0.2",
70
- "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
71
- "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
72
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
66
+ "@deepseek-ai/dsh-commands": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1",
67
+ "@deepseek-ai/dsh-subagent": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1",
68
+ "@deepseek-ai/dsh-tools": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1",
73
69
  "react": "^18.3.1"
74
70
  },
75
71
  "devDependencies": {
76
72
  "@deepseek-ai/cordis": "4.0.2",
77
- "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
78
- "@deepseek-ai/dsh-api-gateway": "0.1.2-rc.1",
79
- "@deepseek-ai/dsh-api-session-controller": "0.1.2-rc.1",
80
- "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
81
- "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1",
82
- "@deepseek-ai/dsh-client-ui-chat": "0.1.2-rc.1",
83
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1",
84
- "@deepseek-ai/dsh-client-ui-input-trigger": "0.1.2-rc.1",
85
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.2-rc.1",
86
- "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
87
- "@deepseek-ai/dsh-client-ui-theme": "0.1.2-rc.1",
88
- "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
89
- "@deepseek-ai/dsh-scope": "0.1.2-rc.1",
90
- "@deepseek-ai/dsh-session": "0.1.2-rc.1",
91
- "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
92
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
93
- "@deepseek-ai/dsh-typert-protocol": "0.1.2-rc.1",
94
- "@deepseek-ai/dsh-typert-registry": "0.1.2-rc.1",
95
- "@playwright/test": "^1.58.0",
73
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.1",
74
+ "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.1",
75
+ "@deepseek-ai/dsh-api-gateway": "0.1.5-rc.1",
76
+ "@deepseek-ai/dsh-api-session-controller": "0.1.5-rc.1",
77
+ "@deepseek-ai/dsh-attachment": "0.1.5-rc.1",
78
+ "@deepseek-ai/dsh-client-locale": "0.1.5-rc.1",
79
+ "@deepseek-ai/dsh-client-ui-chat": "0.1.5-rc.1",
80
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.1",
81
+ "@deepseek-ai/dsh-client-ui-input-trigger": "0.1.5-rc.1",
82
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.1",
83
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.1",
84
+ "@deepseek-ai/dsh-client-ui-theme": "0.1.5-rc.1",
85
+ "@deepseek-ai/dsh-commands": "0.1.5-rc.1",
86
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.1",
87
+ "@deepseek-ai/dsh-scope": "0.1.5-rc.1",
88
+ "@deepseek-ai/dsh-session": "0.1.5-rc.1",
89
+ "@deepseek-ai/dsh-session-persistence": "0.1.5-rc.1",
90
+ "@deepseek-ai/dsh-session-projection": "0.1.5-rc.1",
91
+ "@deepseek-ai/dsh-subagent": "0.1.5-rc.1",
92
+ "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.5-rc.1",
93
+ "@deepseek-ai/dsh-subagent-in-process-driver": "0.1.5-rc.1",
94
+ "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.1",
95
+ "@deepseek-ai/dsh-tools": "0.1.5-rc.1",
96
+ "@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.1",
97
+ "@deepseek-ai/dsh-typert-registry": "0.1.5-rc.1",
98
+ "@deepseek-ai/dsh-util-time": "0.1.5-rc.1",
96
99
  "@types/node": "^22.0.0",
97
100
  "@types/react": "^18.3.1",
98
- "@types/react-dom": "^18.3.1",
101
+ "@types/react-dom": "^18.3.7",
99
102
  "esbuild": "^0.25.0",
103
+ "jsdom": "^26.1.0",
100
104
  "lucide-react": "^0.468.0",
101
105
  "react": "^18.3.1",
102
106
  "react-dom": "^18.3.1",
103
107
  "react-markdown": "^10.1.0",
104
108
  "remark-gfm": "^4.0.1",
105
109
  "typescript": "~5.7.2",
106
- "vite": "^6.4.0",
107
110
  "vitest": "^3.2.0"
108
111
  }
109
112
  }
Binary file
Binary file