@qwen-code/web-shell 0.25.4-preview.0 → 0.26.0-nightly.20261022.bf66a26c97

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 (92) hide show
  1. package/README.md +82 -34
  2. package/dist/{PierreFilePreview-vbxsbBX2.js → PierreFilePreview-4cB4L1-g.js} +1 -1
  3. package/dist/{SpreadsheetPreview-yFPFfgME.js → SpreadsheetPreview-DGbGBaEF.js} +2 -2
  4. package/dist/{WorkspaceFileBrowser-DGQbVeSD.js → WorkspaceFileBrowser-B5XfnDl5.js} +1008 -1041
  5. package/dist/{agents-route-D6wGe0cs.js → agents-route-hl7LLKgC.js} +2 -2
  6. package/dist/daemon-react-sdk.js +1 -1
  7. package/dist/{index-ChD_Ub2E.js → index-OJ6CsSGD.js} +63040 -58550
  8. package/dist/index.js +3 -3
  9. package/dist/sw.js +1 -1
  10. package/dist/transcript.js +7992 -8072
  11. package/dist/types/App.d.ts +6 -1
  12. package/dist/types/ManagedStandaloneApp.d.ts +9 -0
  13. package/dist/types/components/ChatEditor.d.ts +8 -2
  14. package/dist/types/components/ChatPane.d.ts +4 -1
  15. package/dist/types/components/ContextCompressionFeedback.d.ts +2 -2
  16. package/dist/types/components/ContextUsagePopover.d.ts +2 -2
  17. package/dist/types/components/ModelRefreshControl.d.ts +3 -0
  18. package/dist/types/components/SessionPrBadge.d.ts +7 -2
  19. package/dist/types/components/SplitView.d.ts +4 -1
  20. package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
  21. package/dist/types/components/WorkspaceSelector.d.ts +3 -1
  22. package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
  23. package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
  24. package/dist/types/components/artifacts/TrajectoryDetail.d.ts +34 -0
  25. package/dist/types/components/artifacts/TrajectoryExecutions.d.ts +6 -8
  26. package/dist/types/components/artifacts/TrajectoryOverview.d.ts +2 -0
  27. package/dist/types/components/artifacts/TrajectorySummaryBar.d.ts +35 -0
  28. package/dist/types/components/artifacts/TrajectoryToolbar.d.ts +24 -0
  29. package/dist/types/components/artifacts/TurnCallsPanel.d.ts +5 -0
  30. package/dist/types/components/artifacts/tool-call-content.d.ts +34 -0
  31. package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +5 -1
  32. package/dist/types/components/dialogs/SessionRenameDialog.d.ts +10 -0
  33. package/dist/types/components/dialogs/WorkspaceAddStatusDialog.d.ts +3 -1
  34. package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
  35. package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
  36. package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
  37. package/dist/types/components/managed/ManagedSessionActions.d.ts +18 -0
  38. package/dist/types/components/managed/ManagedSessionsPage.d.ts +20 -3
  39. package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
  40. package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +16 -0
  41. package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +17 -2
  42. package/dist/types/components/managed/generated/managed-agent-api.d.ts +807 -68
  43. package/dist/types/components/managed/java-managed-agent-client.d.ts +70 -0
  44. package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -5
  45. package/dist/types/components/managed/managed-agent-provider.d.ts +95 -7
  46. package/dist/types/components/managed/managed-creation-skills.d.ts +7 -0
  47. package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
  48. package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
  49. package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
  50. package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
  51. package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
  52. package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
  53. package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
  54. package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
  55. package/dist/types/components/managed/managed-session-export.d.ts +21 -0
  56. package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
  57. package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
  58. package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
  59. package/dist/types/components/managed/use-managed-mcp.d.ts +3 -0
  60. package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
  61. package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
  62. package/dist/types/components/managed/use-managed-session-rename.d.ts +13 -0
  63. package/dist/types/components/managed/use-managed-session.d.ts +1 -0
  64. package/dist/types/components/managed/use-managed-skills.d.ts +9 -2
  65. package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
  66. package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
  67. package/dist/types/components/mcp/McpDetails.d.ts +30 -0
  68. package/dist/types/components/messages/McpApp.d.ts +4 -0
  69. package/dist/types/components/plugins/PluginManagerPage.d.ts +8 -1
  70. package/dist/types/components/sidebar/WebShellSidebar.d.ts +5 -1
  71. package/dist/types/components/sidebar/WorkspaceSection.d.ts +2 -1
  72. package/dist/types/components/ui/tabs.d.ts +1 -1
  73. package/dist/types/components/workspaces/WorkspaceExecutionSelect.d.ts +6 -0
  74. package/dist/types/daemon/index.d.ts +1 -1
  75. package/dist/types/daemon/workspace/index.d.ts +1 -1
  76. package/dist/types/daemon/workspace/types.d.ts +19 -0
  77. package/dist/types/daemon-react-sdk.d.ts +2 -0
  78. package/dist/types/desktop-relay/desktop-relay-client.d.ts +1 -1
  79. package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
  80. package/dist/types/index.d.ts +1 -0
  81. package/dist/types/main.d.ts +3 -1
  82. package/dist/types/mcpAppHostContext.d.ts +10 -1
  83. package/dist/types/settings.d.ts +1 -0
  84. package/dist/types/trajectory/summarizeTrajectory.d.ts +5 -0
  85. package/dist/types/trajectory/trajectory-status.d.ts +51 -0
  86. package/dist/types/trajectory/useTrajectoryWindow.d.ts +2 -0
  87. package/dist/types/unavailableModels.d.ts +24 -0
  88. package/dist/types/utils/composerModels.d.ts +18 -0
  89. package/dist/{useDaemonMidTurnInjected-CfhBFIym.js → useDaemonMidTurnInjected-TnZPRjfx.js} +4256 -4021
  90. package/package.json +1 -1
  91. package/dist/types/components/artifacts/TrajectoryFilters.d.ts +0 -15
  92. package/dist/types/components/artifacts/TrajectoryInspector.d.ts +0 -25
package/README.md CHANGED
@@ -5,7 +5,7 @@ Qwen Code Web Shell 是面向浏览器的 daemon 会话终端 UI,可以作为
5
5
 
6
6
  ## Managed 工作区与模型
7
7
 
8
- 完整 Web Shell 在配置 `managedAgentProvider` 后,可在首页左侧会话栏切换“本地 / 托管”,Tab 位于“新任务”下方,主聊天区沿用现有交互。托管模式复用标准欢迎界面、输入框、对话和工具卡片、审批、停止按钮及侧栏;“新任务”和历史选择操作 Managed 会话。切换模式保留各自草稿和会话,后台任务继续运行。未配置 provider 时保持原首页。Java Vite 演示入口 `?managedProvider=java` 默认托管,`managed=0` 可明确选择本地,`managed=1&managedSession=...` 深链继续有效;直接打开本地会话链接时保持本地。
8
+ 完整 Web Shell 在配置 `managedAgentProvider` 后,在同一个项目列表中同时显示本地和托管工作区,不再使用本地/托管 tab。名称旁的标志显示所属服务,工作区的新建会话使用统一的书写图标;顶部“新任务”继承当前会话或草稿的服务。新任务的工作区菜单可双向选择两类服务已有的工作区,保留原身份和独立草稿,提交前不创建工作区或会话。添加工作区时可明确选择本地(daemon)或托管(Managed Agent),切换表单或取消不会改变当前会话。托管模式复用标准欢迎界面、输入框、对话和工具卡片、审批、停止按钮及侧栏,后台任务继续运行。未配置 provider 时保持原首页。Java Vite 演示入口 `?managedProvider=java` 默认托管,`managed=0` 可明确选择本地,`managed=1&managedSession=...` 深链继续有效;直接打开本地会话链接时保持本地。完整行为与边界见[统一工作区导航设计](../../docs/design/2026-10-21-unified-workspace-navigation.zh-CN.md)。
9
9
 
10
10
  已有 Managed 会话的工作区、相对目录、Agent 预设和环境状态在会话上下文中查看。模型和工作区仍由 Java 授权,界面复用不改变后端工具范围或审批策略。导出的 `ManagedAgentWebShell` 独立入口保持兼容。
11
11
 
@@ -548,20 +548,22 @@ Web Shell 时生效。配置变化不会自动改变当前会话模式;当前
548
548
 
549
549
  包含 `WebShell` 的所有 Props,加上 Provider 配置:
550
550
 
551
- | 属性 | 类型 | 说明 |
552
- | ---------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
553
- | `urlNavigation` | `WebShellUrlNavigationOptions` | 可选 URL 管理,含 `basePath`;默认关闭。详见 [URL 导航](#url-导航可选)。 |
554
- | `browserNotifications` | `WebShellBrowserNotificationsOptions` | 可选接入通知;`appName` 默认 QwenCode,`iconUrl` 默认内联 PNG(支持 CDN),`defaultEnabled` 默认 false;已保存偏好优先;不传时停用,不重建会话 |
555
- | `baseUrl` | `string` | daemon API 地址,未传时使用 `window.location.origin` |
556
- | `token` | `string` | daemon API Bearer token |
557
- | `sessionId` | `string` | 要连接的 session id;未传或 `undefined` 时保持空页面 |
558
- | `workspaceId` | `string` | 已注册工作区 id,主要用于定位已有 session;不会注册或锁定工作区 |
559
- | `workspaceCwd` | `string` | 已注册工作区路径,语义同 `workspaceId`;不会注册或锁定工作区,且优先于 `workspaceId` |
560
- | `sessionContext` | `DaemonProductSessionContext` | 显式产品上下文;standalone 或 Live 上下文不能同时传 `workspaceId`、`workspaceCwd` 或 `lockWorkspaceCwd` |
561
- | `lockWorkspaceCwd` | `string` | 锁定到指定工作区路径;未注册时自动持久注册,并隐藏其他工作区及添加、移除和选择入口 |
562
- | `restartSseOnPrompt` | `boolean` | 每次 prompt 被 daemon 接收后重建存活 SSE 流;流断开时提交 prompt 总会立即重建(与此开关无关);默认关闭 |
563
- | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
564
- | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
551
+ | 属性 | 类型 | 说明 |
552
+ | ------------------------------ | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
553
+ | `urlNavigation` | `WebShellUrlNavigationOptions` | 可选 URL 管理,含 `basePath`;默认关闭。详见 [URL 导航](#url-导航可选)。 |
554
+ | `browserNotifications` | `WebShellBrowserNotificationsOptions` | 可选接入通知;`appName` 默认 QwenCode,`iconUrl` 默认内联 PNG(支持 CDN),`defaultEnabled` 默认 false;已保存偏好优先;不传时停用,不重建会话 |
555
+ | `baseUrl` | `string` | daemon API 地址,未传时使用 `window.location.origin` |
556
+ | `token` | `string` | daemon API Bearer token |
557
+ | `sessionId` | `string` | 要连接的 session id;未传或 `undefined` 时保持空页面 |
558
+ | `workspaceId` | `string` | 已注册工作区 id,主要用于定位已有 session;不会注册或锁定工作区 |
559
+ | `workspaceCwd` | `string` | 已注册工作区路径,语义同 `workspaceId`;不会注册或锁定工作区,且优先于 `workspaceId` |
560
+ | `sessionContext` | `DaemonProductSessionContext` | 显式产品上下文;standalone 或 Live 上下文不能同时传 `workspaceId`、`workspaceCwd` 或 `lockWorkspaceCwd` |
561
+ | `lockWorkspaceCwd` | `string` | 锁定到指定工作区路径;未注册时自动持久注册,并隐藏其他工作区及添加、移除和选择入口 |
562
+ | `restartSseOnPrompt` | `boolean` | 每次 prompt 被 daemon 接收后重建存活 SSE 流;流断开时提交 prompt 总会立即重建(与此开关无关);默认关闭 |
563
+ | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
564
+ | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
565
+ | `unavailableModels` | `readonly WebShellUnavailableModel[]` | 可选。在输入框模型选择器中追加禁用模型;见 [不可用模型目录](#不可用模型目录)。 |
566
+ | `mountUnavailableModelTooltip` | `WebShellUnavailableModelTooltipMount` | 可选。为禁用模型挂载自定义提示层,Solid/原生 DOM 宿主可写入传入的 `HTMLElement`。 |
565
567
 
566
568
  ### Workspace 会话创建超时
567
569
 
@@ -599,25 +601,27 @@ daemon 参数的完整含义和配置方式见
599
601
 
600
602
  ### WebShell
601
603
 
602
- | 属性 | 类型 | 说明 |
603
- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
604
- | `onSessionIdChange` | `(sessionId: string \| undefined, workspaceId?: string, workspaceCwd?: string, sessionContext?: DaemonProductSessionContext) => void` | 当前 session、工作区或显式产品上下文变化时触发;standalone 和 Live 通过第四个参数上报 |
605
- | `onRefreshModels` | `({ workspaceCwd: string, sessionId?: string }) => void \| Promise<void>` | 用户刷新模型选择器时先调用;宿主可拉取并保存平台目录。未提供或返回空值都会继续重载 Qwen 模型目录并回读当前列表;拒绝则保留旧列表并显示错误。不会自动切换模型或通知其他页面。 |
606
- | `onSessionCreated` | `(sessionId: string) => Promise<void> \| void` | 新 session 创建后触发;完成前会阻塞 session 初始化和 prompt 提交,最长等待 30 秒 |
607
- | `theme` | `'dark' \| 'light'` | UI 主题,默认 `dark` |
608
- | `onThemeChange` | `(theme: WebShellTheme) => void` | `/theme` 命令切换主题后触发 |
609
- | `onThemeResolved` | `(theme: WebShellTheme) => void` | 未提供 `theme` 且 shell 从 daemon 设置解析出主题时触发;仅供宿主同步文档外观,不应持久化为宿主偏好 |
610
- | `language` | `'en' \| 'zh-CN' \| 'zh' \| 'zh-cn'` | UI 语言 |
611
- | `onLanguageChange` | `(language: WebShellLanguage) => void` | `/language ui` 切换 UI 语言后触发 |
612
- | `onLanguageResolved` | `(language: WebShellLanguage) => void` | 未提供 `language` 时,有效 UI 语言在未成为宿主偏好时触发,包括设置解析、乐观切换与回滚;仅供同步文档外观 |
613
- | `brand` | `WebShellBrand` | 产品品牌(名称与 Logo,`logo` 为 React 节点);提供时整体取代 daemon 解析出的品牌,见下方「品牌(白标)」 |
614
- | `onBrandResolved` | `(brand: WebShellResolvedBrand) => void` | 品牌解析完成后触发,载荷只含 `name` 与 `logoDataUri`(不含 `logo` 节点),供宿主应用到自己的文档;shell 自身从不写 `document.title` 或 favicon |
615
- | `onSlashCommand` | `(command: WebShellSlashCommand) => boolean \| void` | 斜杠命令进入默认处理前触发;返回 `true` 时由宿主接管并跳过默认行为 |
616
- | `onSessionArtifactsChange` | `(change: WebShellSessionArtifactsChange) => void` | Session Artifact 初始恢复或变化后返回当前完整快照与 turn 投影 |
617
- | `onAssistantTurnSettled` | `(event: WebShellAssistantTurnSettledEvent) => void` | daemon 权威终态提交后触发;多个 provider 可能重复上报,宿主按 `(sessionId, promptId)` 去重 |
618
- | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
619
- | `showToolCalls` | `boolean` | 是否展示用户消息旁的工具调用入口;默认 `false`,独立页面设置为 `true`。 |
620
- | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
604
+ | 属性 | 类型 | 说明 |
605
+ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
606
+ | `onSessionIdChange` | `(sessionId: string \| undefined, workspaceId?: string, workspaceCwd?: string, sessionContext?: DaemonProductSessionContext) => void` | 当前 session、工作区或显式产品上下文变化时触发;standalone 和 Live 通过第四个参数上报 |
607
+ | `onRefreshModels` | `({ workspaceCwd: string, sessionId?: string }) => void \| Promise<void>` | 用户刷新模型选择器时先调用;宿主可拉取并保存平台目录。未提供或返回空值都会继续重载 Qwen 模型目录并回读当前列表;拒绝则保留旧列表并显示错误。不会自动切换模型或通知其他页面。 |
608
+ | `onSessionCreated` | `(sessionId: string) => Promise<void> \| void` | 新 session 创建后触发;完成前会阻塞 session 初始化和 prompt 提交,最长等待 30 秒 |
609
+ | `theme` | `'dark' \| 'light'` | UI 主题,默认 `dark` |
610
+ | `onThemeChange` | `(theme: WebShellTheme) => void` | `/theme` 命令切换主题后触发 |
611
+ | `onThemeResolved` | `(theme: WebShellTheme) => void` | 未提供 `theme` 且 shell 从 daemon 设置解析出主题时触发;仅供宿主同步文档外观,不应持久化为宿主偏好 |
612
+ | `language` | `'en' \| 'zh-CN' \| 'zh' \| 'zh-cn'` | UI 语言 |
613
+ | `onLanguageChange` | `(language: WebShellLanguage) => void` | `/language ui` 切换 UI 语言后触发 |
614
+ | `onLanguageResolved` | `(language: WebShellLanguage) => void` | 未提供 `language` 时,有效 UI 语言在未成为宿主偏好时触发,包括设置解析、乐观切换与回滚;仅供同步文档外观 |
615
+ | `brand` | `WebShellBrand` | 产品品牌(名称与 Logo,`logo` 为 React 节点);提供时整体取代 daemon 解析出的品牌,见下方「品牌(白标)」 |
616
+ | `onBrandResolved` | `(brand: WebShellResolvedBrand) => void` | 品牌解析完成后触发,载荷只含 `name` 与 `logoDataUri`(不含 `logo` 节点),供宿主应用到自己的文档;shell 自身从不写 `document.title` 或 favicon |
617
+ | `onSlashCommand` | `(command: WebShellSlashCommand) => boolean \| void` | 斜杠命令进入默认处理前触发;返回 `true` 时由宿主接管并跳过默认行为 |
618
+ | `onSessionArtifactsChange` | `(change: WebShellSessionArtifactsChange) => void` | Session Artifact 初始恢复或变化后返回当前完整快照与 turn 投影 |
619
+ | `onAssistantTurnSettled` | `(event: WebShellAssistantTurnSettledEvent) => void` | daemon 权威终态提交后触发;多个 provider 可能重复上报,宿主按 `(sessionId, promptId)` 去重 |
620
+ | `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
621
+ | `showToolCalls` | `boolean` | 是否展示用户消息旁的工具调用入口;默认 `false`,独立页面设置为 `true`。 |
622
+ | `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
623
+ | `unavailableModels` | `readonly WebShellUnavailableModel[]` | 可选。在输入框模型选择器中追加禁用模型;见 [不可用模型目录](#不可用模型目录)。 |
624
+ | `mountUnavailableModelTooltip` | `WebShellUnavailableModelTooltipMount` | 可选。为禁用模型挂载自定义提示层,Solid/原生 DOM 宿主可写入传入的 `HTMLElement`。 |
621
625
 
622
626
  移动访问二维码入口由 `header.showMobileAccess?: boolean` 控制,默认隐藏,适用于主聊天和分屏页头。独立入口 `main.tsx` 显式设为 `true`,保留本地 Qwen Code 用户的入口。
623
627
 
@@ -858,6 +862,50 @@ Live 和频道右侧标题都为「设置」,左栏标题与首页品牌名共
858
862
 
859
863
  这仅用于界面防误操作,不是安全权限。daemon API、CLI、配置文件写入和外部模型下发不受影响;`settings.excludeItems` 的呈现策略仍独立生效。
860
864
 
865
+ ## 不可用模型目录
866
+
867
+ 宿主可以把产品目录里当前不可用的模型追加到输入框选择器,显示为禁用行。这不是鉴权,也不会改 daemon 模型列表。`/model`、设置页和页脚 `availableModels` 保持原行为。与 daemon 已有模型 id 冲突时,可用模型优先。
868
+
869
+ 纯文本提示:
870
+
871
+ ```tsx
872
+ <WebShellWithProviders
873
+ unavailableModels={[
874
+ { id: 'gpt-5', label: 'GPT-5', tooltip: '当前套餐不可用' },
875
+ ]}
876
+ />
877
+ ```
878
+
879
+ 提示层由 Web Shell 渲染为卡片:模型名作为标题,`tooltip` 作为说明。需要按钮(例如引导授权)时,使用 `mountUnavailableModelTooltip`;宿主只填标题下方的内容。公开载荷只有纯数据和一个 `HTMLElement`,Solid 或原生 DOM 宿主不必构造 React 元素:
880
+
881
+ ```js
882
+ import { render } from 'solid-js/web';
883
+ import { createSignal } from 'solid-js';
884
+
885
+ function mountUnavailableModelTooltip(container, info) {
886
+ const [model, setModel] = createSignal(info.model);
887
+ const dispose = render(
888
+ () => (
889
+ <div>
890
+ <p>当前账号未授权该模型。</p>
891
+ <button type="button" onClick={() => authorize(model().id)}>
892
+ 去授权
893
+ </button>
894
+ </div>
895
+ ),
896
+ container,
897
+ );
898
+ return {
899
+ update(next) {
900
+ setModel(next.model);
901
+ },
902
+ dispose,
903
+ };
904
+ }
905
+ ```
906
+
907
+ mount 成功则使用宿主内容;省略、返回 `null`/`undefined` 或同步失败则回退到 `model.tooltip`。mount 函数应保持引用稳定,并在 `dispose` 中拆除自己的视图。设计见 [English](../../docs/design/web-shell-unavailable-models.md) / [简体中文](../../docs/design/web-shell-unavailable-models.zh-CN.md)。
908
+
861
909
  ## Markdown 图表接入
862
910
 
863
911
  `WebShell` 已内置 `markdown-chart` renderer 和 ECharts 运行时。宿主只需将
@@ -10,7 +10,7 @@ var j = (e, t, n) => (wn(e, t, "read from private field"), n ? n.call(e) : t.get
10
10
  var Ui = (e, t, n) => Bo(zo(e), n, t);
11
11
  import { jsx as Wo } from "react/jsx-runtime";
12
12
  import { useRef as Lt, useEffect as zi } from "react";
13
- import { P as jo } from "./index-ChD_Ub2E.js";
13
+ import { O as jo } from "./index-OJ6CsSGD.js";
14
14
  const Xt = {
15
15
  c: () => import("./c-eeMepfLm.js"),
16
16
  cpp: () => import("./cpp-C0xArK63.js"),