@xmanrui/dsh-im 4.12.0 → 4.13.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.
Files changed (38) hide show
  1. package/PROACTIVE_DELIVERY.en.md +4 -0
  2. package/PROACTIVE_DELIVERY.md +4 -0
  3. package/README.en.md +11 -2
  4. package/README.md +11 -2
  5. package/assets/dingtalk-menu-template.json +6 -0
  6. package/lib/client.js +3 -2
  7. package/lib/index.js +268 -263
  8. package/package.json +1 -1
  9. package/plugin-src/client/styles.js +2 -1
  10. package/plugin-src/host/harness-command-executor.mjs +13 -6
  11. package/src/channels/dingtalk/dingtalk-api.mjs +33 -0
  12. package/src/channels/dingtalk/dingtalk-bridge.mjs +136 -2
  13. package/src/channels/dingtalk/dingtalk-menu.mjs +91 -0
  14. package/src/channels/dingtalk/dingtalk-runtime.mjs +17 -0
  15. package/src/channels/dingtalk/state-store.mjs +8 -0
  16. package/src/channels/feishu/bridge.mjs +74 -3
  17. package/src/channels/feishu/state-store.mjs +11 -0
  18. package/src/channels/qq/qq-bridge.mjs +121 -1
  19. package/src/channels/qq/qq-menu.mjs +205 -0
  20. package/src/channels/qq/state-store.mjs +16 -0
  21. package/src/channels/shared/bot-workspace-store.mjs +3 -0
  22. package/src/channels/shared/control-command.mjs +8 -0
  23. package/src/channels/shared/conversation-state-store.mjs +8 -0
  24. package/src/channels/shared/deferred-delivery-coordinator.mjs +241 -0
  25. package/src/channels/shared/deferred-delivery.mjs +161 -0
  26. package/src/channels/shared/deferred-state.mjs +53 -0
  27. package/src/channels/shared/harness-client.mjs +21 -1
  28. package/src/channels/shared/i18n-en/dingtalk.mjs +5 -0
  29. package/src/channels/shared/i18n-en/feishu.mjs +6 -0
  30. package/src/channels/shared/i18n-en/qq.mjs +39 -0
  31. package/src/channels/shared/i18n-en/weixin.mjs +2 -0
  32. package/src/channels/shared/text-harness-bridge.mjs +15 -0
  33. package/src/channels/shared/workspace-session.mjs +16 -1
  34. package/src/channels/wecom/state-store.mjs +8 -0
  35. package/src/channels/wecom/wecom-bridge.mjs +19 -4
  36. package/src/channels/weixin/state-store.mjs +64 -1
  37. package/src/channels/weixin/weixin-bridge.mjs +31 -5
  38. package/src/channels/weixin/weixin-runtime.mjs +33 -8
@@ -297,6 +297,10 @@ The HTTP protocol layer may also return `method-not-allowed` (405), `unsupported
297
297
  - Normal delivery uses only a saved `botId + targetId`. Keep the native route in target configuration instead of sending it with every message.
298
298
  - One call sends to one target. Notify multiple targets with separate calls and handle each result separately.
299
299
  - Targets remain editable while a bot is offline, but testing and delivery require a connected bot.
300
+ - WeChat proactive sends, connection tests, and deferred task results use the latest `context_token` received from the corresponding user by that bot. Context is stored only in the Host account state and restored after restart; it is never included in delivery targets or returned to callers. Rebinding with a different login credential clears it. After upgrading, an inbound user message is needed to populate the cache.
301
+ - iLink server rules still govern whether WeChat accepts a send. Healthy long polling does not guarantee proactive delivery. If `ret=-2 prepare failed` persists, avoid repeated heartbeat messages as a renewal strategy; ask the recipient to send a message before retrying. This error alone does not establish login expiry, context expiry, or exhausted quota.
302
+
303
+ - Failed WeChat proactive sends remain visible in the account’s latest message error, with sanitized diagnostics including the provider code and whether context was included. Healthy polling does not clear this error; a successful outbound send does. HTTP/RPC still return the existing `delivery-failed` error, with no automatic retry or disconnection of healthy long polling.
300
304
 
301
305
  ## HTTP and RPC reachability
302
306
 
@@ -297,6 +297,10 @@ HTTP 协议层还可能返回 `method-not-allowed`(405)、`unsupported-media
297
297
  - 正式发送只使用已保存的 `botId + targetId`。平台原生路由保存在目标配置中,不应随每次消息发送。
298
298
  - 一个调用只发送到一个目标。需要通知多个目标时,应分别调用并分别处理结果。
299
299
  - 机器人离线时仍可编辑目标,但不能测试或主动发送。
300
+ - 微信主动投递、连接测试和延迟任务结果会使用该机器人最近收到的对应用户 `context_token`。上下文仅保存在 Host 的账号状态中,重启后恢复,不放进投递目标或返回给调用方;重新绑定并更换登录凭据后清理。升级后需要收到一次用户消息才能建立缓存。
301
+ - 微信是否接受发送仍受 iLink 服务端规则约束。长轮询在线不保证主动发送可用;若持续出现 `ret=-2 prepare failed`,不要通过反复发送心跳尝试续期。可让目标用户发一条消息后重试;这不是登录凭据失效的确定证据,也不能仅凭此错误确定上下文过期或额度耗尽。
302
+
303
+ - 微信主动发送失败会保留在账号的最近消息错误中,包含平台错误码和是否携带上下文等脱敏诊断;健康轮询不会清除此错误,后续成功投递会清除。HTTP/RPC 仍返回既有的 `delivery-failed`,不会自动重试或断开正常的长轮询连接。
300
304
 
301
305
  ## HTTP 与 RPC 可达范围
302
306
 
package/README.en.md CHANGED
@@ -62,6 +62,12 @@ Other IM platforms can be added through the same channel-adapter structure.
62
62
 
63
63
  All nine built-in channels can send JPEG, PNG, and WebP images, plus GIFs sent as image files, with optional captions to Harness. Each image is limited to 5 MB, and images in one message are limited to 20 MB in total. Downloading images or files from Feishu user messages requires the `im:message:readonly` tenant scope, shown on the confirmation page as **Read direct and group messages**; Feishu currently offers no narrower image-only scope for that download endpoint. Apps created through the built-in QR flow request it by default; for existing or manually connected apps, click **Complete permissions** on the IM Bot settings page and scan the QR code to incrementally add that scope, `im:resource` for uploading bot-sent images or files, `application:app_slash_command:read` / `write` for the native command panel, and the card callback.
64
64
 
65
+ ### Results after a reply timeout
66
+
67
+ All nine channels share deferred task tracking. After a model reply timeout, the plugin keeps checking the original task and delivers its final text to the original chat or thread. Checks resume after a plugin restart or reconnection. `/stop` only stops the matching turn submitted by that chat; changing the bound Session prevents old results from being delivered there. No new setting is required, and normal replies keep their existing flow.
68
+
69
+ Channel permissions and quotas still apply. Definite send failures allow up to three attempts; uncertain delivery is retained without automatic retries to avoid duplicate messages. Recovery covers final text and terminal notices, without replaying questions, approvals, or file-tool calls. See the [deferred delivery notes](docs/deferred-delivery.md).
70
+
65
71
  ### Result-file and image delivery
66
72
 
67
73
  All nine built-in channels can return any file readable by Harness as a native channel attachment. Existing files and files created by the current task can both be sent directly. The capability is available to every connected bot by default, with no switch or per-bot allowlist, while existing text, image, streaming, command, and Session behavior remains unchanged.
@@ -152,7 +158,8 @@ See the [Proactive Delivery Guide](PROACTIVE_DELIVERY.en.md) ([简体中文](PRO
152
158
  | Command | Description |
153
159
  | --- | --- |
154
160
  | `/help` | Show the commands and usage supported by the bot. |
155
- | `/menu`, `/m` | Open the Feishu or Enterprise WeChat interactive menu. WeCom provides native dropdowns for sessions, models, presets and workspaces, plus buttons for applying selections, new sessions, stop, compact, status and help. It also opens on the daily direct-chat entry event. |
161
+ | `/menu`, `/m` | Open the Feishu, DingTalk or Enterprise WeChat interactive menu. DingTalk arranges session, workspace, preset and model dropdowns in two columns; selections apply immediately and update the same card. WeCom requires Apply after selecting and also opens on the daily direct-chat entry event. Menus include new session, stop, compact, status and help buttons. |
162
+ | QQ `/menu`, `/m` | Open a button and numbered menu for session selection, workspace, mode/preset, model, new session, session list, stop, compact, steering, archived-session visibility, status and help. Lists support pagination; reply with a number when buttons are unavailable. Menus are scoped to the chat and actor and expire after 15 minutes or restart. Ordinary messages exit number selection; questions, approvals and batch input retain priority. |
156
163
  | `/new` | Unbind the current chat so its next ordinary message starts a new Harness Session. |
157
164
  | `/status` | Check the connection between the current bot and DeepSeek Harness. |
158
165
  | `/version` | Show the version of the running dsh-im plugin. |
@@ -187,6 +194,8 @@ See the [Proactive Delivery Guide](PROACTIVE_DELIVERY.en.md) ([简体中文](PRO
187
194
 
188
195
  [Read the command details](docs/bot-commands.md)
189
196
 
197
+ DingTalk menus use a shared template built into the plugin; no template setup is needed for each bot. A menu stays active for 30 minutes. Send `/m` again after expiry or a Host restart. Maintainers can import `assets/dingtalk-menu-template.json` into DingTalk's card platform to maintain the template.
198
+
190
199
  ## Other features
191
200
 
192
201
  - **Image understanding**: all nine built-in channels can send JPEG, PNG, WebP, and GIF files sent as images to Harness, with an optional text description. Each image is limited to 5 MB, and all images in one message are limited to 20 MB in total.
@@ -258,7 +267,7 @@ Join the WeCom community group, or reach me by email, WeChat, Xiaohongshu, or Wh
258
267
  <a href="mailto:longmanr307@gmail.com">longmanr307@gmail.com</a>
259
268
  </td>
260
269
  <td align="center" valign="top">
261
- <a href="docs/images/wecom.jpg"><img src="docs/images/wecom.jpg" alt="dsh-im WeCom group QR code" width="240"></a>
270
+ <a href="docs/images/wecom.png"><img src="docs/images/wecom.png" alt="dsh-im WeCom group QR code" width="240"></a>
262
271
  </td>
263
272
  <td align="center" valign="top">
264
273
  <a href="docs/images/weixin.jpg"><img src="docs/images/weixin.jpg" alt="WeChat QR code" width="240"></a>
package/README.md CHANGED
@@ -65,6 +65,12 @@ Connect IM bots to DeepSeek Harness by scanning a QR code, using an App Manifest
65
65
 
66
66
  九个内置渠道均支持把 JPEG、PNG、WebP 图片,以及以图片文件方式发送的 GIF,连同可选文字说明发送给 Harness;单张图片上限为 5 MB,单条消息中的图片总大小上限为 20 MB。飞书下载用户消息中的图片或文件需要租户权限 `im:message:readonly`,确认页将其显示为“获取单聊、群组消息”;飞书目前没有为该下载接口提供仅限图片的更窄权限。扫码新建的应用会默认申请;已有或手动绑定的应用可私聊机器人执行 `/repair`,或在「IM机器人」设置页点击“补全权限”,扫码增量补全该权限、上传机器人图片或文件所需的 `im:resource`、原生命令面板所需的 `application:app_slash_command:read` / `write`,以及卡片回调。
67
67
 
68
+ ### 超时后的结果补发
69
+
70
+ 九个渠道共用超时任务跟踪:收到“等待模型回复超时”后,插件会继续检查原任务,完成后向原聊天或线程补发最终文字;插件重启或连接恢复后也会继续检查。`/stop` 只停止当前聊天提交的对应回合,切换会话后不再向该聊天补发旧会话的结果。无需新增设置,正常回复流程保持原样。
71
+
72
+ 补发仍受渠道发送权限和配额限制。明确发送失败最多尝试三次;发送结果不确定时保留记录并停止自动重试,避免重复消息。此机制恢复文字结果和终态通知,不重放问题、审批或文件工具调用。详见[延迟交付说明](docs/deferred-delivery.md)。
73
+
68
74
  ### 结果文件与图片回传
69
75
 
70
76
  九个内置渠道均已实现把 Harness 可读取的文件作为渠道原生附件回传。已有文件和当前任务新生成的文件都可以直接发送;该能力对所有已连接机器人默认可用,无需开关或机器人白名单,原有文字、图片、流式回复、命令和会话行为保持不变。
@@ -155,7 +161,8 @@ dsh web
155
161
  | 命令 | 作用 |
156
162
  | --- | --- |
157
163
  | `/help` | 显示机器人支持的命令和用法。 |
158
- | `/menu`、`/m` | 飞书和企业微信打开交互菜单。企微可直接下拉选择会话、模型、预设和工作区,点击应用,并提供新会话、停止、压缩、状态与帮助按钮;收到每日进入单聊事件时也会自动展示菜单。 |
164
+ | `/menu`、`/m` | 飞书、钉钉和企业微信打开交互菜单。钉钉的会话、工作区、预设和模型按两列排列,选择后立即生效,并在原卡片更新结果。企微下拉选择后点击应用;收到每日进入单聊事件时也会自动展示菜单。菜单还提供新会话、停止、压缩、状态与帮助等按钮。 |
165
+ | QQ `/menu`、`/m` | 打开按钮与数字菜单:会话选择、工作区、模式/预设、模型、新会话、会话列表、停止、压缩、补充指令、归档显示切换、状态和帮助。列表支持分页;按钮不可用时回复数字选择。菜单按聊天和操作者隔离,15 分钟或重启后失效;普通消息退出数字选择,审批、提问和批量输入保留原有优先级。 |
159
166
  | `/new` | 解除当前聊天的会话绑定,让下一条普通消息开启全新 Harness 会话。 |
160
167
  | `/status` | 检查当前机器人与 DeepSeek Harness 的连接状态。 |
161
168
  | `/version` | 查看当前运行的 dsh-im 插件版本。 |
@@ -188,6 +195,8 @@ dsh web
188
195
 
189
196
  ### 命令说明
190
197
 
198
+ 钉钉菜单使用插件内置的共享卡片模板,无需逐个机器人创建或配置模板。卡片打开后可操作 30 分钟;超时或 Host 重启后重新发送 `/m`。模板源文件保存在 `assets/dingtalk-menu-template.json`,供维护者导入卡片平台更新。
199
+
191
200
  [查看命令说明](docs/机器人命令.md)
192
201
 
193
202
  ## 其它功能
@@ -261,7 +270,7 @@ IM 管理 RPC 默认仅接受回环浏览器。如果 Web profile 在受信任
261
270
  <a href="mailto:longmanr307@gmail.com">longmanr307@gmail.com</a>
262
271
  </td>
263
272
  <td align="center" valign="top">
264
- <a href="docs/images/wecom.jpg"><img src="docs/images/wecom.jpg" alt="dsh-im 企业微信群二维码" width="240"></a>
273
+ <a href="docs/images/wecom.png"><img src="docs/images/wecom.png" alt="dsh-im 企业微信群二维码" width="240"></a>
265
274
  </td>
266
275
  <td align="center" valign="top">
267
276
  <a href="docs/images/weixin.jpg"><img src="docs/images/weixin.jpg" alt="微信二维码" width="240"></a>
@@ -0,0 +1,6 @@
1
+ {
2
+ "editorData": "{\"schemaVersion\":\"3.0.0\",\"schema\":{\"version\":\"1.0.0\",\"componentsMap\":[{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"CardHeaderV2\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"CardHeaderV2\"},{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"Grid\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"Grid\"},{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"SelectBlock\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"SelectBlock\"},{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"BaseText\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"BaseText\"},{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"SingleButton\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"SingleButton\"},{\"package\":\"@ali/dxComponent\",\"version\":\"1.0.0\",\"exportName\":\"Card\",\"main\":\"./src/index.tsx\",\"destructuring\":false,\"subName\":\"\",\"componentName\":\"Card\"}],\"componentsTree\":[{\"componentName\":\"Card\",\"id\":\"dsh_menu\",\"props\":{\"actionType\":\"url\",\"url\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\"},\"disabledWhileForward\":true,\"fixWidth\":true,\"fixedWidth\":480},\"children\":[{\"componentName\":\"CardHeaderV2\",\"id\":\"menu_title\",\"props\":{\"title\":{\"type\":\"dynamicString\",\"content\":\"🤖 助手中心\",\"i18n\":false},\"icon\":{\"url\":\"$iQElAqNwbmcDBgTMkAXMkAbaACGEAaQhK2wZAqqarYgS0sdoKLoFA88AAAGO4hz0WQTNEMkHAAgACbdpbnRlcmFjdGl2ZS1jYXJkLWVkaXRvcg\",\"type\":\"image\"}}},{\"componentName\":\"Grid\",\"id\":\"settings_0\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"horizontal\",\"isAutoWidth\":false,\"width\":100,\"isFixedWidth\":false,\"enableColSpan\":false,\"colSpan\":0,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"Grid\",\"id\":\"cell_session\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"BaseText\",\"id\":\"label_session\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"💬 会话\",\"i18n\":false},\"hoverText\":{\"type\":\"dynamicString\",\"content\":\"\",\"i18n\":false},\"iconType\":\"iconCode\",\"iconFont\":{\"type\":\"icon\",\"icon\":\"\",\"iconType\":\"ddIcon\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"maxWidth\":0,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":4,\"fontColorType\":\"Standard\",\"enableHighlight\":false,\"maxLine\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":1,\"variable\":\"\",\"variableType\":\"global\"},\"color\":\"black\",\"customLightColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#35404b\",\"variable\":\"\",\"variableType\":\"global\"},\"customDarkColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#f6f6f6\",\"variable\":\"\",\"variableType\":\"global\"},\"gravity\":\"left\",\"fontSizeType\":\"Standard\",\"styleType\":\"custom\",\"styleToken\":\"common_body_text_style\",\"size\":\"middle\",\"customFontSize\":15,\"customFontLineHeight\":22,\"bold\":false,\"italic\":false,\"strikeThrough\":false,\"lineHeight\":\"normal\",\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"autoMaxWidth\":false,\"innerOffset\":0}},{\"componentName\":\"SelectBlock\",\"id\":\"menu_session\",\"props\":{\"id\":{\"type\":\"dynamicString\",\"content\":\"session\",\"i18n\":false},\"placeholder\":{\"type\":\"dynamicString\",\"content\":\"💬 会话\",\"i18n\":false},\"currentIndex\":{\"type\":\"dynamicNumber\",\"valueType\":\"variable\",\"variable\":\"session_index\",\"variableType\":\"global\"},\"options\":{\"type\":\"dynamicSelectOptions\",\"valueType\":\"variable\",\"variable\":\"session_options\",\"variableType\":\"global\"},\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"actionType\":\"request\",\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]},{\"componentName\":\"Grid\",\"id\":\"cell_workspace\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"BaseText\",\"id\":\"label_workspace\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"📁 工作区\",\"i18n\":false},\"hoverText\":{\"type\":\"dynamicString\",\"content\":\"\",\"i18n\":false},\"iconType\":\"iconCode\",\"iconFont\":{\"type\":\"icon\",\"icon\":\"\",\"iconType\":\"ddIcon\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"maxWidth\":0,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":4,\"fontColorType\":\"Standard\",\"enableHighlight\":false,\"maxLine\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":1,\"variable\":\"\",\"variableType\":\"global\"},\"color\":\"black\",\"customLightColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#35404b\",\"variable\":\"\",\"variableType\":\"global\"},\"customDarkColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#f6f6f6\",\"variable\":\"\",\"variableType\":\"global\"},\"gravity\":\"left\",\"fontSizeType\":\"Standard\",\"styleType\":\"custom\",\"styleToken\":\"common_body_text_style\",\"size\":\"middle\",\"customFontSize\":15,\"customFontLineHeight\":22,\"bold\":false,\"italic\":false,\"strikeThrough\":false,\"lineHeight\":\"normal\",\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"autoMaxWidth\":false,\"innerOffset\":0}},{\"componentName\":\"SelectBlock\",\"id\":\"menu_workspace\",\"props\":{\"id\":{\"type\":\"dynamicString\",\"content\":\"workspace\",\"i18n\":false},\"placeholder\":{\"type\":\"dynamicString\",\"content\":\"📁 工作区\",\"i18n\":false},\"currentIndex\":{\"type\":\"dynamicNumber\",\"valueType\":\"variable\",\"variable\":\"workspace_index\",\"variableType\":\"global\"},\"options\":{\"type\":\"dynamicSelectOptions\",\"valueType\":\"variable\",\"variable\":\"workspace_options\",\"variableType\":\"global\"},\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"actionType\":\"request\",\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]}]},{\"componentName\":\"Grid\",\"id\":\"settings_2\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"horizontal\",\"isAutoWidth\":false,\"width\":100,\"isFixedWidth\":false,\"enableColSpan\":false,\"colSpan\":0,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"Grid\",\"id\":\"cell_preset\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"BaseText\",\"id\":\"label_preset\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"🤖 模式\",\"i18n\":false},\"hoverText\":{\"type\":\"dynamicString\",\"content\":\"\",\"i18n\":false},\"iconType\":\"iconCode\",\"iconFont\":{\"type\":\"icon\",\"icon\":\"\",\"iconType\":\"ddIcon\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"maxWidth\":0,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":4,\"fontColorType\":\"Standard\",\"enableHighlight\":false,\"maxLine\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":1,\"variable\":\"\",\"variableType\":\"global\"},\"color\":\"black\",\"customLightColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#35404b\",\"variable\":\"\",\"variableType\":\"global\"},\"customDarkColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#f6f6f6\",\"variable\":\"\",\"variableType\":\"global\"},\"gravity\":\"left\",\"fontSizeType\":\"Standard\",\"styleType\":\"custom\",\"styleToken\":\"common_body_text_style\",\"size\":\"middle\",\"customFontSize\":15,\"customFontLineHeight\":22,\"bold\":false,\"italic\":false,\"strikeThrough\":false,\"lineHeight\":\"normal\",\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"autoMaxWidth\":false,\"innerOffset\":0}},{\"componentName\":\"SelectBlock\",\"id\":\"menu_preset\",\"props\":{\"id\":{\"type\":\"dynamicString\",\"content\":\"preset\",\"i18n\":false},\"placeholder\":{\"type\":\"dynamicString\",\"content\":\"🤖 模式\",\"i18n\":false},\"currentIndex\":{\"type\":\"dynamicNumber\",\"valueType\":\"variable\",\"variable\":\"preset_index\",\"variableType\":\"global\"},\"options\":{\"type\":\"dynamicSelectOptions\",\"valueType\":\"variable\",\"variable\":\"preset_options\",\"variableType\":\"global\"},\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"actionType\":\"request\",\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]},{\"componentName\":\"Grid\",\"id\":\"cell_model\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"BaseText\",\"id\":\"label_model\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"🧠 模型\",\"i18n\":false},\"hoverText\":{\"type\":\"dynamicString\",\"content\":\"\",\"i18n\":false},\"iconType\":\"iconCode\",\"iconFont\":{\"type\":\"icon\",\"icon\":\"\",\"iconType\":\"ddIcon\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"maxWidth\":0,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":4,\"fontColorType\":\"Standard\",\"enableHighlight\":false,\"maxLine\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":1,\"variable\":\"\",\"variableType\":\"global\"},\"color\":\"black\",\"customLightColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#35404b\",\"variable\":\"\",\"variableType\":\"global\"},\"customDarkColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#f6f6f6\",\"variable\":\"\",\"variableType\":\"global\"},\"gravity\":\"left\",\"fontSizeType\":\"Standard\",\"styleType\":\"custom\",\"styleToken\":\"common_body_text_style\",\"size\":\"middle\",\"customFontSize\":15,\"customFontLineHeight\":22,\"bold\":false,\"italic\":false,\"strikeThrough\":false,\"lineHeight\":\"normal\",\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"autoMaxWidth\":false,\"innerOffset\":0}},{\"componentName\":\"SelectBlock\",\"id\":\"menu_model\",\"props\":{\"id\":{\"type\":\"dynamicString\",\"content\":\"model\",\"i18n\":false},\"placeholder\":{\"type\":\"dynamicString\",\"content\":\"🧠 模型\",\"i18n\":false},\"currentIndex\":{\"type\":\"dynamicNumber\",\"valueType\":\"variable\",\"variable\":\"model_index\",\"variableType\":\"global\"},\"options\":{\"type\":\"dynamicSelectOptions\",\"valueType\":\"variable\",\"variable\":\"model_options\",\"variableType\":\"global\"},\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"actionType\":\"request\",\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]}]},{\"componentName\":\"Grid\",\"id\":\"buttons_0\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"horizontal\",\"isAutoWidth\":false,\"width\":100,\"isFixedWidth\":false,\"enableColSpan\":false,\"colSpan\":0,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"Grid\",\"id\":\"button_cell_new\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_new\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"🆕 新会话\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"new\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]},{\"componentName\":\"Grid\",\"id\":\"button_cell_history\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_history\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"📋 会话历史\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"history\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]}]},{\"componentName\":\"Grid\",\"id\":\"buttons_1\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"horizontal\",\"isAutoWidth\":false,\"width\":100,\"isFixedWidth\":false,\"enableColSpan\":false,\"colSpan\":0,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"Grid\",\"id\":\"button_cell_stop\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_stop\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"⏹ 停止\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"stop\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]},{\"componentName\":\"Grid\",\"id\":\"button_cell_compact\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_compact\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"📐 压缩\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"compact\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]}]},{\"componentName\":\"Grid\",\"id\":\"buttons_2\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"horizontal\",\"isAutoWidth\":false,\"width\":100,\"isFixedWidth\":false,\"enableColSpan\":false,\"colSpan\":0,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"Grid\",\"id\":\"button_cell_status\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_status\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"📊 状态\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"status\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]},{\"componentName\":\"Grid\",\"id\":\"button_cell_help\",\"props\":{\"isAutoHeight\":true,\"height\":100,\"direction\":\"vertical\",\"isAutoWidth\":false,\"width\":50,\"isFixedWidth\":false,\"enableColSpan\":true,\"colSpan\":1,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"childGravity\":\"leftTop\",\"hasBackground\":false,\"hasHoverBackground\":false,\"hasBorder\":false,\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"paddingBottom\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingLeft\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingRight\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"paddingTop\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":8,\"variable\":\"\",\"variableType\":\"global\"},\"IMBackground\":\"default\",\"hasGradientBackground\":false,\"backgroundGradientStartColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientEndColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#ffffff\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundGradientDirection\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"toBottom\",\"variable\":\"\",\"variableType\":\"global\"},\"backgroundColor\":\"#F6F6F6\",\"darkModeBackgroundColor\":\"#3C3C3C\",\"cornerRadiusLeftTop\":4,\"cornerRadiusRightTop\":4,\"cornerRadiusRightBottom\":4,\"cornerRadiusLeftBottom\":4,\"isDtmd\":false,\"backgroundType\":\"Standard\",\"standardBackgroundColor\":\"gray\",\"gradientBackgroundType\":\"Custom\",\"standardGradientBackground\":\"AIGradient\",\"innerOffset\":0},\"children\":[{\"componentName\":\"SingleButton\",\"id\":\"button_help\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"📖 帮助\",\"i18n\":false},\"status\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"normal\"},\"color\":{\"type\":\"dynamicSelect\",\"valueType\":\"fixed\",\"value\":\"blue\",\"variable\":\"\",\"variableType\":\"global\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkModeIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"iconType\":\"image\",\"iconFont\":{\"type\":\"dynamicIcon\",\"valueType\":\"fixed\",\"value\":{\"type\":\"icon\",\"icon\":\"icon_XDS_goodlike_line\",\"iconType\":\"ddIcon\"},\"variable\":\"\",\"variableType\":\"global\"},\"isDtmd\":false,\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"marginLeft\":0,\"marginRight\":0,\"marginTop\":0,\"marginBottom\":0,\"innerOffset\":0,\"actionType\":\"request\",\"actionId\":{\"type\":\"dynamicString\",\"content\":\"help\",\"i18n\":false},\"params\":[{\"type\":\"variable\",\"variable\":\"revision\",\"variableType\":\"global\",\"name\":\"revision\",\"id\":\"revision\",\"value\":\"\"}]}}]}]},{\"componentName\":\"BaseText\",\"id\":\"menu_notice\",\"props\":{\"text\":{\"type\":\"dynamicString\",\"content\":\"${notice}\",\"i18n\":false},\"hoverText\":{\"type\":\"dynamicString\",\"content\":\"\",\"i18n\":false},\"iconType\":\"iconCode\",\"iconFont\":{\"type\":\"icon\",\"icon\":\"\",\"iconType\":\"ddIcon\"},\"icon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"darkIcon\":{\"type\":\"dynamicLink\",\"value\":\"\",\"valueType\":\"fixed\",\"variable\":\"\",\"variableType\":\"global\"},\"maxWidth\":0,\"marginLeft\":16,\"marginRight\":16,\"marginTop\":0,\"marginBottom\":12,\"fontColorType\":\"Standard\",\"enableHighlight\":false,\"maxLine\":{\"type\":\"dynamicNumber\",\"valueType\":\"fixed\",\"value\":3},\"color\":\"black\",\"customLightColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#35404b\",\"variable\":\"\",\"variableType\":\"global\"},\"customDarkColor\":{\"type\":\"dynamicColor\",\"valueType\":\"fixed\",\"value\":\"#f6f6f6\",\"variable\":\"\",\"variableType\":\"global\"},\"gravity\":\"left\",\"fontSizeType\":\"Standard\",\"styleType\":\"custom\",\"styleToken\":\"common_body_text_style\",\"size\":\"middle\",\"customFontSize\":15,\"customFontLineHeight\":22,\"bold\":false,\"italic\":false,\"strikeThrough\":false,\"lineHeight\":\"normal\",\"visible\":{\"type\":\"dynamicVisible\",\"value\":true,\"valueType\":\"fixed\",\"condition\":{\"op\":\"and\",\"conditions\":[]}},\"autoMaxWidth\":false,\"innerOffset\":0}}]}],\"i18n\":{}},\"mockData\":{\"cardData\":{\"revision\":\"preview\",\"notice\":\"\",\"session_options\":[{\"value\":\"0\",\"text\":{\"zh_CN\":\"新会话\",\"en_US\":\"新会话\"}},{\"value\":\"1\",\"text\":{\"zh_CN\":\"菜单测试\",\"en_US\":\"菜单测试\"}}],\"session_index\":0,\"workspace_options\":[{\"value\":\"0\",\"text\":{\"zh_CN\":\"deepseek-harness\",\"en_US\":\"deepseek-harness\"}},{\"value\":\"1\",\"text\":{\"zh_CN\":\"dsh-im\",\"en_US\":\"dsh-im\"}}],\"workspace_index\":0,\"preset_options\":[{\"value\":\"0\",\"text\":{\"zh_CN\":\"跟随默认\",\"en_US\":\"跟随默认\"}},{\"value\":\"1\",\"text\":{\"zh_CN\":\"标准模式\",\"en_US\":\"标准模式\"}},{\"value\":\"2\",\"text\":{\"zh_CN\":\"计划模式\",\"en_US\":\"计划模式\"}}],\"preset_index\":0,\"model_options\":[{\"value\":\"0\",\"text\":{\"zh_CN\":\"DeepSeek V4 Flash\",\"en_US\":\"DeepSeek V4 Flash\"}},{\"value\":\"1\",\"text\":{\"zh_CN\":\"DeepSeek V4 Pro\",\"en_US\":\"DeepSeek V4 Pro\"}}],\"model_index\":0},\"cardPrivateData\":{},\"localData\":{},\"richTextData\":{}},\"editVersion\":0,\"customWidgetInfo\":\"\",\"useCustomWidgetInfo\":false,\"variableList\":[{\"name\":\"revision\",\"id\":\"revision\",\"type\":\"string\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"notice\",\"id\":\"notice\",\"type\":\"string\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"session_options\",\"id\":\"session_options\",\"type\":\"selectOptions\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"session_index\",\"id\":\"session_index\",\"type\":\"number\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"workspace_options\",\"id\":\"workspace_options\",\"type\":\"selectOptions\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"workspace_index\",\"id\":\"workspace_index\",\"type\":\"number\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"preset_options\",\"id\":\"preset_options\",\"type\":\"selectOptions\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"preset_index\",\"id\":\"preset_index\",\"type\":\"number\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"model_options\",\"id\":\"model_options\",\"type\":\"selectOptions\",\"private\":false,\"editorVarType\":\"variables\"},{\"name\":\"model_index\",\"id\":\"model_index\",\"type\":\"number\",\"private\":false,\"editorVarType\":\"variables\"}],\"formList\":[],\"expList\":[],\"localList\":[],\"hsfList\":[],\"lwpList\":[],\"extension\":{\"extendType\":\"NORMAL\",\"fileTypeList\":[]}}",
3
+ "widgetInfo": "",
4
+ "type": "im",
5
+ "mode": "card"
6
+ }
package/lib/client.js CHANGED
@@ -571,7 +571,7 @@ var React27 = __toESM(require("react"), 1);
571
571
  // package.json
572
572
  var package_default = {
573
573
  name: "@xmanrui/dsh-im",
574
- version: "4.12.0",
574
+ version: "4.13.0",
575
575
  description: "\u628A\u4E5D\u79CD IM \u673A\u5668\u4EBA\u548C\u516C\u7F51 AI Office \u63A5\u5165\u672C\u673A DeepSeek Harness\u3002 Connect nine IM channels and a public AI Office to a local DeepSeek Harness.",
576
576
  keywords: [
577
577
  "deepseek-harness",
@@ -14878,7 +14878,8 @@ var CSS11 = String.raw`
14878
14878
  .dim-panel .dim-cardActions .dim-cardAction { flex: none; min-height: 32px; padding: 0 11px; border: 1px solid var(--dsw-alias-border-l2, #dfe1e5); border-radius: 8px; color: var(--dsw-alias-label-primary, #1f2329); background: var(--dsw-alias-bg-layer-1, #fff); font: inherit; font-size: 13px; font-weight: 560; line-height: normal; white-space: nowrap; }
14879
14879
  .dim-panel .dim-cardActions .dim-cardAction:hover:not(:disabled) { border-color: #aeb3bb; background: var(--dsw-alias-interactive-bg-hover, #f7f8fa); }
14880
14880
  .dim-panel .dim-cardActions .dim-cardAction[data-kind="danger"] { color: var(--dsw-alias-state-error-primary, #d54941); }
14881
- .dim-panel .dim-botCard { position: relative; min-width: 0; width: 100%; max-width: 100%; overflow: hidden; border: 1px solid var(--dsw-alias-border-l2, #e5e6eb); border-radius: 14px; background: var(--dsw-alias-bg-layer-1, #fff); box-shadow: 0 1px 2px rgb(31 35 41 / 3%); }
14881
+ /* Header tooltips may extend beyond the card; the collapsible body clips its own content. */
14882
+ .dim-panel .dim-botCard { position: relative; min-width: 0; width: 100%; max-width: 100%; overflow: visible; border: 1px solid var(--dsw-alias-border-l2, #e5e6eb); border-radius: 14px; background: var(--dsw-alias-bg-layer-1, #fff); box-shadow: 0 1px 2px rgb(31 35 41 / 3%); }
14882
14883
  .dim-panel .dim-botCard::before { display: none; }
14883
14884
  .dim-panel .dim-botCardBody { position: relative; min-width: 0; width: 100%; max-width: 100%; padding: 12px; }
14884
14885
  .dim-collapsibleAccount { min-width: 0; display: flex; flex-direction: column; }