@rtc-agent/component 0.2.7-rc.2 → 0.2.7-rc.4

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 (394) hide show
  1. package/dist/.generated/locales/en-US.d.ts +220 -0
  2. package/dist/.generated/locales/en-US.d.ts.map +1 -0
  3. package/dist/assets/{shared-worker-DNuUtKfr.js → shared-worker-BQv441O7.js} +123 -123
  4. package/dist/components/activity-bar/rtc-activity-bar.d.ts +65 -0
  5. package/dist/components/activity-bar/rtc-activity-bar.d.ts.map +1 -0
  6. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts +7 -0
  7. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts.map +1 -0
  8. package/dist/components/chat-layout/rtc-chat-layout.d.ts +211 -0
  9. package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -0
  10. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts +11 -0
  11. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts.map +1 -0
  12. package/dist/components/content-area/rtc-content-area.d.ts +34 -0
  13. package/dist/components/content-area/rtc-content-area.d.ts.map +1 -0
  14. package/dist/components/content-area/rtc-content-area.styles.d.ts +2 -0
  15. package/dist/components/content-area/rtc-content-area.styles.d.ts.map +1 -0
  16. package/dist/components/content-area/rtc-error-message.d.ts +82 -0
  17. package/dist/components/content-area/rtc-error-message.d.ts.map +1 -0
  18. package/dist/components/content-area/rtc-message-list.d.ts +251 -0
  19. package/dist/components/content-area/rtc-message-list.d.ts.map +1 -0
  20. package/dist/components/content-area/rtc-message-list.skeleton-styles.d.ts +13 -0
  21. package/dist/components/content-area/rtc-message-list.skeleton-styles.d.ts.map +1 -0
  22. package/dist/components/content-area/rtc-message-list.styles.d.ts +2 -0
  23. package/dist/components/content-area/rtc-message-list.styles.d.ts.map +1 -0
  24. package/dist/components/content-area/rtc-message-more-menu.d.ts +35 -0
  25. package/dist/components/content-area/rtc-message-more-menu.d.ts.map +1 -0
  26. package/dist/components/content-area/rtc-message.d.ts +202 -0
  27. package/dist/components/content-area/rtc-message.d.ts.map +1 -0
  28. package/dist/components/content-area/rtc-message.styles.d.ts +2 -0
  29. package/dist/components/content-area/rtc-message.styles.d.ts.map +1 -0
  30. package/dist/components/content-area/rtc-scroll-container.d.ts +44 -0
  31. package/dist/components/content-area/rtc-scroll-container.d.ts.map +1 -0
  32. package/dist/components/content-area/rtc-scroll-container.styles.d.ts +2 -0
  33. package/dist/components/content-area/rtc-scroll-container.styles.d.ts.map +1 -0
  34. package/dist/components/content-area/rtc-toolcall-card.d.ts +81 -0
  35. package/dist/components/content-area/rtc-toolcall-card.d.ts.map +1 -0
  36. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts +2 -0
  37. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts.map +1 -0
  38. package/dist/components/content-area/rtc-toolcall-reply.d.ts +65 -0
  39. package/dist/components/content-area/rtc-toolcall-reply.d.ts.map +1 -0
  40. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts +2 -0
  41. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts.map +1 -0
  42. package/dist/components/content-area/rtc-user-message.d.ts +116 -0
  43. package/dist/components/content-area/rtc-user-message.d.ts.map +1 -0
  44. package/dist/components/content-area/rtc-user-message.styles.d.ts +22 -0
  45. package/dist/components/content-area/rtc-user-message.styles.d.ts.map +1 -0
  46. package/dist/components/content-area/timeline.styles.d.ts +2 -0
  47. package/dist/components/content-area/timeline.styles.d.ts.map +1 -0
  48. package/dist/components/content-wrapper/rtc-content-wrapper.d.ts +25 -0
  49. package/dist/components/content-wrapper/rtc-content-wrapper.d.ts.map +1 -0
  50. package/dist/components/content-wrapper/rtc-content-wrapper.styles.d.ts +2 -0
  51. package/dist/components/content-wrapper/rtc-content-wrapper.styles.d.ts.map +1 -0
  52. package/dist/components/drawer/rtc-drawer.d.ts +73 -0
  53. package/dist/components/drawer/rtc-drawer.d.ts.map +1 -0
  54. package/dist/components/drawer/rtc-drawer.styles.d.ts +15 -0
  55. package/dist/components/drawer/rtc-drawer.styles.d.ts.map +1 -0
  56. package/dist/components/editor-area/rtc-editor-area.d.ts +119 -0
  57. package/dist/components/editor-area/rtc-editor-area.d.ts.map +1 -0
  58. package/dist/components/editor-area/rtc-editor-area.styles.d.ts +8 -0
  59. package/dist/components/editor-area/rtc-editor-area.styles.d.ts.map +1 -0
  60. package/dist/components/editor-area/rtc-editor-tab.d.ts +84 -0
  61. package/dist/components/editor-area/rtc-editor-tab.d.ts.map +1 -0
  62. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts +8 -0
  63. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts.map +1 -0
  64. package/dist/components/editor-area/rtc-editor-toolbar.d.ts +68 -0
  65. package/dist/components/editor-area/rtc-editor-toolbar.d.ts.map +1 -0
  66. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts +8 -0
  67. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts.map +1 -0
  68. package/dist/components/empty-state/rtc-empty-state.d.ts +24 -0
  69. package/dist/components/empty-state/rtc-empty-state.d.ts.map +1 -0
  70. package/dist/components/empty-state/rtc-empty-state.styles.d.ts +2 -0
  71. package/dist/components/empty-state/rtc-empty-state.styles.d.ts.map +1 -0
  72. package/dist/components/file-explorer/rtc-file-explorer.d.ts +94 -0
  73. package/dist/components/file-explorer/rtc-file-explorer.d.ts.map +1 -0
  74. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts +8 -0
  75. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts.map +1 -0
  76. package/dist/components/file-explorer/rtc-file-tree-item.d.ts +70 -0
  77. package/dist/components/file-explorer/rtc-file-tree-item.d.ts.map +1 -0
  78. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts +8 -0
  79. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts.map +1 -0
  80. package/dist/components/input-area/rtc-input-area.d.ts +167 -0
  81. package/dist/components/input-area/rtc-input-area.d.ts.map +1 -0
  82. package/dist/components/input-area/rtc-input-area.styles.d.ts +2 -0
  83. package/dist/components/input-area/rtc-input-area.styles.d.ts.map +1 -0
  84. package/dist/components/login/rtc-login-dialog.d.ts +54 -0
  85. package/dist/components/login/rtc-login-dialog.d.ts.map +1 -0
  86. package/dist/components/login/rtc-login-dialog.styles.d.ts +2 -0
  87. package/dist/components/login/rtc-login-dialog.styles.d.ts.map +1 -0
  88. package/dist/components/login/rtc-login-page.d.ts +39 -0
  89. package/dist/components/login/rtc-login-page.d.ts.map +1 -0
  90. package/dist/components/login/rtc-login-page.styles.d.ts +2 -0
  91. package/dist/components/login/rtc-login-page.styles.d.ts.map +1 -0
  92. package/dist/components/logo/rtc-logo.d.ts +38 -0
  93. package/dist/components/logo/rtc-logo.d.ts.map +1 -0
  94. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts +87 -0
  95. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts.map +1 -0
  96. package/dist/components/markdown-editor/rtc-markdown-editor.styles.d.ts +2 -0
  97. package/dist/components/markdown-editor/rtc-markdown-editor.styles.d.ts.map +1 -0
  98. package/dist/components/notice-bar/rtc-notice-bar.d.ts +23 -0
  99. package/dist/components/notice-bar/rtc-notice-bar.d.ts.map +1 -0
  100. package/dist/components/notice-bar/rtc-notice-bar.styles.d.ts +2 -0
  101. package/dist/components/notice-bar/rtc-notice-bar.styles.d.ts.map +1 -0
  102. package/dist/components/overlay/rtc-ask-user.d.ts +91 -0
  103. package/dist/components/overlay/rtc-ask-user.d.ts.map +1 -0
  104. package/dist/components/overlay/rtc-ask-user.styles.d.ts +11 -0
  105. package/dist/components/overlay/rtc-ask-user.styles.d.ts.map +1 -0
  106. package/dist/components/overlay/rtc-command-panel.d.ts +44 -0
  107. package/dist/components/overlay/rtc-command-panel.d.ts.map +1 -0
  108. package/dist/components/overlay/rtc-command-panel.styles.d.ts +2 -0
  109. package/dist/components/overlay/rtc-command-panel.styles.d.ts.map +1 -0
  110. package/dist/components/overlay/rtc-mode-panel.d.ts +30 -0
  111. package/dist/components/overlay/rtc-mode-panel.d.ts.map +1 -0
  112. package/dist/components/overlay/rtc-mode-panel.styles.d.ts +2 -0
  113. package/dist/components/overlay/rtc-mode-panel.styles.d.ts.map +1 -0
  114. package/dist/components/overlay/rtc-overlay-manager.d.ts +30 -0
  115. package/dist/components/overlay/rtc-overlay-manager.d.ts.map +1 -0
  116. package/dist/components/overlay/rtc-overlay-manager.styles.d.ts +2 -0
  117. package/dist/components/overlay/rtc-overlay-manager.styles.d.ts.map +1 -0
  118. package/dist/components/overlay/rtc-restore-confirm.d.ts +37 -0
  119. package/dist/components/overlay/rtc-restore-confirm.d.ts.map +1 -0
  120. package/dist/components/overlay/rtc-restore-confirm.styles.d.ts +2 -0
  121. package/dist/components/overlay/rtc-restore-confirm.styles.d.ts.map +1 -0
  122. package/dist/components/overlay/rtc-scenario-panel.d.ts +33 -0
  123. package/dist/components/overlay/rtc-scenario-panel.d.ts.map +1 -0
  124. package/dist/components/overlay/rtc-scenario-panel.styles.d.ts +2 -0
  125. package/dist/components/overlay/rtc-scenario-panel.styles.d.ts.map +1 -0
  126. package/dist/components/overlay/rtc-session-panel.d.ts +39 -0
  127. package/dist/components/overlay/rtc-session-panel.d.ts.map +1 -0
  128. package/dist/components/overlay/rtc-session-panel.styles.d.ts +2 -0
  129. package/dist/components/overlay/rtc-session-panel.styles.d.ts.map +1 -0
  130. package/dist/components/overlay/rtc-toast.d.ts +51 -0
  131. package/dist/components/overlay/rtc-toast.d.ts.map +1 -0
  132. package/dist/components/overlay/rtc-todo-panel.d.ts +23 -0
  133. package/dist/components/overlay/rtc-todo-panel.d.ts.map +1 -0
  134. package/dist/components/overlay/rtc-todo-panel.styles.d.ts +2 -0
  135. package/dist/components/overlay/rtc-todo-panel.styles.d.ts.map +1 -0
  136. package/dist/components/overlay/rtc-tool-confirm.d.ts +30 -0
  137. package/dist/components/overlay/rtc-tool-confirm.d.ts.map +1 -0
  138. package/dist/components/overlay/rtc-tool-confirm.styles.d.ts +2 -0
  139. package/dist/components/overlay/rtc-tool-confirm.styles.d.ts.map +1 -0
  140. package/dist/components/rtc-agent/helpers/bus-handler.d.ts +79 -0
  141. package/dist/components/rtc-agent/helpers/bus-handler.d.ts.map +1 -0
  142. package/dist/components/rtc-agent/helpers/command-handler.d.ts +17 -0
  143. package/dist/components/rtc-agent/helpers/command-handler.d.ts.map +1 -0
  144. package/dist/components/rtc-agent/helpers/connection-setup.d.ts +92 -0
  145. package/dist/components/rtc-agent/helpers/connection-setup.d.ts.map +1 -0
  146. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts +51 -0
  147. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts.map +1 -0
  148. package/dist/components/rtc-agent/helpers/session-loader.d.ts +67 -0
  149. package/dist/components/rtc-agent/helpers/session-loader.d.ts.map +1 -0
  150. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts +136 -0
  151. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts.map +1 -0
  152. package/dist/components/rtc-agent/rtc-agent.d.ts +702 -0
  153. package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -0
  154. package/dist/components/rtc-agent/rtc-agent.styles.d.ts +16 -0
  155. package/dist/components/rtc-agent/rtc-agent.styles.d.ts.map +1 -0
  156. package/dist/components/session-header/rtc-session-header.d.ts +77 -0
  157. package/dist/components/session-header/rtc-session-header.d.ts.map +1 -0
  158. package/dist/components/session-header/rtc-session-header.styles.d.ts +2 -0
  159. package/dist/components/session-header/rtc-session-header.styles.d.ts.map +1 -0
  160. package/dist/components/session-tree/rtc-session-tab-bar.d.ts +43 -0
  161. package/dist/components/session-tree/rtc-session-tab-bar.d.ts.map +1 -0
  162. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts +10 -0
  163. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts.map +1 -0
  164. package/dist/components/session-tree/rtc-session-tab.d.ts +33 -0
  165. package/dist/components/session-tree/rtc-session-tab.d.ts.map +1 -0
  166. package/dist/components/session-tree/rtc-session-tab.styles.d.ts +11 -0
  167. package/dist/components/session-tree/rtc-session-tab.styles.d.ts.map +1 -0
  168. package/dist/components/session-tree/rtc-session-tree-item.d.ts +42 -0
  169. package/dist/components/session-tree/rtc-session-tree-item.d.ts.map +1 -0
  170. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts +11 -0
  171. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts.map +1 -0
  172. package/dist/components/session-tree/rtc-session-tree.d.ts +71 -0
  173. package/dist/components/session-tree/rtc-session-tree.d.ts.map +1 -0
  174. package/dist/components/session-tree/rtc-session-tree.styles.d.ts +10 -0
  175. package/dist/components/session-tree/rtc-session-tree.styles.d.ts.map +1 -0
  176. package/dist/components/settings/rtc-settings-panel.d.ts +27 -0
  177. package/dist/components/settings/rtc-settings-panel.d.ts.map +1 -0
  178. package/dist/components/settings/rtc-settings-panel.styles.d.ts +8 -0
  179. package/dist/components/settings/rtc-settings-panel.styles.d.ts.map +1 -0
  180. package/dist/components/settings-layout/rtc-settings-layout.d.ts +74 -0
  181. package/dist/components/settings-layout/rtc-settings-layout.d.ts.map +1 -0
  182. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts +8 -0
  183. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts.map +1 -0
  184. package/dist/components/settings-layout/rtc-settings-nav.d.ts +62 -0
  185. package/dist/components/settings-layout/rtc-settings-nav.d.ts.map +1 -0
  186. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts +7 -0
  187. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts.map +1 -0
  188. package/dist/components/status-bar/rtc-status-bar.d.ts +39 -0
  189. package/dist/components/status-bar/rtc-status-bar.d.ts.map +1 -0
  190. package/dist/components/status-bar/rtc-status-bar.styles.d.ts +11 -0
  191. package/dist/components/status-bar/rtc-status-bar.styles.d.ts.map +1 -0
  192. package/dist/components/title-bar/rtc-title-bar.d.ts +46 -0
  193. package/dist/components/title-bar/rtc-title-bar.d.ts.map +1 -0
  194. package/dist/components/title-bar/rtc-title-bar.styles.d.ts +2 -0
  195. package/dist/components/title-bar/rtc-title-bar.styles.d.ts.map +1 -0
  196. package/dist/components/token-usage/rtc-token-usage.d.ts +60 -0
  197. package/dist/components/token-usage/rtc-token-usage.d.ts.map +1 -0
  198. package/dist/config/auth.d.ts +52 -0
  199. package/dist/config/auth.d.ts.map +1 -0
  200. package/dist/contexts/activity.d.ts +42 -0
  201. package/dist/contexts/activity.d.ts.map +1 -0
  202. package/dist/contexts/auth.d.ts +28 -0
  203. package/dist/contexts/auth.d.ts.map +1 -0
  204. package/dist/contexts/editor.d.ts +43 -0
  205. package/dist/contexts/editor.d.ts.map +1 -0
  206. package/dist/contexts/file-explorer.d.ts +48 -0
  207. package/dist/contexts/file-explorer.d.ts.map +1 -0
  208. package/dist/contexts/logo.d.ts +21 -0
  209. package/dist/contexts/logo.d.ts.map +1 -0
  210. package/dist/contexts/message.d.ts +22 -0
  211. package/dist/contexts/message.d.ts.map +1 -0
  212. package/dist/contexts/mode.d.ts +18 -0
  213. package/dist/contexts/mode.d.ts.map +1 -0
  214. package/dist/contexts/notification.d.ts +21 -0
  215. package/dist/contexts/notification.d.ts.map +1 -0
  216. package/dist/contexts/session-tab.d.ts +10 -0
  217. package/dist/contexts/session-tab.d.ts.map +1 -0
  218. package/dist/contexts/session-tree.d.ts +10 -0
  219. package/dist/contexts/session-tree.d.ts.map +1 -0
  220. package/dist/contexts/session.d.ts +16 -0
  221. package/dist/contexts/session.d.ts.map +1 -0
  222. package/dist/contexts/settings.d.ts +40 -0
  223. package/dist/contexts/settings.d.ts.map +1 -0
  224. package/dist/contexts/skill.d.ts +27 -0
  225. package/dist/contexts/skill.d.ts.map +1 -0
  226. package/dist/contexts/tool-call.d.ts +16 -0
  227. package/dist/contexts/tool-call.d.ts.map +1 -0
  228. package/dist/contexts/turn-count.d.ts +23 -0
  229. package/dist/contexts/turn-count.d.ts.map +1 -0
  230. package/dist/contexts/window-state.d.ts +20 -0
  231. package/dist/contexts/window-state.d.ts.map +1 -0
  232. package/dist/controllers/activity.controller.d.ts +45 -0
  233. package/dist/controllers/activity.controller.d.ts.map +1 -0
  234. package/dist/controllers/auth.controller.d.ts +202 -0
  235. package/dist/controllers/auth.controller.d.ts.map +1 -0
  236. package/dist/controllers/editor-area.controller.d.ts +119 -0
  237. package/dist/controllers/editor-area.controller.d.ts.map +1 -0
  238. package/dist/controllers/editor.controller.d.ts +29 -0
  239. package/dist/controllers/editor.controller.d.ts.map +1 -0
  240. package/dist/controllers/file-explorer.controller.d.ts +42 -0
  241. package/dist/controllers/file-explorer.controller.d.ts.map +1 -0
  242. package/dist/controllers/fork.controller.d.ts +63 -0
  243. package/dist/controllers/fork.controller.d.ts.map +1 -0
  244. package/dist/controllers/message.controller.d.ts +182 -0
  245. package/dist/controllers/message.controller.d.ts.map +1 -0
  246. package/dist/controllers/mode.controller.d.ts +26 -0
  247. package/dist/controllers/mode.controller.d.ts.map +1 -0
  248. package/dist/controllers/notification.controller.d.ts +101 -0
  249. package/dist/controllers/notification.controller.d.ts.map +1 -0
  250. package/dist/controllers/persistence.controller.d.ts +128 -0
  251. package/dist/controllers/persistence.controller.d.ts.map +1 -0
  252. package/dist/controllers/session-tab.controller.d.ts +82 -0
  253. package/dist/controllers/session-tab.controller.d.ts.map +1 -0
  254. package/dist/controllers/session-tree.controller.d.ts +44 -0
  255. package/dist/controllers/session-tree.controller.d.ts.map +1 -0
  256. package/dist/controllers/session.controller.d.ts +58 -0
  257. package/dist/controllers/session.controller.d.ts.map +1 -0
  258. package/dist/controllers/settings.controller.d.ts +46 -0
  259. package/dist/controllers/settings.controller.d.ts.map +1 -0
  260. package/dist/controllers/skill.controller.d.ts +81 -0
  261. package/dist/controllers/skill.controller.d.ts.map +1 -0
  262. package/dist/controllers/status-bar.controller.d.ts +32 -0
  263. package/dist/controllers/status-bar.controller.d.ts.map +1 -0
  264. package/dist/controllers/toast.controller.d.ts +29 -0
  265. package/dist/controllers/toast.controller.d.ts.map +1 -0
  266. package/dist/controllers/tool-call.controller.d.ts +38 -0
  267. package/dist/controllers/tool-call.controller.d.ts.map +1 -0
  268. package/dist/controllers/window-interaction.controller.d.ts +128 -0
  269. package/dist/controllers/window-interaction.controller.d.ts.map +1 -0
  270. package/dist/controllers/window-state.controller.d.ts +79 -0
  271. package/dist/controllers/window-state.controller.d.ts.map +1 -0
  272. package/dist/core/builtin-system-group.d.ts +66 -0
  273. package/dist/core/builtin-system-group.d.ts.map +1 -0
  274. package/dist/core/event-bus.d.ts +133 -0
  275. package/dist/core/event-bus.d.ts.map +1 -0
  276. package/dist/core/function-registry.d.ts +185 -0
  277. package/dist/core/function-registry.d.ts.map +1 -0
  278. package/dist/core/i18n.d.ts +25 -0
  279. package/dist/core/i18n.d.ts.map +1 -0
  280. package/dist/core/locale-controller.d.ts +25 -0
  281. package/dist/core/locale-controller.d.ts.map +1 -0
  282. package/dist/core/markdown-generator.d.ts +36 -0
  283. package/dist/core/markdown-generator.d.ts.map +1 -0
  284. package/dist/core/ready.d.ts +33 -0
  285. package/dist/core/ready.d.ts.map +1 -0
  286. package/dist/core/scenario-loader.d.ts +56 -0
  287. package/dist/core/scenario-loader.d.ts.map +1 -0
  288. package/dist/core/theme.d.ts +29 -0
  289. package/dist/core/theme.d.ts.map +1 -0
  290. package/dist/debug-api-core.d.ts +9 -0
  291. package/dist/debug-api-core.d.ts.map +1 -0
  292. package/dist/debug-api-ext.d.ts +16 -0
  293. package/dist/debug-api-ext.d.ts.map +1 -0
  294. package/dist/debug-api-helpers.d.ts +28 -0
  295. package/dist/debug-api-helpers.d.ts.map +1 -0
  296. package/dist/debug-api-types.d.ts +206 -0
  297. package/dist/debug-api-types.d.ts.map +1 -0
  298. package/dist/debug-api.d.ts +10 -0
  299. package/dist/debug-api.d.ts.map +1 -0
  300. package/dist/elements.d.ts +26 -0
  301. package/dist/elements.d.ts.map +1 -0
  302. package/dist/{en-US-D9MCEBlx.js → en-US-BK61Z8gy.js} +1 -1
  303. package/dist/factory.d.ts +68 -0
  304. package/dist/factory.d.ts.map +1 -0
  305. package/dist/{highlight-languages-SPQPngyT.js → highlight-languages-8EK0uwTA.js} +1 -1
  306. package/dist/icons/icons.d.ts +93 -0
  307. package/dist/icons/icons.d.ts.map +1 -0
  308. package/dist/icons/index.d.ts +8 -0
  309. package/dist/icons/index.d.ts.map +1 -0
  310. package/dist/icons/logo.d.ts +15 -0
  311. package/dist/icons/logo.d.ts.map +1 -0
  312. package/dist/{index-Gwj3eoed.js → index-Bd4j91y1.js} +11173 -11102
  313. package/dist/index.d.ts +114 -0
  314. package/dist/index.d.ts.map +1 -0
  315. package/dist/index.js +1 -1
  316. package/dist/index.umd.js +476 -464
  317. package/dist/locales/en-US.d.ts +4 -0
  318. package/dist/locales/en-US.d.ts.map +1 -0
  319. package/dist/main.d.ts +17 -0
  320. package/dist/main.d.ts.map +1 -0
  321. package/dist/master-lock.d.ts +72 -0
  322. package/dist/master-lock.d.ts.map +1 -0
  323. package/dist/registry.d.ts +2 -0
  324. package/dist/registry.d.ts.map +1 -0
  325. package/dist/repositories/index.d.ts +8 -0
  326. package/dist/repositories/index.d.ts.map +1 -0
  327. package/dist/repositories/message.repository.d.ts +182 -0
  328. package/dist/repositories/message.repository.d.ts.map +1 -0
  329. package/dist/stats.html +1 -1
  330. package/dist/storage.d.ts +11 -0
  331. package/dist/storage.d.ts.map +1 -0
  332. package/dist/styles/base.d.ts +8 -0
  333. package/dist/styles/base.d.ts.map +1 -0
  334. package/dist/styles/index.d.ts +5 -0
  335. package/dist/styles/index.d.ts.map +1 -0
  336. package/dist/styles/themes/dark.d.ts +2 -0
  337. package/dist/styles/themes/dark.d.ts.map +1 -0
  338. package/dist/styles/themes/light.d.ts +2 -0
  339. package/dist/styles/themes/light.d.ts.map +1 -0
  340. package/dist/styles/tokens.d.ts +22 -0
  341. package/dist/styles/tokens.d.ts.map +1 -0
  342. package/dist/types/activity-bar-config.d.ts +38 -0
  343. package/dist/types/activity-bar-config.d.ts.map +1 -0
  344. package/dist/types/agent-config.d.ts +61 -0
  345. package/dist/types/agent-config.d.ts.map +1 -0
  346. package/dist/types/events.d.ts +56 -0
  347. package/dist/types/events.d.ts.map +1 -0
  348. package/dist/types/factory.d.ts +602 -0
  349. package/dist/types/factory.d.ts.map +1 -0
  350. package/dist/types/index.d.ts +391 -0
  351. package/dist/types/index.d.ts.map +1 -0
  352. package/dist/types/skill.d.ts +195 -0
  353. package/dist/types/skill.d.ts.map +1 -0
  354. package/dist/types/window-config.d.ts +122 -0
  355. package/dist/types/window-config.d.ts.map +1 -0
  356. package/dist/utils/clipboard.d.ts +14 -0
  357. package/dist/utils/clipboard.d.ts.map +1 -0
  358. package/dist/utils/command-parser.d.ts +33 -0
  359. package/dist/utils/command-parser.d.ts.map +1 -0
  360. package/dist/utils/content-data.d.ts +113 -0
  361. package/dist/utils/content-data.d.ts.map +1 -0
  362. package/dist/utils/custom-scrollbar.d.ts +41 -0
  363. package/dist/utils/custom-scrollbar.d.ts.map +1 -0
  364. package/dist/utils/device.d.ts +22 -0
  365. package/dist/utils/device.d.ts.map +1 -0
  366. package/dist/utils/floating-panel-controller.d.ts +52 -0
  367. package/dist/utils/floating-panel-controller.d.ts.map +1 -0
  368. package/dist/utils/format.d.ts +27 -0
  369. package/dist/utils/format.d.ts.map +1 -0
  370. package/dist/utils/highlight-languages.d.ts +9 -0
  371. package/dist/utils/highlight-languages.d.ts.map +1 -0
  372. package/dist/utils/message-skeleton.d.ts +39 -0
  373. package/dist/utils/message-skeleton.d.ts.map +1 -0
  374. package/dist/utils/message-virtual-scroll.d.ts +595 -0
  375. package/dist/utils/message-virtual-scroll.d.ts.map +1 -0
  376. package/dist/utils/relative-time.d.ts +14 -0
  377. package/dist/utils/relative-time.d.ts.map +1 -0
  378. package/dist/utils/scroll-saver.d.ts +34 -0
  379. package/dist/utils/scroll-saver.d.ts.map +1 -0
  380. package/dist/utils/skeleton-tracker.d.ts +144 -0
  381. package/dist/utils/skeleton-tracker.d.ts.map +1 -0
  382. package/dist/utils/visibility-manager.d.ts +103 -0
  383. package/dist/utils/visibility-manager.d.ts.map +1 -0
  384. package/dist/utils.d.ts +5 -0
  385. package/dist/utils.d.ts.map +1 -0
  386. package/dist/validation/index.d.ts +53 -0
  387. package/dist/validation/index.d.ts.map +1 -0
  388. package/dist/validation/openapi-to-zod.d.ts +15 -0
  389. package/dist/validation/openapi-to-zod.d.ts.map +1 -0
  390. package/dist/validation/zod-to-openapi.d.ts +56 -0
  391. package/dist/validation/zod-to-openapi.d.ts.map +1 -0
  392. package/dist/worker-bridge.d.ts +141 -0
  393. package/dist/worker-bridge.d.ts.map +1 -0
  394. package/package.json +6 -6
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Message Controller
3
+ *
4
+ * Encapsulates message list management: send, streaming append, finalize, clear.
5
+ * Dispatches `rtc-message-sent` event for external consumers.
6
+ *
7
+ * Cross-controller note: When the session switches, the root component calls
8
+ * `reload()` on this controller to load the message history for the new session.
9
+ *
10
+ * Corresponds to: `messageContext` (defined in `contexts/message.ts`).
11
+ * Provided by: `<rtc-agent>` (root)
12
+ * Consumed by: `<rtc-content-area>`, `<rtc-message-list>`, `<rtc-input-area>`
13
+ */
14
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
15
+ import type { MessageActions } from '../types/index.js';
16
+ import type { MessageContextValue } from '../contexts/message.js';
17
+ import type { PersistenceLayer } from '@rtc-agent/persistence';
18
+ import type { SessionController } from './session.controller.js';
19
+ import { MessageRepository } from '../repositories/index.js';
20
+ export declare class MessageController implements ReactiveController {
21
+ host: ReactiveControllerHost & EventTarget;
22
+ /** Message repository for multi-session support. */
23
+ private _repository?;
24
+ /** Persistence layer — injected by root component after construction. */
25
+ private _persistence?;
26
+ /** Session controller — injected by root component after construction. */
27
+ private _sessionController?;
28
+ /**
29
+ * Per-session promise chain to serialize updateMessageFromBus calls.
30
+ * Prevents race condition when multiple messages arrive concurrently from UIUpdateBus.
31
+ * Key: sessionClientId, Value: pending promise chain for that session.
32
+ */
33
+ private _sessionUpdateChains;
34
+ readonly actions: MessageActions;
35
+ /** Setter for persistence injection (avoids circular deps). */
36
+ set persistence(layer: PersistenceLayer);
37
+ /**
38
+ * Build pagination cursor from a message.
39
+ * Format: "${timestamp}|${clientId}" for (created_at, client_id) composite sorting.
40
+ */
41
+ private _buildCursor;
42
+ /**
43
+ * Build pagination cursor from a UI Message.
44
+ *
45
+ * UI Message.timestamp = new Date(created_at).getTime(), which is the same
46
+ * numeric value that _buildCursor produces from LocalMessage.created_at.
47
+ * So "${msg.timestamp}|${msg.clientId}" produces an identical cursor string.
48
+ */
49
+ private _buildCursorFromUI;
50
+ /** Get the message repository for multi-session support. */
51
+ get repository(): MessageRepository;
52
+ /** Setter for session controller injection (avoids circular deps). */
53
+ set sessionController(controller: SessionController);
54
+ get value(): MessageContextValue;
55
+ constructor(host: ReactiveControllerHost & EventTarget);
56
+ hostConnected(): void;
57
+ hostDisconnected(): void;
58
+ /**
59
+ * Add a mock assistant message (demo page only).
60
+ *
61
+ * **Note**: This method is NOT part of `MessageActions` and is not exposed
62
+ * via Context. In a real environment, assistant messages are injected by the
63
+ * protocol layer via `sendMessage` or a dedicated method.
64
+ */
65
+ addDemoAssistantMessage(content: string): void;
66
+ /**
67
+ * Fetch initial messages for a session (if repository doesn't have data yet).
68
+ * Called by rtc-message-list in willUpdate.
69
+ */
70
+ fetchInitialMessages(sessionId: string): Promise<void>;
71
+ /**
72
+ * Load more messages for a specific session (backward pagination).
73
+ * Called by rtc-message-list when user scrolls to top.
74
+ */
75
+ loadMoreForSession(sessionId: string): Promise<void>;
76
+ /**
77
+ * Load newer messages for a session (forward pagination).
78
+ * Called by rtc-message-list when virtual scroll needs to load newer messages.
79
+ */
80
+ loadNewerForSession(sessionId: string): Promise<void>;
81
+ /**
82
+ * Evict a session from the repository cache.
83
+ * Called when a tab is closed to free memory.
84
+ */
85
+ evictSession(sessionId: string): void;
86
+ /**
87
+ * Update a single message field from UIUpdateBus event.
88
+ * More efficient than reload() for streaming updates.
89
+ *
90
+ * Handles both existing messages (patch) and new messages (append).
91
+ *
92
+ * Uses per-session promise chain to serialize updates and prevent race conditions
93
+ * when multiple messages arrive concurrently from UIUpdateBus.
94
+ *
95
+ * @param entityId - Message client ID
96
+ */
97
+ updateMessageFromBus(entityId: string): Promise<void>;
98
+ /**
99
+ * Apply a single UIUpdateBus update to repository and legacy state.
100
+ * Called within the per-session promise chain to ensure serialization.
101
+ */
102
+ private _applyBusUpdate;
103
+ /**
104
+ * Reload messages from persistence. Public method for UIUpdateBus / root wiring.
105
+ *
106
+ * - With entityId: immutable single-message update (replace matching clientId).
107
+ * - Without entityId: full reload for the current session (from SessionController).
108
+ */
109
+ reload(entityId?: string): Promise<void>;
110
+ /**
111
+ * Upsert a single message into the repository.
112
+ *
113
+ * Shared by `reload(entityId)` and `_applyBusUpdate()` to eliminate duplication.
114
+ * Uses explicit clientId check + sorted insert to prevent duplicates and ensure correct ordering.
115
+ *
116
+ * Why not use sort()?
117
+ * - sort() relies on timestamp values, which may be inconsistent between client and server
118
+ * - Direct insertion at correct position maintains order incrementally
119
+ * - Prevents order flips that cause VirtualScroll diff to miscalculate prepend/append
120
+ */
121
+ private _upsertMessage;
122
+ /**
123
+ * Compare two messages for sorting by (timestamp, role, clientId) composite key.
124
+ *
125
+ * Sorting priority:
126
+ * 1. timestamp (ascending) - primary sort by creation time
127
+ * 2. role priority (system < user < assistant) - ensures prompt messages appear before user messages
128
+ * when timestamps are equal or very close
129
+ * 3. clientId (ascending) - final tiebreaker for deterministic ordering
130
+ *
131
+ * This matches the persistence layer (entity-repository.ts) and _mergeMessages() logic,
132
+ * with added role priority to handle the common case of prompt+user message pairs.
133
+ */
134
+ private _compareMessages;
135
+ private _sendMessage;
136
+ /**
137
+ * Re-send a failed message (preserves original client_id for idempotent retry).
138
+ */
139
+ private _resendMessage;
140
+ /**
141
+ * Fork a conversation: create a new session based on an existing message.
142
+ *
143
+ * Note: After forking, setCurrentSession must be called to add the new
144
+ * session to the sessions list, otherwise _ensureTabForSession cannot
145
+ * immediately locate the session to fetch its real title.
146
+ */
147
+ private _forkSession;
148
+ private _reloadFromDB;
149
+ /**
150
+ * Merge existing messages with freshly fetched messages.
151
+ *
152
+ * Strategy: Pure clientId deduplication.
153
+ * - Put existing first, then overwrite with fresh for same clientId (fresh is newer version)
154
+ * - Sort by (timestamp, clientId) composite key, matching persistence layer sorting
155
+ *
156
+ * Why not timestamp-based partitioning?
157
+ * - Timestamps are not unique (multiple messages can be created in the same millisecond)
158
+ * - clientId is the unique business identifier, deduplication by it is unambiguous
159
+ */
160
+ private _mergeMessages;
161
+ /**
162
+ * Get user message history for the current session (used for up/down arrow navigation in input).
163
+ *
164
+ * Returns an array of plain text content in reverse chronological order (newest first).
165
+ * Queried via PersistenceLayer.
166
+ */
167
+ getUserMessageHistory(sessionId: string, limit?: number): Promise<string[]>;
168
+ /**
169
+ * Extract plain text from a message's content field.
170
+ *
171
+ * Content storage formats:
172
+ * - Current format (post-fix): full ContentData JSON, e.g. '{"type":"user_message","data":{"text":"..."}}'
173
+ * - Legacy format (historical data): plain text string or object with data only, e.g. '{"text":"..."}'
174
+ * - Plain text: returned as-is
175
+ */
176
+ private _extractTextFromContent;
177
+ private _localMessageToUI;
178
+ private _appendToLastMessage;
179
+ private _finalizeLastMessage;
180
+ private _clearMessages;
181
+ }
182
+ //# sourceMappingURL=message.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/message.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAAwB,cAAc,EAA2B,MAAM,mBAAmB,CAAC;AACvG,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAC,gBAAgB,EAAe,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAC,iBAAiB,EAAoB,MAAM,0BAA0B,CAAC;AAK9E,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,IAAI,EAAE,sBAAsB,GAAG,WAAW,CAAC;IAE3C,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAC,CAAoB;IAExC,yEAAyE;IACzE,OAAO,CAAC,YAAY,CAAC,CAAmB;IAExC,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAE/C;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAAoC;IAEhE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,+DAA+D;IAC/D,IAAI,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAmCtC;IAED;;;OAGG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAI1B,4DAA4D;IAC5D,IAAI,UAAU,IAAI,iBAAiB,CAKlC;IAED,sEAAsE;IACtE,IAAI,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,EAElD;IAED,IAAI,KAAK,IAAI,mBAAmB,CAoB/B;gBAEW,IAAI,EAAE,sBAAsB,GAAG,WAAW;IAgBtD,aAAa;IACb,gBAAgB;IAOhB;;;;;;OAMG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM;IAkBvC;;;OAGG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D;;;OAGG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;;;;;;;OAUG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC3D;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM;IAsB9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IA2BtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;YAgBV,YAAY;IAkE1B;;OAEG;YACW,cAAc;IAiC5B;;;;;;OAMG;YACW,YAAY;YAoDZ,aAAa;IA6F3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;OAKG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9E;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,cAAc;CAgBzB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Mode Controller
3
+ *
4
+ * Encapsulates AI working mode state. Supports 5 modes:
5
+ * manual, edit, plan, auto, bypass.
6
+ *
7
+ * Corresponds to: `modeContext` (defined in `contexts/mode.ts`).
8
+ * Provided by: `<rtc-agent>` (root)
9
+ * Consumed by: `<rtc-input-area>`, `<rtc-mode-panel>`
10
+ */
11
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
12
+ import type { ModeActions } from '../types/index.js';
13
+ import type { ModeContextValue } from '../contexts/mode.js';
14
+ export declare class ModeController implements ReactiveController {
15
+ host: ReactiveControllerHost;
16
+ private _state;
17
+ readonly actions: ModeActions;
18
+ get value(): ModeContextValue;
19
+ constructor(host: ReactiveControllerHost);
20
+ hostConnected(): void;
21
+ hostDisconnected(): void;
22
+ /** Restore mode from localStorage */
23
+ private _restoreMode;
24
+ private _setMode;
25
+ }
26
+ //# sourceMappingURL=mode.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/mode.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAAkB,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAc1D,qBAAa,cAAe,YAAW,kBAAkB;IACrD,IAAI,EAAE,sBAAsB,CAAC;IAE7B,OAAO,CAAC,MAAM,CAAsC;IAEpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,IAAI,KAAK,IAAI,gBAAgB,CAE5B;gBAEW,IAAI,EAAE,sBAAsB;IAWxC,aAAa;IACb,gBAAgB;IAEhB,qCAAqC;IACrC,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,QAAQ;CAYnB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Notification Controller
3
+ *
4
+ * 轻量级通知系统:监听 UIUpdateBus 的新消息事件,根据焦点检测逻辑
5
+ * 触发声音提示、Toast 通知和最小化图标动画。
6
+ *
7
+ * 架构:
8
+ * - 订阅 UIUpdateBus 的 'message' 事件(按 entity 过滤)
9
+ * - 通过 PersistenceLayer 查询消息所属 session
10
+ * - 焦点检测:当前 session 收到消息不通知,其他 session 才通知
11
+ * - 通知展示:正常模式 → Toast,最小化模式 → 图标动画
12
+ *
13
+ * Corresponds to: `NotificationContext` (defined in `contexts/notification.ts`).
14
+ * Provided by: `<rtc-agent>` (root)
15
+ * Consumed by: 需要感知未读通知的组件
16
+ */
17
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
18
+ import type { NotificationContextValue, NotificationActions } from '../contexts/notification.js';
19
+ import type { SessionController } from './session.controller.js';
20
+ import type { MessageController } from './message.controller.js';
21
+ import type { ToastController } from './toast.controller.js';
22
+ import type { SettingsController } from './settings.controller.js';
23
+ import type { WindowStateController } from './window-state.controller.js';
24
+ import type { PersistenceLayer } from '@rtc-agent/persistence';
25
+ export declare class NotificationController implements ReactiveController {
26
+ host: ReactiveControllerHost & HTMLElement;
27
+ sessionController?: SessionController;
28
+ messageController?: MessageController;
29
+ toastController?: ToastController;
30
+ windowStateController?: WindowStateController;
31
+ settingsController?: SettingsController;
32
+ persistence?: PersistenceLayer;
33
+ private _state;
34
+ readonly actions: NotificationActions;
35
+ get value(): NotificationContextValue;
36
+ private _busUnsubscribe?;
37
+ private _sounds;
38
+ /** 延迟加载音效的定时器(非关键音效,组件卸载时需清理) */
39
+ private _deferredSoundTimer?;
40
+ /** requestIdleCallback 返回的句柄,hostDisconnected 时用于取消尚未触发的 idle 回调。 */
41
+ private _idleCallbackId?;
42
+ /** 通知节流:防止快速连续通知导致 UI 卡顿 */
43
+ private _lastNotifyTime;
44
+ private static readonly NOTIFY_THROTTLE_MS;
45
+ /** Fallback delay (ms) when `requestIdleCallback` is available but hasn't fired yet. */
46
+ private static readonly IDLE_FALLBACK_DELAY_MS;
47
+ /** Delay (ms) for deferred sound loading when `requestIdleCallback` is not available. */
48
+ private static readonly DEFERRED_SOUND_DELAY_MS;
49
+ constructor(host: ReactiveControllerHost & HTMLElement);
50
+ hostConnected(): void;
51
+ hostDisconnected(): void;
52
+ /**
53
+ * 预加载提示音
54
+ *
55
+ * 关键音效(message)立即加载;非关键音效延迟加载以优化首屏性能。
56
+ * 加载失败时降级处理:不影响 Toast 和动画功能。
57
+ *
58
+ * 注意:音效文件路径在构建时应确保存在,运行时加载失败会降级处理。
59
+ */
60
+ private _preloadSounds;
61
+ private _loadSound;
62
+ private _playSound;
63
+ /**
64
+ * 订阅 UIUpdateBus 的新消息事件
65
+ *
66
+ * 使用按 entity 过滤的订阅模式(参考 rtc-input-area 用法)。
67
+ * 仅监听 content 字段的 created 事件(消息内容首次写入时触发)。
68
+ */
69
+ private _subscribeToMessages;
70
+ private _handleNewMessage;
71
+ /**
72
+ * 判断是否应该触发通知
73
+ *
74
+ * 场景:
75
+ * - 用户在 session A 看消息,session B 收到新消息 → 通知
76
+ * - 用户在 session A 看消息,session A 收到新消息 → 不通知
77
+ * - 用户没在看任何 session → 通知所有新消息
78
+ * - 用户禁用通知 → 所有消息都不通知
79
+ */
80
+ private _shouldNotify;
81
+ private _triggerNotification;
82
+ private _showToast;
83
+ /**
84
+ * 跳转到目标 session 并清除通知状态
85
+ *
86
+ * 流程:切换 session → 标记已读 → 派发 rtc-notification-click 事件
87
+ */
88
+ private _navigateToSession;
89
+ /**
90
+ * 触发最小化图标脉冲动画
91
+ *
92
+ * 通过 host 元素设置 data-notification 属性,
93
+ * CSS 通过 `:host([data-notification])` 选择器触发动画。
94
+ * 动画会一直持续,直到用户展开窗口或点击 bubble。
95
+ */
96
+ private _animateMinimizeIcon;
97
+ private _clearAnimation;
98
+ private _markAsRead;
99
+ private _clearAll;
100
+ }
101
+ //# sourceMappingURL=notification.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/notification.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AAEpE,OAAO,KAAK,EAAC,wBAAwB,EAAqB,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAElH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAiB7D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC7D,IAAI,EAAE,sBAAsB,GAAG,WAAW,CAAC;IAG3C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAG/B,OAAO,CAAC,MAAM,CAAsD;IAEpE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAEtC,IAAI,KAAK,IAAI,wBAAwB,CAEpC;IAGD,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,OAAO,CAAuC;IACtD,iCAAiC;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAgC;IAC5D,qEAAqE;IACrE,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,4BAA4B;IAC5B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IACjD,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IACtD,yFAAyF;IACzF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAO;gBAE1C,IAAI,EAAE,sBAAsB,GAAG,WAAW;IAWtD,aAAa,IAAI,IAAI;IAKrB,gBAAgB,IAAI,IAAI;IAiBxB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,UAAU;IAqBlB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;YAad,iBAAiB;IA4B/B;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,UAAU;IA0BlB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;CAKpB"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Persistence Controller
3
+ *
4
+ * Manages the PersistenceLayer lifecycle: creates it lazily, connects when
5
+ * auth succeeds, disconnects on logout or host teardown.
6
+ *
7
+ * Uses SharedWorker + Comlink architecture:
8
+ * - SharedWorker hosts PersistenceLayer, Centrifuge WebSocket, IndexedDB
9
+ * - Comlink bridge exposes a PersistenceLayer-compatible adapter (WorkerPersistenceAdapter)
10
+ * - MasterLock: Master Tab election via Web Locks API
11
+ *
12
+ * Corresponds to: no context (infrastructure concern, not UI state).
13
+ * Provided by: `<rtc-agent>` (root)
14
+ * Consumed by: other controllers (via `persistence.layer`)
15
+ */
16
+ import type { ReactiveController } from 'lit';
17
+ import { type PersistenceLayer } from '@rtc-agent/persistence';
18
+ import type { ConnectionState, ConnectionStateEvent } from '@rtc-agent/client';
19
+ import type { AuthController } from './auth.controller.js';
20
+ import { WorkerBridge } from '../worker-bridge.js';
21
+ import { MasterLock } from '../master-lock.js';
22
+ export declare class PersistenceController implements ReactiveController {
23
+ private _layer?;
24
+ private _auth;
25
+ private _workerBridge?;
26
+ private _masterLock?;
27
+ private _databaseNameOverride?;
28
+ private _workerUrl?;
29
+ /**
30
+ * In-flight connection promise — prevents concurrent `connect()` calls from
31
+ * racing to create multiple SharedWorker / Centrifuge connections.
32
+ *
33
+ * Cleared on success (layer is set) or failure (so a retry can proceed).
34
+ */
35
+ private _connecting?;
36
+ private static readonly MAX_CONNECT_RETRIES;
37
+ private static readonly CONNECT_RETRY_DELAY_MS;
38
+ constructor(host: {
39
+ addController(c: ReactiveController): void;
40
+ }, auth: AuthController);
41
+ /** Set custom database name prefix. Must be called before connect(). */
42
+ set databaseName(value: string | undefined);
43
+ /**
44
+ * Set custom SharedWorker URL.
45
+ *
46
+ * When the component is loaded from NPM, the worker file may not be accessible
47
+ * from the default location. Use this to specify a custom URL where the worker
48
+ * file is served (e.g., '/rtc-agent/shared-worker.js').
49
+ *
50
+ * Must be called before connect().
51
+ */
52
+ set workerUrl(value: string | undefined);
53
+ /** The PersistenceLayer instance. Only available after connect(). */
54
+ get layer(): PersistenceLayer | undefined;
55
+ /** Whether the persistence layer is connected. */
56
+ get isConnected(): boolean;
57
+ /**
58
+ * Get the WorkerBridge instance.
59
+ */
60
+ get workerBridge(): WorkerBridge | undefined;
61
+ /**
62
+ * Get the MasterLock instance.
63
+ *
64
+ * MasterLock 封装 Web Locks API,用于 Master Tab 选举。
65
+ * 每个 Tab 各自持有一个 MasterLock,自己判断是否为 Master。
66
+ * 只有 Master Tab 的 RtcProcessor 会执行 RTC 工具调用。
67
+ *
68
+ * @see docs/shared-worker-proposal.md §4.3
69
+ */
70
+ get masterLock(): MasterLock | undefined;
71
+ hostConnected(): void;
72
+ hostDisconnected(): void;
73
+ /**
74
+ * Create the PersistenceLayer and connect.
75
+ *
76
+ * Creates SharedWorker + Comlink bridge.
77
+ * The WorkerPersistenceAdapter wraps the Comlink proxy, presenting a
78
+ * PersistenceLayer-compatible interface to the rest of the application.
79
+ *
80
+ * Call this after auth succeeds (tokens are set in AuthController).
81
+ * Safe to call multiple times — subsequent calls are no-ops.
82
+ */
83
+ connect(): Promise<void>;
84
+ /**
85
+ * Create SharedWorker + Comlink bridge.
86
+ *
87
+ * The WorkerPersistenceAdapter wraps the Comlink proxy, presenting a
88
+ * PersistenceLayer-compatible interface to the rest of the application.
89
+ *
90
+ * 支持重试:如果 Worker 初始化或连接失败,会自动重试。
91
+ */
92
+ private _connectWorker;
93
+ /**
94
+ * 单次连接尝试
95
+ */
96
+ private _connectWorkerOnce;
97
+ /**
98
+ * 清理失败的连接
99
+ */
100
+ private _cleanupFailedConnection;
101
+ /**
102
+ * 延迟指定毫秒数
103
+ */
104
+ private _delay;
105
+ /**
106
+ * Disconnect and tear down the PersistenceLayer.
107
+ *
108
+ * - 先 reset offset,再 close layer
109
+ * - 额外释放 MasterLock + 销毁 WorkerBridge
110
+ *
111
+ * Call this on logout or when auth is lost.
112
+ */
113
+ disconnect(): Promise<void>;
114
+ /**
115
+ * 获取当前连接状态
116
+ *
117
+ * 通过 WorkerBridge 获取连接状态。
118
+ */
119
+ getConnectionState(): Promise<ConnectionState>;
120
+ /**
121
+ * 监听连接状态变更
122
+ *
123
+ * 监听 WorkerBridge 广播的连接状态变更事件。
124
+ * 返回取消监听的函数。
125
+ */
126
+ onConnectionStateChange(listener: (event: ConnectionStateEvent) => void): () => void;
127
+ }
128
+ //# sourceMappingURL=persistence.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/persistence.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,KAAK,CAAC;AAE5C,OAAO,EACH,KAAK,gBAAgB,EAMxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAG7E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAKzD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAwM7C,qBAAa,qBAAsB,YAAW,kBAAkB;IAC5D,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAC,CAAgB;IAEpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;gBAGlD,IAAI,EAAE;QAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAC,EAClD,IAAI,EAAE,cAAc;IAMxB,wEAAwE;IACxE,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEzC;IAED;;;;;;;;OAQG;IACH,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEtC;IAED,qEAAqE;IACrE,IAAI,KAAK,IAAI,gBAAgB,GAAG,SAAS,CAExC;IAED,kDAAkD;IAClD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;IAED,aAAa;IAIb,gBAAgB;IAIhB;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC9B;;;;;;;OAOG;YACW,cAAc;IA2B5B;;OAEG;YACW,kBAAkB;IAiDhC;;OAEG;YACW,wBAAwB;IAYtC;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAOpD;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI;CAOvF"}
@@ -0,0 +1,82 @@
1
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import type { SessionTabState, SessionTabActions, SessionStatus } from '../types/index.js';
3
+ export declare class SessionTabController implements ReactiveController {
4
+ host: ReactiveControllerHost;
5
+ private _state;
6
+ readonly actions: SessionTabActions;
7
+ get value(): {
8
+ state: SessionTabState;
9
+ actions: SessionTabActions;
10
+ };
11
+ constructor(host: ReactiveControllerHost);
12
+ hostConnected(): void;
13
+ hostDisconnected(): void;
14
+ /**
15
+ * 过滤掉无效 Tab(session 已被删除或不存在)
16
+ *
17
+ * 在 session 列表从 IndexedDB 加载后调用,清理持久化中残留的无效 Tab。
18
+ * `isUnsaved === true` 的 tab 即使 sessionId 不在 DB 中也保留(它们是尚未持久化的 draft)。
19
+ * 返回 true 表示有 Tab 被移除(调用方可能需要更新 UI)。
20
+ */
21
+ filterInvalidTabs(validSessionIds: Set<string>): boolean;
22
+ /**
23
+ * 用 sessions 中的最新标题同步已有 Tab 的标题
24
+ *
25
+ * DB 是标题的权威来源。UIUpdateBus 推送的 session 变更(用户 rename 或服务端生成)
26
+ * 都已先写入 DB,此方法负责把 DB 中的最新标题同步到 Tab。
27
+ *
28
+ * 跳过条件:
29
+ * - Tab 对应的 session 不在 DB 中(如 unsaved tab,newTitle 为 undefined)
30
+ * - DB 返回空标题
31
+ * - DB 标题与 Tab 当前标题完全相同(无变化)
32
+ */
33
+ updateTabTitles(sessionTitleMap: Map<string, string>): boolean;
34
+ /**
35
+ * 用 sessions 中的最新状态同步已有 Tab 的 status
36
+ *
37
+ * DB 是 status 的权威来源(服务端 turn 生命周期事件写入)。
38
+ * 在 _loadSessions 时调用,确保 tab status 与 DB 一致。
39
+ */
40
+ syncTabStatuses(sessionStatusMap: Map<string, SessionStatus>): boolean;
41
+ private _isPlaceholderTitle;
42
+ /** 查找当前 unsaved tab,返回第一个 isUnsaved === true 的 tab。 */
43
+ private _findUnsavedTab;
44
+ /** 将指定 tab 标记为已保存。 */
45
+ private _markSaved;
46
+ /** 更新指定 tab 的 session 运行状态(active/idle/closed)。 */
47
+ private _updateTabStatus;
48
+ private _openOrActivate;
49
+ private _closeTab;
50
+ private _setActiveTab;
51
+ private _clearAll;
52
+ /**
53
+ * 把 activeSessionId 写入 localStorage
54
+ *
55
+ * 仅在浏览器环境下执行(SSR 安全);任何异常静默忽略(如隐私模式配额为 0)。
56
+ */
57
+ private _persistActiveSessionId;
58
+ /**
59
+ * 从 localStorage 读取上次活动 Tab 的 sessionId
60
+ *
61
+ * 用于恢复 tabs 循环时决定哪个 tab 应该 activate: true。
62
+ * 如果 localStorage 为空或不可用,返回 null。
63
+ */
64
+ private _getStoredActiveSessionId;
65
+ /**
66
+ * 设置指定 tab 的瞬态 UI 参数(initialInputValue, noticeMessage)
67
+ *
68
+ * 同时递增 initialValueVersion,确保即使新旧值相同,
69
+ * input-area 的 updated() 也能被触发(防御 Lit 脏检查跳过)。
70
+ */
71
+ private _setTransientParams;
72
+ /** 清除指定 tab 的瞬态 UI 参数。 */
73
+ private _clearTransientParams;
74
+ /**
75
+ * 从 localStorage 恢复活动 Tab
76
+ *
77
+ * 仅当存储的 sessionId 在当前 tabs 列表中时才恢复,否则保持不变。
78
+ * 用于浏览器刷新后恢复用户上次的活动 tab。
79
+ */
80
+ private _restoreActiveFromStorage;
81
+ }
82
+ //# sourceMappingURL=session-tab.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-tab.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/session-tab.controller.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAAa,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAOrG,qBAAa,oBAAqB,YAAW,kBAAkB;IAC3D,IAAI,EAAE,sBAAsB,CAAC;IAE7B,OAAO,CAAC,MAAM,CAAsD;IAEpE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAEpC,IAAI,KAAK,IAAI;QAAC,KAAK,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAC,CAEhE;gBAEW,IAAI,EAAE,sBAAsB;IA2BxC,aAAa;IACb,gBAAgB;IAEhB;;;;;;OAMG;IACH,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;IAyBxD;;;;;;;;;;OAUG;IACH,eAAe,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IA4B9D;;;;;OAKG;IACH,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO;IAoBtE,OAAO,CAAC,mBAAmB;IAI3B,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAIvB,sBAAsB;IACtB,OAAO,CAAC,UAAU;IAalB,mDAAmD;IACnD,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAmEvB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,SAAS;IAMjB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B,0BAA0B;IAC1B,OAAO,CAAC,qBAAqB;IAa7B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;CAiBpC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Session Tree Controller
3
+ *
4
+ * 将平铺的 session 列表构建为层级树:
5
+ * - rootClientSessionId 为空的 session 作为根节点
6
+ * - 其余 session 按 rootClientSessionId 分组,挂到对应根节点的 children 中
7
+ *
8
+ * 管理展开/折叠状态。session 列表变化时通过 rebuildTree() 重建。
9
+ *
10
+ * 对应:`SessionTreeContext`(contexts/session-tree.ts)
11
+ * 消费方:<rtc-session-tree>, <rtc-session-tree-item>
12
+ */
13
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
14
+ import type { SessionTreeState, SessionTreeActions } from '../types/index.js';
15
+ export declare class SessionTreeController implements ReactiveController {
16
+ host: ReactiveControllerHost;
17
+ private _state;
18
+ /** 展开状态的 Map:sessionId → isExpanded。默认全部折叠。 */
19
+ private _expanded;
20
+ readonly actions: SessionTreeActions;
21
+ get value(): {
22
+ state: SessionTreeState;
23
+ actions: SessionTreeActions;
24
+ };
25
+ constructor(host: ReactiveControllerHost);
26
+ hostConnected(): void;
27
+ hostDisconnected(): void;
28
+ private _restoreExpanded;
29
+ private _persistExpanded;
30
+ private _toggleExpand;
31
+ private _setExpanded;
32
+ /**
33
+ * 用当前缓存的 sessions 和展开状态重建树
34
+ *
35
+ * rebuildTree 时 sessions 会更新,但展开状态 (_expanded) 保留。
36
+ * 此方法从 _expanded 读取最新展开状态来重建。
37
+ */
38
+ private _rebuildTreeFromCache;
39
+ private _cachedSessions?;
40
+ private _rebuildTree;
41
+ private _buildTree;
42
+ private _buildNode;
43
+ }
44
+ //# sourceMappingURL=session-tree.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-tree.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/session-tree.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAA2B,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAStG,qBAAa,qBAAsB,YAAW,kBAAkB;IAC5D,IAAI,EAAE,sBAAsB,CAAC;IAE7B,OAAO,CAAC,MAAM,CAAqC;IACnD,+CAA+C;IAC/C,OAAO,CAAC,SAAS,CAA8B;IAE/C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAErC,IAAI,KAAK,IAAI;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAC,CAElE;gBAEW,IAAI,EAAE,sBAAsB;IAaxC,aAAa;IACb,gBAAgB;IAIhB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAMpB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe,CAAC,CAAY;IAEpC,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,UAAU;CAWrB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Session Controller
3
+ *
4
+ * Encapsulates session management: create, switch, rename, delete.
5
+ * Dispatches public `rtc-session-*` events on the host for external consumers.
6
+ *
7
+ * When switching sessions, also reloads messages for the new session (via messageController reference).
8
+ * This cross-controller communication is handled by the root component wiring.
9
+ *
10
+ * Corresponds to: `sessionContext` (defined in `contexts/session.ts`).
11
+ * Provided by: `<rtc-agent>` (root)
12
+ * Consumed by: `<rtc-session-header>`, `<rtc-session-panel>`, `<rtc-content-area>`
13
+ */
14
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
15
+ import type { SessionActions } from '../types/index.js';
16
+ import type { SessionContextValue } from '../contexts/session.js';
17
+ import type { PersistenceLayer } from '@rtc-agent/persistence';
18
+ export declare class SessionController implements ReactiveController {
19
+ host: ReactiveControllerHost & EventTarget;
20
+ private _state;
21
+ readonly actions: SessionActions;
22
+ /** Called when session switches — root wires this to MessageController. */
23
+ onSessionSwitch?: () => void;
24
+ /**
25
+ * Persistence layer reference (injected by root after connect).
26
+ *
27
+ * When set, rename/delete operations are persisted to IndexedDB + synced to server.
28
+ * When unset, rename/delete operate in-memory only (offline / pre-connect fallback).
29
+ */
30
+ persistence?: PersistenceLayer;
31
+ get value(): SessionContextValue;
32
+ constructor(host: ReactiveControllerHost & EventTarget);
33
+ hostConnected(): void;
34
+ hostDisconnected(): void;
35
+ private _createSession;
36
+ private _switchSession;
37
+ private _renameSession;
38
+ private _deleteSession;
39
+ /**
40
+ * 通知后端关闭 session
41
+ *
42
+ * 仅发送 RPC 通知,不做本地状态变更(Tab 关闭由调用方处理)。
43
+ * 失败时仅 log 错误,由调用方决定如何处理。
44
+ */
45
+ private _closeSession;
46
+ /**
47
+ * 重新打开已关闭的 session(透明 reopen)
48
+ *
49
+ * 调用后端 openSession API,将 session 状态从 closed 改回 idle/active。
50
+ * 后端返回 updates 后由 applyUpdates 处理本地状态同步。
51
+ */
52
+ private _reopenSession;
53
+ private _reset;
54
+ private _clearCurrentSession;
55
+ private _setCurrentSession;
56
+ private _setSessions;
57
+ }
58
+ //# sourceMappingURL=session.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAAwB,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAK7D,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,IAAI,EAAE,sBAAsB,GAAG,WAAW,CAAC;IAE3C,OAAO,CAAC,MAAM,CAA4C;IAE1D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAE/B,IAAI,KAAK,IAAI,mBAAmB,CAE/B;gBAEW,IAAI,EAAE,sBAAsB,GAAG,WAAW;IAkBtD,aAAa;IACb,gBAAgB;IAEhB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,cAAc;YAeR,cAAc;YA2Bd,cAAc;IAkD5B;;;;;OAKG;YACW,aAAa;IAsB3B;;;;;OAKG;YACW,cAAc;IAe5B,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;CAKvB"}