@rtc-agent/component 0.2.7-rc.4 → 0.2.8-rc.1

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 (235) hide show
  1. package/README.md +109 -13
  2. package/dist/.generated/locales/en-US.d.ts +55 -7
  3. package/dist/.generated/locales/en-US.d.ts.map +1 -1
  4. package/dist/assets/{shared-worker-BQv441O7.js → shared-worker-CXyjL7E6.js} +210 -210
  5. package/dist/components/activity-bar/rtc-activity-bar.d.ts +23 -21
  6. package/dist/components/activity-bar/rtc-activity-bar.d.ts.map +1 -1
  7. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts +2 -2
  8. package/dist/components/chat-layout/rtc-chat-layout.d.ts +87 -80
  9. package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -1
  10. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts +5 -5
  11. package/dist/components/content-area/rtc-error-message.d.ts +1 -1
  12. package/dist/components/content-area/rtc-message-more-menu.d.ts +4 -4
  13. package/dist/components/content-area/rtc-message-more-menu.d.ts.map +1 -1
  14. package/dist/components/content-area/rtc-message.d.ts +82 -76
  15. package/dist/components/content-area/rtc-message.d.ts.map +1 -1
  16. package/dist/components/content-area/rtc-message.styles.d.ts.map +1 -1
  17. package/dist/components/content-area/rtc-toolcall-card.d.ts +10 -5
  18. package/dist/components/content-area/rtc-toolcall-card.d.ts.map +1 -1
  19. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts.map +1 -1
  20. package/dist/components/content-area/rtc-toolcall-reply.d.ts +12 -0
  21. package/dist/components/content-area/rtc-toolcall-reply.d.ts.map +1 -1
  22. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts.map +1 -1
  23. package/dist/components/content-area/rtc-user-message.d.ts +10 -10
  24. package/dist/components/drawer/rtc-drawer.d.ts +29 -27
  25. package/dist/components/drawer/rtc-drawer.d.ts.map +1 -1
  26. package/dist/components/drawer/rtc-drawer.styles.d.ts +9 -9
  27. package/dist/components/editor-area/rtc-editor-area.d.ts +29 -29
  28. package/dist/components/editor-area/rtc-editor-area.d.ts.map +1 -1
  29. package/dist/components/editor-area/rtc-editor-area.styles.d.ts +3 -3
  30. package/dist/components/editor-area/rtc-editor-tab.d.ts +27 -27
  31. package/dist/components/editor-area/rtc-editor-tab.d.ts.map +1 -1
  32. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts +3 -3
  33. package/dist/components/editor-area/rtc-editor-toolbar.d.ts +19 -19
  34. package/dist/components/editor-area/rtc-editor-toolbar.d.ts.map +1 -1
  35. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts +3 -3
  36. package/dist/components/file-explorer/rtc-file-explorer.d.ts +28 -28
  37. package/dist/components/file-explorer/rtc-file-explorer.d.ts.map +1 -1
  38. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts +3 -3
  39. package/dist/components/file-explorer/rtc-file-tree-item.d.ts +19 -19
  40. package/dist/components/file-explorer/rtc-file-tree-item.d.ts.map +1 -1
  41. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts +3 -3
  42. package/dist/components/function-console/rtc-function-console.d.ts +32 -0
  43. package/dist/components/function-console/rtc-function-console.d.ts.map +1 -0
  44. package/dist/components/function-console/rtc-function-console.styles.d.ts +8 -0
  45. package/dist/components/function-console/rtc-function-console.styles.d.ts.map +1 -0
  46. package/dist/components/function-debugger/rtc-function-debugger.d.ts +39 -0
  47. package/dist/components/function-debugger/rtc-function-debugger.d.ts.map +1 -0
  48. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts +8 -0
  49. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts.map +1 -0
  50. package/dist/components/function-history/rtc-function-history.d.ts +49 -0
  51. package/dist/components/function-history/rtc-function-history.d.ts.map +1 -0
  52. package/dist/components/function-history/rtc-function-history.styles.d.ts +8 -0
  53. package/dist/components/function-history/rtc-function-history.styles.d.ts.map +1 -0
  54. package/dist/components/function-params/rtc-function-params.d.ts +29 -0
  55. package/dist/components/function-params/rtc-function-params.d.ts.map +1 -0
  56. package/dist/components/function-params/rtc-function-params.styles.d.ts +8 -0
  57. package/dist/components/function-params/rtc-function-params.styles.d.ts.map +1 -0
  58. package/dist/components/function-tree/rtc-function-tree.d.ts +59 -0
  59. package/dist/components/function-tree/rtc-function-tree.d.ts.map +1 -0
  60. package/dist/components/function-tree/rtc-function-tree.styles.d.ts +2 -0
  61. package/dist/components/function-tree/rtc-function-tree.styles.d.ts.map +1 -0
  62. package/dist/components/functions-layout/rtc-functions-layout.d.ts +45 -0
  63. package/dist/components/functions-layout/rtc-functions-layout.d.ts.map +1 -0
  64. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts +8 -0
  65. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts.map +1 -0
  66. package/dist/components/input-area/rtc-input-area.d.ts +15 -15
  67. package/dist/components/input-area/rtc-input-area.d.ts.map +1 -1
  68. package/dist/components/login/rtc-login-page.d.ts +8 -8
  69. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts +23 -19
  70. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts.map +1 -1
  71. package/dist/components/overlay/rtc-command-panel.d.ts.map +1 -1
  72. package/dist/components/overlay/rtc-export-dialog.d.ts +59 -0
  73. package/dist/components/overlay/rtc-export-dialog.d.ts.map +1 -0
  74. package/dist/components/overlay/rtc-export-dialog.styles.d.ts +11 -0
  75. package/dist/components/overlay/rtc-export-dialog.styles.d.ts.map +1 -0
  76. package/dist/components/overlay/rtc-scenario-panel.d.ts +1 -1
  77. package/dist/components/overlay/rtc-scenario-panel.d.ts.map +1 -1
  78. package/dist/components/overlay/rtc-session-panel.d.ts +1 -1
  79. package/dist/components/overlay/rtc-session-panel.d.ts.map +1 -1
  80. package/dist/components/overlay/rtc-toast.d.ts +8 -8
  81. package/dist/components/rtc-agent/helpers/bus-handler.d.ts +32 -1
  82. package/dist/components/rtc-agent/helpers/bus-handler.d.ts.map +1 -1
  83. package/dist/components/rtc-agent/helpers/command-handler.d.ts +8 -0
  84. package/dist/components/rtc-agent/helpers/command-handler.d.ts.map +1 -1
  85. package/dist/components/rtc-agent/helpers/connection-setup.d.ts +5 -8
  86. package/dist/components/rtc-agent/helpers/connection-setup.d.ts.map +1 -1
  87. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts +12 -0
  88. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts.map +1 -1
  89. package/dist/components/rtc-agent/helpers/session-loader.d.ts +2 -0
  90. package/dist/components/rtc-agent/helpers/session-loader.d.ts.map +1 -1
  91. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts +22 -3
  92. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts.map +1 -1
  93. package/dist/components/rtc-agent/rtc-agent.d.ts +22 -47
  94. package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -1
  95. package/dist/components/session-tree/rtc-session-tab-bar.d.ts +8 -8
  96. package/dist/components/session-tree/rtc-session-tab-bar.d.ts.map +1 -1
  97. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts +5 -5
  98. package/dist/components/session-tree/rtc-session-tab.d.ts +6 -6
  99. package/dist/components/session-tree/rtc-session-tab.d.ts.map +1 -1
  100. package/dist/components/session-tree/rtc-session-tab.styles.d.ts +6 -6
  101. package/dist/components/session-tree/rtc-session-tree-item.d.ts +10 -10
  102. package/dist/components/session-tree/rtc-session-tree-item.d.ts.map +1 -1
  103. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts +6 -6
  104. package/dist/components/session-tree/rtc-session-tree.d.ts +15 -15
  105. package/dist/components/session-tree/rtc-session-tree.d.ts.map +1 -1
  106. package/dist/components/session-tree/rtc-session-tree.styles.d.ts +5 -5
  107. package/dist/components/settings-layout/rtc-settings-layout.d.ts +23 -23
  108. package/dist/components/settings-layout/rtc-settings-layout.d.ts.map +1 -1
  109. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts +3 -3
  110. package/dist/components/settings-layout/rtc-settings-nav.d.ts +17 -17
  111. package/dist/components/settings-layout/rtc-settings-nav.d.ts.map +1 -1
  112. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts +2 -2
  113. package/dist/components/status-bar/rtc-status-bar.d.ts +10 -10
  114. package/dist/components/status-bar/rtc-status-bar.d.ts.map +1 -1
  115. package/dist/components/status-bar/rtc-status-bar.styles.d.ts +5 -5
  116. package/dist/components/title-bar/rtc-title-bar.d.ts +4 -4
  117. package/dist/components/title-bar/rtc-title-bar.d.ts.map +1 -1
  118. package/dist/components/token-usage/rtc-token-usage.d.ts +21 -21
  119. package/dist/components/token-usage/rtc-token-usage.d.ts.map +1 -1
  120. package/dist/config/auth.d.ts +12 -6
  121. package/dist/config/auth.d.ts.map +1 -1
  122. package/dist/contexts/activity.d.ts +13 -13
  123. package/dist/contexts/activity.d.ts.map +1 -1
  124. package/dist/contexts/auth.d.ts +5 -4
  125. package/dist/contexts/auth.d.ts.map +1 -1
  126. package/dist/contexts/editor.d.ts +13 -13
  127. package/dist/contexts/editor.d.ts.map +1 -1
  128. package/dist/contexts/file-explorer.d.ts +15 -15
  129. package/dist/contexts/file-explorer.d.ts.map +1 -1
  130. package/dist/contexts/function-debug.d.ts +52 -0
  131. package/dist/contexts/function-debug.d.ts.map +1 -0
  132. package/dist/contexts/functions.d.ts +43 -0
  133. package/dist/contexts/functions.d.ts.map +1 -0
  134. package/dist/contexts/message.d.ts +3 -3
  135. package/dist/contexts/notification.d.ts +4 -4
  136. package/dist/contexts/notification.d.ts.map +1 -1
  137. package/dist/contexts/settings.d.ts +2 -2
  138. package/dist/contexts/skill.d.ts +5 -5
  139. package/dist/contexts/skill.d.ts.map +1 -1
  140. package/dist/contexts/turn-count.d.ts +7 -7
  141. package/dist/controllers/activity.controller.d.ts +11 -11
  142. package/dist/controllers/activity.controller.d.ts.map +1 -1
  143. package/dist/controllers/auth.controller.d.ts +5 -0
  144. package/dist/controllers/auth.controller.d.ts.map +1 -1
  145. package/dist/controllers/editor-area.controller.d.ts +42 -41
  146. package/dist/controllers/editor-area.controller.d.ts.map +1 -1
  147. package/dist/controllers/editor.controller.d.ts +3 -3
  148. package/dist/controllers/event-binding.controller.d.ts +204 -0
  149. package/dist/controllers/event-binding.controller.d.ts.map +1 -0
  150. package/dist/controllers/file-explorer.controller.d.ts +6 -6
  151. package/dist/controllers/function-debug.controller.d.ts +67 -0
  152. package/dist/controllers/function-debug.controller.d.ts.map +1 -0
  153. package/dist/controllers/functions.controller.d.ts +31 -0
  154. package/dist/controllers/functions.controller.d.ts.map +1 -0
  155. package/dist/controllers/message.controller.d.ts +11 -1
  156. package/dist/controllers/message.controller.d.ts.map +1 -1
  157. package/dist/controllers/notification.controller.d.ts +34 -30
  158. package/dist/controllers/notification.controller.d.ts.map +1 -1
  159. package/dist/controllers/persistence.controller.d.ts +31 -14
  160. package/dist/controllers/persistence.controller.d.ts.map +1 -1
  161. package/dist/controllers/session-tab.controller.d.ts +32 -29
  162. package/dist/controllers/session-tab.controller.d.ts.map +1 -1
  163. package/dist/controllers/session-tree.controller.d.ts +10 -10
  164. package/dist/controllers/session-tree.controller.d.ts.map +1 -1
  165. package/dist/controllers/session.controller.d.ts +6 -6
  166. package/dist/controllers/settings.controller.d.ts +1 -1
  167. package/dist/controllers/skill.controller.d.ts +21 -21
  168. package/dist/controllers/skill.controller.d.ts.map +1 -1
  169. package/dist/controllers/status-bar.controller.d.ts +11 -11
  170. package/dist/controllers/toast.controller.d.ts.map +1 -1
  171. package/dist/controllers/tool-call.controller.d.ts +4 -4
  172. package/dist/controllers/window-interaction.controller.d.ts +14 -12
  173. package/dist/controllers/window-interaction.controller.d.ts.map +1 -1
  174. package/dist/controllers/window-state.controller.d.ts +5 -5
  175. package/dist/controllers/window-state.controller.d.ts.map +1 -1
  176. package/dist/core/builtin-system-group.d.ts +26 -19
  177. package/dist/core/builtin-system-group.d.ts.map +1 -1
  178. package/dist/core/event-bus.d.ts +31 -31
  179. package/dist/core/function-registry.d.ts +82 -71
  180. package/dist/core/function-registry.d.ts.map +1 -1
  181. package/dist/core/i18n.d.ts +2 -2
  182. package/dist/core/locale-controller.d.ts +2 -2
  183. package/dist/core/markdown-generator.d.ts +20 -10
  184. package/dist/core/markdown-generator.d.ts.map +1 -1
  185. package/dist/core/ready.d.ts +9 -9
  186. package/dist/core/scenario-loader.d.ts +29 -25
  187. package/dist/core/scenario-loader.d.ts.map +1 -1
  188. package/dist/elements.d.ts +6 -6
  189. package/dist/{en-US-BK61Z8gy.js → en-US-9e1nrE9Q.js} +56 -8
  190. package/dist/factory.d.ts.map +1 -1
  191. package/dist/{highlight-languages-8EK0uwTA.js → highlight-languages-BcRFTMSx.js} +1 -1
  192. package/dist/icons/logo.d.ts +5 -5
  193. package/dist/{index-Bd4j91y1.js → index-CEn11pPK.js} +26829 -22588
  194. package/dist/index.d.ts +17 -15
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/index.js +39 -36
  197. package/dist/index.umd.js +3303 -1120
  198. package/dist/master-lock.d.ts +27 -27
  199. package/dist/master-lock.d.ts.map +1 -1
  200. package/dist/stats.html +1 -1
  201. package/dist/types/activity-bar-config.d.ts +14 -14
  202. package/dist/types/activity-bar-config.d.ts.map +1 -1
  203. package/dist/types/agent-config.d.ts +18 -18
  204. package/dist/types/agent-config.d.ts.map +1 -1
  205. package/dist/types/events.d.ts +75 -19
  206. package/dist/types/events.d.ts.map +1 -1
  207. package/dist/types/factory.d.ts +13 -5
  208. package/dist/types/factory.d.ts.map +1 -1
  209. package/dist/types/functions-debug.d.ts +48 -0
  210. package/dist/types/functions-debug.d.ts.map +1 -0
  211. package/dist/types/index.d.ts +97 -102
  212. package/dist/types/index.d.ts.map +1 -1
  213. package/dist/types/skill.d.ts +95 -83
  214. package/dist/types/skill.d.ts.map +1 -1
  215. package/dist/types/window-config.d.ts +37 -37
  216. package/dist/types/window-config.d.ts.map +1 -1
  217. package/dist/utils/clipboard.d.ts +6 -6
  218. package/dist/utils/command-parser.d.ts +9 -9
  219. package/dist/utils/command-parser.d.ts.map +1 -1
  220. package/dist/utils/highlight-languages.d.ts +3 -3
  221. package/dist/utils/relative-time.d.ts +7 -7
  222. package/dist/utils/session-exporter.d.ts +65 -0
  223. package/dist/utils/session-exporter.d.ts.map +1 -0
  224. package/dist/utils/skeleton-tracker.d.ts +56 -56
  225. package/dist/utils/skeleton-tracker.d.ts.map +1 -1
  226. package/dist/utils/visibility-manager.d.ts +42 -42
  227. package/dist/utils/visibility-manager.d.ts.map +1 -1
  228. package/dist/validation/index.d.ts +16 -16
  229. package/dist/validation/index.d.ts.map +1 -1
  230. package/dist/validation/openapi-to-zod.d.ts +5 -5
  231. package/dist/validation/zod-to-openapi.d.ts +24 -14
  232. package/dist/validation/zod-to-openapi.d.ts.map +1 -1
  233. package/dist/worker-bridge.d.ts +11 -0
  234. package/dist/worker-bridge.d.ts.map +1 -1
  235. package/package.json +5 -5
@@ -6,20 +6,20 @@
6
6
  *
7
7
  * Markdown parsing is lazy-loaded (Lit best-practice 7-3).
8
8
  *
9
- * ## Layout model (时间线布局)
9
+ * ## Layout model (Timeline layout)
10
10
  *
11
- * DOM 结构:
12
- * .timeline-item (position: relative, padding-left 给 dot + 竖线留位)
13
- * ├── .timeline-dot (absolute, 与竖线共享 left 参考系)
14
- * ├── ::before (竖线, 绝对定位伪元素)
11
+ * DOM structure:
12
+ * .timeline-item (position: relative, padding-left reserves space for dot + vertical line)
13
+ * ├── .timeline-dot (absolute, shares left reference frame with the vertical line)
14
+ * ├── ::before (vertical line, absolutely positioned pseudo-element)
15
15
  * └── .timeline-content
16
- * └── div (rendered-HTML 包裹层)
17
- * └── <p>/<h1>/... (Markdown 渲染出的块级元素)
16
+ * └── div (rendered-HTML wrapper layer)
17
+ * └── <p>/<h1>/... (block-level elements produced by Markdown rendering)
18
18
  *
19
- * 对齐原理(详见 rtc-message.styles.ts 注释):
20
- * - 竖线 center X = 15px(left: 14px + width 2px 的一半)
21
- * - dot center X = 15px(left: 15px + translateX(-50%))
22
- * - dot center Y ≈ 首行文本行高中点 Y(top: 9px,基于默认 token 计算)
19
+ * Alignment principle (see rtc-message.styles.ts comments for details):
20
+ * - vertical line center X = 15px (left: 14px + half of width 2px)
21
+ * - dot center X = 15px (left: 15px + translateX(-50%))
22
+ * - dot center Y ≈ first-line text line-height midpoint Y (top: 9px, based on default token calculation)
23
23
  *
24
24
  * @element rtc-message
25
25
  * @csspart dot - The timeline dot
@@ -34,19 +34,20 @@ export declare class RtcMessage extends LitElement implements StatefulComponent
34
34
  message: Message;
35
35
  isLast: boolean;
36
36
  /**
37
- * Markdown 经 marked + DOMPurify 处理后得到的安全 HTML 字符串。
37
+ * Safe HTML string produced by processing Markdown through marked + DOMPurify.
38
38
  *
39
- * 为什么需要这个中间 state,而不是直接渲染 message.content?
40
- * 1. marked + DOMPurify 通过动态 import 懒加载(首次加载是异步的)
41
- * 2. 解析结果需要在异步完成后才可用
42
- * 3. 使用 @state 让结果可用时自动触发重渲染
39
+ * Why is this intermediate @state needed instead of rendering message.content directly?
40
+ * 1. marked + DOMPurify are lazy-loaded via dynamic import (first load is async)
41
+ * 2. Parse results are only available after async completion
42
+ * 3. Using @state triggers automatic re-render when results become available
43
43
  */
44
44
  private _renderedHtml;
45
45
  /**
46
- * Thinking 内容的折叠状态。
46
+ * Collapse state for thinking content.
47
47
  *
48
- * 默认折叠(false)。streaming 期间用户可以手动展开查看实时思考过程,
49
- * streaming 结束后保持用户的当前选择,不自动切换。
48
+ * Default collapsed (false). During streaming, user can manually expand to view
49
+ * real-time thinking process. After streaming ends, the user's current choice
50
+ * is preserved without automatic switching.
50
51
  */
51
52
  private _thinkingExpanded;
52
53
  /**
@@ -70,44 +71,49 @@ export declare class RtcMessage extends LitElement implements StatefulComponent
70
71
  */
71
72
  private _lastParsedContent;
72
73
  /**
73
- * 只在 message 变化时重新解析 Markdown。
74
+ * Only re-parse Markdown when message changes.
74
75
  *
75
- * 为什么不监听所有属性?
76
- * - isLast 只影响外层 class(success 状态),不影响内容渲染
77
- * - 监听所有属性会导致 isLast 变化时也重新跑一遍 marked + DOMPurify,浪费性能
76
+ * Why not watch all properties?
77
+ * - isLast only affects outer class (success state), not content rendering
78
+ * - Watching all properties would cause marked + DOMPurify to re-run on isLast changes, wasting performance
78
79
  */
79
80
  willUpdate(changed: Map<string, unknown>): void;
81
+ /**
82
+ * Lazy-load marked + DOMPurify + highlight.js with retry logic.
83
+ * Handles stale chunk errors during development (when rebuilds change chunk hashes).
84
+ */
85
+ private _loadModulesWithRetry;
80
86
  private _parseMarkdown;
81
87
  /**
82
- * 对 Markdown 渲染出的所有 <pre><code> 块应用 highlight.js 语法高亮。
88
+ * Apply highlight.js syntax highlighting to all <pre><code> blocks from Markdown rendering.
83
89
  *
84
- * 流程:
85
- * 1. DOMParser 把 HTML 字符串解析成 DOM
86
- * 2. 遍历所有 <pre><code> 元素
87
- * 3. 调用 hljs.highlightElement(),它会根据 <code> 的 class
88
- * (如 language-javascript)选择语言,否则自动检测
89
- * 4. 序列化回 HTML 字符串
90
+ * Flow:
91
+ * 1. DOMParser parses HTML string into DOM
92
+ * 2. Iterate all <pre><code> elements
93
+ * 3. Call hljs.highlightElement(), which selects language based on <code>'s class
94
+ * (e.g. language-javascript), otherwise auto-detects
95
+ * 4. Serialize back to HTML string
90
96
  *
91
- * 为什么用 DOMParser 而不是正则?
92
- * - 正则无法正确处理嵌套标签、HTML 实体、language hint 属性
93
- * - DOMParser 由浏览器原生实现,性能足够(代码块不会很大)
94
- * - highlight.js 的官方 API 就是面向 DOM 元素的 highlightElement()
97
+ * Why use DOMParser instead of regex?
98
+ * - Regex cannot correctly handle nested tags, HTML entities, language hint attributes
99
+ * - DOMParser is natively implemented by the browser, performance is sufficient (code blocks aren't large)
100
+ * - highlight.js's official API is the DOM-element-oriented highlightElement()
95
101
  */
96
102
  private _highlightCodeBlocks;
97
103
  /**
98
- * 当前消息是否为思考类型(content.type === 'thinking')。
99
- * 思考类型消息渲染为可折叠区域,而非直接展示 Markdown。
104
+ * Whether the current message is thinking type (content.type === 'thinking').
105
+ * Thinking type messages render as collapsible sections, not direct Markdown display.
100
106
  */
101
107
  private get _isThinkingContent();
102
108
  /**
103
- * 当前消息是否是压缩摘要(content.type === 'summary')。
104
- * 压缩摘要渲染为不可折叠的指示块:streaming 态显示"正在压缩",
105
- * 完成态显示释放/增加的 token 数。
109
+ * Whether the current message is a compression summary (content.type === 'summary').
110
+ * Compression summaries render as non-collapsible indicator blocks: streaming state shows "compressing",
111
+ * completed state shows released/increased token count.
106
112
  */
107
113
  private get _isSummaryContent();
108
114
  /**
109
- * 当前消息是否是 prompt 类型(content.type === 'prompt')。
110
- * Prompt 消息渲染为特殊卡片,而非 Markdown。
115
+ * Whether the current message is prompt type (content.type === 'prompt').
116
+ * Prompt messages render as special cards, not Markdown.
111
117
  */
112
118
  private get _isPromptContent();
113
119
  private _toggleThinking;
@@ -128,69 +134,69 @@ export declare class RtcMessage extends LitElement implements StatefulComponent
128
134
  */
129
135
  setState(state: Record<string, unknown>): void;
130
136
  /**
131
- * 点击 timeline-dot:复制消息内容到剪贴板
137
+ * On timeline-dot click: copy message content to clipboard
132
138
  */
133
139
  private _handleDotClick;
134
140
  render(): import("lit").TemplateResult<1>;
135
141
  /**
136
- * 渲染思考内容块(可折叠)。
142
+ * Render thinking content block (collapsible).
137
143
  *
138
- * 折叠态:显示 header 行(chevron + "思考过程"),内容隐藏。
139
- * 展开态:header 行 + 下方渲染 Markdown 内容。
144
+ * Collapsed state: shows header row (chevron + "Thinking process"), content hidden.
145
+ * Expanded state: header row + Markdown content rendered below.
140
146
  */
141
147
  private _renderThinkingBlock;
142
148
  /**
143
- * 渲染压缩摘要块(不可折叠)。
149
+ * Render compression summary block (non-collapsible).
144
150
  *
145
- * streaming 态:显示"正在压缩上下文..."。
146
- * 完成态:显示"已压缩上下文 · 释放/增加 X token"。
151
+ * Streaming state: shows "Compressing context...".
152
+ * Completed state: shows "Compressed context · released/increased X tokens".
147
153
  *
148
- * 不再展示压缩后的摘要内容,用户无需阅读;
149
- * 只关注"正在压缩"和"释放了多少 token"两个信号。
154
+ * No longer displays the compressed summary content, user doesn't need to read it;
155
+ * only focuses on two signals: "compressing" and "how many tokens were released".
150
156
  */
151
157
  private _renderSummaryBlock;
152
158
  /**
153
- * 渲染 prompt 内容块(不可折叠)。
159
+ * Render prompt content block (non-collapsible).
154
160
  *
155
- * 显示格式:
161
+ * Display format:
156
162
  * SCENARIOS $title
157
- * [提示词预览 max-height:3行]
163
+ * [Prompt preview max-height:3 lines]
158
164
  *
159
- * 设计决策:
160
- * - 不支持展开:系统提示词用户无需阅读完整内容
161
- * - 使用左边框而非全边框:视觉上更轻盈(与 summary-block 的全边框区分)
162
- * - 预览区域限制为 3 行:节省空间
163
- * - 使用 <pre> 渲染 prompt 文本:保留原始格式(换行、缩进),
164
- * 同时避免 HTML 注入(prompt 内容可能包含 < 和 > 字符)
165
- * - 自动支持暗色主题(使用 --rtc-* CSS 变量)
165
+ * Design decisions:
166
+ * - No expand support: users don't need to read full system prompt content
167
+ * - Uses left border instead of full border: visually lighter (distinguished from summary-block's full border)
168
+ * - Preview area limited to 3 lines: saves space
169
+ * - Uses <pre> to render prompt text: preserves original formatting (line breaks, indentation),
170
+ * while avoiding HTML injection (prompt content may contain < and > characters)
171
+ * - Automatically supports dark theme (uses --rtc-* CSS variables)
166
172
  */
167
173
  private _renderPromptBlock;
168
174
  /**
169
- * 从 message.content.data 提取压缩统计信息。
175
+ * Extract compression statistics from message.content.data.
170
176
  *
171
- * 兼容两种数据格式:
172
- * - 新格式:SummaryContent { items, metadata }
173
- * - 旧格式:SummaryItem[](无 metadata,返回全 0)
177
+ * Compatible with two data formats:
178
+ * - New format: SummaryContent { items, metadata }
179
+ * - Old format: SummaryItem[] (no metadata, returns all zeros)
174
180
  */
175
181
  private _extractSummaryStats;
176
182
  /**
177
- * 格式化 token 数量,使用 K/B/T 单位。
183
+ * Format token count using K/B/T units.
178
184
  *
179
- * 规则:
180
- * - < 1000: 显示原数(如 500)
181
- * - < 1M: 显示 K(如 12.5K)
182
- * - < 1B: 显示 M(如 1.5M)
183
- * - >= 1B: 显示 B(如 2.3B)
184
- * - >= 1T: 显示 T(如 1.2T)
185
+ * Rules:
186
+ * - < 1000: show raw number (e.g. 500)
187
+ * - < 1M: show K (e.g. 12.5K)
188
+ * - < 1B: show M (e.g. 1.5M)
189
+ * - >= 1B: show B (e.g. 2.3B)
190
+ * - >= 1T: show T (e.g. 1.2T)
185
191
  */
186
192
  private _formatTokens;
187
193
  /**
188
- * 格式化持续时间。
194
+ * Format duration.
189
195
  *
190
- * 规则:
191
- * - < 1000ms: 显示 ms(如 500ms)
192
- * - < 60s: 显示 s(如 3.5s)
193
- * - >= 60s: 显示 m s(如 2m 30s)
196
+ * Rules:
197
+ * - < 1000ms: show ms (e.g. 500ms)
198
+ * - < 60s: show s (e.g. 3.5s)
199
+ * - >= 60s: show m s (e.g. 2m 30s)
194
200
  */
195
201
  private _formatDuration;
196
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAOrC,OAAO,KAAK,EAAC,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAIjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAI7E,qBAEa,UAAW,SAAQ,UAAW,YAAW,iBAAiB;IACnE,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAGF,OAAO,EAAE,OAAO,CAA4G;IAG5H,MAAM,UAAS;IAEf;;;;;;;OAOG;IAEH,OAAO,CAAC,aAAa,CAAM;IAE3B;;;;;OAKG;IAEH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAIN;IAEjB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAc;IAExC;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;YAS1B,cAAc;IA+E5B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,KAAK,kBAAkB,GAE7B;IAED;;;;OAIG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED;;;OAGG;IACH,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOnC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS9C;;OAEG;YACW,eAAe;IAe7B,MAAM;IAsDN;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAkBrB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;CAY1B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,UAAU,CAAC;KAC7B;CACJ"}
1
+ {"version":3,"file":"rtc-message.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAOrC,OAAO,KAAK,EAAC,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAIjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAI7E,qBAEa,UAAW,SAAQ,UAAW,YAAW,iBAAiB;IACnE,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAGF,OAAO,EAAE,OAAO,CAA4G;IAG5H,MAAM,UAAS;IAEf;;;;;;;OAOG;IAEH,OAAO,CAAC,aAAa,CAAM;IAE3B;;;;;;OAMG;IAEH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAIN;IAEjB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAc;IAExC;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IASxC;;;OAGG;YACW,qBAAqB;YA4BrB,cAAc;IAwE5B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,KAAK,kBAAkB,GAE7B;IAED;;;;OAIG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED;;;OAGG;IACH,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOnC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS9C;;OAEG;YACW,eAAe;IAe7B,MAAM;IAsDN;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAkBrB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;CAY1B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,UAAU,CAAC;KAC7B;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message.styles.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,MAAM,2BAkgBlB,CAAC"}
1
+ {"version":3,"file":"rtc-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message.styles.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,MAAM,2BAmgBlB,CAAC"}
@@ -50,13 +50,10 @@ export declare class RtcToolCallCard extends LitElement {
50
50
  * Get IN section copy text (input parameters)
51
51
  */
52
52
  private get _inCopyText();
53
- /**
54
- * Get OUT section copy text (output result)
55
- */
56
- private get _outCopyText();
57
53
  private _handleCopy;
58
54
  /**
59
- * 复制工具调用内容(与 dot 点击对应)
55
+ * Copy tool call content (corresponds to dot click).
56
+ * Input card's dot should copy input content (render-what-you-see principle).
60
57
  */
61
58
  private _handleDotClick;
62
59
  render(): import("lit").TemplateResult<1>;
@@ -72,6 +69,14 @@ export declare class RtcToolCallCard extends LitElement {
72
69
  * Render script tool input based on action type.
73
70
  */
74
71
  private _renderScriptInput;
72
+ /**
73
+ * Render todoWrite tool input as a todo list.
74
+ */
75
+ private _renderTodoWriteInput;
76
+ /**
77
+ * Render a single todo item.
78
+ */
79
+ private _renderTodoItem;
75
80
  }
76
81
  declare global {
77
82
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-toolcall-card.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAO9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAIlD,OAAO,2BAA2B,CAAC;AAInC;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA6HD,qBAEa,eAAgB,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAGF,IAAI,EAAE,YAAY,CAAqH;IAGvI,MAAM,UAAS;IAEf,YAAY;IAOZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAOrC,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAItB;IAED;;OAEG;IACH,OAAO,KAAK,YAAY,GAIvB;YAEa,WAAW;IAczB;;OAEG;YACW,eAAe;IAI7B,MAAM;IAkCN;;OAEG;IACH,OAAO,CAAC,aAAa;IAyCrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA8D7B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,mBAAmB,EAAE,eAAe,CAAC;KACxC;CACJ"}
1
+ {"version":3,"file":"rtc-toolcall-card.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAO9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAIlD,OAAO,2BAA2B,CAAC;AAInC;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA4JD,qBAEa,eAAgB,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAGF,IAAI,EAAE,YAAY,CAAqH;IAGvI,MAAM,UAAS;IAEf,YAAY;IAOZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAOrC,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAmBtB;YAEa,WAAW;IAczB;;;OAGG;YACW,eAAe;IAI7B,MAAM;IAkCN;;OAEG;IACH,OAAO,CAAC,aAAa;IA8CrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,eAAe;CAoB1B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,mBAAmB,EAAE,eAAe,CAAC;KACxC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-toolcall-card.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-card.styles.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,MAAM,2BAiKlB,CAAC"}
1
+ {"version":3,"file":"rtc-toolcall-card.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-card.styles.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,MAAM,2BAuPlB,CAAC"}
@@ -39,7 +39,19 @@ export declare class RtcToolCallReply extends LitElement {
39
39
  * Handle header click: dispatch jump event to scroll to input.
40
40
  */
41
41
  private _handleHeaderClick;
42
+ /**
43
+ * Handle dot click: copy output content to clipboard.
44
+ */
45
+ private _handleDotClick;
46
+ /**
47
+ * Get text to copy based on tool type.
48
+ */
49
+ private _getCopyText;
42
50
  render(): import("lit").TemplateResult<1>;
51
+ /**
52
+ * Empty reply: renders with height 0 (for tools like todoWrite where output is not important).
53
+ */
54
+ private _renderEmptyReply;
43
55
  /**
44
56
  * Fallback: unparseable output rendered as plain text.
45
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-toolcall-reply.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAM9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAIlD,OAAO,2BAA2B,CAAC;AAiUnC,qBAEa,gBAAiB,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAEF,kCAAkC;IAElC,OAAO,EAAG,OAAO,CAAC;IAElB,YAAY;IAUZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAOrC,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B,MAAM;IAsBN;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsF1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAsC9B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,oBAAoB,EAAE,gBAAgB,CAAC;KAC1C;CACJ"}
1
+ {"version":3,"file":"rtc-toolcall-reply.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAM9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAKlD,OAAO,2BAA2B,CAAC;AAsUnC,qBAEa,gBAAiB,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,4BAAU;IAIvB,OAAO,CAAC,UAAU,CAMhB;IAEF,kCAAkC;IAElC,OAAO,EAAG,OAAO,CAAC;IAElB,YAAY;IAUZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAOrC,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB,MAAM;IA2BN;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsF1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAuC9B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,oBAAoB,EAAE,gBAAgB,CAAC;KAC1C;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-toolcall-reply.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-reply.styles.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,MAAM,2BAiJlB,CAAC"}
1
+ {"version":3,"file":"rtc-toolcall-reply.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-toolcall-reply.styles.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,MAAM,2BA8JlB,CAAC"}
@@ -15,9 +15,9 @@
15
15
  *
16
16
  * | syncStatus | more-btn | menu contents | border style |
17
17
  * |------------|----------|------------------------|--------------|
18
- * | pending | ✓ | 复制,分叉 + timestamp | glow breathing animation |
19
- * | synced | ✓ | 复制,分叉 + timestamp | static default border |
20
- * | failed | ✓ | 复制,分叉,重试 + timestamp | static error border |
18
+ * | pending | ✓ | Copy, Fork + timestamp | glow breathing animation |
19
+ * | synced | ✓ | Copy, Fork + timestamp | static default border |
20
+ * | failed | ✓ | Copy, Fork, Retry + timestamp | static error border |
21
21
  *
22
22
  * ## Attributes (reflected for CSS targeting):
23
23
  * - `data-sync-status` — "pending" | "synced" | "failed"
@@ -45,7 +45,7 @@ export declare class RtcUserMessage extends LitElement implements StatefulCompon
45
45
  private _showMoreMenu;
46
46
  private _moreBtn?;
47
47
  /**
48
- * more-menu portal 容器(teleport 到 shadow root 层级,脱离 wrapper 的 stacking context)
48
+ * more-menu portal container (teleported to shadow root level, escapes wrapper's stacking context)
49
49
  */
50
50
  private _moreMenuEl;
51
51
  private _resizeObserver?;
@@ -79,18 +79,18 @@ export declare class RtcUserMessage extends LitElement implements StatefulCompon
79
79
  private _checkOverflow;
80
80
  private _getTextContent;
81
81
  /**
82
- * 提取 user_message 类型的结构化数据(如果有)
82
+ * Extract structured data of user_message type (if present)
83
83
  */
84
84
  private _getUserMessageData;
85
85
  private _handleShowMore;
86
86
  private _handleMoreClick;
87
87
  /**
88
- * 将 more-menu teleport 到 shadow root 层级(脱离 wrapper 的 stacking context)。
89
- * floating-ui 使用 position: absolute(相对 offset parent),坐标不受影响。
88
+ * Teleport more-menu to shadow root level (escape wrapper's stacking context).
89
+ * floating-ui uses position: absolute (relative to offset parent); coordinates are unaffected.
90
90
  */
91
91
  private _teleportMenu;
92
92
  /**
93
- * 移除 teleported more-menu
93
+ * Remove teleported more-menu
94
94
  */
95
95
  private _removeMenu;
96
96
  private _startPositioning;
@@ -98,11 +98,11 @@ export declare class RtcUserMessage extends LitElement implements StatefulCompon
98
98
  private _stopPositioning;
99
99
  private _handleMenuSelect;
100
100
  /**
101
- * 复制消息内容到剪贴板
101
+ * Copy message content to clipboard
102
102
  */
103
103
  private _handleCopy;
104
104
  /**
105
- * 分叉逻辑:派发自定义事件,由根组件处理
105
+ * Fork logic: dispatch custom event, handled by root component
106
106
  */
107
107
  private _handleFork;
108
108
  private _handleResend;
@@ -1,63 +1,65 @@
1
1
  /**
2
2
  * RTC Drawer Component
3
3
  *
4
- * 通用左侧抽屉面板组件。
5
- * 从 Activity Bar 右侧滑入,overlay 在主内容之上,不挤压主内容区宽度。
4
+ * Generic left-side drawer panel component.
5
+ * Slides in from the right side of the Activity Bar, overlays on top of the main content
6
+ * without squeezing the main content area width.
6
7
  *
7
- * 用于替代原有的 flex 布局侧边栏(session-tree、file-explorer、settings-nav),
8
- * 统一抽屉交互:
9
- * - 半透明 backdrop 遮罩,点击关闭
10
- * - ESC 键关闭
11
- * - 平滑 slide-in/out 动画
12
- * - 互斥行为(由父组件控制,同一时刻只打开一个)
8
+ * Used to replace the original flex-layout sidebars (session-tree, file-explorer, settings-nav),
9
+ * unifying drawer interaction:
10
+ * - Semi-transparent backdrop overlay, click to close
11
+ * - ESC key to close
12
+ * - Smooth slide-in/out animation
13
+ * - Mutually exclusive behavior (controlled by parent component, only one open at a time)
13
14
  *
14
15
  * @element rtc-drawer
15
16
  *
16
- * @attr {boolean} open - 抽屉是否打开
17
+ * @attr {boolean} open - Whether the drawer is open
17
18
  *
18
- * @cssprop [--rtc-drawer-width=240px] - 抽屉面板宽度
19
- * @cssprop [--rtc-drawer-backdrop-bg=rgba(0,0,0,0.3)] - 遮罩层背景色
20
- * @cssprop [--rtc-drawer-transition-duration=0.25s] - 动画时长
19
+ * @cssprop [--rtc-drawer-width=240px] - Drawer panel width
20
+ * @cssprop [--rtc-drawer-backdrop-bg=rgba(0,0,0,0.3)] - Backdrop background color
21
+ * @cssprop [--rtc-drawer-transition-duration=0.25s] - Animation duration
21
22
  *
22
- * @csspart backdrop - 遮罩层元素
23
- * @csspart panel - 抽屉面板元素
23
+ * @csspart backdrop - Backdrop element
24
+ * @csspart panel - Drawer panel element
24
25
  *
25
- * @fires rtc-drawer-close - 用户请求关闭抽屉时触发(点击 backdrop / 按 ESC)
26
+ * @fires rtc-drawer-close - Fired when user requests to close the drawer (click backdrop / press ESC)
26
27
  *
27
- * ## 用法
28
+ * ## Usage
28
29
  * ```html
29
30
  * <rtc-drawer ?open=${drawerOpen}>
30
31
  * <rtc-session-tree></rtc-session-tree>
31
32
  * </rtc-drawer>
32
33
  * ```
33
34
  *
34
- * ## 定位
35
- * Drawer 使用 position: absolute 定位,需要父容器设置 position: relative。
36
- * 在 rtc-agent 中,Drawer 放在 .main-layout 内部(.main-layout 已是 flex 容器),
37
- * 通过 JS 设置 left 为 Activity Bar 宽度(48px),实现紧贴 Activity Bar 右侧。
35
+ * ## Positioning
36
+ * Drawer uses position: absolute positioning, requiring the parent container to set position: relative.
37
+ * In rtc-agent, the Drawer is placed inside .main-layout (.main-layout is already a flex container),
38
+ * with JS setting left to the Activity Bar width (48px), to position it flush against the right side
39
+ * of the Activity Bar.
38
40
  */
39
41
  import { LitElement } from 'lit';
40
42
  export declare class RtcDrawer extends LitElement {
41
43
  static styles: import("lit").CSSResult;
42
44
  /**
43
- * 抽屉是否打开
45
+ * Whether the drawer is open
44
46
  *
45
- * 通过 attribute `open` 或 property 控制。
46
- * reflect: true 使 DOM 上能看到 [open] 属性,驱动 CSS 状态。
47
+ * Controlled via attribute `open` or property.
48
+ * reflect: true makes the [open] attribute visible in the DOM, driving CSS state.
47
49
  */
48
50
  open: boolean;
49
51
  connectedCallback(): void;
50
52
  disconnectedCallback(): void;
51
53
  /**
52
- * 点击 backdrop 遮罩层
54
+ * Click backdrop overlay
53
55
  *
54
- * 派发自定义事件通知父组件关闭抽屉。
56
+ * Dispatches custom event to notify parent component to close the drawer.
55
57
  */
56
58
  private _handleBackdropClick;
57
59
  /**
58
- * 全局 ESC 键处理
60
+ * Global ESC key handler
59
61
  *
60
- * 仅当抽屉打开且连接在 DOM 中时响应。
62
+ * Only responds when drawer is open and connected in the DOM.
61
63
  */
62
64
  private _boundOnKeydown;
63
65
  render(): import("lit").TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/rtc-drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAIrC,qBACa,SAAU,SAAQ,UAAU;IACrC,MAAM,CAAC,MAAM,0BAAU;IAEvB;;;;;OAKG;IAEH,IAAI,UAAS;IAIb,iBAAiB;IAMjB,oBAAoB;IAOpB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAUrB;IAIF,MAAM;CAkBT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,YAAY,EAAE,SAAS,CAAC;KAC3B;IAED,UAAU,mBAAmB;QACzB,kBAAkB,EAAE,WAAW,CAAC;KACnC;CACJ"}
1
+ {"version":3,"file":"rtc-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/rtc-drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAIrC,qBACa,SAAU,SAAQ,UAAU;IACrC,MAAM,CAAC,MAAM,0BAAU;IAEvB;;;;;OAKG;IAEH,IAAI,UAAS;IAIb,iBAAiB;IAMjB,oBAAoB;IAOpB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAUrB;IAIF,MAAM;CAkBT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,YAAY,EAAE,SAAS,CAAC;KAC3B;IAED,UAAU,mBAAmB;QACzB,kBAAkB,EAAE,WAAW,CAAC;KACnC;CACJ"}
@@ -1,15 +1,15 @@
1
1
  /**
2
- * Drawer 样式
2
+ * Drawer styles
3
3
  *
4
- * 左侧滑出抽屉面板:
5
- * - 固定在 Activity Bar 右侧,overlay 在主内容之上
6
- * - 通过 transform + transition 实现平滑滑入/滑出
7
- * - 半透明 backdrop 遮罩层,点击关闭
8
- * - 宽度可通过 --rtc-drawer-width CSS 自定义属性配置
4
+ * Left slide-out drawer panel:
5
+ * - Fixed to the right of Activity Bar, overlay above main content
6
+ * - Smooth slide in/out via transform + transition
7
+ * - Semi-transparent backdrop overlay, click to close
8
+ * - Width configurable via --rtc-drawer-width CSS custom property
9
9
  *
10
- * @cssprop [--rtc-drawer-width=240px] - 抽屉宽度
11
- * @csspart backdrop - 遮罩层
12
- * @csspart panel - 抽屉面板
10
+ * @cssprop [--rtc-drawer-width=240px] - Drawer width
11
+ * @csspart backdrop - Backdrop overlay
12
+ * @csspart panel - Drawer panel
13
13
  */
14
14
  export declare const styles: import("lit").CSSResult;
15
15
  //# sourceMappingURL=rtc-drawer.styles.d.ts.map
@@ -1,62 +1,62 @@
1
1
  /**
2
2
  * Editor Area Component
3
3
  *
4
- * VS Code 风格编辑器区域,组合 Tab + Toolbar + Markdown Editor。
4
+ * VS Code-style editor area, combining Tab + Toolbar + Markdown Editor.
5
5
  *
6
- * 布局:
6
+ * Layout:
7
7
  * ┌──────────────────────────────────┐
8
- * │ Tabs (横向滚动,多标签) │
8
+ * │ Tabs (horizontal scroll, multi-tab) │
9
9
  * ├──────────────────────────────────┤
10
- * │ Toolbar (保存/撤销/恢复/视图) │
10
+ * │ Toolbar (save/undo/redo/view) │
11
11
  * ├──────────────────────────────────┤
12
- * │ Editor Content (编辑/预览/分屏) │
12
+ * │ Editor Content (edit/preview/split) │
13
13
  * └──────────────────────────────────┘
14
14
  *
15
- * 无打开文件时显示 Welcome Screen。
15
+ * Shows Welcome Screen when no file is open.
16
16
  *
17
- * 纯 UI 组件:只发事件,不直接操作 VFS。
18
- * 状态由 EditorAreaController 驱动(或 Debug HTML 手动驱动)。
17
+ * Pure UI component: dispatches events only, does not directly operate VFS.
18
+ * State is driven by EditorAreaController (or manually by Debug HTML).
19
19
  *
20
20
  * @element rtc-editor-area
21
21
  *
22
- * @fires editor-area-save - 保存当前文件 (detail: { filePath })
23
- * @fires editor-area-undo - 撤销
24
- * @fires editor-area-redo - 重做
25
- * @fires editor-area-format - 格式化 (detail: { format: 'bold' | 'italic' | 'code' | 'link' })
26
- * @fires editor-area-view-mode-change - 视图切换 (detail: { filePath, viewMode })
27
- * @fires editor-area-content-change - 内容变更 (detail: { filePath, content })
28
- * @fires editor-area-tab-select - 切换标签 (detail: { filePath })
29
- * @fires editor-area-tab-close - 关闭标签 (detail: { filePath })
30
- * @fires editor-area-cursor-move - 光标移动 (detail: { line, column })
31
- * @fires editor-area-restore-default - 恢复默认 (detail: { filePath })
22
+ * @fires editor-area-save - Save current file (detail: { filePath })
23
+ * @fires editor-area-undo - Undo
24
+ * @fires editor-area-redo - Redo
25
+ * @fires editor-area-format - Format (detail: { format: 'bold' | 'italic' | 'code' | 'link' })
26
+ * @fires editor-area-view-mode-change - View mode switch (detail: { filePath, viewMode })
27
+ * @fires editor-area-content-change - Content change (detail: { filePath, content })
28
+ * @fires editor-area-tab-select - Tab switch (detail: { filePath })
29
+ * @fires editor-area-tab-close - Tab close (detail: { filePath })
30
+ * @fires editor-area-cursor-move - Cursor move (detail: { line, column })
31
+ * @fires editor-area-restore-default - Restore default (detail: { filePath })
32
32
  *
33
- * ## 样式
34
- * 使用项目 design tokens(--rtc-color-*),支持亮色/暗色主题。
33
+ * ## Styling
34
+ * Uses project design tokens (--rtc-color-*), supports light/dark themes.
35
35
  */
36
36
  import { LitElement } from 'lit';
37
37
  import type { EditorTab, EditorViewMode } from '../../types/index.js';
38
38
  import './rtc-editor-tab.js';
39
39
  import './rtc-editor-toolbar.js';
40
40
  import '../markdown-editor/rtc-markdown-editor.js';
41
- /** 格式化类型(与 toolbar 一致) */
41
+ /** Format type (consistent with toolbar) */
42
42
  type FormatType = 'bold' | 'italic' | 'code' | 'link';
43
43
  export declare class RtcEditorArea extends LitElement {
44
44
  static styles: import("lit").CSSResult[];
45
45
  private _localeCtx;
46
- /** 打开的文件标签列表 */
46
+ /** List of open file tabs */
47
47
  tabs: EditorTab[];
48
- /** 当前活动文件路径 */
48
+ /** Current active file path */
49
49
  activeFilePath: string;
50
- /** 主题 */
50
+ /** Theme */
51
51
  theme: 'light' | 'dark' | 'system';
52
- /** 获取当前活动的 tab */
52
+ /** Get the currently active tab */
53
53
  private get _activeTab();
54
- /** 保存按钮是否可用(有活动文件且有未保存修改) */
54
+ /** Whether the save button is enabled (has active file with unsaved changes) */
55
55
  private get _canSave();
56
56
  /**
57
- * 恢复默认按钮是否可用(仅对系统生成的文件显示)
57
+ * Whether the restore default button is enabled (shown only for system-generated files)
58
58
  *
59
- * 系统生成的文件:/AGENT.md, /functions/*.md, /scenarios/*.md
59
+ * System-generated files: /AGENT.md, /functions/*.md, /scenarios/*.md
60
60
  */
61
61
  private get _canRestore();
62
62
  private _handleTabSelect;
@@ -74,7 +74,7 @@ export declare class RtcEditorArea extends LitElement {
74
74
  private _renderEditor;
75
75
  private _renderWelcome;
76
76
  /**
77
- * 从路径提取文件名
77
+ * Extract filename from path
78
78
  */
79
79
  private _getFileName;
80
80
  render(): import("lit").TemplateResult<1>;