@qwen-code/web-shell 0.24.3 → 0.24.4-nightly.20260923.d0cd622a68

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.
Files changed (54) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +85 -1
  3. package/dist/daemon-react-sdk.js +1 -1
  4. package/dist/index.js +49318 -47393
  5. package/dist/sw.js +1 -1
  6. package/dist/{toolNames-DQad2xSu.js → toolNames-CaonquFc.js} +5677 -5279
  7. package/dist/transcript.js +10484 -10284
  8. package/dist/types/App.d.ts +9 -1
  9. package/dist/types/adapters/types.d.ts +4 -1
  10. package/dist/types/components/ChatPane.d.ts +3 -1
  11. package/dist/types/components/ConversationSearch.d.ts +18 -0
  12. package/dist/types/components/GlobalTurnNavigation.d.ts +3 -1
  13. package/dist/types/components/MessageList.d.ts +10 -2
  14. package/dist/types/components/SplitView.d.ts +3 -1
  15. package/dist/types/components/StandaloneAuth.d.ts +2 -1
  16. package/dist/types/components/WorkspaceSessionProvider.d.ts +2 -0
  17. package/dist/types/components/artifacts/ArtifactPanel.d.ts +7 -1
  18. package/dist/types/components/artifacts/SideTaskPanel.d.ts +5 -1
  19. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +39 -0
  20. package/dist/types/components/channels/channel-editor-state.d.ts +9 -3
  21. package/dist/types/components/conversation-search-i18n.d.ts +6 -0
  22. package/dist/types/components/local-control-api.d.ts +3 -1
  23. package/dist/types/components/messages/AuthMessage.d.ts +2 -1
  24. package/dist/types/components/messages/ModelManagementSection.d.ts +3 -2
  25. package/dist/types/components/messages/PlanExecutionView.d.ts +14 -66
  26. package/dist/types/components/messages/SettingsMessage.d.ts +2 -2
  27. package/dist/types/components/messages/ToolGroup.d.ts +0 -1
  28. package/dist/types/components/messages/taskExecutionIndex.d.ts +80 -0
  29. package/dist/types/components/workflow/SessionWorkflowCockpit.d.ts +8 -1
  30. package/dist/types/components/workflow/SessionWorkflowInspector.d.ts +8 -1
  31. package/dist/types/components/workflow/session-workflow-model.d.ts +9 -1
  32. package/dist/types/config/pairing.d.ts +9 -0
  33. package/dist/types/config/remote-workspace-add.d.ts +25 -0
  34. package/dist/types/customization.d.ts +6 -0
  35. package/dist/types/daemon/session/session-context.d.ts +11 -0
  36. package/dist/types/daemon/session/transcript-page-table.d.ts +1 -1
  37. package/dist/types/daemon/session/turn-navigation-store.d.ts +32 -0
  38. package/dist/types/hooks/useMessageNavigation.d.ts +12 -0
  39. package/dist/types/hooks/useQueuedPrompts.d.ts +4 -1
  40. package/dist/types/hooks/useTranscriptViewport.d.ts +3 -1
  41. package/dist/types/index.d.ts +10 -0
  42. package/dist/types/modelManagement.d.ts +16 -0
  43. package/dist/types/navigation.d.ts +37 -0
  44. package/dist/types/trajectory/buildTimeline.d.ts +48 -0
  45. package/dist/types/trajectory/timelineRange.d.ts +26 -0
  46. package/dist/types/trajectory/transcriptPageLoader.d.ts +4 -2
  47. package/dist/types/trajectory/types.d.ts +3 -3
  48. package/dist/types/trajectory/useTrajectoryWindow.d.ts +55 -17
  49. package/dist/types/utils/navigationUrl.d.ts +21 -0
  50. package/dist/types/utils/popoverRoom.d.ts +22 -0
  51. package/dist/types/utils/sessionPath.d.ts +1 -0
  52. package/dist/types/utils/unifiedDiff.d.ts +1 -0
  53. package/dist/types/utils/workspace.d.ts +3 -2
  54. package/package.json +19 -20
package/LICENSE ADDED
@@ -0,0 +1,203 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright 2025 Google LLC
191
+ Copyright 2025 Qwen
192
+
193
+ Licensed under the Apache License, Version 2.0 (the "License");
194
+ you may not use this file except in compliance with the License.
195
+ You may obtain a copy of the License at
196
+
197
+ http://www.apache.org/licenses/LICENSE-2.0
198
+
199
+ Unless required by applicable law or agreed to in writing, software
200
+ distributed under the License is distributed on an "AS IS" BASIS,
201
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202
+ See the License for the specific language governing permissions and
203
+ limitations under the License.
package/README.md CHANGED
@@ -131,7 +131,10 @@ Tailwind/shadcn 组件;现有 CSS Modules 的主题色值保持不变。组件
131
131
  变量以及外部配置的 z-index 才能正确继承。
132
132
  - 保留组件上的 `data-web-shell-*` 属性和公开 CSS 变量。接入方可能通过这些属性或
133
133
  `--web-shell-dialog-backdrop-z-index`、`--web-shell-popover-z-index`、
134
- `--web-shell-tooltip-z-index` 等变量定制样式和层级。
134
+ `--web-shell-tooltip-z-index` 等变量定制样式和层级。宿主自己的标题栏覆盖在
135
+ shell 之上但并不裁剪它时,必须通过 `--web-shell-popover-safe-top` 声明顶部
136
+ 安全区,向上展开的浮层(输入历史、@ 引用)才能避开它;显式声明 `0px` 表示
137
+ 没有顶部安全区,不会被默认值覆盖。
135
138
 
136
139
  在 `packages/web-shell` 目录添加后续组件,例如:
137
140
 
@@ -357,6 +360,7 @@ const projection = projectChatRecordsToDaemonTranscript(records);
357
360
 
358
361
  | 属性 | 类型 | 说明 |
359
362
  | ---------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
363
+ | `urlNavigation` | `WebShellUrlNavigationOptions` | 可选 URL 管理,含 `basePath`;默认关闭。详见 [URL 导航](#url-导航可选)。 |
360
364
  | `browserNotifications` | `WebShellBrowserNotificationsOptions` | 可选接入通知;`appName` 默认 QwenCode,`iconUrl` 默认内联 PNG(支持 CDN),`defaultEnabled` 默认 false;已保存偏好优先;不传时停用,不重建会话 |
361
365
  | `baseUrl` | `string` | daemon API 地址,未传时使用 `window.location.origin` |
362
366
  | `token` | `string` | daemon API Bearer token |
@@ -367,6 +371,7 @@ const projection = projectChatRecordsToDaemonTranscript(records);
367
371
  | `lockWorkspaceCwd` | `string` | 锁定到指定工作区路径;未注册时自动持久注册,并隐藏其他工作区及添加、移除和选择入口 |
368
372
  | `restartSseOnPrompt` | `boolean` | 每次 prompt 被 daemon 接收后重建存活 SSE 流;流断开时提交 prompt 总会立即重建(与此开关无关);默认关闭 |
369
373
  | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
374
+ | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
370
375
 
371
376
  ### Workspace 会话创建超时
372
377
 
@@ -415,6 +420,7 @@ daemon 参数的完整含义和配置方式见
415
420
  | `onSessionArtifactsChange` | `(change: WebShellSessionArtifactsChange) => void` | Session Artifact 初始恢复或变化后返回当前完整快照与 turn 投影 |
416
421
  | `onAssistantTurnSettled` | `(event: WebShellAssistantTurnSettledEvent) => void` | daemon 权威终态提交后触发;多个 provider 可能重复上报,宿主按 `(sessionId, promptId)` 去重 |
417
422
  | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
423
+ | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
418
424
 
419
425
  宿主可以通过 `onContextUsageOpen?: (sessionId: string) => void` 接管上下文
420
426
  详情的打开操作:
@@ -591,6 +597,24 @@ daemon 不净化它读到的文件。该配置只从 User / System / SystemDefau
591
597
 
592
598
  设计与验证范围见 [English](../../docs/design/web-shell-settings-allowlists.md) / [简体中文](../../docs/design/web-shell-settings-allowlists.zh-CN.md)。
593
599
 
600
+ ## 模型增删交互
601
+
602
+ 宿主可以保留模型列表和切换,同时关闭 WebShell 内的新增与删除入口:
603
+
604
+ ```tsx
605
+ <WebShellWithProviders
606
+ modelManagement={{ allowAdd: false, allowDelete: false }}
607
+ />
608
+ ```
609
+
610
+ 公共类型 `WebShellModelManagementOptions` 的两个字段独立控制,省略均为 `true`。
611
+ `allowAdd: false` 隐藏新增按钮和 `/auth` 建议,并在主窗口、欢迎页、分屏和侧任务中拦截手动输入的 `/auth` 及其别名 `/connect`、`/login`。输入框提交时,拦截位于宿主 `onSlashCommand` 回调之后、隐藏命令转发之前,宿主回调返回 `true` 即可接管;消息编辑、重试和侧任务初始发送不调用该回调。命令快照就绪后,daemon 命令按解析身份判断,同名项目/用户命令可保留;App 本地 `/auth` 路由仍是配置弹框入口。快照未就绪时,输入框保守拒绝配置命令名称;侧任务保留这类初始提示词等待加载,五秒后提示等待状态,信息到达后重新检查。添加模型弹框无法打开或保存。
612
+ `allowDelete: false` 隐藏模型删除按钮并阻止删除动作。模型列表、当前标识、选择、`/model`、参数编辑及会话 `/delete` 保持原行为。
613
+
614
+ 动态收紧策略会关闭相关弹框或确认,之后的浏览器队列发送读取最新策略。已交给 SDK/daemon 的请求不能由 props 撤销。恢复允许不会重新打开旧弹框。
615
+
616
+ 这仅用于界面防误操作,不是安全权限。daemon API、CLI、配置文件写入和外部模型下发不受影响;`settings.excludeItems` 的呈现策略仍独立生效。
617
+
594
618
  ## Markdown 图表接入
595
619
 
596
620
  `WebShell` 已内置 `markdown-chart` renderer 和 ECharts 运行时。宿主只需将
@@ -696,3 +720,63 @@ Chart/Data 控件、无数据提示和错误提示默认跟随 WebShell 语言
696
720
  | `/btw` | 本地实现 + ACP 透传 | daemon 支持侧边任务时新建侧边任务;否则发送一个不影响主对话的侧边问题。 |
697
721
  | `/fork` | 本地实现 + ACP 透传 | 启动共享当前上下文的后台智能体。 |
698
722
  | `/insight` | ACP 透传 | 查看 insight 相关信息。 |
723
+
724
+ ## 当前会话内容搜索
725
+
726
+ `conversationSearchThreshold` 控制搜索入口的消息数阈值,默认 `10`。
727
+ 当前会话的用户和助手消息数严格超过阈值时显示入口(默认第 11 条起),
728
+ 搜索图标位于左侧会话时间轴下方,采用适配窄栏的小尺寸;时间轴刻度隐藏时同步隐藏搜索入口。
729
+ `WebShell` 和 `WebShellWithProviders` 均支持此 prop,例如
730
+ `<WebShellWithProviders conversationSearchThreshold={20} {...connectionProps} />`。
731
+
732
+ 弹框搜索用户和助手正文(包括代码),点击摘要可定位并高亮对应消息。
733
+ 支持 turn navigation 的 daemon 会分页搜索持久化历史,不受当前可见区域限制;
734
+ 旧 daemon 只能搜索已加载消息,弹框会明确提示。搜索结果最多展示 200 条,
735
+ 超过时可缩小关键词范围。搜索不修改草稿或中断正在进行的回复。
736
+
737
+ ### 宿主定位持久化消息
738
+
739
+ 宿主先通过 `WebShellWithProviders` 的 `sessionId` 和 workspace props 打开目标会话,再调用公开 API:
740
+
741
+ ```tsx
742
+ import { useRef } from 'react';
743
+ import { WebShellWithProviders, type WebShellApi } from '@qwen-code/web-shell';
744
+
745
+ const shellRef = useRef<WebShellApi>(null);
746
+ // 将 shellRef 传给 <WebShellWithProviders shellRef={shellRef} {...connectionProps} />。
747
+ // 会话/历史就绪后,在宿主的结果点击处理函数里调用:
748
+ const result = await shellRef.current?.navigateToMessage({
749
+ sessionId: selectedSessionId,
750
+ recordId: selectedPersistedRecordId,
751
+ signal: abortController.signal,
752
+ });
753
+ ```
754
+
755
+ 公开类型为 `WebShellMessageNavigationRequest`、`WebShellMessageNavigationResult`。
756
+ `recordId` 是持久化用户/助手转录记录 ID,不是渲染消息 ID 或摘要。
757
+ 接口分页加载尚未渲染的历史、激活目标并在随后渲染中滚动高亮,不修改草稿;
758
+ 搜索图标隐藏时也可调用。很旧的目标需要线性扫描历史,找到记录即停止。
759
+
760
+ 结果 `status` 为 `located`、`not_found`、`not_ready`、`session_mismatch`、`unsupported`、
761
+ `cancelled` 或 `error`;`located` 不代表滚动动画已结束。未就绪时宿主须等待会话/视图就绪后再调用。聊天被面板或全页视图覆盖时返回 `not_ready`,宿主应先恢复聊天视图。
762
+ 新请求、会话/工作目录变化、卸载或 AbortSignal 取消会使旧请求失效。
763
+ 现有跨会话搜索接口仅返回会话和摘要,不提供 `recordId`;宿主搜索需补齐记录 ID 后才可精确定位。
764
+
765
+ ## URL 导航(可选)
766
+
767
+ `WebShellWithProviders` 支持 `urlNavigation={{ basePath: '/agentic-code' }}`。
768
+ 独立入口默认启用同一实现,并推断既有部署基础路径(默认根路径)。嵌入组件默认不启用,原有受控
769
+ `sessionId`、`workspaceId`、`workspaceCwd` 和 `sessionContext` 接入保持兼容。
770
+ 启用后,显式初始会话目标 props 优先于 URL,后续目标 props 变化 replace 地址;
771
+ 宿主必须停止自行写 history,避免双重控制。`lockWorkspaceCwd` 仍是宿主约束。
772
+
773
+ 基础路径下支持 `/session/<id>`、`/plugins`、`/channels`、`/scheduled-tasks`、
774
+ `/goals` 和 `/settings`。会话保留原有 `workspace` / `context` 协议,页面仅定位
775
+ 页面,设置不持久化分类或作用域。无关参数(包括宿主的实例参数)和 fragment 保留。
776
+ 主动导航新增历史,重复点击不新增;浏览器前进后退恢复页面和会话。页面来源保存在
777
+ history.state,直接打开或复制到新标签页的页面没有来源时返回空白聊天,不创建会话。
778
+
779
+ 宿主部署必须把基础路径和上述深层路径的文档请求返回宿主 HTML,并保留 API 路由。
780
+ `basePath` 只配置客户端,不创建服务端 rewrite。Qwen daemon 自带五个页面的文档
781
+ GET/HEAD 入口,JSON 请求、子路径和写请求仍走原有鉴权/API。
782
+ 详见[导航协议设计](../../docs/design/web-shell-url-navigation.zh-CN.md)。
@@ -1,4 +1,4 @@
1
- import { A as a, D as o, a as n, b as t, c as u, g as i, d as r, i as S, e as c, s as p, f as g, u as P, h as m, j as d, k as A, l as T, m as l, n as D, o as E, p as v, q as O, r as M, t as N, v as k, w as _, x as b, y as L, z as W, B as h, C, E as F, F as G, G as R, H as V, I as f, J as w, K as x, L as y, M as B, N as H, O as I, P as U, Q as j, R as K, S as q, T as z, U as J, V as Q } from "./toolNames-DQad2xSu.js";
1
+ import { A as a, D as o, a as n, b as t, c as u, g as i, d as r, i as S, e as c, s as p, f as g, u as P, h as m, j as d, k as A, l as T, m as l, n as D, o as E, p as v, q as O, r as M, t as N, v as k, w as _, x as b, y as L, z as W, B as h, C, E as F, F as G, G as R, H as V, I as f, J as w, K as x, L as y, M as B, N as H, O as I, P as U, Q as j, R as K, S as q, T as z, U as J, V as Q } from "./toolNames-CaonquFc.js";
2
2
  import { DAEMON_APPROVAL_MODES as Y } from "@qwen-code/sdk/daemon";
3
3
  export {
4
4
  a as AGENT_TOOL_NAME,