@qwen-code/web-shell 0.26.0 → 0.26.1-nightly.20261026.34769f9d41
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 +90 -34
- package/dist/{PierreFilePreview-BKwQRLBv.js → PierreFilePreview-8MULkJoK.js} +1 -1
- package/dist/{SpreadsheetPreview-gWWUaRgJ.js → SpreadsheetPreview-DtnbWz0L.js} +2 -2
- package/dist/{WorkspaceFileBrowser-BLwOb5Br.js → WorkspaceFileBrowser-BrN8Jn6M.js} +2 -2
- package/dist/{agents-route-Pu5E-8GT.js → agents-route-B4kWo58n.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-BSBUK1JZ.js → index-pcCPQvgP.js} +63801 -57971
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +9320 -9154
- package/dist/types/App.d.ts +7 -1
- package/dist/types/ManagedStandaloneApp.d.ts +9 -0
- package/dist/types/components/ChatEditor.d.ts +10 -3
- package/dist/types/components/ChatPane.d.ts +4 -1
- package/dist/types/components/ContextCompressionFeedback.d.ts +2 -2
- package/dist/types/components/ContextUsagePopover.d.ts +2 -2
- package/dist/types/components/MessageItem.d.ts +1 -0
- package/dist/types/components/SessionPrBadge.d.ts +5 -3
- package/dist/types/components/SplitView.d.ts +4 -1
- package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
- package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
- package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
- package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +32 -1
- package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +5 -1
- package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +1 -0
- package/dist/types/components/extensions/ExtensionsManagerPage.d.ts +7 -1
- package/dist/types/components/managed/ManagedArchivedSessions.d.ts +17 -0
- package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
- package/dist/types/components/managed/ManagedExtensionsManagerPage.d.ts +8 -0
- package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
- package/dist/types/components/managed/ManagedPermissionRulesDialog.d.ts +9 -0
- package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
- package/dist/types/components/managed/ManagedSessionActions.d.ts +20 -0
- package/dist/types/components/managed/ManagedSessionNavigationRow.d.ts +9 -0
- package/dist/types/components/managed/ManagedSessionsPage.d.ts +4 -3
- package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
- package/dist/types/components/managed/ManagedUserMessageQueue.d.ts +5 -0
- package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +3 -1
- package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +3 -2
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +1935 -499
- package/dist/types/components/managed/java-managed-agent-client.d.ts +131 -4
- package/dist/types/components/managed/java-managed-agent-event-projector.d.ts +1 -2
- package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -6
- package/dist/types/components/managed/managed-agent-provider.d.ts +115 -21
- package/dist/types/components/managed/managed-extension-messages.d.ts +36 -0
- package/dist/types/components/managed/managed-extension-types.d.ts +10 -0
- package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
- package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
- package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
- package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
- package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
- package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
- package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
- package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
- package/dist/types/components/managed/managed-session-export.d.ts +21 -0
- package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
- package/dist/types/components/managed/use-managed-approval-change.d.ts +3 -1
- package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
- package/dist/types/components/managed/use-managed-file-references.d.ts +7 -0
- package/dist/types/components/managed/use-managed-file-upload.d.ts +23 -0
- package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
- package/dist/types/components/managed/use-managed-mcp.d.ts +1 -1
- package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
- package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
- package/dist/types/components/managed/use-managed-session-rename.d.ts +2 -2
- package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
- package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
- package/dist/types/components/managed/use-managed-user-messages.d.ts +13 -0
- package/dist/types/components/mcp/McpDetails.d.ts +30 -0
- package/dist/types/components/messages/AssistantMessage.d.ts +1 -0
- package/dist/types/components/messages/SettingsMessage.d.ts +19 -1
- package/dist/types/components/plugins/PluginManagerPage.d.ts +5 -1
- package/dist/types/components/sidebar/RecentSessions.d.ts +23 -0
- package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +2 -1
- package/dist/types/components/sidebar/StandaloneRecents.d.ts +1 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +10 -3
- package/dist/types/components/sidebar/WorkspaceMenu.d.ts +3 -0
- package/dist/types/components/sidebar/workspaceOrder.d.ts +12 -0
- package/dist/types/components/ui/badge.d.ts +1 -1
- package/dist/types/components/ui/button.d.ts +1 -1
- package/dist/types/components/ui/tooltip.d.ts +3 -1
- package/dist/types/components/workspaces/WorkspaceDirectoriesSection.d.ts +11 -0
- package/dist/types/customization.d.ts +1 -0
- package/dist/types/daemon/index.d.ts +1 -1
- package/dist/types/daemon/workspace/index.d.ts +1 -1
- package/dist/types/daemon/workspace/types.d.ts +37 -1
- package/dist/types/daemon-react-sdk.d.ts +2 -0
- package/dist/types/hooks/composer-draft-attachments.d.ts +21 -0
- package/dist/types/hooks/composer-draft-session.d.ts +39 -0
- package/dist/types/hooks/useComposerCore.d.ts +1 -0
- package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
- package/dist/types/index.d.ts +2 -1
- package/dist/types/main.d.ts +3 -1
- package/dist/types/settings.d.ts +6 -1
- package/dist/types/unavailableModels.d.ts +24 -0
- package/dist/types/utils/composerModels.d.ts +18 -0
- package/dist/types/utils/indexeddb.d.ts +17 -0
- package/dist/types/utils/selectionClipboard.d.ts +1 -0
- package/dist/types/utils/selectionClipboard.transcript-stub.d.ts +1 -0
- package/dist/types/utils/todos.d.ts +8 -0
- package/dist/types/utils/turnDuration.d.ts +1 -0
- package/dist/{useDaemonMidTurnInjected-BoG_wM2a.js → useDaemonMidTurnInjected-DY7azBbC.js} +3185 -2729
- package/package.json +1 -1
- package/dist/types/components/managed/ManagedSessionCwdControl.d.ts +0 -9
- package/dist/types/components/managed/use-managed-cwd-change.d.ts +0 -21
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ Java 新建页直接复用标准 Web Shell 的欢迎标题、输入框、原生
|
|
|
19
19
|
|
|
20
20
|
Java 工作区查询返回 `capabilities.workspaceCreation: true` 时,工作区菜单提供“新建工作区 → 从空目录开始”。输入名称后,服务端创建并登记独立的空目录、授权给当前用户,页面自动选中它并保留任务草稿与模型。创建请求在发送前保存在当前标签页;响应不确定时,关闭弹窗或刷新页面后仍可重试同一请求。该能力默认关闭,需要服务端配置 `qwen.managed-agent.runtime-broker.workspace-creation-root` 及相应的已验证 Workspace 执行依赖;浏览器不选择服务器路径。
|
|
21
21
|
|
|
22
|
+
本地守护进程通告 `git_workspace_clone` 时,“添加工作区”对话框额外提供“Git 仓库”来源:输入 clone 地址和必须尚不存在的绝对目标路径后,`POST /workspaces { kind: "git", url, target }` 返回 `202` 与任务 id,对话框通过 `/workspace-git-clone-jobs/:id` 轮询进度并可取消。clone 成功后对话框复用现有 `POST /workspaces { cwd }` 注册该目录,因此容量、嵌套、持久化和信任策略与手动添加已有目录一致;clone 本身不授予信任。该来源只对当前连接的守护进程开放;私有仓库可用 SSH agent 认证,或把 token 放进粘贴的 URL(由守护进程转交 Git,不写入克隆仓库的配置)。clone 子进程不读取宿主上已配置的 Git 凭据(`credential.helper`、`url.*.insteadOf`、`http.*` 均不生效)。失败、取消或超时会删除守护进程创建的目标目录。
|
|
23
|
+
|
|
22
24
|
本地 Vite Java 演示可添加 `managedWorkspace=1`,或设置 `VITE_MANAGED_AGENT_WORKSPACE_BINDING=true`。`VITE_MANAGED_AGENT_MODEL_PRESETS` 为上述预设数组的 JSON;`VITE_MANAGED_AGENT_ACTOR_ID` 可通过 `X-Qwen-Actor-Id` 提供本地用户身份,同时进入存储隔离 scope。Java 列出当前用户已有授权的工作区,创建能力按上述服务端配置开启;本地演示需显式配置 `QWEN_MANAGED_AGENT_TRUSTED_ACTOR_HEADER=X-Qwen-Actor-Id`,该配置仅用于可信 loopback 环境。文件工具执行还需要 Java 文档中的 Workspace files、Session Store、Broker mounts 和 Harness Broker 连接配置。
|
|
23
25
|
|
|
24
26
|
## Managed 工具结果
|
|
@@ -370,6 +372,12 @@ WebShell 提供两种接入形态:
|
|
|
370
372
|
|
|
371
373
|
### 1. 独立接入(自带 Provider)
|
|
372
374
|
|
|
375
|
+
加载状态文案遵循有效设置 `ui.accessibility.enableLoadingPhrases`。设为
|
|
376
|
+
`false` 时隐藏内置和宿主自定义文案,保留加载动画、计时和取消提示。设为
|
|
377
|
+
`true` 或未配置时,可以通过 `loadingPhrases={() => ['自定义文案']}` 定制文案,
|
|
378
|
+
或返回空数组隐藏文案;该属性适用于 `WebShell` 和 `WebShellWithProviders`。
|
|
379
|
+
设置行的展示别名为 `setting:loading-phrases`。
|
|
380
|
+
|
|
373
381
|
适合只需要嵌入一个终端视图的场景。组件内部自建
|
|
374
382
|
`DaemonWorkspaceProvider` + `DaemonSessionProvider`。
|
|
375
383
|
|
|
@@ -548,20 +556,22 @@ Web Shell 时生效。配置变化不会自动改变当前会话模式;当前
|
|
|
548
556
|
|
|
549
557
|
包含 `WebShell` 的所有 Props,加上 Provider 配置:
|
|
550
558
|
|
|
551
|
-
| 属性
|
|
552
|
-
|
|
|
553
|
-
| `urlNavigation`
|
|
554
|
-
| `browserNotifications`
|
|
555
|
-
| `baseUrl`
|
|
556
|
-
| `token`
|
|
557
|
-
| `sessionId`
|
|
558
|
-
| `workspaceId`
|
|
559
|
-
| `workspaceCwd`
|
|
560
|
-
| `sessionContext`
|
|
561
|
-
| `lockWorkspaceCwd`
|
|
562
|
-
| `restartSseOnPrompt`
|
|
563
|
-
| `settings`
|
|
564
|
-
| `modelManagement`
|
|
559
|
+
| 属性 | 类型 | 说明 |
|
|
560
|
+
| ------------------------------ | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
561
|
+
| `urlNavigation` | `WebShellUrlNavigationOptions` | 可选 URL 管理,含 `basePath`;默认关闭。详见 [URL 导航](#url-导航可选)。 |
|
|
562
|
+
| `browserNotifications` | `WebShellBrowserNotificationsOptions` | 可选接入通知;`appName` 默认 QwenCode,`iconUrl` 默认内联 PNG(支持 CDN),`defaultEnabled` 默认 false;已保存偏好优先;不传时停用,不重建会话 |
|
|
563
|
+
| `baseUrl` | `string` | daemon API 地址,未传时使用 `window.location.origin` |
|
|
564
|
+
| `token` | `string` | daemon API Bearer token |
|
|
565
|
+
| `sessionId` | `string` | 要连接的 session id;未传或 `undefined` 时保持空页面 |
|
|
566
|
+
| `workspaceId` | `string` | 已注册工作区 id,主要用于定位已有 session;不会注册或锁定工作区 |
|
|
567
|
+
| `workspaceCwd` | `string` | 已注册工作区路径,语义同 `workspaceId`;不会注册或锁定工作区,且优先于 `workspaceId` |
|
|
568
|
+
| `sessionContext` | `DaemonProductSessionContext` | 显式产品上下文;standalone 或 Live 上下文不能同时传 `workspaceId`、`workspaceCwd` 或 `lockWorkspaceCwd` |
|
|
569
|
+
| `lockWorkspaceCwd` | `string` | 锁定到指定工作区路径;未注册时自动持久注册,并隐藏其他工作区及添加、移除和选择入口 |
|
|
570
|
+
| `restartSseOnPrompt` | `boolean` | 每次 prompt 被 daemon 接收后重建存活 SSE 流;流断开时提交 prompt 总会立即重建(与此开关无关);默认关闭 |
|
|
571
|
+
| `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
|
|
572
|
+
| `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
|
|
573
|
+
| `unavailableModels` | `readonly WebShellUnavailableModel[]` | 可选。在输入框模型选择器中追加禁用模型;见 [不可用模型目录](#不可用模型目录)。 |
|
|
574
|
+
| `mountUnavailableModelTooltip` | `WebShellUnavailableModelTooltipMount` | 可选。为禁用模型挂载自定义提示层,Solid/原生 DOM 宿主可写入传入的 `HTMLElement`。 |
|
|
565
575
|
|
|
566
576
|
### Workspace 会话创建超时
|
|
567
577
|
|
|
@@ -599,25 +609,27 @@ daemon 参数的完整含义和配置方式见
|
|
|
599
609
|
|
|
600
610
|
### WebShell
|
|
601
611
|
|
|
602
|
-
| 属性
|
|
603
|
-
|
|
|
604
|
-
| `onSessionIdChange`
|
|
605
|
-
| `onRefreshModels`
|
|
606
|
-
| `onSessionCreated`
|
|
607
|
-
| `theme`
|
|
608
|
-
| `onThemeChange`
|
|
609
|
-
| `onThemeResolved`
|
|
610
|
-
| `language`
|
|
611
|
-
| `onLanguageChange`
|
|
612
|
-
| `onLanguageResolved`
|
|
613
|
-
| `brand`
|
|
614
|
-
| `onBrandResolved`
|
|
615
|
-
| `onSlashCommand`
|
|
616
|
-
| `onSessionArtifactsChange`
|
|
617
|
-
| `onAssistantTurnSettled`
|
|
618
|
-
| `settings`
|
|
619
|
-
| `showToolCalls`
|
|
620
|
-
| `modelManagement`
|
|
612
|
+
| 属性 | 类型 | 说明 |
|
|
613
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
614
|
+
| `onSessionIdChange` | `(sessionId: string \| undefined, workspaceId?: string, workspaceCwd?: string, sessionContext?: DaemonProductSessionContext) => void` | 当前 session、工作区或显式产品上下文变化时触发;standalone 和 Live 通过第四个参数上报 |
|
|
615
|
+
| `onRefreshModels` | `({ workspaceCwd: string, sessionId?: string }) => void \| Promise<void>` | 用户刷新模型选择器时先调用;宿主可拉取并保存平台目录。未提供或返回空值都会继续重载 Qwen 模型目录并回读当前列表;拒绝则保留旧列表并显示错误。不会自动切换模型或通知其他页面。 |
|
|
616
|
+
| `onSessionCreated` | `(sessionId: string) => Promise<void> \| void` | 新 session 创建后触发;完成前会阻塞 session 初始化和 prompt 提交,最长等待 30 秒 |
|
|
617
|
+
| `theme` | `'dark' \| 'light'` | UI 主题,默认 `dark` |
|
|
618
|
+
| `onThemeChange` | `(theme: WebShellTheme) => void` | `/theme` 命令切换主题后触发 |
|
|
619
|
+
| `onThemeResolved` | `(theme: WebShellTheme) => void` | 未提供 `theme` 且 shell 从 daemon 设置解析出主题时触发;仅供宿主同步文档外观,不应持久化为宿主偏好 |
|
|
620
|
+
| `language` | `'en' \| 'zh-CN' \| 'zh' \| 'zh-cn'` | UI 语言 |
|
|
621
|
+
| `onLanguageChange` | `(language: WebShellLanguage) => void` | `/language ui` 切换 UI 语言后触发 |
|
|
622
|
+
| `onLanguageResolved` | `(language: WebShellLanguage) => void` | 未提供 `language` 时,有效 UI 语言在未成为宿主偏好时触发,包括设置解析、乐观切换与回滚;仅供同步文档外观 |
|
|
623
|
+
| `brand` | `WebShellBrand` | 产品品牌(名称与 Logo,`logo` 为 React 节点);提供时整体取代 daemon 解析出的品牌,见下方「品牌(白标)」 |
|
|
624
|
+
| `onBrandResolved` | `(brand: WebShellResolvedBrand) => void` | 品牌解析完成后触发,载荷只含 `name` 与 `logoDataUri`(不含 `logo` 节点),供宿主应用到自己的文档;shell 自身从不写 `document.title` 或 favicon |
|
|
625
|
+
| `onSlashCommand` | `(command: WebShellSlashCommand) => boolean \| void` | 斜杠命令进入默认处理前触发;返回 `true` 时由宿主接管并跳过默认行为 |
|
|
626
|
+
| `onSessionArtifactsChange` | `(change: WebShellSessionArtifactsChange) => void` | Session Artifact 初始恢复或变化后返回当前完整快照与 turn 投影 |
|
|
627
|
+
| `onAssistantTurnSettled` | `(event: WebShellAssistantTurnSettledEvent) => void` | daemon 权威终态提交后触发;多个 provider 可能重复上报,宿主按 `(sessionId, promptId)` 去重 |
|
|
628
|
+
| `settings` | `WebShellSettingsOptions` | 可选。控制原生 `/settings` 页面的呈现;见 [原生设置呈现](#原生设置呈现)。 |
|
|
629
|
+
| `showToolCalls` | `boolean` | 是否展示用户消息旁的工具调用入口;默认 `false`,独立页面设置为 `true`。 |
|
|
630
|
+
| `modelManagement` | `WebShellModelManagementOptions` | 可选。控制 WebShell 内模型新增/删除交互,默认均允许;见 [模型增删交互](#模型增删交互)。 |
|
|
631
|
+
| `unavailableModels` | `readonly WebShellUnavailableModel[]` | 可选。在输入框模型选择器中追加禁用模型;见 [不可用模型目录](#不可用模型目录)。 |
|
|
632
|
+
| `mountUnavailableModelTooltip` | `WebShellUnavailableModelTooltipMount` | 可选。为禁用模型挂载自定义提示层,Solid/原生 DOM 宿主可写入传入的 `HTMLElement`。 |
|
|
621
633
|
|
|
622
634
|
移动访问二维码入口由 `header.showMobileAccess?: boolean` 控制,默认隐藏,适用于主聊天和分屏页头。独立入口 `main.tsx` 显式设为 `true`,保留本地 Qwen Code 用户的入口。
|
|
623
635
|
|
|
@@ -825,7 +837,7 @@ Live 和频道右侧标题都为「设置」,左栏标题与首页品牌名共
|
|
|
825
837
|
/>
|
|
826
838
|
```
|
|
827
839
|
|
|
828
|
-
`WebShellSettingsOptions.includeItems` 与 `excludeItems` 接受 `WebShellSettingItemId` 值。可导入 `WEB_SHELL_SETTING_ITEM_IDS` 获取受支持的只读列表。这些 ID 是经过整理的别名,而不是 daemon 的配置路径:`setting:language`
|
|
840
|
+
`WebShellSettingsOptions.includeItems` 与 `excludeItems` 接受 `WebShellSettingItemId` 值。可导入 `WEB_SHELL_SETTING_ITEM_IDS` 获取受支持的只读列表。这些 ID 是经过整理的别名,而不是 daemon 的配置路径:`setting:language` 对应语言控件(界面语言),`setting:output-language` 对应模型输出语言(用户作用域,仅用户标签页显示),`setting:fast-model` 对应快速模型选择器。即使内部 schema 路径变化,别名也保持稳定。未知的运行时 ID 不匹配任何条目;配置白名单后,尚无公开别名的字段也会隐藏。
|
|
829
841
|
|
|
830
842
|
前端内置块有自己的 ID:`builtin:chat-width`、`builtin:browser-notifications`、`builtin:live-setup`、`builtin:local-control`、`builtin:connections` 和 `builtin:model-management`。`builtin:connections` 区块仅在 standalone 构建中渲染,而 standalone 入口不接收 `settings` 呈现配置,因此该 ID 目前对嵌入方没有作用。模型管理块与普通 Model 字段独立过滤;仅排除普通 Model 字段时,模型列表与选择仍然可用;配置白名单时需包含 `builtin:model-management` 才会显示该块。浏览器通知与聊天宽度相互独立。既有的能力和隐藏限制仍然适用,白名单不能强制显示不可用的控件,也不会改变排序。
|
|
831
843
|
|
|
@@ -858,6 +870,50 @@ Live 和频道右侧标题都为「设置」,左栏标题与首页品牌名共
|
|
|
858
870
|
|
|
859
871
|
这仅用于界面防误操作,不是安全权限。daemon API、CLI、配置文件写入和外部模型下发不受影响;`settings.excludeItems` 的呈现策略仍独立生效。
|
|
860
872
|
|
|
873
|
+
## 不可用模型目录
|
|
874
|
+
|
|
875
|
+
宿主可以把产品目录里当前不可用的模型追加到输入框选择器,显示为禁用行。这不是鉴权,也不会改 daemon 模型列表。`/model`、设置页和页脚 `availableModels` 保持原行为。与 daemon 已有模型 id 冲突时,可用模型优先。
|
|
876
|
+
|
|
877
|
+
纯文本提示:
|
|
878
|
+
|
|
879
|
+
```tsx
|
|
880
|
+
<WebShellWithProviders
|
|
881
|
+
unavailableModels={[
|
|
882
|
+
{ id: 'gpt-5', label: 'GPT-5', tooltip: '当前套餐不可用' },
|
|
883
|
+
]}
|
|
884
|
+
/>
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
提示层由 Web Shell 渲染为卡片:模型名作为标题,`tooltip` 作为说明。需要按钮(例如引导授权)时,使用 `mountUnavailableModelTooltip`;宿主只填标题下方的内容。公开载荷只有纯数据和一个 `HTMLElement`,Solid 或原生 DOM 宿主不必构造 React 元素:
|
|
888
|
+
|
|
889
|
+
```js
|
|
890
|
+
import { render } from 'solid-js/web';
|
|
891
|
+
import { createSignal } from 'solid-js';
|
|
892
|
+
|
|
893
|
+
function mountUnavailableModelTooltip(container, info) {
|
|
894
|
+
const [model, setModel] = createSignal(info.model);
|
|
895
|
+
const dispose = render(
|
|
896
|
+
() => (
|
|
897
|
+
<div>
|
|
898
|
+
<p>当前账号未授权该模型。</p>
|
|
899
|
+
<button type="button" onClick={() => authorize(model().id)}>
|
|
900
|
+
去授权
|
|
901
|
+
</button>
|
|
902
|
+
</div>
|
|
903
|
+
),
|
|
904
|
+
container,
|
|
905
|
+
);
|
|
906
|
+
return {
|
|
907
|
+
update(next) {
|
|
908
|
+
setModel(next.model);
|
|
909
|
+
},
|
|
910
|
+
dispose,
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
mount 成功则使用宿主内容;省略、返回 `null`/`undefined` 或同步失败则回退到 `model.tooltip`。mount 函数应保持引用稳定,并在 `dispose` 中拆除自己的视图。设计见 [English](../../docs/design/web-shell-unavailable-models.md) / [简体中文](../../docs/design/web-shell-unavailable-models.zh-CN.md)。
|
|
916
|
+
|
|
861
917
|
## Markdown 图表接入
|
|
862
918
|
|
|
863
919
|
`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 { O as jo } from "./index-
|
|
13
|
+
import { O as jo } from "./index-pcCPQvgP.js";
|
|
14
14
|
const Xt = {
|
|
15
15
|
c: () => import("./c-eeMepfLm.js"),
|
|
16
16
|
cpp: () => import("./cpp-C0xArK63.js"),
|