@rtc-agent/component 0.2.7-rc.3 → 0.2.8-rc.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 (437) hide show
  1. package/README.md +109 -13
  2. package/dist/.generated/locales/en-US.d.ts +268 -0
  3. package/dist/.generated/locales/en-US.d.ts.map +1 -0
  4. package/dist/assets/{shared-worker-BEaT-a-g.js → shared-worker-CXyjL7E6.js} +210 -210
  5. package/dist/components/activity-bar/rtc-activity-bar.d.ts +67 -0
  6. package/dist/components/activity-bar/rtc-activity-bar.d.ts.map +1 -0
  7. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts +7 -0
  8. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts.map +1 -0
  9. package/dist/components/chat-layout/rtc-chat-layout.d.ts +218 -0
  10. package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -0
  11. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts +11 -0
  12. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts.map +1 -0
  13. package/dist/components/content-area/rtc-content-area.d.ts +34 -0
  14. package/dist/components/content-area/rtc-content-area.d.ts.map +1 -0
  15. package/dist/components/content-area/rtc-content-area.styles.d.ts +2 -0
  16. package/dist/components/content-area/rtc-content-area.styles.d.ts.map +1 -0
  17. package/dist/components/content-area/rtc-error-message.d.ts +82 -0
  18. package/dist/components/content-area/rtc-error-message.d.ts.map +1 -0
  19. package/dist/components/content-area/rtc-message-list.d.ts +251 -0
  20. package/dist/components/content-area/rtc-message-list.d.ts.map +1 -0
  21. package/dist/components/content-area/rtc-message-list.skeleton-styles.d.ts +13 -0
  22. package/dist/components/content-area/rtc-message-list.skeleton-styles.d.ts.map +1 -0
  23. package/dist/components/content-area/rtc-message-list.styles.d.ts +2 -0
  24. package/dist/components/content-area/rtc-message-list.styles.d.ts.map +1 -0
  25. package/dist/components/content-area/rtc-message-more-menu.d.ts +35 -0
  26. package/dist/components/content-area/rtc-message-more-menu.d.ts.map +1 -0
  27. package/dist/components/content-area/rtc-message.d.ts +208 -0
  28. package/dist/components/content-area/rtc-message.d.ts.map +1 -0
  29. package/dist/components/content-area/rtc-message.styles.d.ts +2 -0
  30. package/dist/components/content-area/rtc-message.styles.d.ts.map +1 -0
  31. package/dist/components/content-area/rtc-scroll-container.d.ts +44 -0
  32. package/dist/components/content-area/rtc-scroll-container.d.ts.map +1 -0
  33. package/dist/components/content-area/rtc-scroll-container.styles.d.ts +2 -0
  34. package/dist/components/content-area/rtc-scroll-container.styles.d.ts.map +1 -0
  35. package/dist/components/content-area/rtc-toolcall-card.d.ts +86 -0
  36. package/dist/components/content-area/rtc-toolcall-card.d.ts.map +1 -0
  37. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts +2 -0
  38. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts.map +1 -0
  39. package/dist/components/content-area/rtc-toolcall-reply.d.ts +77 -0
  40. package/dist/components/content-area/rtc-toolcall-reply.d.ts.map +1 -0
  41. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts +2 -0
  42. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts.map +1 -0
  43. package/dist/components/content-area/rtc-user-message.d.ts +116 -0
  44. package/dist/components/content-area/rtc-user-message.d.ts.map +1 -0
  45. package/dist/components/content-area/rtc-user-message.styles.d.ts +22 -0
  46. package/dist/components/content-area/rtc-user-message.styles.d.ts.map +1 -0
  47. package/dist/components/content-area/timeline.styles.d.ts +2 -0
  48. package/dist/components/content-area/timeline.styles.d.ts.map +1 -0
  49. package/dist/components/content-wrapper/rtc-content-wrapper.d.ts +25 -0
  50. package/dist/components/content-wrapper/rtc-content-wrapper.d.ts.map +1 -0
  51. package/dist/components/content-wrapper/rtc-content-wrapper.styles.d.ts +2 -0
  52. package/dist/components/content-wrapper/rtc-content-wrapper.styles.d.ts.map +1 -0
  53. package/dist/components/drawer/rtc-drawer.d.ts +75 -0
  54. package/dist/components/drawer/rtc-drawer.d.ts.map +1 -0
  55. package/dist/components/drawer/rtc-drawer.styles.d.ts +15 -0
  56. package/dist/components/drawer/rtc-drawer.styles.d.ts.map +1 -0
  57. package/dist/components/editor-area/rtc-editor-area.d.ts +119 -0
  58. package/dist/components/editor-area/rtc-editor-area.d.ts.map +1 -0
  59. package/dist/components/editor-area/rtc-editor-area.styles.d.ts +8 -0
  60. package/dist/components/editor-area/rtc-editor-area.styles.d.ts.map +1 -0
  61. package/dist/components/editor-area/rtc-editor-tab.d.ts +84 -0
  62. package/dist/components/editor-area/rtc-editor-tab.d.ts.map +1 -0
  63. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts +8 -0
  64. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts.map +1 -0
  65. package/dist/components/editor-area/rtc-editor-toolbar.d.ts +68 -0
  66. package/dist/components/editor-area/rtc-editor-toolbar.d.ts.map +1 -0
  67. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts +8 -0
  68. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts.map +1 -0
  69. package/dist/components/empty-state/rtc-empty-state.d.ts +24 -0
  70. package/dist/components/empty-state/rtc-empty-state.d.ts.map +1 -0
  71. package/dist/components/empty-state/rtc-empty-state.styles.d.ts +2 -0
  72. package/dist/components/empty-state/rtc-empty-state.styles.d.ts.map +1 -0
  73. package/dist/components/file-explorer/rtc-file-explorer.d.ts +94 -0
  74. package/dist/components/file-explorer/rtc-file-explorer.d.ts.map +1 -0
  75. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts +8 -0
  76. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts.map +1 -0
  77. package/dist/components/file-explorer/rtc-file-tree-item.d.ts +70 -0
  78. package/dist/components/file-explorer/rtc-file-tree-item.d.ts.map +1 -0
  79. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts +8 -0
  80. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts.map +1 -0
  81. package/dist/components/function-console/rtc-function-console.d.ts +32 -0
  82. package/dist/components/function-console/rtc-function-console.d.ts.map +1 -0
  83. package/dist/components/function-console/rtc-function-console.styles.d.ts +8 -0
  84. package/dist/components/function-console/rtc-function-console.styles.d.ts.map +1 -0
  85. package/dist/components/function-debugger/rtc-function-debugger.d.ts +39 -0
  86. package/dist/components/function-debugger/rtc-function-debugger.d.ts.map +1 -0
  87. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts +8 -0
  88. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts.map +1 -0
  89. package/dist/components/function-history/rtc-function-history.d.ts +49 -0
  90. package/dist/components/function-history/rtc-function-history.d.ts.map +1 -0
  91. package/dist/components/function-history/rtc-function-history.styles.d.ts +8 -0
  92. package/dist/components/function-history/rtc-function-history.styles.d.ts.map +1 -0
  93. package/dist/components/function-params/rtc-function-params.d.ts +29 -0
  94. package/dist/components/function-params/rtc-function-params.d.ts.map +1 -0
  95. package/dist/components/function-params/rtc-function-params.styles.d.ts +8 -0
  96. package/dist/components/function-params/rtc-function-params.styles.d.ts.map +1 -0
  97. package/dist/components/function-tree/rtc-function-tree.d.ts +59 -0
  98. package/dist/components/function-tree/rtc-function-tree.d.ts.map +1 -0
  99. package/dist/components/function-tree/rtc-function-tree.styles.d.ts +2 -0
  100. package/dist/components/function-tree/rtc-function-tree.styles.d.ts.map +1 -0
  101. package/dist/components/functions-layout/rtc-functions-layout.d.ts +45 -0
  102. package/dist/components/functions-layout/rtc-functions-layout.d.ts.map +1 -0
  103. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts +8 -0
  104. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts.map +1 -0
  105. package/dist/components/input-area/rtc-input-area.d.ts +167 -0
  106. package/dist/components/input-area/rtc-input-area.d.ts.map +1 -0
  107. package/dist/components/input-area/rtc-input-area.styles.d.ts +2 -0
  108. package/dist/components/input-area/rtc-input-area.styles.d.ts.map +1 -0
  109. package/dist/components/login/rtc-login-dialog.d.ts +54 -0
  110. package/dist/components/login/rtc-login-dialog.d.ts.map +1 -0
  111. package/dist/components/login/rtc-login-dialog.styles.d.ts +2 -0
  112. package/dist/components/login/rtc-login-dialog.styles.d.ts.map +1 -0
  113. package/dist/components/login/rtc-login-page.d.ts +39 -0
  114. package/dist/components/login/rtc-login-page.d.ts.map +1 -0
  115. package/dist/components/login/rtc-login-page.styles.d.ts +2 -0
  116. package/dist/components/login/rtc-login-page.styles.d.ts.map +1 -0
  117. package/dist/components/logo/rtc-logo.d.ts +38 -0
  118. package/dist/components/logo/rtc-logo.d.ts.map +1 -0
  119. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts +91 -0
  120. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts.map +1 -0
  121. package/dist/components/markdown-editor/rtc-markdown-editor.styles.d.ts +2 -0
  122. package/dist/components/markdown-editor/rtc-markdown-editor.styles.d.ts.map +1 -0
  123. package/dist/components/notice-bar/rtc-notice-bar.d.ts +23 -0
  124. package/dist/components/notice-bar/rtc-notice-bar.d.ts.map +1 -0
  125. package/dist/components/notice-bar/rtc-notice-bar.styles.d.ts +2 -0
  126. package/dist/components/notice-bar/rtc-notice-bar.styles.d.ts.map +1 -0
  127. package/dist/components/overlay/rtc-ask-user.d.ts +91 -0
  128. package/dist/components/overlay/rtc-ask-user.d.ts.map +1 -0
  129. package/dist/components/overlay/rtc-ask-user.styles.d.ts +11 -0
  130. package/dist/components/overlay/rtc-ask-user.styles.d.ts.map +1 -0
  131. package/dist/components/overlay/rtc-command-panel.d.ts +44 -0
  132. package/dist/components/overlay/rtc-command-panel.d.ts.map +1 -0
  133. package/dist/components/overlay/rtc-command-panel.styles.d.ts +2 -0
  134. package/dist/components/overlay/rtc-command-panel.styles.d.ts.map +1 -0
  135. package/dist/components/overlay/rtc-export-dialog.d.ts +59 -0
  136. package/dist/components/overlay/rtc-export-dialog.d.ts.map +1 -0
  137. package/dist/components/overlay/rtc-export-dialog.styles.d.ts +11 -0
  138. package/dist/components/overlay/rtc-export-dialog.styles.d.ts.map +1 -0
  139. package/dist/components/overlay/rtc-mode-panel.d.ts +30 -0
  140. package/dist/components/overlay/rtc-mode-panel.d.ts.map +1 -0
  141. package/dist/components/overlay/rtc-mode-panel.styles.d.ts +2 -0
  142. package/dist/components/overlay/rtc-mode-panel.styles.d.ts.map +1 -0
  143. package/dist/components/overlay/rtc-overlay-manager.d.ts +30 -0
  144. package/dist/components/overlay/rtc-overlay-manager.d.ts.map +1 -0
  145. package/dist/components/overlay/rtc-overlay-manager.styles.d.ts +2 -0
  146. package/dist/components/overlay/rtc-overlay-manager.styles.d.ts.map +1 -0
  147. package/dist/components/overlay/rtc-restore-confirm.d.ts +37 -0
  148. package/dist/components/overlay/rtc-restore-confirm.d.ts.map +1 -0
  149. package/dist/components/overlay/rtc-restore-confirm.styles.d.ts +2 -0
  150. package/dist/components/overlay/rtc-restore-confirm.styles.d.ts.map +1 -0
  151. package/dist/components/overlay/rtc-scenario-panel.d.ts +33 -0
  152. package/dist/components/overlay/rtc-scenario-panel.d.ts.map +1 -0
  153. package/dist/components/overlay/rtc-scenario-panel.styles.d.ts +2 -0
  154. package/dist/components/overlay/rtc-scenario-panel.styles.d.ts.map +1 -0
  155. package/dist/components/overlay/rtc-session-panel.d.ts +39 -0
  156. package/dist/components/overlay/rtc-session-panel.d.ts.map +1 -0
  157. package/dist/components/overlay/rtc-session-panel.styles.d.ts +2 -0
  158. package/dist/components/overlay/rtc-session-panel.styles.d.ts.map +1 -0
  159. package/dist/components/overlay/rtc-toast.d.ts +51 -0
  160. package/dist/components/overlay/rtc-toast.d.ts.map +1 -0
  161. package/dist/components/overlay/rtc-todo-panel.d.ts +23 -0
  162. package/dist/components/overlay/rtc-todo-panel.d.ts.map +1 -0
  163. package/dist/components/overlay/rtc-todo-panel.styles.d.ts +2 -0
  164. package/dist/components/overlay/rtc-todo-panel.styles.d.ts.map +1 -0
  165. package/dist/components/overlay/rtc-tool-confirm.d.ts +30 -0
  166. package/dist/components/overlay/rtc-tool-confirm.d.ts.map +1 -0
  167. package/dist/components/overlay/rtc-tool-confirm.styles.d.ts +2 -0
  168. package/dist/components/overlay/rtc-tool-confirm.styles.d.ts.map +1 -0
  169. package/dist/components/rtc-agent/helpers/bus-handler.d.ts +110 -0
  170. package/dist/components/rtc-agent/helpers/bus-handler.d.ts.map +1 -0
  171. package/dist/components/rtc-agent/helpers/command-handler.d.ts +25 -0
  172. package/dist/components/rtc-agent/helpers/command-handler.d.ts.map +1 -0
  173. package/dist/components/rtc-agent/helpers/connection-setup.d.ts +89 -0
  174. package/dist/components/rtc-agent/helpers/connection-setup.d.ts.map +1 -0
  175. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts +63 -0
  176. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts.map +1 -0
  177. package/dist/components/rtc-agent/helpers/session-loader.d.ts +69 -0
  178. package/dist/components/rtc-agent/helpers/session-loader.d.ts.map +1 -0
  179. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts +155 -0
  180. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts.map +1 -0
  181. package/dist/components/rtc-agent/rtc-agent.d.ts +677 -0
  182. package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -0
  183. package/dist/components/rtc-agent/rtc-agent.styles.d.ts +16 -0
  184. package/dist/components/rtc-agent/rtc-agent.styles.d.ts.map +1 -0
  185. package/dist/components/session-header/rtc-session-header.d.ts +77 -0
  186. package/dist/components/session-header/rtc-session-header.d.ts.map +1 -0
  187. package/dist/components/session-header/rtc-session-header.styles.d.ts +2 -0
  188. package/dist/components/session-header/rtc-session-header.styles.d.ts.map +1 -0
  189. package/dist/components/session-tree/rtc-session-tab-bar.d.ts +43 -0
  190. package/dist/components/session-tree/rtc-session-tab-bar.d.ts.map +1 -0
  191. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts +10 -0
  192. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts.map +1 -0
  193. package/dist/components/session-tree/rtc-session-tab.d.ts +33 -0
  194. package/dist/components/session-tree/rtc-session-tab.d.ts.map +1 -0
  195. package/dist/components/session-tree/rtc-session-tab.styles.d.ts +11 -0
  196. package/dist/components/session-tree/rtc-session-tab.styles.d.ts.map +1 -0
  197. package/dist/components/session-tree/rtc-session-tree-item.d.ts +42 -0
  198. package/dist/components/session-tree/rtc-session-tree-item.d.ts.map +1 -0
  199. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts +11 -0
  200. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts.map +1 -0
  201. package/dist/components/session-tree/rtc-session-tree.d.ts +71 -0
  202. package/dist/components/session-tree/rtc-session-tree.d.ts.map +1 -0
  203. package/dist/components/session-tree/rtc-session-tree.styles.d.ts +10 -0
  204. package/dist/components/session-tree/rtc-session-tree.styles.d.ts.map +1 -0
  205. package/dist/components/settings/rtc-settings-panel.d.ts +27 -0
  206. package/dist/components/settings/rtc-settings-panel.d.ts.map +1 -0
  207. package/dist/components/settings/rtc-settings-panel.styles.d.ts +8 -0
  208. package/dist/components/settings/rtc-settings-panel.styles.d.ts.map +1 -0
  209. package/dist/components/settings-layout/rtc-settings-layout.d.ts +74 -0
  210. package/dist/components/settings-layout/rtc-settings-layout.d.ts.map +1 -0
  211. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts +8 -0
  212. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts.map +1 -0
  213. package/dist/components/settings-layout/rtc-settings-nav.d.ts +62 -0
  214. package/dist/components/settings-layout/rtc-settings-nav.d.ts.map +1 -0
  215. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts +7 -0
  216. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts.map +1 -0
  217. package/dist/components/status-bar/rtc-status-bar.d.ts +39 -0
  218. package/dist/components/status-bar/rtc-status-bar.d.ts.map +1 -0
  219. package/dist/components/status-bar/rtc-status-bar.styles.d.ts +11 -0
  220. package/dist/components/status-bar/rtc-status-bar.styles.d.ts.map +1 -0
  221. package/dist/components/title-bar/rtc-title-bar.d.ts +46 -0
  222. package/dist/components/title-bar/rtc-title-bar.d.ts.map +1 -0
  223. package/dist/components/title-bar/rtc-title-bar.styles.d.ts +2 -0
  224. package/dist/components/title-bar/rtc-title-bar.styles.d.ts.map +1 -0
  225. package/dist/components/token-usage/rtc-token-usage.d.ts +60 -0
  226. package/dist/components/token-usage/rtc-token-usage.d.ts.map +1 -0
  227. package/dist/config/auth.d.ts +58 -0
  228. package/dist/config/auth.d.ts.map +1 -0
  229. package/dist/contexts/activity.d.ts +42 -0
  230. package/dist/contexts/activity.d.ts.map +1 -0
  231. package/dist/contexts/auth.d.ts +29 -0
  232. package/dist/contexts/auth.d.ts.map +1 -0
  233. package/dist/contexts/editor.d.ts +43 -0
  234. package/dist/contexts/editor.d.ts.map +1 -0
  235. package/dist/contexts/file-explorer.d.ts +48 -0
  236. package/dist/contexts/file-explorer.d.ts.map +1 -0
  237. package/dist/contexts/function-debug.d.ts +52 -0
  238. package/dist/contexts/function-debug.d.ts.map +1 -0
  239. package/dist/contexts/functions.d.ts +43 -0
  240. package/dist/contexts/functions.d.ts.map +1 -0
  241. package/dist/contexts/logo.d.ts +21 -0
  242. package/dist/contexts/logo.d.ts.map +1 -0
  243. package/dist/contexts/message.d.ts +22 -0
  244. package/dist/contexts/message.d.ts.map +1 -0
  245. package/dist/contexts/mode.d.ts +18 -0
  246. package/dist/contexts/mode.d.ts.map +1 -0
  247. package/dist/contexts/notification.d.ts +21 -0
  248. package/dist/contexts/notification.d.ts.map +1 -0
  249. package/dist/contexts/session-tab.d.ts +10 -0
  250. package/dist/contexts/session-tab.d.ts.map +1 -0
  251. package/dist/contexts/session-tree.d.ts +10 -0
  252. package/dist/contexts/session-tree.d.ts.map +1 -0
  253. package/dist/contexts/session.d.ts +16 -0
  254. package/dist/contexts/session.d.ts.map +1 -0
  255. package/dist/contexts/settings.d.ts +40 -0
  256. package/dist/contexts/settings.d.ts.map +1 -0
  257. package/dist/contexts/skill.d.ts +27 -0
  258. package/dist/contexts/skill.d.ts.map +1 -0
  259. package/dist/contexts/tool-call.d.ts +16 -0
  260. package/dist/contexts/tool-call.d.ts.map +1 -0
  261. package/dist/contexts/turn-count.d.ts +23 -0
  262. package/dist/contexts/turn-count.d.ts.map +1 -0
  263. package/dist/contexts/window-state.d.ts +20 -0
  264. package/dist/contexts/window-state.d.ts.map +1 -0
  265. package/dist/controllers/activity.controller.d.ts +45 -0
  266. package/dist/controllers/activity.controller.d.ts.map +1 -0
  267. package/dist/controllers/auth.controller.d.ts +207 -0
  268. package/dist/controllers/auth.controller.d.ts.map +1 -0
  269. package/dist/controllers/editor-area.controller.d.ts +120 -0
  270. package/dist/controllers/editor-area.controller.d.ts.map +1 -0
  271. package/dist/controllers/editor.controller.d.ts +29 -0
  272. package/dist/controllers/editor.controller.d.ts.map +1 -0
  273. package/dist/controllers/event-binding.controller.d.ts +204 -0
  274. package/dist/controllers/event-binding.controller.d.ts.map +1 -0
  275. package/dist/controllers/file-explorer.controller.d.ts +42 -0
  276. package/dist/controllers/file-explorer.controller.d.ts.map +1 -0
  277. package/dist/controllers/fork.controller.d.ts +63 -0
  278. package/dist/controllers/fork.controller.d.ts.map +1 -0
  279. package/dist/controllers/function-debug.controller.d.ts +67 -0
  280. package/dist/controllers/function-debug.controller.d.ts.map +1 -0
  281. package/dist/controllers/functions.controller.d.ts +31 -0
  282. package/dist/controllers/functions.controller.d.ts.map +1 -0
  283. package/dist/controllers/message.controller.d.ts +192 -0
  284. package/dist/controllers/message.controller.d.ts.map +1 -0
  285. package/dist/controllers/mode.controller.d.ts +26 -0
  286. package/dist/controllers/mode.controller.d.ts.map +1 -0
  287. package/dist/controllers/notification.controller.d.ts +105 -0
  288. package/dist/controllers/notification.controller.d.ts.map +1 -0
  289. package/dist/controllers/persistence.controller.d.ts +145 -0
  290. package/dist/controllers/persistence.controller.d.ts.map +1 -0
  291. package/dist/controllers/session-tab.controller.d.ts +85 -0
  292. package/dist/controllers/session-tab.controller.d.ts.map +1 -0
  293. package/dist/controllers/session-tree.controller.d.ts +44 -0
  294. package/dist/controllers/session-tree.controller.d.ts.map +1 -0
  295. package/dist/controllers/session.controller.d.ts +58 -0
  296. package/dist/controllers/session.controller.d.ts.map +1 -0
  297. package/dist/controllers/settings.controller.d.ts +46 -0
  298. package/dist/controllers/settings.controller.d.ts.map +1 -0
  299. package/dist/controllers/skill.controller.d.ts +81 -0
  300. package/dist/controllers/skill.controller.d.ts.map +1 -0
  301. package/dist/controllers/status-bar.controller.d.ts +32 -0
  302. package/dist/controllers/status-bar.controller.d.ts.map +1 -0
  303. package/dist/controllers/toast.controller.d.ts +29 -0
  304. package/dist/controllers/toast.controller.d.ts.map +1 -0
  305. package/dist/controllers/tool-call.controller.d.ts +38 -0
  306. package/dist/controllers/tool-call.controller.d.ts.map +1 -0
  307. package/dist/controllers/window-interaction.controller.d.ts +130 -0
  308. package/dist/controllers/window-interaction.controller.d.ts.map +1 -0
  309. package/dist/controllers/window-state.controller.d.ts +79 -0
  310. package/dist/controllers/window-state.controller.d.ts.map +1 -0
  311. package/dist/core/builtin-system-group.d.ts +73 -0
  312. package/dist/core/builtin-system-group.d.ts.map +1 -0
  313. package/dist/core/event-bus.d.ts +133 -0
  314. package/dist/core/event-bus.d.ts.map +1 -0
  315. package/dist/core/function-registry.d.ts +196 -0
  316. package/dist/core/function-registry.d.ts.map +1 -0
  317. package/dist/core/i18n.d.ts +25 -0
  318. package/dist/core/i18n.d.ts.map +1 -0
  319. package/dist/core/locale-controller.d.ts +25 -0
  320. package/dist/core/locale-controller.d.ts.map +1 -0
  321. package/dist/core/markdown-generator.d.ts +46 -0
  322. package/dist/core/markdown-generator.d.ts.map +1 -0
  323. package/dist/core/ready.d.ts +33 -0
  324. package/dist/core/ready.d.ts.map +1 -0
  325. package/dist/core/scenario-loader.d.ts +60 -0
  326. package/dist/core/scenario-loader.d.ts.map +1 -0
  327. package/dist/core/theme.d.ts +29 -0
  328. package/dist/core/theme.d.ts.map +1 -0
  329. package/dist/debug-api-core.d.ts +9 -0
  330. package/dist/debug-api-core.d.ts.map +1 -0
  331. package/dist/debug-api-ext.d.ts +16 -0
  332. package/dist/debug-api-ext.d.ts.map +1 -0
  333. package/dist/debug-api-helpers.d.ts +28 -0
  334. package/dist/debug-api-helpers.d.ts.map +1 -0
  335. package/dist/debug-api-types.d.ts +206 -0
  336. package/dist/debug-api-types.d.ts.map +1 -0
  337. package/dist/debug-api.d.ts +10 -0
  338. package/dist/debug-api.d.ts.map +1 -0
  339. package/dist/elements.d.ts +26 -0
  340. package/dist/elements.d.ts.map +1 -0
  341. package/dist/{en-US-B3u0M1QC.js → en-US-DGPo7Pzk.js} +56 -8
  342. package/dist/factory.d.ts +68 -0
  343. package/dist/factory.d.ts.map +1 -0
  344. package/dist/{highlight-languages-Do4vG6hX.js → highlight-languages-BStkA3vP.js} +1 -1
  345. package/dist/icons/icons.d.ts +93 -0
  346. package/dist/icons/icons.d.ts.map +1 -0
  347. package/dist/icons/index.d.ts +8 -0
  348. package/dist/icons/index.d.ts.map +1 -0
  349. package/dist/icons/logo.d.ts +15 -0
  350. package/dist/icons/logo.d.ts.map +1 -0
  351. package/dist/{index-TrHSQq--.js → index-c20k11wZ.js} +28078 -23840
  352. package/dist/index.d.ts +116 -0
  353. package/dist/index.d.ts.map +1 -0
  354. package/dist/index.js +39 -36
  355. package/dist/index.umd.js +3277 -1094
  356. package/dist/locales/en-US.d.ts +4 -0
  357. package/dist/locales/en-US.d.ts.map +1 -0
  358. package/dist/main.d.ts +17 -0
  359. package/dist/main.d.ts.map +1 -0
  360. package/dist/master-lock.d.ts +72 -0
  361. package/dist/master-lock.d.ts.map +1 -0
  362. package/dist/registry.d.ts +2 -0
  363. package/dist/registry.d.ts.map +1 -0
  364. package/dist/repositories/index.d.ts +8 -0
  365. package/dist/repositories/index.d.ts.map +1 -0
  366. package/dist/repositories/message.repository.d.ts +182 -0
  367. package/dist/repositories/message.repository.d.ts.map +1 -0
  368. package/dist/stats.html +1 -1
  369. package/dist/storage.d.ts +11 -0
  370. package/dist/storage.d.ts.map +1 -0
  371. package/dist/styles/base.d.ts +8 -0
  372. package/dist/styles/base.d.ts.map +1 -0
  373. package/dist/styles/index.d.ts +5 -0
  374. package/dist/styles/index.d.ts.map +1 -0
  375. package/dist/styles/themes/dark.d.ts +2 -0
  376. package/dist/styles/themes/dark.d.ts.map +1 -0
  377. package/dist/styles/themes/light.d.ts +2 -0
  378. package/dist/styles/themes/light.d.ts.map +1 -0
  379. package/dist/styles/tokens.d.ts +22 -0
  380. package/dist/styles/tokens.d.ts.map +1 -0
  381. package/dist/types/activity-bar-config.d.ts +38 -0
  382. package/dist/types/activity-bar-config.d.ts.map +1 -0
  383. package/dist/types/agent-config.d.ts +61 -0
  384. package/dist/types/agent-config.d.ts.map +1 -0
  385. package/dist/types/events.d.ts +112 -0
  386. package/dist/types/events.d.ts.map +1 -0
  387. package/dist/types/factory.d.ts +610 -0
  388. package/dist/types/factory.d.ts.map +1 -0
  389. package/dist/types/functions-debug.d.ts +48 -0
  390. package/dist/types/functions-debug.d.ts.map +1 -0
  391. package/dist/types/index.d.ts +386 -0
  392. package/dist/types/index.d.ts.map +1 -0
  393. package/dist/types/skill.d.ts +207 -0
  394. package/dist/types/skill.d.ts.map +1 -0
  395. package/dist/types/window-config.d.ts +122 -0
  396. package/dist/types/window-config.d.ts.map +1 -0
  397. package/dist/utils/clipboard.d.ts +14 -0
  398. package/dist/utils/clipboard.d.ts.map +1 -0
  399. package/dist/utils/command-parser.d.ts +33 -0
  400. package/dist/utils/command-parser.d.ts.map +1 -0
  401. package/dist/utils/content-data.d.ts +113 -0
  402. package/dist/utils/content-data.d.ts.map +1 -0
  403. package/dist/utils/custom-scrollbar.d.ts +41 -0
  404. package/dist/utils/custom-scrollbar.d.ts.map +1 -0
  405. package/dist/utils/device.d.ts +22 -0
  406. package/dist/utils/device.d.ts.map +1 -0
  407. package/dist/utils/floating-panel-controller.d.ts +52 -0
  408. package/dist/utils/floating-panel-controller.d.ts.map +1 -0
  409. package/dist/utils/format.d.ts +27 -0
  410. package/dist/utils/format.d.ts.map +1 -0
  411. package/dist/utils/highlight-languages.d.ts +9 -0
  412. package/dist/utils/highlight-languages.d.ts.map +1 -0
  413. package/dist/utils/message-skeleton.d.ts +39 -0
  414. package/dist/utils/message-skeleton.d.ts.map +1 -0
  415. package/dist/utils/message-virtual-scroll.d.ts +595 -0
  416. package/dist/utils/message-virtual-scroll.d.ts.map +1 -0
  417. package/dist/utils/relative-time.d.ts +14 -0
  418. package/dist/utils/relative-time.d.ts.map +1 -0
  419. package/dist/utils/scroll-saver.d.ts +34 -0
  420. package/dist/utils/scroll-saver.d.ts.map +1 -0
  421. package/dist/utils/session-exporter.d.ts +65 -0
  422. package/dist/utils/session-exporter.d.ts.map +1 -0
  423. package/dist/utils/skeleton-tracker.d.ts +144 -0
  424. package/dist/utils/skeleton-tracker.d.ts.map +1 -0
  425. package/dist/utils/visibility-manager.d.ts +103 -0
  426. package/dist/utils/visibility-manager.d.ts.map +1 -0
  427. package/dist/utils.d.ts +5 -0
  428. package/dist/utils.d.ts.map +1 -0
  429. package/dist/validation/index.d.ts +53 -0
  430. package/dist/validation/index.d.ts.map +1 -0
  431. package/dist/validation/openapi-to-zod.d.ts +15 -0
  432. package/dist/validation/openapi-to-zod.d.ts.map +1 -0
  433. package/dist/validation/zod-to-openapi.d.ts +66 -0
  434. package/dist/validation/zod-to-openapi.d.ts.map +1 -0
  435. package/dist/worker-bridge.d.ts +152 -0
  436. package/dist/worker-bridge.d.ts.map +1 -0
  437. package/package.json +6 -6
@@ -0,0 +1,251 @@
1
+ /**
2
+ * RTC Message List Component
3
+ *
4
+ * Renders messages in a scrollable container with timeline layout.
5
+ * Each `<rtc-message-list>` subscribes directly to `MessageRepository` for a
6
+ * specific `sessionId`. This allows multiple instances to coexist (e.g. one per
7
+ * open tab) without relying on a shared `MessageContext`.
8
+ *
9
+ * ## Auto-scroll mechanism (Intent-Based Architecture)
10
+ *
11
+ * Auto-scroll is controlled by a **computed property** `_shouldAutoScroll()` that
12
+ * combines geometric state (`_userAtBottom`) with behavioral intent (`_followInvalidatedUntil`):
13
+ *
14
+ * 1. **`_userAtBottom`** (geometric, `@state`): updated by `_onScroll` on every scroll event.
15
+ * `distanceFromBottom < AT_BOTTOM_THRESHOLD_PX (300)` → true.
16
+ *
17
+ * 2. **`_followInvalidatedUntil`** (behavioral, plain field): set ONLY by user input events
18
+ * (wheel, touchstart, pointerdown, keydown) to `Date.now() + 450ms`. Self-expires after
19
+ * 450ms of user inactivity. Programmatic scrolls do NOT modify this field.
20
+ *
21
+ * 3. **`_shouldAutoScroll()`** = `_userAtBottom && Date.now() >= _followInvalidatedUntil`.
22
+ * Called by `updated()`, `_scheduleScroll()`, ResizeObserver.
23
+ *
24
+ * 4. **ResizeObserver** handles async content (Markdown rendering, thinking expansion).
25
+ * Scrolls to bottom only if `_shouldAutoScroll()` is true.
26
+ *
27
+ * @element rtc-message-list
28
+ * @csspart scroll - The scroll container
29
+ * @csspart inner - The inner message container
30
+ */
31
+ import { LitElement } from 'lit';
32
+ import type { MessageController } from '../../controllers/message.controller.js';
33
+ import type { Message } from '../../types/index.js';
34
+ import './rtc-message.js';
35
+ import './rtc-user-message.js';
36
+ import './rtc-toolcall-card.js';
37
+ import './rtc-toolcall-reply.js';
38
+ import './rtc-error-message.js';
39
+ export declare class RtcMessageList extends LitElement {
40
+ static styles: import("lit").CSSResult[];
41
+ /** Session ID for this message list instance. */
42
+ sessionId: string | null;
43
+ /** Message controller for accessing repository. */
44
+ messageController?: MessageController;
45
+ private _localeCtx;
46
+ private _settingsCtx;
47
+ /** Unsubscribe function returned by MessageRepository.subscribe(). */
48
+ private _subscription?;
49
+ /** Messages for the current session (driven by repository subscription). */
50
+ private _messages;
51
+ /** Whether older messages are available (backward pagination). */
52
+ private _hasMore;
53
+ private _showNewBtn;
54
+ private _userAtBottom;
55
+ /**
56
+ * Follow-invalidation timestamp for auto-scroll.
57
+ *
58
+ * **Behavioral intent**, NOT scroll position. Set ONLY by user input events
59
+ * (wheel, touchstart, pointerdown, keydown) via `_setupFollowInvalidation()`.
60
+ *
61
+ * When `Date.now() < _followInvalidatedUntil`, auto-scroll is suppressed.
62
+ * After 450ms of user inactivity, it self-expires — no "user stopped scrolling"
63
+ * detection needed.
64
+ *
65
+ * This breaks the feedback loop: programmatic scrolls do NOT modify this field,
66
+ * so they cannot re-enable auto-scroll against user intent.
67
+ *
68
+ * Consumed by: `_shouldAutoScroll()` method (computed property).
69
+ */
70
+ private _followInvalidatedUntil;
71
+ private _scrollEl?;
72
+ private _resizeObserver?;
73
+ private _resizeDebounceTimer?;
74
+ /** Document visibility change listener for browser window blur/focus */
75
+ private _documentVisibilityHandler?;
76
+ /** Tracked short-lived timers — cleared in disconnectedCallback to prevent leaks. */
77
+ private _virtualScrollOpTimer?;
78
+ private _highlightTimer?;
79
+ private _scrollToMessageTimer?;
80
+ private _scrollToBottomTimer?;
81
+ /** Virtual scroll instance for efficient rendering */
82
+ private _virtualScroll?;
83
+ /** Flag to prevent ResizeObserver feedback loop during virtual scroll operations */
84
+ private _isVirtualScrollOperation;
85
+ /**
86
+ * Monotonically increasing version counter for scroll debouncing.
87
+ * Each scroll request increments and captures the current value.
88
+ * Before executing, the async scroll checks if its version is still current.
89
+ * A newer request invalidates older ones -- no boolean flag needed.
90
+ */
91
+ private _scrollVersion;
92
+ get messages(): Message[];
93
+ /**
94
+ * Public API: scroll to the bottom of the message list.
95
+ * Called by parent components (e.g., rtc-content-area) when needed.
96
+ */
97
+ scrollToBottom(): void;
98
+ /**
99
+ * Public API: scroll to a specific message by clientId.
100
+ * Called by parent components to navigate to a particular message.
101
+ *
102
+ * Phase 5 (I3): Enhanced with debounce and skeleton awareness.
103
+ * - Debounces rapid successive calls (100ms)
104
+ * - If target is a skeleton placeholder, sync-restores it first
105
+ * - Falls back to DOM query if virtual scroll is not initialized
106
+ */
107
+ scrollToMessage(clientId: string): void;
108
+ private _doScrollToMessage;
109
+ firstUpdated(): void;
110
+ /**
111
+ * Subscribe to MessageRepository for the current session.
112
+ * Called on firstUpdated and when sessionId changes.
113
+ */
114
+ private _subscribeToSession;
115
+ /**
116
+ * Handle messages update from repository subscription.
117
+ * Simplified: just call setItems, which handles all diff logic internally.
118
+ */
119
+ private _handleMessagesUpdate;
120
+ /**
121
+ * Auto-scroll decision point.
122
+ *
123
+ * The component is responsible for its own scrolling. It does not analyze
124
+ * what kind of change happened (growth, shrink, reorder, toolcall merge, etc.).
125
+ * It only asks two questions:
126
+ *
127
+ * 1. **Did messages change?** (`_messages` changed) → if following, scroll to bottom.
128
+ * 2. **Did session change?** (`sessionId` changed) → reset follow intent to true,
129
+ * then scroll to bottom (user expects to see latest messages in a new session).
130
+ *
131
+ * Async content rendering (Markdown, tool call expansion) is handled by
132
+ * ResizeObserver, which scrolls when the inner container size changes.
133
+ *
134
+ * Load-more (prepend) is a special case: preserve scroll position via anchor.
135
+ */
136
+ updated(changed: Map<string, unknown>): void;
137
+ disconnectedCallback(): void;
138
+ /**
139
+ * Tab visibility handler - called by parent component when tab switches.
140
+ *
141
+ * This is the primary mechanism for the visibility state machine:
142
+ * - When Tab becomes active: setVisibility(true) → VISIBLE state
143
+ * - When Tab becomes inactive: setVisibility(false) → HIDDEN state
144
+ *
145
+ * The state machine ensures:
146
+ * - HIDDEN: pauses all skeletonize/restore operations (prevents bug)
147
+ * - VISIBLE: synchronously rebuilds skeleton positions and restores visible skeletons
148
+ *
149
+ * @param visible - Whether the tab is currently visible (active)
150
+ */
151
+ onTabVisibilityChange(visible: boolean): void;
152
+ /**
153
+ * Computed property: whether auto-scroll should fire.
154
+ *
155
+ * Combines geometric state (`_userAtBottom`) with behavioral intent
156
+ * (`_followInvalidatedUntil`). This is NOT a stored field — it's computed
157
+ * on every access, so there's no state to manage and no feedback loop possible.
158
+ *
159
+ * Architecture: mirrors Telegram's `scrolledDown && Date.now() >= streamFollowInvalidatedUntil`.
160
+ */
161
+ private _shouldAutoScroll;
162
+ /**
163
+ * Schedule a scroll-to-bottom after the current render completes.
164
+ *
165
+ * Uses a version counter for clean debouncing:
166
+ * - Each call increments `_scrollVersion`
167
+ * - The async callback captures its version
168
+ * - If version is stale when callback runs, a newer request has superseded it
169
+ *
170
+ * Waits for:
171
+ * 1. `this.updateComplete` -- this component's render is done (new message
172
+ * element is in the DOM)
173
+ * 2. All child message elements' `updateComplete` -- their first render
174
+ * (empty content for async Markdown, complete for sync components)
175
+ *
176
+ * Note: async Markdown rendering (marked + DOMPurify + highlight.js) happens
177
+ * AFTER the child's first `updateComplete` resolves. The ResizeObserver is the
178
+ * safety net that scrolls again when the content actually renders and the inner
179
+ * container size changes.
180
+ */
181
+ private _scheduleScroll;
182
+ private _scrollToBottom;
183
+ /**
184
+ * Set scroll position. _onScroll always processes scroll events normally
185
+ * (geometric state update). After programmatic scroll to bottom, _onScroll
186
+ * calculates distanceFromBottom ≈ 0 and sets _userAtBottom = true — the same
187
+ * value _scrollToBottom() would set. No suppression needed.
188
+ *
189
+ * The virtual scroll's scroll handler may fire, but it has its own guards
190
+ * (1.5s debounce, stability checks, _isVirtualScrollOperation) so this is harmless.
191
+ */
192
+ private _setScrollPositionSilently;
193
+ /**
194
+ * Register user input event listeners to invalidate follow intent.
195
+ *
196
+ * Architecture: mirrors Telegram's `streamFollowInvalidatedUntil` pattern.
197
+ * Any user input (wheel, touchstart, pointerdown, keydown) extends the
198
+ * invalidation timestamp by 450ms. Every auto-scroll check reads
199
+ * `Date.now() < _followInvalidatedUntil` — if the user touched anything
200
+ * in the last 450ms, the follow is skipped.
201
+ *
202
+ * This is the key mechanism that breaks the feedback loop:
203
+ * - User intent is detected from INPUT EVENTS, not scroll position
204
+ * - Programmatic scrolls do NOT fire wheel/touchstart/pointerdown/keydown
205
+ * - Therefore programmatic scrolls cannot re-enable auto-scroll
206
+ */
207
+ private _setupFollowInvalidation;
208
+ private _onScroll;
209
+ /**
210
+ * Handle virtual scroll's onLoadMore callback.
211
+ * Triggers load-more from repository. The actual prepend/append is handled by
212
+ * _handleMessagesUpdate via repository subscription.
213
+ * Returns empty array since we don't prepend/append here.
214
+ *
215
+ * IMPORTANT: For bottom direction, first check if repository has messages
216
+ * after the current window (from viewport slicing). If yes, return them
217
+ * directly from cache instead of going to DB.
218
+ */
219
+ private _handleVirtualScrollLoadMore;
220
+ /**
221
+ * Render a message element for virtual scroll.
222
+ * Toolcall input renders as a card; output renders as a reply with jump.
223
+ */
224
+ private _renderMessageElement;
225
+ /**
226
+ * Update a message element in-place with new data.
227
+ * Preserves DOM state (rendered Markdown) to prevent flicker during streaming.
228
+ * Lit's property setter triggers requestUpdate() → lit-html diffing for efficient updates.
229
+ */
230
+ private _updateMessageElement;
231
+ /**
232
+ * Guard: prevents _onScroll from modifying geometric state (_userAtBottom)
233
+ * during programmatic smooth scroll-to-bottom (initiated by _handleNewBtnClick).
234
+ * Without this, _onScroll fires mid-animation and may cause UI flicker
235
+ * (showNewBtn toggling) as the scroll position passes through non-bottom areas.
236
+ */
237
+ private _scrollingToBottom;
238
+ private _handleNewBtnClick;
239
+ /**
240
+ * Handle toolcall jump: scroll to the input message and highlight it.
241
+ * Triggered by clicking the reply header in rtc-toolcall-reply.
242
+ */
243
+ private _handleToolcallJump;
244
+ render(): import("lit").TemplateResult<1>;
245
+ }
246
+ declare global {
247
+ interface HTMLElementTagNameMap {
248
+ 'rtc-message-list': RtcMessageList;
249
+ }
250
+ }
251
+ //# sourceMappingURL=rtc-message-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-message-list.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAQrC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAC,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,CAAC;AAK1B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,wBAAwB,CAAC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,wBAAwB,CAAC;AAahC,qBAEa,cAAe,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,4BAA4B;IAEzC,iDAAiD;IAEjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,mDAAmD;IAEnD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAItC,OAAO,CAAC,UAAU,CAMhB;IAIF,OAAO,CAAC,YAAY,CAclB;IAIF,sEAAsE;IACtE,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC,4EAA4E;IAE5E,OAAO,CAAC,SAAS,CAAiB;IAElC,kEAAkE;IAElE,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAAQ;IAE7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,uBAAuB,CAAK;IAEpC,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,oBAAoB,CAAC,CAAS;IAEtC,wEAAwE;IACxE,OAAO,CAAC,0BAA0B,CAAC,CAAa;IAEhD,qFAAqF;IACrF,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,oBAAoB,CAAC,CAAS;IAEtC,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAC,CAAgC;IAEvD,oFAAoF;IACpF,OAAO,CAAC,yBAAyB,CAAS;IAE1C;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAK;IAE3B,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED;;;OAGG;IACH,cAAc;IAKd;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQvC,OAAO,CAAC,kBAAkB;IAmB1B,YAAY;IAyHZ;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAuF7B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAiCrC,oBAAoB;IAuBpB;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM7C;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,eAAe;IAYvB;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IAKlC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,SAAS,CAuBf;IAEF;;;;;;;;;OASG;YACW,4BAA4B;IAyF1C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA6E7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,kBAAkB,CAwBxB;IAEF;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAoBzB;IAEF,MAAM;CAqBT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Skeleton screen styles for message placeholders
3
+ *
4
+ * Provides shimmer animation and visual structure for skeleton screens.
5
+ * Imported and applied by rtc-message-list component.
6
+ *
7
+ * Phase 4 (I3 fix): Theme-aware colors using CSS custom properties.
8
+ */
9
+ /**
10
+ * Skeleton screen CSS styles
11
+ */
12
+ export declare const skeletonStyles: import("lit").CSSResult;
13
+ //# sourceMappingURL=rtc-message-list.skeleton-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-message-list.skeleton-styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message-list.skeleton-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,eAAO,MAAM,cAAc,yBAwL1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=rtc-message-list.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-message-list.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message-list.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA2FlB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * RTC Message More Menu Component
3
+ *
4
+ * A context menu that appears when the user clicks the more button on a
5
+ * user message bubble. Provides options: copy, fork, and retry (failed only).
6
+ *
7
+ * Layout:
8
+ * ┌──────────────────┐
9
+ * │ Copy │
10
+ * │ Fork │
11
+ * │ Retry (failed) │
12
+ * ├──────────────────┤
13
+ * │ MM-DD HH:mm │
14
+ * └──────────────────┘
15
+ *
16
+ * @element rtc-message-more-menu
17
+ */
18
+ import { LitElement } from 'lit';
19
+ import type { SyncStatus } from '../../types/index.js';
20
+ export declare class RtcMessageMoreMenu extends LitElement {
21
+ static styles: import("lit").CSSResult;
22
+ private _localeCtx;
23
+ syncStatus: SyncStatus;
24
+ timestamp: number;
25
+ /** Format timestamp to compact format (delegates to shared utility function) */
26
+ private get _formattedTimestamp();
27
+ private _handleSelect;
28
+ render(): import("lit").TemplateResult<1>;
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'rtc-message-more-menu': RtcMessageMoreMenu;
33
+ }
34
+ }
35
+ //# sourceMappingURL=rtc-message-more-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-message-more-menu.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-message-more-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAC,UAAU,EAAY,MAAM,KAAK,CAAC;AAK1C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAMrD,qBAEa,kBAAmB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,0BAoDX;IAIF,OAAO,CAAC,UAAU,CAMhB;IAGF,UAAU,EAAE,UAAU,CAAY;IAGlC,SAAS,SAAK;IAEd,gFAAgF;IAChF,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,CAAC,aAAa;IAUrB,MAAM;CAiBT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,uBAAuB,EAAE,kBAAkB,CAAC;KAC/C;CACJ"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * RTC Message Component
3
+ *
4
+ * Renders a single AI message with timeline dot and Markdown content.
5
+ * Supports thinking, streaming, and success states.
6
+ *
7
+ * Markdown parsing is lazy-loaded (Lit best-practice 7-3).
8
+ *
9
+ * ## Layout model (Timeline layout)
10
+ *
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
+ * └── .timeline-content
16
+ * └── div (rendered-HTML wrapper layer)
17
+ * └── <p>/<h1>/... (block-level elements produced by Markdown rendering)
18
+ *
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
+ *
24
+ * @element rtc-message
25
+ * @csspart dot - The timeline dot
26
+ * @csspart content - The message content area
27
+ */
28
+ import { LitElement } from 'lit';
29
+ import type { Message } from '../../types/index.js';
30
+ import type { StatefulComponent } from '../../utils/message-virtual-scroll.js';
31
+ export declare class RtcMessage extends LitElement implements StatefulComponent {
32
+ static styles: import("lit").CSSResult[];
33
+ private _localeCtx;
34
+ message: Message;
35
+ isLast: boolean;
36
+ /**
37
+ * Safe HTML string produced by processing Markdown through marked + DOMPurify.
38
+ *
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
+ */
44
+ private _renderedHtml;
45
+ /**
46
+ * Collapse state for thinking content.
47
+ *
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.
51
+ */
52
+ private _thinkingExpanded;
53
+ /**
54
+ * Generation counter — ensures stale parse results (from earlier content
55
+ * versions during streaming) never overwrite newer ones. Each call to
56
+ * `_parseMarkdown()` bumps the counter; if the result arrives when the
57
+ * counter has moved on, it is discarded.
58
+ *
59
+ * The marked + dompurify module imports are cached after first load, so
60
+ * subsequent parses only pay for parsing + sanitizing, not network I/O.
61
+ */
62
+ private _parseGeneration;
63
+ private _modulesPromise;
64
+ /**
65
+ * Last parsed content string — used to detect if content actually changed.
66
+ * This prevents unnecessary re-parsing when:
67
+ * 1. Component is restored from skeleton (content unchanged, use cached HTML)
68
+ * 2. Other message fields change (syncStatus, streaming) but content is same
69
+ *
70
+ * Only when content.data changes (streaming updates) do we need to re-parse.
71
+ */
72
+ private _lastParsedContent;
73
+ /**
74
+ * Only re-parse Markdown when message changes.
75
+ *
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
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;
86
+ private _parseMarkdown;
87
+ /**
88
+ * Apply highlight.js syntax highlighting to all <pre><code> blocks from Markdown rendering.
89
+ *
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
96
+ *
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()
101
+ */
102
+ private _highlightCodeBlocks;
103
+ /**
104
+ * Whether the current message is thinking type (content.type === 'thinking').
105
+ * Thinking type messages render as collapsible sections, not direct Markdown display.
106
+ */
107
+ private get _isThinkingContent();
108
+ /**
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.
112
+ */
113
+ private get _isSummaryContent();
114
+ /**
115
+ * Whether the current message is prompt type (content.type === 'prompt').
116
+ * Prompt messages render as special cards, not Markdown.
117
+ */
118
+ private get _isPromptContent();
119
+ private _toggleThinking;
120
+ /**
121
+ * Extract component state for preservation across virtualization.
122
+ * Called by MessageVirtualScroll before destroying the element.
123
+ *
124
+ * Preserved state:
125
+ * - renderedHtml: Cached Markdown HTML (avoids re-parsing on restore)
126
+ * - thinkingExpanded: User's expand/collapse preference for thinking blocks
127
+ */
128
+ getState(): Record<string, unknown>;
129
+ /**
130
+ * Inject cached state after restoring from skeleton placeholder.
131
+ * Called synchronously before first render to avoid flicker.
132
+ *
133
+ * @param state - Previously extracted state from getState()
134
+ */
135
+ setState(state: Record<string, unknown>): void;
136
+ /**
137
+ * On timeline-dot click: copy message content to clipboard
138
+ */
139
+ private _handleDotClick;
140
+ render(): import("lit").TemplateResult<1>;
141
+ /**
142
+ * Render thinking content block (collapsible).
143
+ *
144
+ * Collapsed state: shows header row (chevron + "Thinking process"), content hidden.
145
+ * Expanded state: header row + Markdown content rendered below.
146
+ */
147
+ private _renderThinkingBlock;
148
+ /**
149
+ * Render compression summary block (non-collapsible).
150
+ *
151
+ * Streaming state: shows "Compressing context...".
152
+ * Completed state: shows "Compressed context · released/increased X tokens".
153
+ *
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".
156
+ */
157
+ private _renderSummaryBlock;
158
+ /**
159
+ * Render prompt content block (non-collapsible).
160
+ *
161
+ * Display format:
162
+ * SCENARIOS $title
163
+ * [Prompt preview max-height:3 lines]
164
+ *
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)
172
+ */
173
+ private _renderPromptBlock;
174
+ /**
175
+ * Extract compression statistics from message.content.data.
176
+ *
177
+ * Compatible with two data formats:
178
+ * - New format: SummaryContent { items, metadata }
179
+ * - Old format: SummaryItem[] (no metadata, returns all zeros)
180
+ */
181
+ private _extractSummaryStats;
182
+ /**
183
+ * Format token count using K/B/T units.
184
+ *
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)
191
+ */
192
+ private _formatTokens;
193
+ /**
194
+ * Format duration.
195
+ *
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)
200
+ */
201
+ private _formatDuration;
202
+ }
203
+ declare global {
204
+ interface HTMLElementTagNameMap {
205
+ 'rtc-message': RtcMessage;
206
+ }
207
+ }
208
+ //# sourceMappingURL=rtc-message.d.ts.map
@@ -0,0 +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;;;;;;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"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult[];
2
+ //# sourceMappingURL=rtc-message.styles.d.ts.map
@@ -0,0 +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,2BAmgBlB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * RTC Scroll Container Component
3
+ *
4
+ * A reusable wrapper that provides scroll lock functionality for content areas.
5
+ * Prevents nested scroll conflicts by locking internal scroll by default.
6
+ *
7
+ * Features:
8
+ * - Default locked state with subtle bottom gradient overlay
9
+ * - Click toggle button to unlock scrolling
10
+ * - Smooth transitions between locked/unlocked states
11
+ * - Configurable max-height via CSS variables
12
+ *
13
+ * Usage:
14
+ * ```html
15
+ * <rtc-scroll-container max-height="var(--rtc-content-height-md)">
16
+ * <pre>Long content here...</pre>
17
+ * </rtc-scroll-container>
18
+ * ```
19
+ *
20
+ * @element rtc-scroll-container
21
+ * @slot - Default slot for scrollable content
22
+ * @cssprop --rtc-scroll-max-height-locked - Max height when locked (default: 100px)
23
+ * @cssprop --rtc-scroll-max-height-unlocked - Max height when unlocked (default: 200px)
24
+ */
25
+ import { LitElement } from 'lit';
26
+ export declare class RtcScrollContainer extends LitElement {
27
+ static styles: import("lit").CSSResult;
28
+ /** Initial lock state (default: true = locked) */
29
+ initialLocked: boolean;
30
+ /** Whether content is currently scroll-locked */
31
+ private _scrollLocked;
32
+ constructor();
33
+ /** Toggle scroll lock state */
34
+ private _toggleScrollLock;
35
+ /** Get current lock state (for external access if needed) */
36
+ get isLocked(): boolean;
37
+ render(): import("lit").TemplateResult<1>;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ 'rtc-scroll-container': RtcScrollContainer;
42
+ }
43
+ }
44
+ //# sourceMappingURL=rtc-scroll-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-scroll-container.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-scroll-container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAIrC,qBACa,kBAAmB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,0BAAU;IAEvB,kDAAkD;IAElD,aAAa,UAAQ;IAErB,iDAAiD;IAEjD,OAAO,CAAC,aAAa,CAAQ;;IAO7B,+BAA+B;IAC/B,OAAO,CAAC,iBAAiB;IAIzB,6DAA6D;IAC7D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,MAAM;CAsBT;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,sBAAsB,EAAE,kBAAkB,CAAC;KAC9C;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=rtc-scroll-container.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc-scroll-container.styles.d.ts","sourceRoot":"","sources":["../../../src/components/content-area/rtc-scroll-container.styles.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,MAAM,yBAiFlB,CAAC"}